From b50c6712281d0a2de044e16df203828e67a84314 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Fri, 13 Sep 2019 17:21:49 +0100 Subject: [PATCH] dot/emacs, el/dot-emacs.el: Gather mode settings together. Not my cleanest patch, but this should just be a bunch of reordering of stuff with some light formatting. --- dot/emacs | 204 +------------------------------------------ el/dot-emacs.el | 266 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 260 insertions(+), 210 deletions(-) diff --git a/dot/emacs b/dot/emacs index 9c6fa6b..a7ac91d 100644 --- a/dot/emacs +++ b/dot/emacs @@ -399,7 +399,6 @@ (tooltip-mode 0) (tool-bar-mode 0)) (trap (or mdw-fast-startup (global-auto-revert-mode t))) -(setq-default psgml-html-build-new-buffer nil) (defvar mdw-black-background t) @@ -811,22 +810,6 @@ (make-variable-buffer-local 'mdw-auto-indent) -(mapc (lambda (hook) (add-hook hook 'mdw-misc-mode-config)) - '(c-mode-hook c++-mode-hook objc-mode-hook java-mode-hook - csharp-mode-hook perl-mode-hook cperl-mode-hook dylan-mode-hook - python-mode-hook pyrec-mode-hook icon-mode-hook awk-mode-hook - tcl-mode-hook go-mode-hook js-mode-hook javascript-mode-hook - conf-mode-hook m4-mode-hook autoconf-mode-hook autotest-mode-hook - a68-mode-hook a68-mode-hooks asm-mode-hook fsharp-mode-hook - scala-mode-hook rust-mode-hook TeX-mode-hook LaTeX-mode-hook - TeXinfo-mode-hook tex-mode-hook latex-mode-hook - texinfo-mode-hook emacs-lisp-mode-hook scheme-mode-hook - lisp-mode-hook lisp-interaction-mode-hook makefile-mode-hook - inferior-lisp-mode-hook slime-repl-mode-hook ielm-mode-hook - sml-mode-hook haskell-mode-hook erlang-mode-hook - smalltalk-mode-hook rexx-mode-hook lua-mode-hook - arm-assembler-mode-hook)) - (global-font-lock-mode t) ;;;-------------------------------------------------------------------------- @@ -889,190 +872,9 @@ lazy-lock-stealth-lines 100 lazy-lock-stealth-verbose t) -(progn - (add-hook 'c-mode-hook 'mdw-fontify-c-and-c++ t) - (add-hook 'objc-mode-hook 'mdw-fontify-c-and-c++ t) - (add-hook 'c++-mode-hook 'mdw-fontify-c-and-c++ t) - (add-hook 'asm-mode-hook 'mdw-fontify-asm t) - (add-hook 'go-mode-hook 'mdw-fontify-go t) - (add-hook 'rust-mode-hook 'mdw-fontify-rust t) - - (add-hook 'lua-mode-hook 'mdw-fontify-lua t) - (add-hook 'icon-mode-hook 'mdw-fontify-icon t) - - (add-hook 'apcalc-mode-hook 'mdw-misc-mode-config t) - (add-hook 'apcalc-mode-hook 'mdw-fontify-apcalc t) - - (add-hook 'java-mode-hook 'mdw-fontify-java t) - (add-hook 'scala-mode-hook 'mdw-fontify-scala t) - (add-hook 'js-mode-hook 'mdw-fontify-javascript t) - (add-hook 'csharp-mode-hook 'mdw-fontify-csharp t) - (add-hook 'fsharp-mode-hook 'mdw-fontify-fsharp t) - (add-hook 'inferior-fsharp-mode-hooks 'mdw-fontify-inferior-fsharp t) - - (add-hook 'awk-mode-hook 'mdw-fontify-awk t) - - (add-hook 'perl-mode-hook 'mdw-fontify-perl t) - (add-hook 'cperl-mode-hook 'mdw-fontify-perl t)) - -(progn - (setq-default py-indent-offset 2 - python-indent 2 - python-indent-offset 2 - py-python-command-args - `("-i" "-colors" ,(if mdw-black-background - "Linux" "LightBG"))) - (add-hook 'python-mode-hook 'mdw-fontify-python t) - (add-hook 'pyrex-mode-hook 'mdw-fontify-pyrex t)) - -(setq-default tcl-indent-level 2) -(add-hook 'tcl-mode-hook 'mdw-fontify-tcl t) - -(add-hook 'rexx-mode-hook 'mdw-fontify-rexx t) - -(setq-default sml-nested-if-indent t - sml-case-indent nil - sml-indent-level 4 - sml-type-of-indent nil) -(add-hook 'sml-mode-hook 'mdw-fontify-sml t) - -(add-hook 'haskell-mode-hook 'mdw-fontify-haskell t) -(setq-default haskell-indent-offset 2) - -(add-hook 'erlang-mode-hook 'mdw-fontify-erlang t) - -(add-hook 'texinfo-mode-hook 'mdw-fontify-texinfo t) -(add-hook 'TeXinfo-mode-hook 'mdw-fontify-texinfo t) - -(setq-default LaTeX-table-label "tbl:" - TeX-auto-untabify nil) -(add-hook 'TeX-mode-hook 'mdw-fontify-tex t) -(add-hook 'tex-mode-hook 'mdw-fontify-tex t) -(add-hook 'LaTeX-mode-hook 'mdw-fontify-tex t) -(add-hook 'latex-mode-hook 'mdw-fontify-tex t) - -(add-hook 'sh-mode-hook #'mdw-setup-sh-script-mode) -(add-hook 'autoconf-mode-hook #'mdw-setup-m4) -(add-hook 'autotest-mode-hook #'mdw-setup-m4) -(add-hook 'm4-mode-hook #'mdw-setup-m4) - -(add-hook 'smalltalk-mode-hook 'mdw-fontify-smalltalk t) -(add-hook 'smalltalk-mode-hook 'mdw-setup-smalltalk t) - -(add-hook 'a68-mode-hook 'mdw-fontify-algol-68 t) -(add-hook 'a68-mode-hooks 'mdw-fontify-algol-68 t) -(add-hook 'dylan-mode-hook 'mdw-fontify-dylan t) - -(progn - (add-hook 'emacs-lisp-mode-hook 'mdw-fontify-lispy t) - (add-hook 'scheme-mode-hook 'mdw-fontify-lispy t) - (add-hook 'lisp-mode-hook 'mdw-fontify-lispy t) - (add-hook 'inferior-lisp-mode-hook 'mdw-fontify-lispy t) - (add-hook 'lisp-interaction-mode-hook 'mdw-fontify-lispy t) - (add-hook 'ielm-mode-hook 'mdw-fontify-lispy t) - (add-hook 'slime-repl-mode-hook 'mdw-fontify-lispy t) - (add-hook 'lisp-mode-hook 'mdw-common-lisp-indent t) - (add-hook 'inferior-lisp-mode-hook - #'(lambda () - (local-set-key "\C-m" 'comint-send-and-indent)) t)) - -(add-hook 'text-mode-hook 'mdw-text-mode t) - -;;;-------------------------------------------------------------------------- -;;; TeX stuff. - -(setq TeX-output-view-style - '(("^dvi$" - ("^landscape$" "^pstricks$\\|^pst-\\|^psfrag$") - "%(o?)dvips -t landscape %d -o && xdg-open %f") - ("^dvi$" "^pstricks$\\|^pst-\\|^psfrag$" - "%(o?)dvips %d -o && xdg-open %f") - ("^dvi$" - ("^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" "^landscape$") - "%(o?)xdvi %dS -paper a4r -s 0 %d") - ("^dvi$" "^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" - "%(o?)xdvi %dS -paper a4 %d") - ("^dvi$" - ("^a5\\(?:comb\\|paper\\)$" "^landscape$") - "%(o?)xdvi %dS -paper a5r -s 0 %d") - ("^dvi$" "^a5\\(?:comb\\|paper\\)$" "%(o?)xdvi %dS -paper a5 %d") - ("^dvi$" "^b5paper$" "%(o?)xdvi %dS -paper b5 %d") - ("^dvi$" "^letterpaper$" "%(o?)xdvi %dS -paper us %d") - ("^dvi$" "^legalpaper$" "%(o?)xdvi %dS -paper legal %d") - ("^dvi$" "^executivepaper$" "%(o?)xdvi %dS -paper 7.25x10.5in %d") - ("^dvi$" "." "%(o?)xdvi %dS %d") - ("^pdf$" "." "xdg-open %o") - ("^html?$" "." "sensible-browser %o"))) - -(setq TeX-view-program-list - '(("mupdf" ("mupdf %o" (mode-io-correlate " %(outpage)"))))) - -(setq TeX-view-program-selection - '(((output-dvi style-pstricks) "dvips and gv") - (output-dvi "xdvi") - (output-pdf "mupdf") - (output-html "sensible-browser"))) - -(setq TeX-open-quote "\"" - TeX-close-quote "\"") - -(setq reftex-use-external-file-finders t - reftex-auto-recenter-toc t) - -(setq reftex-label-alist - '(("theorem" ?T "th:" "~\\ref{%s}" t ("theorems?" "th\\.") -2) - ("axiom" ?A "ax:" "~\\ref{%s}" t ("axioms?" "ax\\.") -2) - ("definition" ?D "def:" "~\\ref{%s}" t ("definitions?" "def\\.") -2) - ("proposition" ?P "prop:" "~\\ref{%s}" t - ("propositions?" "prop\\.") -2) - ("lemma" ?L "lem:" "~\\ref{%s}" t ("lemmas?" "lem\\.") -2) - ("example" ?X "eg:" "~\\ref{%s}" t ("examples?") -2) - ("exercise" ?E "ex:" "~\\ref{%s}" t ("exercises?" "ex\\.") -2) - ("enumerate" ?i "i:" "~\\ref{%s}" item ("items?")))) -(setq reftex-section-prefixes - '((0 . "part:") - (1 . "ch:") - (t . "sec:"))) - -(setq bibtex-field-delimiters 'double-quotes - bibtex-align-at-equal-sign t - bibtex-entry-format '(realign opts-or-alts required-fields - numerical-fields last-comma delimiters - unify-case sort-fields braces) - bibtex-sort-ignore-string-entries nil - bibtex-maintain-sorted-entries 'entry-class - bibtex-include-OPTkey t - bibtex-autokey-names-stretch 1 - bibtex-autokey-expand-strings t - bibtex-autokey-name-separator "-" - bibtex-autokey-year-length 4 - bibtex-autokey-titleword-separator "-" - bibtex-autokey-name-year-separator "-" - bibtex-autokey-year-title-separator ":") - -;;;-------------------------------------------------------------------------- -;;; SLIME setup. - -(trap - (if (not mdw-fast-startup) - (progn - (require 'slime-autoloads) - (slime-setup '(slime-autodoc slime-c-p-c))))) - -(let ((stuff '((cmucl ("cmucl")) - (sbcl ("sbcl") :coding-system utf-8-unix) - (clisp ("clisp") :coding-system utf-8-unix)))) - (or (boundp 'slime-lisp-implementations) - (setq slime-lisp-implementations nil)) - (while stuff - (let* ((head (car stuff)) - (found (assq (car head) slime-lisp-implementations))) - (setq stuff (cdr stuff)) - (if found - (rplacd found (cdr head)) - (setq slime-lisp-implementations - (cons head slime-lisp-implementations)))))) -(setq slime-default-lisp 'sbcl) +;; Late, for `mdw-black-background'. +(setq-default py-python-command-args + `("-i" "-colors" ,(if mdw-black-background "Linux" "LightBG"))) ;;;-------------------------------------------------------------------------- ;;; Blogging. diff --git a/el/dot-emacs.el b/el/dot-emacs.el index 83e3891..cb19d10 100644 --- a/el/dot-emacs.el +++ b/el/dot-emacs.el @@ -2158,6 +2158,10 @@ name, as a symbol." "Major mode for editing Sod code.") (push '("\\.sod$" . sod-mode) auto-mode-alist) +(dolist (hook '(c-mode-hook objc-mode-hook c++-mode-hook)) + (add-hook hook 'mdw-misc-mode-config t) + (add-hook hook 'mdw-fontify-c-and-c++ t)) + ;;;-------------------------------------------------------------------------- ;;; AP calc mode. @@ -2203,6 +2207,10 @@ name, as a symbol." (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face)))))) +(progn + (add-hook 'apcalc-mode-hook 'mdw-misc-mode-config t) + (add-hook 'apcalc-mode-hook 'mdw-fontify-apcalc t)) + ;;;-------------------------------------------------------------------------- ;;; Java programming configuration. @@ -2279,6 +2287,10 @@ name, as a symbol." (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face)))))) +(progn + (add-hook 'java-mode-hook 'mdw-misc-mode-config t) + (add-hook 'java-mode-hook 'mdw-fontify-java t)) + ;;;-------------------------------------------------------------------------- ;;; Javascript programming configuration. @@ -2334,6 +2346,10 @@ name, as a symbol." (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face)))))) +(progn + (add-hook 'js-mode-hook 'mdw-misc-mode-config t) + (add-hook 'js-mode-hook 'mdw-fontify-javascript t)) + ;;;-------------------------------------------------------------------------- ;;; Scala programming configuration. @@ -2403,6 +2419,10 @@ name, as a symbol." '(1 "\"") '(4 "\"")))))) +(progn + (add-hook 'scala-mode-hook 'mdw-misc-mode-config t) + (add-hook 'scala-mode-hook 'mdw-fontify-scala t)) + ;;;-------------------------------------------------------------------------- ;;; C# programming configuration. @@ -2474,6 +2494,8 @@ name, as a symbol." (define-derived-mode csharp-mode java-mode "C#" "Major mode for editing C# code.") +(add-hook 'csharp-mode-hook 'mdw-fontify-csharp t) + ;;;-------------------------------------------------------------------------- ;;; F# programming configuration. @@ -2593,6 +2615,11 @@ name, as a symbol." (list "^>" '(0 font-lock-keyword-face))) font-lock-keywords))) +(progn + (add-hook 'fsharp-mode-hook 'mdw-misc-mode-config t) + (add-hook 'fsharp-mode-hook 'mdw-fontify-fsharp t) + (add-hook 'inferior-fsharp-mode-hooks 'mdw-fontify-inferior-fsharp t)) + ;;;-------------------------------------------------------------------------- ;;; Go programming configuration. @@ -2654,6 +2681,9 @@ name, as a symbol." ;; And anything else is punctuation. (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face)))))) +(progn + (add-hook 'go-mode-hook 'mdw-misc-mode-config t) + (add-hook 'go-mode-hook 'mdw-fontify-go t)) ;;;-------------------------------------------------------------------------- ;;; Rust programming configuration. @@ -2734,6 +2764,10 @@ name, as a symbol." (local-set-key [?{] 'mdw-self-insert-and-indent) (local-set-key [?}] 'mdw-self-insert-and-indent)) +(progn + (add-hook 'rust-mode-hook 'mdw-misc-mode-config t) + (add-hook 'rust-mode-hook 'mdw-fontify-rust t)) + ;;;-------------------------------------------------------------------------- ;;; Awk programming configuration. @@ -2790,6 +2824,10 @@ name, as a symbol." (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face)))))) +(progn + (add-hook 'awk-mode-hook 'mdw-misc-mode-config t) + (add-hook 'awk-mode-hook 'mdw-fontify-awk t)) + ;;;-------------------------------------------------------------------------- ;;; Perl programming style. @@ -2867,9 +2905,18 @@ strip numbers instead." (if (re-search-forward "\\(tests\\s-*=>\\s-*\\)\\w*" nil t) (replace-match (format "\\1%d" i)))))) +(dolist (hook '(perl-mode-hook cperl-mode-hook)) + (add-hook hook 'mdw-misc-mode-config t) + (add-hook hook 'mdw-fontify-perl t)) + ;;;-------------------------------------------------------------------------- ;;; Python programming style. +(setq-default py-indent-offset 2 + python-indent 2 + python-indent-offset 2 + python-fill-docstring-style 'symmetric) + (defun mdw-fontify-pythonic (keywords) ;; Miscellaneous fiddling. @@ -2922,6 +2969,11 @@ strip numbers instead." ("\\.pxi$" . pyrex-mode)) auto-mode-alist)) +(progn + (add-hook 'python-mode-hook 'mdw-misc-mode-config t) + (add-hook 'python-mode-hook 'mdw-fontify-python t) + (add-hook 'pyrex-mode-hook 'mdw-fontify-pyrex t)) + ;;;-------------------------------------------------------------------------- ;;; Lua programming style. @@ -2965,6 +3017,10 @@ strip numbers instead." (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face)))))) +(progn + (add-hook 'lua-mode-hook 'mdw-misc-mode-config t) + (add-hook 'lua-mode-hook 'mdw-fontify-lua t)) + ;;;-------------------------------------------------------------------------- ;;; Icon programming style. @@ -3020,6 +3076,10 @@ strip numbers instead." (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face)))))) +(progn + (add-hook 'icon-mode-hook 'mdw-misc-mode-config t) + (add-hook 'icon-mode-hook 'mdw-fontify-icon t)) + ;;;-------------------------------------------------------------------------- ;;; Assembler mode. @@ -3043,9 +3103,15 @@ strip numbers instead." (add-hook 'asm-mode-local-variables-hook 'mdw-asm-set-comment) (put 'asm-comment-char 'safe-local-variable 'characterp) +(progn + (add-hook 'asm-mode-hook 'mdw-misc-mode-config t) + (add-hook 'asm-mode-hook 'mdw-fontify-asm t)) + ;;;-------------------------------------------------------------------------- ;;; TCL configuration. +(setq-default tcl-indent-level 2) + (defun mdw-fontify-tcl () (dolist (ch '(?$)) (modify-syntax-entry ch ".")) @@ -3060,6 +3126,10 @@ strip numbers instead." (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face))))) +(progn + (add-hook 'tcl-mode-hook 'mdw-misc-mode-config t) + (add-hook 'tcl-mode-hook 'mdw-fontify-tcl t)) + ;;;-------------------------------------------------------------------------- ;;; Dylan programming configuration. @@ -3126,6 +3196,10 @@ strip numbers instead." "\\)") '(0 mdw-punct-face)))))) +(progn + (add-hook 'dylan-mode-hook 'mdw-misc-mode-config t) + (add-hook 'dylan-mode-hook 'mdw-fontify-dylan t)) + ;;;-------------------------------------------------------------------------- ;;; Algol 68 configuration. @@ -3168,6 +3242,10 @@ strip numbers instead." (list "\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/" '(0 mdw-punct-face)))))) +(dolist (hook '(a68-mode-hook a68-mode-hooks)) + (add-hook hook 'mdw-misc-mode-config t) + (add-hook hook 'mdw-fontify-algol-68 t)) + ;;;-------------------------------------------------------------------------- ;;; REXX configuration. @@ -3241,9 +3319,18 @@ strip numbers instead." (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face)))))) +(progn + (add-hook 'rexx-mode-hook 'mdw-misc-mode-config t) + (add-hook 'rexx-mode-hook 'mdw-fontify-rexx t)) + ;;;-------------------------------------------------------------------------- ;;; Standard ML programming style. +(setq-default sml-nested-if-indent t + sml-case-indent nil + sml-indent-level 4 + sml-type-of-indent nil) + (defun mdw-fontify-sml () ;; Make underscore an honorary letter. @@ -3291,9 +3378,15 @@ strip numbers instead." (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face)))))) +(progn + (add-hook 'sml-mode-hook 'mdw-misc-mode-config t) + (add-hook 'sml-mode-hook 'mdw-fontify-sml t)) + ;;;-------------------------------------------------------------------------- ;;; Haskell configuration. +(setq-default haskell-indent-offset 2) + (defun mdw-fontify-haskell () ;; Fiddle with syntax table to get comments right. @@ -3369,6 +3462,10 @@ strip numbers instead." (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face)))))) +(progn + (add-hook 'haskell-mode-hook 'mdw-misc-mode-config t) + (add-hook 'haskell-mode-hook 'mdw-fontify-haskell t)) + ;;;-------------------------------------------------------------------------- ;;; Erlang configuration. @@ -3402,6 +3499,10 @@ strip numbers instead." (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face)))))) +(progn + (add-hook 'erlang-mode-hook 'mdw-misc-mode-config t) + (add-hook 'erlang-mode-hook 'mdw-fontify-erlang t)) + ;;;-------------------------------------------------------------------------- ;;; Texinfo configuration. @@ -3436,9 +3537,18 @@ strip numbers instead." (list "[{}]+" '(0 mdw-punct-face))))) +(dolist (hook '(texinfo-mode-hook TeXinfo-mode-hook)) + (add-hook hook 'mdw-misc-mode-config t) + (add-hook hook 'mdw-fontify-texinfo t)) + ;;;-------------------------------------------------------------------------- ;;; TeX and LaTeX configuration. +(setq-default LaTeX-table-label "tbl:" + TeX-auto-untabify nil + LaTeX-syntactic-comments nil + LaTeX-fill-break-at-separators '(\\\[)) + (defun mdw-fontify-tex () (setq ispell-parser 'tex) (turn-on-reftex) @@ -3527,10 +3637,81 @@ strip numbers instead." (unless modified (restore-buffer-modified-p nil))))))) -(setq-default LaTeX-syntactic-comments nil - LaTeX-fill-break-at-separators '(\\\[)) - -(add-hook 'bibtex-mode-hook (lambda () (setq fill-column 76))) +(setq TeX-output-view-style + '(("^dvi$" + ("^landscape$" "^pstricks$\\|^pst-\\|^psfrag$") + "%(o?)dvips -t landscape %d -o && xdg-open %f") + ("^dvi$" "^pstricks$\\|^pst-\\|^psfrag$" + "%(o?)dvips %d -o && xdg-open %f") + ("^dvi$" + ("^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" "^landscape$") + "%(o?)xdvi %dS -paper a4r -s 0 %d") + ("^dvi$" "^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" + "%(o?)xdvi %dS -paper a4 %d") + ("^dvi$" + ("^a5\\(?:comb\\|paper\\)$" "^landscape$") + "%(o?)xdvi %dS -paper a5r -s 0 %d") + ("^dvi$" "^a5\\(?:comb\\|paper\\)$" "%(o?)xdvi %dS -paper a5 %d") + ("^dvi$" "^b5paper$" "%(o?)xdvi %dS -paper b5 %d") + ("^dvi$" "^letterpaper$" "%(o?)xdvi %dS -paper us %d") + ("^dvi$" "^legalpaper$" "%(o?)xdvi %dS -paper legal %d") + ("^dvi$" "^executivepaper$" "%(o?)xdvi %dS -paper 7.25x10.5in %d") + ("^dvi$" "." "%(o?)xdvi %dS %d") + ("^pdf$" "." "xdg-open %o") + ("^html?$" "." "sensible-browser %o"))) + +(setq TeX-view-program-list + '(("mupdf" ("mupdf %o" (mode-io-correlate " %(outpage)"))))) + +(setq TeX-view-program-selection + '(((output-dvi style-pstricks) "dvips and gv") + (output-dvi "xdvi") + (output-pdf "mupdf") + (output-html "sensible-browser"))) + +(setq TeX-open-quote "\"" + TeX-close-quote "\"") + +(setq reftex-use-external-file-finders t + reftex-auto-recenter-toc t) + +(setq reftex-label-alist + '(("theorem" ?T "th:" "~\\ref{%s}" t ("theorems?" "th\\.") -2) + ("axiom" ?A "ax:" "~\\ref{%s}" t ("axioms?" "ax\\.") -2) + ("definition" ?D "def:" "~\\ref{%s}" t ("definitions?" "def\\.") -2) + ("proposition" ?P "prop:" "~\\ref{%s}" t + ("propositions?" "prop\\.") -2) + ("lemma" ?L "lem:" "~\\ref{%s}" t ("lemmas?" "lem\\.") -2) + ("example" ?X "eg:" "~\\ref{%s}" t ("examples?") -2) + ("exercise" ?E "ex:" "~\\ref{%s}" t ("exercises?" "ex\\.") -2) + ("enumerate" ?i "i:" "~\\ref{%s}" item ("items?")))) +(setq reftex-section-prefixes + '((0 . "part:") + (1 . "ch:") + (t . "sec:"))) + +(setq bibtex-field-delimiters 'double-quotes + bibtex-align-at-equal-sign t + bibtex-entry-format '(realign opts-or-alts required-fields + numerical-fields last-comma delimiters + unify-case sort-fields braces) + bibtex-sort-ignore-string-entries nil + bibtex-maintain-sorted-entries 'entry-class + bibtex-include-OPTkey t + bibtex-autokey-names-stretch 1 + bibtex-autokey-expand-strings t + bibtex-autokey-name-separator "-" + bibtex-autokey-year-length 4 + bibtex-autokey-titleword-separator "-" + bibtex-autokey-name-year-separator "-" + bibtex-autokey-year-title-separator ":") + +(progn + (dolist (hook '(tex-mode-hook latex-mode-hook + TeX-mode-hook LaTeX-mode-hook)) + (add-hook hook 'mdw-misc-mode-config t) + (add-hook hook 'mdw-fontify-tex t)) + (add-hook 'bibtex-mode-hook (lambda () (setq fill-column 76)))) ;;;-------------------------------------------------------------------------- ;;; HTML, CSS, and other web foolishness. @@ -3540,6 +3721,8 @@ strip numbers instead." ;;;-------------------------------------------------------------------------- ;;; SGML hacking. +(setq-default psgml-html-build-new-buffer nil) + (defun mdw-sgml-mode () (interactive) (sgml-mode) @@ -3590,7 +3773,10 @@ that character only to be normal punctuation.") (modify-syntax-entry ch "." table)) (set-syntax-table table) (and font-lock-mode (font-lock-fontify-buffer))))))) -(add-hook 'conf-mode-local-variables-hook 'mdw-fix-up-quote t t) + +(progn + (add-hook 'conf-mode-hook 'mdw-misc-mode-config t) + (add-hook 'conf-mode-local-variables-hook 'mdw-fix-up-quote t t)) ;;;-------------------------------------------------------------------------- ;;; Shell scripts. @@ -3660,6 +3846,10 @@ that character only to be normal punctuation.") (cons (cons 'rc frag) sh-mode-syntax-table-input)))))) +(progn + (add-hook 'sh-mode-hook 'mdw-misc-mode-config t) + (add-hook 'sh-mode-hook 'mdw-setup-sh-script-mode t)) + ;;;-------------------------------------------------------------------------- ;;; Emacs shell mode. @@ -3783,9 +3973,11 @@ that character only to be normal punctuation.") messages-mode-keywords))) (run-hooks 'cpp-messages-mode-hook)) -(add-hook 'messages-mode-hook 'mdw-misc-mode-config t) -(add-hook 'cpp-messages-mode-hook 'mdw-misc-mode-config t) -; (add-hook 'messages-file-hook 'mdw-fontify-messages t) +(progn + (add-hook 'messages-mode-hook 'mdw-misc-mode-config t) + (add-hook 'cpp-messages-mode-hook 'mdw-misc-mode-config t) + ;; (add-hook 'messages-file-hook 'mdw-fontify-messages t) + ) ;;;-------------------------------------------------------------------------- ;;; Messages-file mode. @@ -3833,7 +4025,8 @@ that character only to be normal punctuation.") (setq comment-end "") (run-hooks 'mallow-driver-mode-hook)) -(add-hook 'mallow-driver-hook 'mdw-misc-mode-config t) +(progn + (add-hook 'mallow-driver-hook 'mdw-misc-mode-config t)) ;;;-------------------------------------------------------------------------- ;;; NFast debugs. @@ -3943,6 +4136,45 @@ that character only to be normal punctuation.") (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face))))) +;; SLIME setup. + +(trap + (if (not mdw-fast-startup) + (progn + (require 'slime-autoloads) + (slime-setup '(slime-autodoc slime-c-p-c))))) + +(let ((stuff '((cmucl ("cmucl")) + (sbcl ("sbcl") :coding-system utf-8-unix) + (clisp ("clisp") :coding-system utf-8-unix)))) + (or (boundp 'slime-lisp-implementations) + (setq slime-lisp-implementations nil)) + (while stuff + (let* ((head (car stuff)) + (found (assq (car head) slime-lisp-implementations))) + (setq stuff (cdr stuff)) + (if found + (rplacd found (cdr head)) + (setq slime-lisp-implementations + (cons head slime-lisp-implementations)))))) +(setq slime-default-lisp 'sbcl) + +;; Hooks. + +(progn + (dolist (hook '(emacs-lisp-mode-hook + scheme-mode-hook + lisp-mode-hook + inferior-lisp-mode-hook + lisp-interaction-mode-hook + ielm-mode-hook + slime-repl-mode-hook)) + (add-hook hook 'mdw-misc-mode-config t) + (add-hook hook 'mdw-fontify-lispy t)) + (add-hook 'lisp-mode-hook 'mdw-common-lisp-indent t) + (add-hook 'inferior-lisp-mode-hook + #'(lambda () (local-set-key "\C-m" 'comint-send-and-indent)) t)) + ;;;-------------------------------------------------------------------------- ;;; Other languages. @@ -3968,6 +4200,10 @@ that character only to be normal punctuation.") (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face))))) +(progn + (add-hook 'smalltalk-mode 'mdw-misc-mode-config t) + (add-hook 'smalltalk-mode 'mdw-fontify-smalltalk t)) + ;; m4. (defun mdw-setup-m4 () @@ -3980,6 +4216,15 @@ that character only to be normal punctuation.") ;; Fill prefix. (mdw-standard-fill-prefix "\\([ \t]*\\(?:#+\\|\\\\)[ \t]*\\)")) +(dolist (hook '(m4-mode-hook autoconf-mode-hook autotest-mode-hook)) + (add-hook hook #'mdw-misc-mode-config t) + (add-hook hook #'mdw-setup-m4 t)) + +;; Make. + +(progn + (add-hook 'makefile-mode-hook 'mdw-misc-mode-config t)) + ;;;-------------------------------------------------------------------------- ;;; Text mode. @@ -3993,6 +4238,9 @@ that character only to be normal punctuation.") (eval-after-load "flyspell" '(define-key flyspell-mode-map "\C-\M-i" nil)) +(progn + (add-hook 'text-mode-hook 'mdw-text-mode t)) + ;;;-------------------------------------------------------------------------- ;;; Outline and hide/show modes. -- 2.11.0