[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/vc-hgcmd 0c8c554 60/87: region history
From: |
Stefan Monnier |
Subject: |
[elpa] externals/vc-hgcmd 0c8c554 60/87: region history |
Date: |
Sat, 5 Jun 2021 16:11:47 -0400 (EDT) |
branch: externals/vc-hgcmd
commit 0c8c55495c098e4ad727fd2e8fffc5bcade2a878
Author: muffinmad <andreyk.mad@gmail.com>
Commit: muffinmad <andreyk.mad@gmail.com>
region history
---
vc-hgcmd.el | 45 +++++++++++++++++++++++++++++++++++++++++----
1 file changed, 41 insertions(+), 4 deletions(-)
diff --git a/vc-hgcmd.el b/vc-hgcmd.el
index d043c93..e754424 100644
--- a/vc-hgcmd.el
+++ b/vc-hgcmd.el
@@ -5,7 +5,7 @@
;; Author: Andrii Kolomoiets <andreyk.mad@gmail.com>
;; Keywords: vc
;; URL: https://github.com/muffinmad/emacs-vc-hgcmd
-;; Package-Version: 1.6.4
+;; Package-Version: 1.6.5
;; Package-Requires: ((emacs "25.1"))
;; This file is NOT part of GNU Emacs.
@@ -72,7 +72,7 @@
;; - annotate-time () OK
;; - annotate-current-time () NO
;; - annotate-extract-revision-at-line () OK
-;; - region-history (FILE BUFFER LFROM LTO) NO --line-range option is
experimental
+;; - region-history (FILE BUFFER LFROM LTO) OK experimental option
"line-range" added in mercurial 4.4
;; - region-history-mode () NO
;; - mergebase (rev1 &optional rev2) TODO
;; TAG SYSTEM
@@ -1156,13 +1156,50 @@ Insert output to process buffer and check if amount of
data is enought to parse
"Insert into BUFFER the history of the content of FILE between lines LFROM
and LTO."
(when (vc-hgcmd-command-to-buffer
buffer
- "log" "-fL" (format "%s,%d:%d" (vc-hgcmd--file-relative-name file)
lfrom lto))
+ "log" "-fpL" (format "%s,%d:%d" (vc-hgcmd--file-relative-name file)
lfrom lto))
(with-current-buffer buffer
(goto-char (point-min)))
(select-window (display-buffer buffer))))
+(require 'diff-mode)
+
+(defvar vc-hgcmd--log-view-region-history-font-lock-keywords nil)
+(defvar font-lock-keywords)
+(defvar vc-hgcmd-region-history-font-lock-keywords
'((vc-hgcmd-region-history-font-lock)))
+
+(defun vc-hgcmd-region-history-font-lock (limit)
+ "Fontify region bounds by LIMIT in region history buffer."
+ (let ((in-diff (save-excursion
+ (beginning-of-line)
+ (or (looking-at "^\\(?:diff\\|changeset\\)\\>")
+ (re-search-backward "^\\(?:diff\\|changeset\\)\\>" nil
t))
+ (eq ?d (char-after (match-beginning 0))))))
+ (while
+ (let ((end (save-excursion
+ (if (re-search-forward "\n\\(diff\\|changeset\\)\\>"
limit t)
+ (match-beginning 1)
+ limit))))
+ (let ((font-lock-keywords (if in-diff
+ diff-font-lock-keywords
+
vc-hgcmd--log-view-region-history-font-lock-keywords)))
+ (font-lock-fontify-keywords-region (point) end))
+ (goto-char end)
+ (prog1 (< (point) limit)
+ (setq in-diff (eq ?d (char-after))))))
+ nil))
+
+(defvar vc-hgcmd-region-history-mode-map
+ (let ((map (make-composed-keymap
+ (list diff-mode-map vc-hgcmd-log-view-mode-map))))
+ map))
+
(define-derived-mode vc-hgcmd-region-history-mode vc-hgcmd-log-view-mode
"Region-History/Hgcmd"
- "Major mode to browse Hg's \"log -f -p -L\" output.")
+ "Major mode to browse Hg's \"log -f -p -L\" output."
+ (setq-local vc-hgcmd--log-view-region-history-font-lock-keywords
+ log-view-font-lock-keywords)
+ (setq-local font-lock-defaults
+ (cons 'vc-hgcmd-region-history-font-lock-keywords
+ (cdr font-lock-defaults))))
(defun vc-hgcmd-create-tag (_dir name branchp)
"Create tag NAME. If BRANCHP create named branch."
- [elpa] externals/vc-hgcmd e0ecc56 46/87: ui.interactive and encoding, (continued)
- [elpa] externals/vc-hgcmd e0ecc56 46/87: ui.interactive and encoding, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd a0c25ca 53/87: Use relative filename on rename, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd 2137d67 58/87: Find proper filename across renames on find revision, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd 5edf2b9 65/87: Enable shelve extension and shelve list by default (fixes #2), Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd 6d8f45c 59/87: Use "diff -c" on diff for single revision, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd e13ae5e 70/87: Fixed package-lint reported issues, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd b67e78d 72/87: Implement update-on-retrieve-tag, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd 92e0121 77/87: Implement 'C-1 C-x v L', Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd 0fbd67b 82/87: Version 1.10, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd d96f41b 84/87: Move `require` to top, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd 0c8c554 60/87: region history,
Stefan Monnier <=
- [elpa] externals/vc-hgcmd dc7d629 66/87: removed useless vconcat and bindat-unpack call, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd c16d22e 74/87: Use single `looking-at` to on summary parsing, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd 2b1b87b 76/87: Trim left whitespace from entry value in vc-dir, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd c57cd1f 81/87: Expand shortlog entry, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd f4441d4 83/87: Update copyright year, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd 7433c6c 85/87: Add switches support for various operations, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd d23de9d 87/87: Use vc-read-revision, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd 4528bac 61/87: use vc-state in find-file-hook; removed done todos, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd 680c1e6 62/87: v1.6.6, Stefan Monnier, 2021/06/05
- [elpa] externals/vc-hgcmd e0f6e41 63/87: Fixed retrieval of working revision on merge, Stefan Monnier, 2021/06/05