el/dot-emacs.el: Configure dired faces.
[profile] / el / dot-emacs.el
index 234fe55..3372556 100644 (file)
@@ -137,6 +137,33 @@ library."
          ((eq side 'left) 1)
          (t 2))))
 
+(defun mdw-horizontal-window-overhead ()
+  "Computes the horizontal window overhead.
+This is the number of columns used by fringes, scroll bars and other such
+cruft."
+  (if (not window-system)
+      1
+    (let ((tot 0))
+      (dolist (what '(scroll-bar fringe))
+       (dolist (side '(left right))
+         (incf tot (funcall (intern (concat (symbol-name what) "-columns"))
+                            side))))
+      tot)))
+
+(defun mdw-split-window-horizontally (&optional width)
+  "Split a window horizontally.
+Without a numeric argument, split the window approximately in
+half.  With a numeric argument WIDTH, allocate WIDTH columns to
+the left-hand window (if positive) or -WIDTH columns to the
+right-hand window (if negative).  Space for scroll bars and
+fringes is not taken out of the allowance for WIDTH, unlike
+\\[split-window-horizontally]."
+  (interactive "P")
+  (split-window-horizontally
+   (cond ((null width) nil)
+        ((>= width 0) (+ width (mdw-horizontal-window-overhead)))
+        ((< width 0) width))))
+
 (defun mdw-divvy-window (&optional width)
   "Split a wide window into appropriate widths."
   (interactive "P")
@@ -146,16 +173,7 @@ library."
                     77)
                    (t 78)))
   (let* ((win (selected-window))
-        (sb-width (if (not window-system)
-                      1
-                    (let ((tot 0))
-                      (dolist (what '(scroll-bar fringe))
-                        (dolist (side '(left right))
-                          (incf tot
-                                (funcall (intern (concat (symbol-name what)
-                                                         "-columns"))
-                                         side))))
-                      tot)))
+        (sb-width (mdw-horizontal-window-overhead))
         (c (/ (+ (window-width) sb-width)
               (+ width sb-width))))
     (while (> c 1)
@@ -516,7 +534,8 @@ If NEW-SESSION-P, start a new session."
        (select-window window)))))
 
 (defvar mdw-good-url-browsers
-  '((w3m . mdw-w3m-browse-url)
+  '(browse-url-generic
+    (w3m . mdw-w3m-browse-url)
     browse-url-w3
     browse-url-mozilla)
   "List of good browsers for mdw-good-url-browsers.
@@ -705,7 +724,8 @@ case."
   (when (and (boundp 'whitespace-style)
             (fboundp 'whitespace-mode))
     (let ((whitespace-style (remove 'trailing whitespace-style)))
-      (whitespace-mode arg))))
+      (whitespace-mode arg))
+    (setq show-trailing-whitespace whitespace-mode)))
 
 (defun mdw-misc-mode-config ()
   (and mdw-auto-indent
@@ -726,8 +746,9 @@ case."
   (mdw-whitespace-mode 1)
   (and (fboundp 'gtags-mode)
        (gtags-mode))
-  (outline-minor-mode t)
-  (hs-minor-mode t)
+  (if (fboundp 'hs-minor-mode)
+      (hs-minor-mode t)
+    (outline-minor-mode t))
   (reveal-mode t)
   (trap (turn-on-font-lock)))
 
@@ -845,6 +866,13 @@ doesn't match any of the regular expressions in
 (mdw-define-face comint-highlight-input
   (t nil))
 
+(mdw-define-face dired-directory
+  (t :foreground "cyan" :weight bold))
+(mdw-define-face dired-symlink
+  (t :foreground "cyan"))
+(mdw-define-face dired-perm-write
+  (t nil))
+
 (mdw-define-face trailing-whitespace
   (((class color)) :background "red")
   (t :inverse-video t))
@@ -902,6 +930,8 @@ doesn't match any of the regular expressions in
   (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
 (mdw-define-face message-header-name
   (((type tty)) :foreground "green") (t :foreground "SeaGreen1"))
+(mdw-define-face which-func
+  (t nil))
 
 (mdw-define-face diff-index
   (t :weight bold))
@@ -2179,7 +2209,6 @@ strip numbers instead."
   (modify-syntax-entry ?\n ">" messages-mode-syntax-table)
   (setq comment-start "# ")
   (setq comment-end "")
-  (turn-on-font-lock-if-enabled)
   (run-hooks 'messages-mode-hook))
 
 (defun cpp-messages-mode ()
@@ -2206,7 +2235,6 @@ strip numbers instead."
                                      "\\)\\>\\|[0-9]+\\|$\\)\\)")
                              '(1 font-lock-keyword-face)))
                  messages-mode-keywords)))
-  (turn-on-font-lock-if-enabled)
   (run-hooks 'cpp-messages-mode-hook))
 
 (add-hook 'messages-mode-hook 'mdw-misc-mode-config t)
@@ -2257,7 +2285,6 @@ strip numbers instead."
   (modify-syntax-entry ?\n ">" mallow-driver-mode-syntax-table)
   (setq comment-start "%# ")
   (setq comment-end "")
-  (turn-on-font-lock-if-enabled)
   (run-hooks 'mallow-driver-mode-hook))
 
 (add-hook 'mallow-driver-hook 'mdw-misc-mode-config t)
@@ -2300,7 +2327,6 @@ strip numbers instead."
         '("\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" (0 mdw-punct-face))))
   (setq font-lock-defaults
        '(nfast-debug-mode-keywords nil nil nil nil))
-  (turn-on-font-lock-if-enabled)
   (run-hooks 'nfast-debug-mode-hook))
 
 ;;;--------------------------------------------------------------------------