Merge commit 'origin'
[profile] / el / dot-emacs.el
index 1112f35..404233b 100644 (file)
@@ -233,7 +233,7 @@ Evil key bindings are defined in `mdw-evil-keymap-keys'."
        (dolist (key replacements)
          (define-key keymap key binding))))))
 
-(eval-after-load "org"
+(eval-after-load "org-latex"
   '(progn
      (push '("strayman"
             "\\documentclass{strayman}
@@ -690,8 +690,14 @@ case."
   (trap (turn-on-font-lock)))
 
 (eval-after-load 'gtags
-  '(dolist (key '([mouse-2] [mouse-3]))
-     (define-key gtags-mode-map key nil)))
+  '(progn
+     (dolist (key '([mouse-2] [mouse-3]))
+       (define-key gtags-mode-map key nil))
+     (define-key gtags-mode-map [C-S-mouse-2] 'gtags-find-tag-by-event)
+     (define-key gtags-select-mode-map [C-S-mouse-2]
+       'gtags-select-tag-by-event)
+     (dolist (map (list gtags-mode-map gtags-select-mode-map))
+       (define-key map [C-S-mouse-3] 'gtags-pop-stack))))
 
 ;; Backup file handling.
 
@@ -743,7 +749,7 @@ doesn't match any of the regular expressions in
      (make-face ',name)
      (defvar ,name ',name)
      (put ',name 'face-defface-spec ',body)
-     ))
+     (face-spec-set ',name ',body nil)))
 
 (mdw-define-face default
   (((type w32)) :family "courier new" :height 85)
@@ -753,6 +759,11 @@ doesn't match any of the regular expressions in
   (((type w32)) :family "courier new" :height 85)
   (((type x)) :family "6x13" :height 130)
   (t :foreground "white" :background "black"))
+(if (>= emacs-major-version 23)
+    (mdw-define-face variable-pitch
+      (((type x)) :family "sans" :height 100))
+  (mdw-define-face variable-pitch
+    (((type x)) :family "helvetica" :height 120)))
 (mdw-define-face region
   (((type tty)) :background "blue") (t :background "grey30"))
 (mdw-define-face minibuffer-prompt
@@ -767,9 +778,9 @@ doesn't match any of the regular expressions in
   (t :foreground "black" :background "lightgrey"))
 (mdw-define-face fringe
   (t :foreground "yellow"))
-(mdw-define-face show-paren-match-face
+(mdw-define-face show-paren-match
   (t :background "darkgreen"))
-(mdw-define-face show-paren-mismatch-face
+(mdw-define-face show-paren-mismatch
   (t :background "red"))
 (mdw-define-face highlight
   (t :background "DarkSeaGreen4"))
@@ -791,13 +802,15 @@ doesn't match any of the regular expressions in
 (mdw-define-face mdw-number-face
   (t :foreground "yellow"))
 (mdw-define-face font-lock-function-name-face
-  (t :weight bold))
+  (t :slant italic))
 (mdw-define-face font-lock-keyword-face
   (t :weight bold))
 (mdw-define-face font-lock-constant-face
   (t :slant italic))
 (mdw-define-face font-lock-builtin-face
   (t :weight bold))
+(mdw-define-face font-lock-type-face
+  (t :weight bold :slant italic))
 (mdw-define-face font-lock-reference-face
   (t :weight bold))
 (mdw-define-face font-lock-variable-name-face
@@ -853,6 +866,9 @@ doesn't match any of the regular expressions in
   (t :foreground "red"))
 (mdw-define-face diff-context)
 
+(mdw-define-face erc-input-face
+  (t :foreground "red"))
+
 (mdw-define-face woman-bold
   (t :weight bold))
 (mdw-define-face woman-italic
@@ -1289,6 +1305,39 @@ doesn't match any of the regular expressions in
   "Major mode for editing C# code.")
 
 ;;;--------------------------------------------------------------------------
+;;; Go programming configuration.
+
+(defun mdw-fontify-go ()
+
+  (make-local-variable 'font-lock-keywords)
+  (let ((go-keywords
+        (mdw-regexps "break" "case" "chan" "const" "continue"
+                     "default" "defer" "else" "fallthrough" "for"
+                     "func" "go" "goto" "if" "import"
+                     "interface" "map" "package" "range" "return"
+                     "select" "struct" "switch" "type" "var")))
+
+    (setq font-lock-keywords
+         (list
+
+          ;; Handle the keywords defined above.
+          (list (concat "\\<\\(" go-keywords "\\)\\>")
+                '(0 font-lock-keyword-face))
+
+          ;; Handle numbers too.
+          ;;
+          ;; The following isn't quite right, but it's close enough.
+          (list (concat "\\<\\("
+                        "0\\([xX][0-9a-fA-F]+\\|[0-7]+\\)\\|"
+                        "[0-9]+\\(\\.[0-9]*\\|\\)"
+                        "\\([eE]\\([-+]\\|\\)[0-9]+\\|\\)\\)")
+                '(0 mdw-number-face))
+
+          ;; And anything else is punctuation.
+          (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
+                '(0 mdw-punct-face))))))
+
+;;;--------------------------------------------------------------------------
 ;;; Awk programming configuration.
 
 ;; Make Awk indentation nice.
@@ -2236,6 +2285,9 @@ strip numbers instead."
 
 (setq hs-hide-comments-when-hiding-all nil)
 
+(defadvice hs-hide-all (after hide-first-comment activate)
+  (save-excursion (hs-hide-initial-comment-block)))
+
 ;;;--------------------------------------------------------------------------
 ;;; Shell mode.