[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 740a1a3d0e: Add new user option 'diff-add-log-use-relative-names'
From: |
Philip Kaludercic |
Subject: |
master 740a1a3d0e: Add new user option 'diff-add-log-use-relative-names' |
Date: |
Thu, 8 Sep 2022 02:22:00 -0400 (EDT) |
branch: master
commit 740a1a3d0ee7cd754b4049f0d65cd756f10b48f6
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philip@icterid>
Add new user option 'diff-add-log-use-relative-names'
* .dir-locals.el: Set new option to t
* etc/NEWS: Mention new option.
* lisp/vc/diff-mode.el (diff-add-log-use-relative-names): Add new option.
(diff-add-log-current-defuns): Use new option.
* doc/emacs/maintaining.texi (Log Buffer): Mention new option.
---
.dir-locals.el | 3 ++-
doc/emacs/maintaining.texi | 6 +++++-
etc/NEWS | 5 +++++
lisp/vc/diff-mode.el | 20 ++++++++++++++++++--
4 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/.dir-locals.el b/.dir-locals.el
index 1c90ddcf56..9882a19f85 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -5,7 +5,8 @@
(sentence-end-double-space . t)
(fill-column . 70)
(emacs-lisp-docstring-fill-column . 65)
- (bug-reference-url-format . "https://debbugs.gnu.org/%s")))
+ (bug-reference-url-format . "https://debbugs.gnu.org/%s")
+ (diff-add-log-use-relative-names . t)))
(c-mode . ((c-file-style . "GNU")
(c-noise-macro-names . ("INLINE" "ATTRIBUTE_NO_SANITIZE_UNDEFINED"
"UNINIT" "CALLBACK" "ALIGN_STACK"))
(electric-quote-comment . nil)
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index 343cc83ce5..9f81313844 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -690,11 +690,15 @@ started editing (@pxref{Old Revisions}), type @kbd{C-c
C-d}
@kindex C-c C-w @r{(Log Edit mode)}
@findex log-edit-generate-changelog-from-diff
+@vindex diff-add-log-use-relative-names
To help generate ChangeLog entries, type @kbd{C-c C-w}
(@code{log-edit-generate-changelog-from-diff}), to generate skeleton
ChangeLog entries, listing all changed file and function names based
on the diff of the VC fileset. Consecutive entries left empty will be
-combined by @kbd{C-q} (@code{fill-paragraph}).
+combined by @kbd{C-q} (@code{fill-paragraph}). By default the
+skeleton will just include the file name, without any leading
+directories. If you wish to prepend the leading directories up to the
+VC root, customize @code{diff-add-log-use-relative-names}.
@kindex C-c C-a @r{(Log Edit mode)}
@findex log-edit-insert-changelog
diff --git a/etc/NEWS b/etc/NEWS
index b61b88d6fb..76c66a8e39 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1340,6 +1340,11 @@ Sets the value of the buffer-local variable
'whitespace-style' in
'diff-mode' buffers. By default, this variable is '(face trailing)',
which preserves behavior from previous Emacs versions.
++++
+*** New user option 'diff-add-log-use-relative-names'.
+If non-nil insert file names in ChangeLog skeletons relative to the
+VC root directory.
+
** Ispell
---
diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el
index a01943437c..1d2fbca0e5 100644
--- a/lisp/vc/diff-mode.el
+++ b/lisp/vc/diff-mode.el
@@ -2336,10 +2336,21 @@ Call FUN with two args (BEG and END) for each hunk."
(let ((inhibit-read-only t))
(undo arg)))
+(defcustom diff-add-log-use-relative-names nil
+ "Use relative file names when generating ChangeLog skeletons.
+The files will be relative to the root directory of the VC
+repository. This option affects the behaviour of
+`diff-add-log-current-defuns'."
+ :type 'boolean
+ :safe #'booleanp
+ :version "29.1")
+
(defun diff-add-log-current-defuns ()
"Return an alist of defun names for the current diff.
The elements of the alist are of the form (FILE . (DEFUN...)),
-where DEFUN... is a list of function names found in FILE."
+where DEFUN... is a list of function names found in FILE. If
+`diff-add-log-use-relative-names' is non-nil, file names in the alist
+are relative to the root directory of the VC repository."
(save-excursion
(goto-char (point-min))
(let* ((defuns nil)
@@ -2373,7 +2384,12 @@ where DEFUN... is a list of function names found in
FILE."
;; hunks (e.g., "diff --git ..." etc).
(re-search-forward diff-hunk-header-re nil t)
(setq hunk-end (save-excursion (diff-end-of-hunk)))
- (pcase-let* ((filename (substring-no-properties (diff-find-file-name)))
+ (pcase-let* ((filename (substring-no-properties
+ (if diff-add-log-use-relative-names
+ (file-relative-name
+ (diff-find-file-name)
+ (vc-root-dir))
+ (diff-find-file-name))))
(=lines 0)
(+lines 0)
(-lines 0)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 740a1a3d0e: Add new user option 'diff-add-log-use-relative-names',
Philip Kaludercic <=