dot/emacs: Support the Chrome edit server.
[profile] / dot / emacs
index beaf7bf..6fe3a05 100644 (file)
--- a/dot/emacs
+++ b/dot/emacs
@@ -45,7 +45,7 @@
      (add-to-list 'auto-mode-alist
                  `(,(concat "/debian/"
                               "\\("
-                                "[" "[:lower:][:digit:]]"
+                                "[" "[:lower:][:digit:]]"
                                     "[[:lower:][:digit:].+-" "]+"
                                 "\\."
                               "\\)?"
 
 (and (library-exists-p "vc-git")
      (not (memq 'GIT vc-handled-backends))
+     (not (memq 'Git vc-handled-backends))
+     (not (memq 'git vc-handled-backends))
      (setq vc-handled-backends (cons 'GIT vc-handled-backends)))
-(and (library-exists-p "quilt")
-     (not mdw-fast-startup)
-     (load "quilt"))
 
 (trap (or mdw-fast-startup (require 'p4)))
 
 ;; Emacs server behaviour.
 
 (and (or window-system (>= emacs-major-version 23))
-     (trap (setq server-temp-file-regexp (concat "^" tmpdir "\\|/draft$"))
-          (server-start)
-          (gnuserv-start)))
+     (progn (setq server-temp-file-regexp (concat "^" tmpdir "\\|/draft$")
+                 edit-server-new-frame nil
+                 gnuserv-frame t)
+           (trap (server-start))
+           (trap (progn
+                   (require 'edit-server)
+                   (edit-server-start)))))
 
 ;; Control backup behaviour.
 
 
 (trap (resize-minibuffer-mode 1))      ;Make minibuffer grow dynamically
 (auto-compression-mode 1)              ;Enable automatic compression
+(setq enable-local-variables :safe
+      enable-local-eval nil)
 (setq dabbrev-case-replace nil)                ;Retain case when completing
+(setq linum-format "%7d ")
 (setq next-line-add-newlines nil)      ;Don't add weird newlines
 (setq split-height-threshold 45)       ;Reuse windows where sensible
 (setq display-buffer-reuse-frames nil  ;Don't confuse me by showing buffers
 (setq-default fill-column 77)          ;I use rather narrow windows
 (setq-default comment-column 40)       ;Set a standard comment column
 (setq-default truncate-partial-width-windows nil)
-(setq woman-use-own-frame nil)         ;Keep man pages somewhere sensible
+(setq default-indicate-empty-lines t)
+(setq whitespace-style
+      '(trailing space-before-tab space-after-tab empty indentation))
+(setq woman-use-own-frame nil          ;Keep man pages somewhere sensible
+      woman-fill-column 72)            ;Right margin position.
 (setq diff-switches "-u"               ;I like reading unified diffs
       cvs-diff-flags (list diff-switches))
 (setq echo-keystrokes 10)              ;Long delay before keystrokes echo
 (setq x-gtk-file-dialog-help-text nil)
 (setq Info-fontify-maximum-menu-size 100000)
 (setq set-mark-command-repeat-pop t)
+(setq password-cache-expiry nil)
+(setq-default proced-filter 'all
+             proced-sort 'user)
 (setq ispell-program-name "aspell"
       ispell-local-dictionary "en_GB-ize-w_accents"
       flyspell-default-dictionary "en_GB-ize-w_accents"
         (scroll-bar-width . 15)
         (cursor-color . "red"))
        (if mdw-black-background
-          '((background-color . "black")
-            (foreground-color . "white")
-            (background-mode . dark))
+          '((background-mode . dark))
         '((background-mode . light)))
        (and (eq window-system 'pm)
            '((font . "-os2-System VIO-medium-r-normal--*-40-*-*-m-*-cp850")
              (menu-font . "8.Helv")
              (background-color . "lightgrey")))
-       '((transparency . t))
        default-frame-alist))
 
 ;; Other frame fiddling.
          #'(lambda () (mdw-clobber-evil-keymap org-mode-map)))
 (add-hook 'org-agenda-mode-hook
          #'(lambda () (mdw-clobber-evil-keymap org-agenda-mode-map)))
+(or mdw-fast-startup
+    (progn
+      (org-remember-insinuate)
+      (global-set-key [?\C-c ?r] 'org-remember)))
 
 ;; Recognising types of files.
 
                ("\\.m$" . objc-mode)
                ("\\.mxd$" . c-mode)
                ("\\.cs$" . csharp-mode)
+               ("\\.go$" . go-mode)
                ("\\.org$" . org-mode)
                ;; ("/[ch]/" . c-mode)
                (,(concat "/\\("
        '(c-mode-hook c++-mode-hook objc-mode-hook java-mode-hook
          csharp-mode-hook perl-mode-hook cperl-mode-hook
          python-mode-hook pyrec-mode-hook icon-mode-hook awk-mode-hook
-         tcl-mode-hook
+         tcl-mode-hook go-mode-hook
          asm-mode-hook TeX-mode-hook LaTeX-mode-hook
          TeXinfo-mode-hook tex-mode-hook latex-mode-hook
          texinfo-mode-hook emacs-lisp-mode-hook scheme-mode-hook
 ;;; Rootly editingness.
 
 (eval-after-load "tramp"
-  '(progn
+  '(let ((fix-args (if (mdw-version-< tramp-version "2.1")
+                      #'append #'identity)))
      (setq tramp-methods
           (mdw-uniquify-alist
            `(("become"
               (tramp-copy-program nil)
               (tramp-copy-args nil)
               (tramp-copy-keep-date-arg nil)
-              (tramp-login-args ("TERM=dumb" "%u")))
+              (tramp-login-args ,(funcall fix-args `("TERM=dumb" "%u"))))
              ("really"
               (tramp-connection-function tramp-open-connection-su)
               (tramp-login-program "really")
-              (tramp-login-args ("-u" "%u" "--"
-                                 "env" "TERM=dumb" "/bin/sh"))
+              (tramp-login-args ,(funcall fix-args
+                                          `("-u" "%u")
+                                          `("--")
+                                          `("env" "TERM=dumb" "/bin/sh")))
               (tramp-copy-program nil)
               (tramp-copy-args nil)
               (tramp-copy-keep-date-arg nil)
              ,@tramp-methods)))
      (setq tramp-default-method "ssh")
      (setq tramp-default-method-alist
-          `(("\\`localhost\\'" ""
+          `(("\\`\\(localhost\\|\\)\\'" ""
              ,(cond ((executable-find "become") "become")
                     ((executable-find "really") "really")
                     (t "su")))))))
   (add-hook 'c++-mode-hook 'mdw-fontify-c-and-c++ t)
   (add-hook 'linux-c-mode-hook #'(lambda () (setq c-basic-offset 8)))
   (add-hook 'asm-mode-hook 'mdw-fontify-asm t)
+  (add-hook 'go-mode-hook 'mdw-fontify-go t)
 
   (add-hook 'icon-mode-hook 'mdw-fontify-icon t)
 
 
 ;; Make the shell mode aware of my prompt.
 
-(setq shell-prompt-pattern "^[^]#$%>»}\n]*[]#$%>»}] *")
+(setq shell-prompt-pattern "^[^]#$%>»}\n]*\\([]#$%»}]\\|>>?\\) *")
 (setq comint-password-prompt-regexp
       (concat "\\(\\([Ee]nter \\|[Oo]ld \\|[Nn]ew \\|[a-zA-Z0-9_]*'s \\|^\\)"
              "[Pp]assword\\|pass phrase\\):"))