chiark / gitweb /
el/dot-emacs.el (mdw-fontify-pythonic): Numbers can't contain `_'.
[profile] / el / dot-emacs.el
index b42431d7f998757a7aa39c01d30cbb2f294a9a7a..945333260ce7efc6e1f9bc5f519b32b7851d19b6 100644 (file)
@@ -511,6 +511,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 +963,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 +1002,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))
 
@@ -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")))
@@ -2628,15 +2659,15 @@ (defun mdw-fontify-rust ()
                      "const" "continue" "create"
                      "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"
@@ -2647,7 +2678,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
 
@@ -2833,9 +2865,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]+\\|[0-7]+\\)\\|"
+                      "\\_<[0-9][0-9]*\\(\\.[0-9]*\\|\\)"
+                      "\\([eE]\\([-+]\\|\\)[0-9]+\\|[lL]\\|\\)")
               '(0 mdw-number-face))
 
         ;; And anything else is punctuation.
@@ -2975,13 +3007,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 "<b")
+  (modify-syntax-entry asm-comment-char "< b")
   (setq comment-start (string asm-comment-char ? )))
 (add-hook 'asm-mode-local-variables-hook 'mdw-asm-set-comment)
 (put 'asm-comment-char 'safe-local-variable 'characterp)
@@ -3448,6 +3484,8 @@ (defun mdw-fontify-tex ()
         (list "[$^_{}#&]"
               '(0 mdw-punct-face)))))
 
+(setq TeX-install-font-lock 'tex-font-setup)
+
 (eval-after-load 'font-latex
   '(defun font-latex-jit-lock-force-redisplay (buf start end)
      "Compatibility for Emacsen not offering `jit-lock-force-redisplay'."
@@ -4033,6 +4071,7 @@ (eval-after-load "magit"
          (magit-wip-after-apply-mode 1)
          (magit-wip-before-change-mode 1)
          (add-to-list 'magit-no-confirm 'safe-with-wip)
+         (add-to-list 'magit-no-confirm 'trash)
          (push '(:eval (if (or magit-wip-after-save-local-mode
                                magit-wip-after-apply-mode
                                magit-wip-before-change-mode)
@@ -4051,6 +4090,13 @@ (defadvice magit-wip-commit-buffer-file
     (around mdw-just-this-buffer activate compile)
   (let ((magit-save-repository-buffers nil)) ad-do-it))
 
+(defadvice magit-discard
+    (around mdw-delete-if-prefix-argument activate compile)
+  (let ((magit-delete-by-moving-to-trash
+        (and (null current-prefix-arg)
+             magit-delete-by-moving-to-trash)))
+    ad-do-it))
+
 (setq magit-repolist-columns
       '(("Name" 16 magit-repolist-column-ident nil)
        ("Version" 18 magit-repolist-column-version nil)
@@ -4091,6 +4137,19 @@ (defun mdw-try-smerge ()
       (smerge-mode 1))))
 (add-hook 'find-file-hook 'mdw-try-smerge t)
 
+;;;--------------------------------------------------------------------------
+;;; GUD, and especially GDB.
+
+;; Inhibit window dedication.  I mean, seriously, wtf?
+(defadvice gdb-display-buffer (after mdw-undedicated (buf) compile activate)
+  "Don't make windows dedicated.  Seriously."
+  (set-window-dedicated-p ad-return-value nil))
+(defadvice gdb-set-window-buffer
+    (after mdw-undedicated (name &optional ignore-dedicated window)
+     compile activate)
+  "Don't make windows dedicated.  Seriously."
+  (set-window-dedicated-p (or window (selected-window)) nil))
+
 ;;;--------------------------------------------------------------------------
 ;;; MPC configuration.