Life is more complicated, because `whitespace' fiddles with font lock.
So we have to arrange to turn on `whitespace' /after/ doing the font
lock configuration for the individual modes. Oh, well.
(auto-fill-mode 1)
(setq fill-column 77)
(setq show-trailing-whitespace t)
(auto-fill-mode 1)
(setq fill-column 77)
(setq show-trailing-whitespace t)
- (let ((whitespace-style (remove 'trailing whitespace-style)))
- (whitespace-mode t))
(and (fboundp 'gtags-mode)
(gtags-mode))
(outline-minor-mode t)
(and (fboundp 'gtags-mode)
(gtags-mode))
(outline-minor-mode t)
(reveal-mode t)
(trap (turn-on-font-lock)))
(reveal-mode t)
(trap (turn-on-font-lock)))
+(defun mdw-post-config-mode-hack ()
+ (let ((whitespace-style (remove 'trailing whitespace-style)))
+ (trap (whitespace-mode t))))
+
(eval-after-load 'gtags
'(progn
(dolist (key '([mouse-2] [mouse-3]))
(eval-after-load 'gtags
'(progn
(dolist (key '([mouse-2] [mouse-3]))
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face))))
+
+ (mdw-post-config-mode-hack)))
;;;--------------------------------------------------------------------------
;;; AP calc mode.
;;;--------------------------------------------------------------------------
;;; AP calc mode.
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; Java programming configuration.
;;;--------------------------------------------------------------------------
;;; Java programming configuration.
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; C# programming configuration.
;;;--------------------------------------------------------------------------
;;; C# programming configuration.
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
(define-derived-mode csharp-mode java-mode "C#"
"Major mode for editing C# code.")
(define-derived-mode csharp-mode java-mode "C#"
"Major mode for editing C# code.")
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; Awk programming configuration.
;;;--------------------------------------------------------------------------
;;; Awk programming configuration.
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; Perl programming style.
;;;--------------------------------------------------------------------------
;;; Perl programming style.
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
(defun perl-number-tests (&optional arg)
"Assign consecutive numbers to lines containing `#t'. With ARG,
(defun perl-number-tests (&optional arg)
"Assign consecutive numbers to lines containing `#t'. With ARG,
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face)))))
+ '(0 mdw-punct-face))))
+
+ (mdw-post-config-mode-hack))
;; Define Python fontification styles.
;; Define Python fontification styles.
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; ARM assembler programming configuration.
;;;--------------------------------------------------------------------------
;;; ARM assembler programming configuration.
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
+ (mdw-post-config-mode-hack))
(run-hooks 'arm-assembler-mode-hook))
;;;--------------------------------------------------------------------------
(run-hooks 'arm-assembler-mode-hook))
;;;--------------------------------------------------------------------------
"\\([eE]\\([-+]\\|\\)[0-9_]+\\|\\)")
'(0 mdw-number-face))
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
"\\([eE]\\([-+]\\|\\)[0-9_]+\\|\\)")
'(0 mdw-number-face))
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face)))))
+ '(0 mdw-punct-face))))
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; REXX configuration.
;;;--------------------------------------------------------------------------
;;; REXX configuration.
;; And everything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And everything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; Standard ML programming style.
;;;--------------------------------------------------------------------------
;;; Standard ML programming style.
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
;; And anything else is punctuation.
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; Haskell configuration.
;;;--------------------------------------------------------------------------
;;; Haskell configuration.
"\\([eE]\\([-+]\\|\\)[0-9]+\\|\\)")
'(0 mdw-number-face))
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
"\\([eE]\\([-+]\\|\\)[0-9]+\\|\\)")
'(0 mdw-number-face))
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; Erlang configuration.
;;;--------------------------------------------------------------------------
;;; Erlang configuration.
(list "\\<[0-9]+\\(\\|#[0-9a-zA-Z]+\\|[eE][+-]?[0-9]+\\)\\>"
'(0 mdw-number-face))
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
(list "\\<[0-9]+\\(\\|#[0-9a-zA-Z]+\\|[eE][+-]?[0-9]+\\)\\>"
'(0 mdw-number-face))
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face))))))
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; Texinfo configuration.
;;;--------------------------------------------------------------------------
;;; Texinfo configuration.
;; Fontify TeX special characters as punctuation.
(list "[{}]+"
;; Fontify TeX special characters as punctuation.
(list "[{}]+"
- '(0 mdw-punct-face)))))
+ '(0 mdw-punct-face))))
+
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; TeX and LaTeX configuration.
;;;--------------------------------------------------------------------------
;;; TeX and LaTeX configuration.
;; Fontify TeX special characters as punctuation.
(list "[$^_{}#&]"
;; Fontify TeX special characters as punctuation.
(list "[$^_{}#&]"
- '(0 mdw-punct-face)))))
+ '(0 mdw-punct-face))))
+
+ (mdw-post-config-mode-hack))
;;;--------------------------------------------------------------------------
;;; SGML hacking.
;;;--------------------------------------------------------------------------
;;; SGML hacking.
"\\([eE]\\([-+]\\|\\)[0-9_]+\\|\\)")
'(0 mdw-number-face))
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
"\\([eE]\\([-+]\\|\\)[0-9_]+\\|\\)")
'(0 mdw-number-face))
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face)))))
+ '(0 mdw-punct-face))))
+ (mdw-post-config-mode-hack))
(setq font-lock-keywords
(list
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
(setq font-lock-keywords
(list
(list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
- '(0 mdw-punct-face)))))
+ '(0 mdw-punct-face))))
+
+ (mdw-post-config-mode-hack))
(defun comint-send-and-indent ()
(interactive)
(defun comint-send-and-indent ()
(interactive)