chiark / gitweb /
el/dot-emacs.el: Better fontification for Ediff.
[profile] / el / dot-emacs.el
index cdc65f3343b67f26c266a522b0e151ff14a1c339..d83057a9880827fc61a9145e485494bd6e89e718 100644 (file)
@@ -102,6 +102,15 @@ (defun mdw-config (sym)
                    (concat "(" (buffer-string) ")")))))))
   (cdr (assq sym mdw-config)))
 
+;; Width configuration.
+
+(defvar mdw-column-width
+  (string-to-number (or (mdw-config 'emacs-width) "77"))
+  "Width of Emacs columns.")
+(defvar mdw-text-width mdw-column-width
+  "Expected width of text within columns.")
+(put 'mdw-text-width 'safe-local-variable 'integerp)
+
 ;; Local variables hacking.
 
 (defun run-local-vars-mode-hook ()
@@ -196,8 +205,8 @@ (defun mdw-divvy-window (&optional width)
   (interactive "P")
   (setq width (cond (width (prefix-numeric-value width))
                    ((and window-system (mdw-emacs-version-p 22))
-                    77)
-                   (t 78)))
+                    mdw-column-width)
+                   (t (1+ mdw-column-width))))
   (let* ((win (selected-window))
         (sb-width (mdw-horizontal-window-overhead))
         (c (/ (+ (window-width) sb-width)
@@ -230,6 +239,7 @@ (defmacro mdw-advise-to-inhibit-raise-frame (function)
        ad-do-it)))
 
 (mdw-advise-to-inhibit-raise-frame select-frame-set-input-focus)
+(mdw-advise-to-inhibit-raise-frame appt-disp-window)
 
 ;; Bug fix for markdown-mode, which breaks point positioning during
 ;; `query-replace'.
@@ -397,6 +407,19 @@ (defadvice diary-add-to-list (before mdw-trim-leading-space compile activate)
        (if (equal str old) (setq done t)))
       (ad-set-arg 1 str))))
 
+(defadvice org-bbdb-anniversaries (after mdw-fixup-list compile activate)
+  "Return a string rather than a list."
+  (with-temp-buffer
+    (let ((anyp nil))
+      (dolist (e (let ((ee ad-return-value))
+                  (if (atom ee) (list ee) ee)))
+       (when e
+         (when anyp (insert ?\n))
+         (insert e)
+         (setq anyp t)))
+      (setq ad-return-value
+           (and anyp (buffer-string))))))
+
 ;; Fighting with Org-mode's evil key maps.
 
 (defvar mdw-evil-keymap-keys
@@ -968,7 +991,7 @@ (defun mdw-misc-mode-config ()
   (setq page-delimiter "\f\\|^.*-\\{6\\}.*$")
   (setq comment-column 40)
   (auto-fill-mode 1)
-  (setq fill-column 77)
+  (setq fill-column mdw-text-width)
   (and (fboundp 'gtags-mode)
        (gtags-mode))
   (if (fboundp 'hs-minor-mode)
@@ -978,6 +1001,7 @@ (defun mdw-misc-mode-config ()
   (trap (turn-on-font-lock)))
 
 (defun mdw-post-local-vars-misc-mode-config ()
+  (setq whitespace-line-column mdw-text-width)
   (when (and mdw-do-misc-mode-hacking
             (not buffer-read-only))
     (setq show-trailing-whitespace t)
@@ -1226,7 +1250,7 @@ (mdw-define-face trailing-whitespace
   (t :inverse-video t))
 (mdw-define-face whitespace-line
   (((class color)) :background "darkred")
-  (t :inverse-video :t))
+  (t :inverse-video t))
 (mdw-define-face mdw-punct-face
   (((type tty)) :foreground "yellow") (t :foreground "burlywood2"))
 (mdw-define-face mdw-number-face
@@ -1343,6 +1367,58 @@ (mdw-define-face diff-context
 (mdw-define-face diff-refine-change
   (((class color) (type x)) :background "RoyalBlue4")
   (t :underline t))
+(mdw-define-face diff-refine-removed
+  (((class color) (type x)) :background "#500")
+  (t :underline t))
+(mdw-define-face diff-refine-added
+  (((class color) (type x)) :background "#050")
+  (t :underline t))
+
+(setq ediff-force-faces t)
+(mdw-define-face ediff-current-diff-A
+  (((class color) (type x)) :background "darkred")
+  (((class color) (type tty)) :background "red")
+  (t :inverse-video t))
+(mdw-define-face ediff-fine-diff-A
+  (((class color) (type x)) :background "red3")
+  (((class color) (type tty)) :inverse-video t)
+  (t :inverse-video nil))
+(mdw-define-face ediff-even-diff-A
+  (((class color) (type x)) :background "#300"))
+(mdw-define-face ediff-odd-diff-A
+  (((class color) (type x)) :background "#300"))
+(mdw-define-face ediff-current-diff-B
+  (((class color) (type x)) :background "darkgreen")
+  (((class color) (type tty)) :background "magenta")
+  (t :inverse-video t))
+(mdw-define-face ediff-fine-diff-B
+  (((class color) (type x)) :background "green4")
+  (((class color) (type tty)) :inverse-video t)
+  (t :inverse-video nil))
+(mdw-define-face ediff-even-diff-B
+  (((class color) (type x)) :background "#020"))
+(mdw-define-face ediff-odd-diff-B
+  (((class color) (type x)) :background "#020"))
+(mdw-define-face ediff-current-diff-C
+  (((class color) (type x)) :background "darkblue")
+  (((class color) (type tty)) :background "blue")
+  (t :inverse-video t))
+(mdw-define-face ediff-fine-diff-C
+  (((class color) (type x)) :background "blue1")
+  (((class color) (type tty)) :inverse-video t)
+  (t :inverse-video nil))
+(mdw-define-face ediff-even-diff-C
+  (((class color) (type x)) :background "#004"))
+(mdw-define-face ediff-odd-diff-C
+  (((class color) (type x)) :background "#004"))
+(mdw-define-face ediff-current-diff-Ancestor
+  (((class color) (type x)) :background "#630")
+  (((class color) (type tty)) :background "blue")
+  (t :inverse-video t))
+(mdw-define-face ediff-even-diff-Ancestor
+  (((class color) (type x)) :background "#320"))
+(mdw-define-face ediff-odd-diff-Ancestor
+  (((class color) (type x)) :background "#320"))
 
 (mdw-define-face dylan-header-background
   (((class color) (type x)) :background "NavyBlue")
@@ -1514,7 +1590,7 @@              (defun-open . (add 0 c-indent-one-line-block))
                   (inextern-lang . [0])
                   (label . 0)
                   (case-label . +)
-                  (access-label . -)
+                  (access-label . -2)
                   (inclass . +)
                   (inline-open . ++)
                   (statement-cont . +)
@@ -2560,6 +2636,7 @@ (defun mdw-fontify-asm ()
   (modify-syntax-entry ?. "w")
   (modify-syntax-entry ?\n ">")
   (setf fill-prefix nil)
+  (local-set-key ";" 'self-insert-command)
   (mdw-standard-fill-prefix "\\([ \t]*;+[ \t]*\\)"))
 
 (defun mdw-asm-set-comment ()