Update
authorJoerg Jaspert <joerg@debian.org>
Mon, 2 Jun 2014 21:23:49 +0000 (23:23 +0200)
committerJoerg Jaspert <joerg@debian.org>
Mon, 2 Jun 2014 21:23:49 +0000 (23:23 +0200)
.emacs.d/config/emacs.org
.emacs.d/elisp/local/diff-mode-.el [new file with mode: 0644]

index f62e907..118483e 100644 (file)
@@ -795,6 +795,11 @@ Insert date
 #+BEGIN_SRC emacs-lisp :tangle yes
 (bind-key "C-c d" 'insert-date)
 #+END_SRC
+
+Another key for indenting
+#+BEGIN_SRC emacs-lisp :tangle yes
+(bind-key "H-i" 'indent-region)
+#+END_SRC
 **** Overwrite mode
 Usually you can press the *Ins*ert key, to get into overwrite mode. I
 don't like that, have broken much with it and so just forbid it by
@@ -955,9 +960,8 @@ ways.
 (use-package abbrev
   :commands abbrev-mode
   :diminish abbrev-mode
-  :init
+  :idle
   (hook-into-modes #'abbrev-mode '(text-mode-hook))
-
   :config
   (progn
     (setq save-abbrevs 'silently)
@@ -997,7 +1001,9 @@ Use H-w to switch windows
   :diminish anzu-mode
   :init
   (progn
-    (global-anzu-mode 1)
+    (global-anzu-mode 1))
+  :config
+  (progn
     (setq anzu-search-threshold 1000)
     (set-face-attribute 'anzu-mode-line nil :foreground "yellow" :weight 'bold)))
 #+END_SRC
@@ -1005,7 +1011,7 @@ Use H-w to switch windows
 [2014-05-21 Wed 00:33]
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package ascii
-  :commands (ascii-on ascii-toggle)
+  :commands (ascii-on ascii-display ascii-toggle)
   :init
   (progn
     (defun ascii-toggle ()
@@ -1192,7 +1198,8 @@ are saved automatically when they are killed"
 #+END_SRC
 
 ** css
-#+BEGIN_SRC emacs-lisp :tangle yes
+web-mode takes over, see [[*web-mode][web-mode]]
+#+BEGIN_SRC emacs-lisp :tangle no
 (use-package css-mode
   :mode ("\\.css\\'" . css-mode)
   :defer t
@@ -1247,13 +1254,11 @@ movement keys.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package diff-mode
   :commands diff-mode
-  :mode ("COMMIT_EDITMSG$" . diff-mode)
+  :mode (("\\.diff" . diff-mode))
   :config
   (use-package diff-mode-))
 #+END_SRC
-For some file endings we need to tell emacs what mode we want for them.
-I only list modes here where I don't have any other special
-configuration.
+
 
 ** dired & co
 I like dired and work a lot with it, but it tends to leave lots of
@@ -1261,9 +1266,18 @@ windows around.
 dired-single to the rescue.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package dired
-  :defer t
+  :commands (dired dired-other-window dired-other-frame dired-noselect
+                   dired-mode dired-jump)
   :init
+  (progn)
+  :config
   (progn
+    (setq dired-auto-revert-buffer (quote dired-directory-changed-p))
+    (setq dired-dwim-target t)
+    (setq dired-listing-switches "-alh")
+    (setq dired-recursive-copies (quote top))
+    (setq dired-recursive-deletes (quote top))
+
     (defvar mark-files-cache (make-hash-table :test #'equal))
 
     (defun mark-similar-versions (name)
@@ -1276,14 +1290,37 @@ dired-single to the rescue.
     (defun dired-mark-similar-version ()
       (interactive)
       (setq mark-files-cache (make-hash-table :test #'equal))
-      (dired-mark-sexp '(mark-similar-versions name))))
-  :config
-  (progn
-    (setq dired-auto-revert-buffer (quote dired-directory-changed-p))
-    (setq dired-dwim-target t)
-    (setq dired-listing-switches "-alh")
-    (setq dired-recursive-copies (quote top))
-    (setq dired-recursive-deletes (quote top))
+      (dired-mark-sexp '(mark-similar-versions name)))
+
+    (use-package dired+
+      :ensure dired+
+      :init
+      (progn
+        (setq diredp-hide-details-initially-flag nil)))
+
+    (use-package dired-single
+      :ensure dired-single
+      :init
+      (progn
+        (bind-key "<return>" 'dired-single-buffer dired-mode-map)
+        (bind-key "<mouse-1>" 'dired-single-buffer-mouse dired-mode-map)
+        (bind-key "^"
+                  (function
+                   (lambda nil (interactive) (dired-single-buffer ".."))) dired-mode-map )))
+
+    (use-package wdired
+      :ensure wdired
+      :init
+      (progn
+        (setq wdired-allow-to-change-permissions t)
+        (bind-key "r" 'wdired-change-to-wdired-mode dired-mode-map)))
+
+    (use-package gnus-dired
+      :commands (gnus-dired-attach gnus-dired-mode)
+      :init
+      (progn
+        ;;(add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode)
+        (bind-key "a" 'gnus-dired-attach dired-mode-map)))
 
     (defun dired-package-initialize ()
       (unless (featurep 'runner)
@@ -1291,37 +1328,6 @@ dired-single to the rescue.
         (use-package runner
           :ensure runner)
 
-        (use-package dired+
-          :ensure dired+
-          :disable t
-          :init
-          (progn
-            (setq diredp-hide-details-initially-flag nil)))
-
-        (use-package dired-single
-          :ensure dired-single
-          :init
-          (progn
-            (bind-key "<return>" 'dired-single-buffer dired-mode-map)
-            (bind-key "<mouse-1>" 'dired-single-buffer-mouse dired-mode-map)
-            (bind-key "^"
-              (function
-               (lambda nil (interactive) (dired-single-buffer ".."))) dired-mode-map )))
-
-        (use-package wdired
-          :ensure wdired
-          :init
-          (progn
-            (setq wdired-allow-to-change-permissions t)
-            (bind-key "r" 'wdired-change-to-wdired-mode dired-mode-map)))
-
-        (use-package gnus-dired
-          :init
-          (progn
-            (require 'gnus-dired)
-            (add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode)
-            (bind-key "a" 'gnus-dired-attach dired-mode-map)))
-
         (bind-key "M-!" 'async-shell-command dired-mode-map)
         (unbind-key "M-s f" dired-mode-map)
 
@@ -1377,10 +1383,10 @@ dired-single to the rescue.
       (interactive
        (list (read-directory-name "First directory: "
                                   (expand-file-name "~")
-                                  nil nil "dl/")
+                                  nil nil "/Downloads/")
              (read-directory-name "Second directory: "
                                   (expand-file-name "~")
-                                  nil nil "Archives/")))
+                                  nil nil "/")))
       (dired first-dir)
       (dired-other-window second-dir))
     (bind-key "C-c J" 'dired-double-jump)))
@@ -1396,24 +1402,25 @@ Discover key bindings and their meaning for the current Emacs major mode.
 #+END_SRC
 ** easypg
 EasyPG is a GnuPG interface for Emacs.
+Bookmark: [[http://www.emacswiki.org/emacs/EasyPG][EmacsWiki: Easy PG]]
 #+BEGIN_SRC emacs-lisp :tangle yes
-(require 'epa-file)
-(epa-file-enable)
-#+END_SRC
-
-I took the following from [[http://www.emacswiki.org/emacs/EasyPG][EmacsWiki: Easy PG]]
-#+BEGIN_SRC emacs-lisp :tangle yes
-(defadvice epg--start (around advice-epg-disable-agent disable)
-  "Don't allow epg--start to use gpg-agent in plain text
-    terminals."
-  (if (display-graphic-p)
-      ad-do-it
-    (let ((agent (getenv "GPG_AGENT_INFO")))
-      (setenv "GPG_AGENT_INFO" nil) ; give us a usable text password prompt
-      ad-do-it
-      (setenv "GPG_AGENT_INFO" agent))))
-(ad-enable-advice 'epg--start 'around 'advice-epg-disable-agent)
-(ad-activate 'epg--start)
+(use-package epa-file
+  :config
+  (progn
+    (epa-file-enable)
+    ;; I took the following from [[http://www.emacswiki.org/emacs/EasyPG][EmacsWiki: Easy PG]]
+    (defadvice epg--start (around advice-epg-disable-agent disable)
+      "Don't allow epg--start to use gpg-agent in plain text
+    terminals . "
+      (if (display-graphic-p)
+          ad-do-it
+        (let ((agent (getenv "GPG_AGENT_INFO")))
+          (setenv "GPG_AGENT_INFO" nil) ; give us a usable text password prompt
+          ad-do-it
+          (setenv "GPG_AGENT_INFO" agent))))
+    (ad-enable-advice 'epg--start 'around 'advice-epg-disable-agent)
+    (ad-activate 'epg--start)
+    ))
 #+END_SRC
 ** ediff
 [2013-04-21 So 20:36]
@@ -1618,6 +1625,9 @@ Proper whitespace handling
 #+END_SRC
 ** filladapt
 [2013-05-02 Thu 00:04]
+Filladapt by KyleJones enhances Emacs’ fill functions by guessing a
+fill prefix, such as a comment sequence in program code, and handling
+bullet points like “1.” or “*”.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package filladapt
   :diminish filladapt-mode
@@ -1632,6 +1642,7 @@ understand for me.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package flycheck
   :ensure flycheck
+  :diminish flycheck-mode
   :bind (("M-n" . next-error)
          ("M-p" . previous-error))
   :init
@@ -1689,7 +1700,8 @@ And I want to have it everywhere.
          )
   :init
   (progn
-    (setq git-gutter+-disabled-modes '(org-mode)))
+    (setq git-gutter+-disabled-modes '(org-mode))
+    (global-git-gutter+-mode 1))
   :config
   (progn
     (use-package git-gutter-fringe+
@@ -1698,8 +1710,7 @@ And I want to have it everywhere.
       (progn
         (setq git-gutter-fr+-side 'right-fringe)
         ;(git-gutter-fr+-minimal)
-        ))
-    (global-git-gutter+-mode 1)))
+        ))))
 
 #+END_SRC
 ** gnus
@@ -1720,8 +1731,6 @@ what I want every emacs to know.
          ("M-o r" . highlight-regexp)
          ("M-o w" . highlight-phrase)))
 
-;;;_ , hilit-chg
-
 (use-package hilit-chg
   :bind ("M-o C" . highlight-changes-mode))
 
@@ -1731,9 +1740,8 @@ Crazy way of completion. It looks at the word before point and then
 tries to expand it in various ways.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package hippie-exp
-  :defer t
   :bind ("M-/" . hippie-expand)
-  :init
+  :config
   (progn
     (setq hippie-expand-try-functions-list '(try-expand-dabbrev
                                              try-expand-dabbrev-all-buffers
@@ -1746,8 +1754,8 @@ tries to expand it in various ways.
                                              try-complete-lisp-symbol))))
 #+END_SRC
 ** html-helper
-Instead of default /html-mode/ I use /html-helper-mode/.
-#+BEGIN_SRC emacs-lisp :tangle yes
+Replaced by web-mode [[*web-mode][web-mode]]
+#+BEGIN_SRC emacs-lisp :tangle no
 (autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
 (add-auto-mode 'html-helper-mode "\\.html$")
 (add-auto-mode 'html-helper-mode "\\.asp$")
@@ -1765,13 +1773,9 @@ Instead of default /html-mode/ I use /html-helper-mode/.
          ("C-x C-b" . ibuffer)
          ("<XF86WebCam>" . ibuffer)
          )
-  :commands ibuffer
+  :commands (ibuffer)
   :init
   (progn
-    (defvar my-ibufffer-separator " • ")
-    (setq ibuffer-filter-group-name-face 'variable-pitch
-          ibuffer-use-header-line t
-          ibuffer-old-time 12)
     (use-package ibuffer-vc
       :ensure t
       :commands
@@ -1791,6 +1795,10 @@ Instead of default /html-mode/ I use /html-helper-mode/.
           (ibuffer-jump-to-buffer recent-buffer-name)))))
   :config
   (progn
+    (defvar my-ibufffer-separator " • ")
+    (setq ibuffer-filter-group-name-face 'variable-pitch
+          ibuffer-use-header-line t
+          ibuffer-old-time 12)
     (unbind-key "M-o" ibuffer-mode-map)
     (bind-key "s" 'isearch-forward-regexp ibuffer-mode-map)
     (bind-key "." 'ibuffer-invert-sorting ibuffer-mode-map)
@@ -1818,9 +1826,8 @@ Instead of default /html-mode/ I use /html-helper-mode/.
            (-flatten
             (--map
              (list
-              (cons  (f-slash (f-expand (cdr it))) (concat (car it) my-ibufffer-separator))
+              (cons  (f-slash (f-expand (cdr it))) er-separator)
               (cons  (f-slash (f-canonical (cdr it))) (concat (car it) my-ibufffer-separator)))
-
              '(
                ("dak" . "/develop/dak/")
                ("org" . "~/org/")
@@ -1846,7 +1853,7 @@ Instead of default /html-mode/ I use /html-helper-mode/.
        (t
         (format "%8d" (buffer-size)))))
 
-    (require 'ibuf-ext)
+    (use-package ibuf-ext)
     (define-ibuffer-filter filename2
         "Toggle current view to buffers with filename matching QUALIFIER."
       (:description "filename2"
@@ -2185,9 +2192,6 @@ magit is a mode for interacting with git.
     (use-package magit-blame
       :commands magit-blame-mode)
 
-    (use-package magit-filenotify
-      :ensure magit-filenotify)
-
     (use-package magit-svn
       :ensure magit-svn
       :commands (magit-svn-mode
@@ -2198,12 +2202,6 @@ magit is a mode for interacting with git.
       (interactive)
       (let ((current-prefix-arg '(4)))
         (call-interactively 'magit-status)))
-    (use-package magit-find-file
-      :ensure magit-find-file
-      :defer t
-      :init
-      (progn
-        (bind-key "C-x C-f" 'magit-find-file-completing-read magit-mode-map)))
     )
   :config
   (progn
@@ -2212,6 +2210,14 @@ magit is a mode for interacting with git.
     (unbind-key "M-h" magit-mode-map)
     (unbind-key "M-s" magit-mode-map)
 
+    (use-package magit-find-file
+      :ensure magit-find-file
+      :commands (magit-find-file-completing-read)
+      :defer t
+      :init
+      (progn
+        (bind-key "C-x C-f" 'magit-find-file-completing-read magit-mode-map)))
+
     (add-hook 'magit-log-edit-mode-hook
               #'(lambda ()
                   (set-fill-column 72)
@@ -4063,6 +4069,7 @@ writing problems/...
          ("\\.erb\\'" . web-mode)
          ("\\.mustache\\'" . web-mode)
          ("\\.html\\'" . web-mode)
+         ("\\.css\\'" . web-mode)
          ("\\.djhtml\\'" . web-mode))
   :init
   (progn
diff --git a/.emacs.d/elisp/local/diff-mode-.el b/.emacs.d/elisp/local/diff-mode-.el
new file mode 100644 (file)
index 0000000..4d2600d
--- /dev/null
@@ -0,0 +1,222 @@
+;;; diff-mode-.el --- Extensions to `diff-mode.el'.
+;;
+;; Filename: diff-mode-.el
+;; Description: Extensions to `diff-mode.el'.
+;; Author: Drew Adams
+;; Maintainer: Drew Adams (concat "drew.adams" "@" "oracle" ".com")
+;; Copyright (C) 2004-2014, Drew Adams, all rights reserved.
+;; Created: Mon Nov 08 16:36:09 2004
+;; Version: 0
+;; Package-Requires: ()
+;; Last-Updated: Thu Dec 26 08:51:41 2013 (-0800)
+;;           By: dradams
+;;     Update #: 709
+;; URL: http://www.emacswiki.org/diff-mode-.el
+;; Doc URL: http://www.emacswiki.org/DiffEnhancements
+;; Keywords: data, matching, tools, unix, local, font, face
+;; Compatibility: GNU Emacs: 21.x, 22.x, 23.x, 24.x
+;;
+;; Features that might be required by this library:
+;;
+;;   None
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;;; Commentary:
+;;
+;;    Extensions to `diff-mode.el'.
+;;
+;;  "*Diff*" buffer is highlighted differently.
+;;
+;;  NOTE: The faces defined here look best on a medium-dark
+;;        background, because some are light and some are dark.
+;;        Try, for example, setting the background to "LightSteelBlue"
+;;        in your `~/.emacs' file: You can do this is via
+;;        `special-display-buffer-names':
+;;
+;;         (setq special-display-buffer-names
+;;               (cons '("*Diff*" (background-color . "LightSteelBlue"))
+;;                     special-display-buffer-names))
+;;
+;;        You can alternatively change the background value of
+;;        `special-display-frame-alist' and set
+;;        `special-display-regexps' to something matching "*info*":
+;;
+;;         (setq special-display-frame-alist
+;;               (cons '(background-color . "LightSteelBlue")
+;;                     special-display-frame-alist))
+;;         (setq special-display-regexps '("[ ]?[*][^*]+[*]"))
+;;
+;;
+;;  New faces defined here:
+;;
+;;    `diff-file1-hunk-header', `diff-file2-hunk-header'.
+;;
+;;  New user options defined here:
+;;
+;;    `diff-file1-hunk-header-face', `diff-file2-hunk-header-face'.
+;;
+;;
+;;  ***** NOTE: The following faces defined in `diff-mode.el' have
+;;              been REDEFINED HERE:
+;;
+;;    `diff-added', `diff-changed', `diff-context',
+;;    `diff-file-header', `diff-header', `diff-hunk-header',
+;;    `diff-index', `diff-indicator-added', `diff-indicator-changed',
+;;    `diff-indicator-removed', `diff-nonexistent', `diff-removed'.
+;;
+;;
+;;  ***** NOTE: The following variable defined in `diff-mode.el' has
+;;              been REDEFINED HERE:
+;;
+;;    `diff-font-lock-keywords'.
+;;
+;;
+;;  This library should be loaded *before* library `diff-mode.el'.
+;;  Put this in your initialization file, `~/.emacs':
+;;    (require 'diff-mode-)
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;;; Change Log:
+;;
+;; 2011/02/11 dadams
+;;     Better defaults for faces on dark background.
+;; 2011/01/04 dadams
+;;     Added autoload cookies for defface.
+;; 2008/01/01 dadams
+;;     Added :group for deffaces.
+;; 2006/01/04 dadams
+;;     Updated to use new Emacs 22 face names for indicator faces.
+;;       Thanks to Juri Linkov for the letting me know about the new faces.
+;;     Updated diff-font-lock-keywords to be = Emacs 22, except for file name.
+;; 2006/01/01 dadams
+;;     Renamed faces, without "-face".
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program; see the file COPYING.  If not, write to
+;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+;; Floor, Boston, MA 02110-1301, USA.
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;;; Code:
+
+;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+;;; Define some additional faces.
+;;;###autoload
+(defface diff-file1-hunk-header
+  '((((background dark))
+     (:foreground "Yellow" :background "#3E3E00003E3E")) ; ~ dark magenta
+    (t (:foreground "Blue" :background "DarkSeaGreen1")))
+  "Face used to highlight a diff hunk for the first `diff' argument."
+  :group 'diff-mode)
+(defvar diff-file1-hunk-header-face 'diff-file1-hunk-header)
+
+;;;###autoload
+(defface diff-file2-hunk-header
+    '((((background dark))
+       (:foreground "Cyan" :background "#111117175555")) ; ~ dark blue
+      (t (:foreground "Red" :background "PaleGoldenrod")))
+  "Face used to highlight a diff hunk for the second `diff' argument."
+  :group 'diff-mode)
+(defvar diff-file2-hunk-header-face 'diff-file2-hunk-header)
+
+;;; These faces are standard in Emacs 22, but they are new for Emacs 21.
+;;;###autoload
+(defface diff-indicator-changed
+  '((((background dark))
+       (:foreground "#111117175555" :background "Yellow")) ; ~ dark blue
+    (t (:foreground "PaleGoldenrod" :background "MediumBlue")))
+  "*Face used to highlight the line-start indicator of a modified line."
+  :group 'diff-mode)
+(defvar diff-indicator-changed-face 'diff-indicator-changed)
+
+;;;###autoload
+(defface diff-indicator-added
+  '((((background dark))
+       (:foreground "#111117175555" :background "#FFFF9B9BFFFF")) ; ~ dk blue, pink
+    (t (:foreground "PaleGoldenrod" :background "DarkGreen")))
+  "*Face used to highlight the line-start indicator of an inserted line."
+  :group 'diff-mode)
+(defvar diff-indicator-added-face 'diff-indicator-added)
+
+;;;###autoload
+(defface diff-indicator-removed
+  '((((background dark))
+       (:foreground "#111117175555" :background "#7474FFFF7474")) ; ~ dk blue,green
+    (t (:foreground "PaleGoldenrod" :background "DarkMagenta")))
+  "*Face used to highlight the line-start indicator of a removed line."
+  :group 'diff-mode)
+(defvar diff-indicator-removed-face 'diff-indicator-removed)
+
+;;; Change existing `diff-mode' faces too.
+(custom-set-faces
+ '(diff-added ((((background dark)) (:foreground "#FFFF9B9BFFFF")) ; ~ pink
+               (t (:foreground "DarkGreen"))) 'now)
+ '(diff-changed ((((background dark)) (:foreground "Yellow"))
+                 (t (:foreground "MediumBlue"))) 'now)
+ '(diff-context ((((background dark)) (:foreground "White"))
+                 (t (:foreground "Black"))) 'now)
+ '(diff-file-header ((((background dark)) (:foreground "Cyan" :background "Black"))
+                     (t (:foreground "Red" :background "White"))) 'now)
+ ;; '(diff-function ((t (:foreground "Orange"))) 'now)
+ '(diff-header ((((background dark)) (:foreground "Cyan"))
+                (t (:foreground "Red"))) 'now)
+ '(diff-hunk-header
+   ((((background dark))
+     (:foreground "Black" :background "#05057F7F8D8D")) ; ~ dark cyan
+    (t (:foreground "White" :background "Salmon"))) 'now)
+ '(diff-index ((((background dark)) (:foreground "Magenta"))
+               (t (:foreground "Green"))) 'now)
+ '(diff-nonexistent ((((background dark)) (:foreground "#FFFFFFFF7474")) ; ~ yellow
+                     (t (:foreground "DarkBlue"))) 'now)
+ '(diff-removed ((((background dark)) (:foreground "#7474FFFF7474"))
+                 (t (:foreground "DarkMagenta"))) 'now)
+ )
+
+;;; The only real difference here now from the standard Emacs 22 version is the
+;;; use of diff-file1* and diff-file2*.
+(defvar diff-font-lock-keywords
+  `(
+    ("^\\(@@ -[0-9,]+ \\+[0-9,]+ @@\\)\\(.*\\)$" ;unified
+     (1 diff-hunk-header-face) (2 diff-function-face))
+    ("^\\(\\*\\{15\\}\\)\\(.*\\)$"      ;context
+     (1 diff-hunk-header-face) (2 diff-function-face))
+    ("^\\*\\*\\* .+ \\*\\*\\*\\*". diff-file1-hunk-header-face) ;context
+    ("^--- .+ ----$" . diff-file2-hunk-header-face) ;context
+    ("^[0-9,]+[acd][0-9,]+$" . diff-hunk-header-face) ; normal
+    ("^---$" . diff-hunk-header-face)   ;normal
+    ("^\\(---\\|\\+\\+\\+\\|\\*\\*\\*\\) \\(\\S-+\\)\\(.*[^*-]\\)?\n"
+     (0 diff-header-face) (2 diff-file-header-face prepend))
+    ("^\\([-<]\\)\\(.*\n\\)" (1 diff-indicator-removed-face) (2 diff-removed-face))
+    ("^\\([+>]\\)\\(.*\n\\)" (1 diff-indicator-added-face) (2 diff-added-face))
+    ("^\\(!\\)\\(.*\n\\)" (1 diff-indicator-changed-face) (2 diff-changed-face))
+    ("^Index: \\(.+\\).*\n" (0 diff-header-face) (1 diff-index-face prepend))
+    ("^Only in .*\n" . diff-nonexistent-face)
+    ("^\\(#\\)\\(.*\\)"
+     (1 (if (facep 'font-lock-comment-delimiter-face)
+            'font-lock-comment-face))
+     (2 font-lock-comment-face))
+    ("^[^-=+*!<>#].*\n" (0 diff-context-face))))
+
+;;;;;;;;;;;;;;;;;;;;;;;
+
+(provide 'diff-mode-)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; diff-mode-.el ends here