[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master fb16a6c124 2/2: Improve how change-log-mode fills all-file-name l
From: |
Lars Ingebrigtsen |
Subject: |
master fb16a6c124 2/2: Improve how change-log-mode fills all-file-name lines |
Date: |
Tue, 25 Jan 2022 17:41:50 -0500 (EST) |
branch: master
commit fb16a6c124c99a0e58dc8152b9a803c8a28e2436
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Improve how change-log-mode fills all-file-name lines
* lisp/vc/add-log.el (change-log-fill-file-list): New function to
improve how we fill all-file-name ChangeLog lines (bug#19341).
(change-log-indent): Use it.
---
lisp/vc/add-log.el | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el
index e9a21825e1..beaad2e835 100644
--- a/lisp/vc/add-log.el
+++ b/lisp/vc/add-log.el
@@ -1068,8 +1068,23 @@ the change log file in another window."
(insert-before-markers "("))
(error nil)))))
+;; If we're filling a line that has a whole bunch of file names, and
+;; we're still in the file names, then transform this so that it'll
+;; still font-lock properly.
+(defun change-log-fill-file-list ()
+ (save-excursion
+ (unless (bobp)
+ (forward-line -1)
+ (when (looking-at change-log-file-names-re)
+ (goto-char (match-end 0))
+ (while (looking-at "\\=, \\([^ ,:([\n]+\\)")
+ (goto-char (match-end 0)))
+ (when (looking-at ", *\n")
+ (replace-match ":\n *" t t))))))
+
(defun change-log-indent ()
(change-log-fill-parenthesized-list)
+ (change-log-fill-file-list)
(let* ((indent
(save-excursion
(beginning-of-line)