diff options
author | Dan Nicolaescu <dann@ics.uci.edu> | 2007-06-22 02:11:59 +0000 |
---|---|---|
committer | Dan Nicolaescu <dann@ics.uci.edu> | 2007-06-22 02:11:59 +0000 |
commit | d797e6435badf75e2cf01cb4cb9f4c4566c075c6 (patch) | |
tree | ad810a2e5daee835a1074e84b71a9ddb82c0af92 /lisp/vc-hg.el | |
parent | 887fc3b8ccaee9842aa3a47575bf1cdc0e92ab37 (diff) | |
download | emacs-d797e6435badf75e2cf01cb4cb9f4c4566c075c6.tar.gz |
(vc-hg-log-view-mode): New mode.
Diffstat (limited to 'lisp/vc-hg.el')
-rw-r--r-- | lisp/vc-hg.el | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lisp/vc-hg.el b/lisp/vc-hg.el index c7bcda7ebc5..1c1c47fcf03 100644 --- a/lisp/vc-hg.el +++ b/lisp/vc-hg.el @@ -111,6 +111,33 @@ (if (and (vc-stay-local-p file) (fboundp 'start-process)) 'async 0) file "log")) +(defvar log-view-message-re) +(defvar log-view-file-re) +(defvar log-view-font-lock-keywords) +(defvar log-view-current-tag-function) + +(define-derived-mode vc-hg-log-view-mode log-view-mode "HG-Log-View" + (require 'add-log) ;; we need the faces add-log + ;; Don't have file markers, so use impossible regexp. + (set (make-local-variable 'log-view-file-re) "\\'\\`") + (set (make-local-variable 'log-view-message-re) + "^changeset:[ \t]*\\([0-9]+\\):\\(.+\\)") + (set (make-local-variable 'log-view-font-lock-keywords) + (append + ;; XXX maybe use a different face for the version number + `((,log-view-message-re (1 'change-log-acknowledgement))) + ;; Handle the case: + ;; user: foo@bar + '(("^user:[ \t]+\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)" + (1 'change-log-email)) + ;; Handle the case: + ;; user: FirstName LastName <foo@bar> + ("^user:[ \t]+\\([^<(]+?\\)[ \t]*[(<]\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)[>)]" + (1 'change-log-name) + (2 'change-log-email)) + ("^date: \\(.+\\)" (1 'change-log-date)) + ("^summary:[ \t]+\\(.+\\)" (1 'log-view-message)))))) + (defun vc-hg-diff (file &optional oldvers newvers buffer) "Get a difference report using hg between two versions of FILE." (let ((working (vc-workfile-version file))) |