X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/cbd69b1619d89d2718bb7acd8980d124f1f8bb4c..3a87e7efbc7e021c68b08dddb52523144027ebef:/el/dot-emacs.el diff --git a/el/dot-emacs.el b/el/dot-emacs.el index 97ad03c..a3bc6f3 100644 --- a/el/dot-emacs.el +++ b/el/dot-emacs.el @@ -24,19 +24,28 @@ ;;;-------------------------------------------------------------------------- ;;; Check command-line. +(defun mdw-check-command-line-switch (switch) + (let ((probe nil) (next command-line-args) (found nil)) + (while next + (cond ((string= (car next) switch) + (setq found t) + (if probe (rplacd probe (cdr next)) + (setq command-line-args (cdr next)))) + (t + (setq probe next))) + (setq next (cdr next))) + found)) + (defvar mdw-fast-startup nil "Whether .emacs should optimize for rapid startup. This may be at the expense of cool features.") -(let ((probe nil) (next command-line-args)) - (while next - (cond ((string= (car next) "--mdw-fast-startup") - (setq mdw-fast-startup t) - (if probe - (rplacd probe (cdr next)) - (setq command-line-args (cdr next)))) - (t - (setq probe next))) - (setq next (cdr next)))) +(setq mdw-fast-startup + (mdw-check-command-line-switch "--mdw-fast-startup")) + +(defvar mdw-splashy-startup nil + "Whether to show a splash screen and related frippery.") +(setq mdw-splashy-startup + (mdw-check-command-line-switch "--mdw-splashy-startup")) ;;;-------------------------------------------------------------------------- ;;; Some general utilities. @@ -578,7 +587,7 @@ Pretend they don't exist. They might be on other display devices." (defadvice compile (around hack-environment compile activate) "Hack the environment inherited by inferiors in the compilation." - (let ((process-environment process-environment)) + (let ((process-environment (copy-tree process-environment))) (setenv "LD_PRELOAD" nil) ad-do-it)) @@ -2080,7 +2089,7 @@ name, as a symbol." "__typeof__" ;GCC "__volatile__" ;GCC )) - (c-constants + (c-builtins (mdw-regexps "false" ;C++, C99 macro "this" ;C++ "true" ;C++, C99 macro @@ -2116,7 +2125,7 @@ name, as a symbol." (list (concat "\\<\\(" c-keywords "\\)\\>") '(0 font-lock-keyword-face)) - (list (concat "\\<\\(" c-constants "\\)\\>") + (list (concat "\\<\\(" c-builtins "\\)\\>") '(0 font-lock-variable-name-face)) ;; Handle numbers too. @@ -2229,7 +2238,7 @@ name, as a symbol." "void" "volatile" "while")) - (java-constants + (java-builtins (mdw-regexps "false" "null" "super" "this" "true"))) (setq font-lock-keywords @@ -2239,8 +2248,8 @@ name, as a symbol." (list (concat "\\<\\(" java-keywords "\\)\\>") '(0 font-lock-keyword-face)) - ;; Handle the magic constants defined above. - (list (concat "\\<\\(" java-constants "\\)\\>") + ;; Handle the magic builtins defined above. + (list (concat "\\<\\(" java-builtins "\\)\\>") '(0 font-lock-variable-name-face)) ;; Handle numbers too. @@ -2282,11 +2291,8 @@ name, as a symbol." "private" "protected" "public" "return" "short" "static" "super" "switch" "synchronized" "throw" "throws" "transient" "try" "typeof" "var" "void" - "volatile" "while" "with" "yield" - - "boolean" "byte" "char" "double" "float" "int" "long" - "short" "void")) - (javascript-constants + "volatile" "while" "with" "yield")) + (javascript-builtins (mdw-regexps "false" "null" "undefined" "Infinity" "NaN" "true" "arguments" "this"))) @@ -2297,8 +2303,8 @@ name, as a symbol." (list (concat "\\_<\\(" javascript-keywords "\\)\\_>") '(0 font-lock-keyword-face)) - ;; Handle the predefined constants defined above. - (list (concat "\\_<\\(" javascript-constants "\\)\\_>") + ;; Handle the predefined builtins defined above. + (list (concat "\\_<\\(" javascript-builtins "\\)\\_>") '(0 font-lock-variable-name-face)) ;; Handle numbers too. @@ -2424,7 +2430,7 @@ name, as a symbol." "unsafe" "ushort" "using" "virtual" "void" "volatile" "while" "yield")) - (csharp-constants + (csharp-builtins (mdw-regexps "base" "false" "null" "this" "true"))) (setq font-lock-keywords @@ -2434,8 +2440,8 @@ name, as a symbol." (list (concat "\\<\\(" csharp-keywords "\\)\\>") '(0 font-lock-keyword-face)) - ;; Handle the magic constants defined above. - (list (concat "\\<\\(" csharp-constants "\\)\\>") + ;; Handle the magic builtins defined above. + (list (concat "\\<\\(" csharp-builtins "\\)\\>") '(0 font-lock-variable-name-face)) ;; Handle numbers too. @@ -3512,6 +3518,8 @@ strip numbers instead." (setq LaTeX-syntactic-comments nil LaTeX-fill-break-at-separators '(\\\[)) +(add-hook 'bibtex-mode-hook (lambda () (setq fill-column 76))) + ;;;-------------------------------------------------------------------------- ;;; HTML, CSS, and other web foolishness. @@ -3908,6 +3916,16 @@ that character only to be normal punctuation.") lisp-loop-keyword-indentation 6 lisp-loop-forms-indentation 6) +(defmacro mdw-advise-hyperspec-lookup (func args) + `(defadvice ,func (around mdw-browse-w3m ,args activate compile) + (if (fboundp 'w3m) + (let ((browse-url-browser-function #'mdw-w3m-browse-url)) + ad-do-it) + ad-do-it))) +(mdw-advise-hyperspec-lookup common-lisp-hyperspec (symbol)) +(mdw-advise-hyperspec-lookup common-lisp-hyperspec-format (char)) +(mdw-advise-hyperspec-lookup common-lisp-hyperspec-lookup-reader-macro (char)) + (defun mdw-fontify-lispy () ;; Set fill prefix. @@ -4036,13 +4054,13 @@ This allows you to pass a list of arguments through `ansi-term'." (defadvice term-exec-1 (around hack-environment compile activate) "Hack the environment inherited by inferiors in the terminal." - (let ((process-environment process-environment)) + (let ((process-environment (copy-tree process-environment))) (setenv "LD_PRELOAD" nil) ad-do-it)) (defadvice shell (around hack-environment compile activate) "Hack the environment inherited by inferiors in the shell." - (let ((process-environment process-environment)) + (let ((process-environment (copy-tree process-environment))) (setenv "LD_PRELOAD" nil) ad-do-it))