X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/profile/blobdiff_plain/a7474429d09af284bbceaa980f47bb400fe8275a..260564a3e47fc87a9194b8f2241ab8dd04f0116f:/el/dot-emacs.el diff --git a/el/dot-emacs.el b/el/dot-emacs.el index 05e5898..f156ee8 100644 --- a/el/dot-emacs.el +++ b/el/dot-emacs.el @@ -254,6 +254,7 @@ (defmacro mdw-advise-to-inhibit-raise-frame (function) (mdw-advise-to-inhibit-raise-frame select-frame-set-input-focus) (mdw-advise-to-inhibit-raise-frame appt-disp-window) +(mdw-advise-to-inhibit-raise-frame mouse-select-window) ;; Bug fix for markdown-mode, which breaks point positioning during ;; `query-replace'. @@ -511,6 +512,12 @@ (setq org-export-docbook-xslt-proc-command "xsltproc --output %o %s %i" org-export-docbook-xslt-stylesheet "/usr/share/xml/docbook/stylesheet/docbook-xsl/fo/docbook.xsl") +;; Glasses. + +(setq glasses-separator "-" + glasses-separate-parentheses-p nil + glasses-uncapitalize-p t) + ;; Some hacks to do with window placement. (defun mdw-clobber-other-windows-showing-buffer (buffer-or-name) @@ -957,6 +964,12 @@ (defadvice find-file (after mdw-autorevert activate) (defadvice write-file (after mdw-autorevert activate) (mdw-check-autorevert)) +(defun mdw-auto-revert () + "Recheck all of the autorevertable buffers, and update VC modelines." + (interactive) + (let ((auto-revert-check-vc-info t)) + (auto-revert-buffers))) + ;;;-------------------------------------------------------------------------- ;;; Dired hacking. @@ -990,6 +1003,12 @@ (defun mdw-dired-run (args &optional syncp) (concat (shell-quote-argument (dired-get-filename nil)) " " args))) +(defadvice dired-do-flagged-delete + (around mdw-delete-if-prefix-argument activate compile) + (let ((delete-by-moving-to-trash (and (null current-prefix-arg) + delete-by-moving-to-trash))) + ad-do-it)) + (eval-after-load "dired" '(define-key dired-mode-map "X" 'mdw-dired-run)) @@ -1016,8 +1035,7 @@ (eval-after-load 'w3m '(define-key w3m-mode-map [?\e ?\r] 'w3m-view-this-url-new-session)) (defvar mdw-good-url-browsers - '(browse-url-chromium - browse-url-mozilla + '(browse-url-mozilla browse-url-generic (w3m . mdw-w3m-browse-url) browse-url-w3) @@ -2183,20 +2201,33 @@ (mdw-set-default-c-style 'java-mode 'mdw-java) (defun mdw-fontify-java () + ;; Fiddle with some syntax codes. + (modify-syntax-entry ?@ ".") + (modify-syntax-entry ?@ "." font-lock-syntax-table) + ;; Other stuff. (setq mdw-fill-prefix mdw-c-comment-fill-prefix) ;; Now define things to be fontified. (make-local-variable 'font-lock-keywords) (let ((java-keywords - (mdw-regexps "abstract" "boolean" "break" "byte" "case" "catch" - "char" "class" "const" "continue" "default" "do" - "double" "else" "extends" "final" "finally" "float" - "for" "goto" "if" "implements" "import" "instanceof" - "int" "interface" "long" "native" "new" "package" - "private" "protected" "public" "return" "short" - "static" "switch" "synchronized" "throw" "throws" - "transient" "try" "void" "volatile" "while")) + (mdw-regexps "abstract" "assert" + "boolean" "break" "byte" + "case" "catch" "char" "class" "const" "continue" + "default" "do" "double" + "else" "enum" "extends" + "final" "finally" "float" "for" + "goto" + "if" "implements" "import" "instanceof" "int" + "interface" + "long" + "native" "new" + "package" "private" "protected" "public" + "return" + "short" "static" "strictfp" "switch" "synchronized" + "throw" "throws" "transient" "try" + "void" "volatile" + "while")) (java-constants (mdw-regexps "false" "null" "super" "this" "true"))) @@ -2334,10 +2365,6 @@ (defun mdw-fontify-scala () "[lLfFdD]?") '(0 mdw-number-face)) - ;; Identifiers with trailing operators. - (list (concat "_\\(" punctuation "\\)+") - '(0 mdw-trivial-face)) - ;; And everything else is punctuation. (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" '(0 mdw-punct-face))) @@ -2622,6 +2649,7 @@ (defun mdw-self-insert-and-indent (count) (defun mdw-fontify-rust () ;; Hack syntax categories. + (modify-syntax-entry ?% ".") (modify-syntax-entry ?= ".") ;; Fontify keywords and things. @@ -2629,18 +2657,18 @@ (defun mdw-fontify-rust () (let ((rust-keywords (mdw-regexps "abstract" "alignof" "as" "become" "box" "break" - "const" "continue" "create" + "const" "continue" "crate" "do" "else" "enum" "extern" - "false" "final" "fn" "for" + "final" "fn" "for" "if" "impl" "in" "let" "loop" "macro" "match" "mod" "move" "mut" "offsetof" "override" - "priv" "pub" "pure" + "priv" "proc" "pub" "pure" "ref" "return" - "self" "sizeof" "static" "struct" "super" - "true" "trait" "type" "typeof" + "sizeof" "static" "struct" "super" + "trait" "type" "typeof" "unsafe" "unsized" "use" "virtual" "where" "while" @@ -2651,7 +2679,8 @@ (defun mdw-fontify-rust () "f32" "f64" "i8" "i16" "i32" "i64" "isize" "u8" "u16" "u32" "u64" "usize" - "char" "str"))) + "char" "str" + "self" "Self"))) (setq font-lock-keywords (list @@ -2837,9 +2866,9 @@ (defun mdw-fontify-pythonic (keywords) '(0 font-lock-keyword-face)) ;; At least numbers are simpler than C. - (list (concat "\\_<0\\([xX][0-9a-fA-F_]+\\|[0-7_]+\\)\\|" - "\\_<[0-9][0-9_]*\\(\\.[0-9_]*\\|\\)" - "\\([eE]\\([-+]\\|\\)[0-9_]+\\|[lL]\\|\\)") + (list (concat "\\_<0\\([xX][0-9a-fA-F]+\\|[oO]?[0-7]+\\|[bB][01]+\\)\\|" + "\\_<[0-9][0-9]*\\(\\.[0-9]*\\|\\)" + "\\([eE]\\([-+]\\|\\)[0-9]+\\|[lL]\\|\\)") '(0 mdw-number-face)) ;; And anything else is punctuation. @@ -2979,13 +3008,17 @@ (defun mdw-fontify-asm () (modify-syntax-entry ?. "w") (modify-syntax-entry ?\n ">") (setf fill-prefix nil) + (modify-syntax-entry ?. "_") + (modify-syntax-entry ?* ". 23") + (modify-syntax-entry ?/ ". 124b") + (modify-syntax-entry ?\n "> b") (local-set-key ";" 'self-insert-command) (mdw-standard-fill-prefix "\\([ \t]*;+[ \t]*\\)")) (defun mdw-asm-set-comment () (modify-syntax-entry ?; "." ) - (modify-syntax-entry asm-comment-char "