[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/denote 090b4dbbef 2/9: Only modify prompted components
From: |
ELPA Syncer |
Subject: |
[elpa] externals/denote 090b4dbbef 2/9: Only modify prompted components in renaming commands |
Date: |
Mon, 18 Mar 2024 03:57:48 -0400 (EDT) |
branch: externals/denote
commit 090b4dbbefe9bddfe1598a55c33dc327b27ef572
Author: Jean-Philippe Gagné Guay <jeanphilippe150@gmail.com>
Commit: Jean-Philippe Gagné Guay <jeanphilippe150@gmail.com>
Only modify prompted components in renaming commands
Also make denote-dired-rename-files obey the order of the prompts in
denote-prompts
---
denote.el | 89 +++++++++++++++++++++++++++++++++------------------------------
1 file changed, 46 insertions(+), 43 deletions(-)
diff --git a/denote.el b/denote.el
index b61210ac19..7cdb86d77a 100644
--- a/denote.el
+++ b/denote.el
@@ -2826,25 +2826,28 @@ one-by-one, use `denote-dired-rename-files'."
(let* ((file (denote--rename-dired-file-or-prompt))
(file-type (denote-filetype-heuristics file))
(file-in-prompt (propertize (file-relative-name file) 'face
'denote-faces-prompt-current-name))
- (args (make-vector 4 nil)))
+ (date nil)
+ (title (denote-retrieve-title-or-filename file file-type))
+ (keywords (denote-convert-file-name-keywords-to-crm (or
(denote-retrieve-filename-keywords file) "")))
+ (signature (or (denote-retrieve-filename-signature file) "")))
(dolist (prompt denote-prompts)
(pcase prompt
('title
- (aset args 0 (denote-title-prompt
- (denote-retrieve-title-or-filename file file-type)
- (format "Rename `%s' with TITLE (empty to remove)"
file-in-prompt))))
+ (setq title (denote-title-prompt
+ title
+ (format "Rename `%s' with TITLE (empty to remove)"
file-in-prompt))))
('keywords
- (aset args 1 (denote-keywords-prompt
- (format "Rename `%s' with KEYWORDS (empty to remove)"
file-in-prompt)
- (denote-convert-file-name-keywords-to-crm (or
(denote-retrieve-filename-keywords file) "")))))
+ (setq keywords (denote-keywords-prompt
+ (format "Rename `%s' with KEYWORDS (empty to
remove)" file-in-prompt)
+ keywords)))
('signature
- (aset args 2 (denote-signature-prompt
- (or (denote-retrieve-filename-signature file) "")
- (format "Rename `%s' with SIGNATURE (empty to remove)"
file-in-prompt))))
+ (setq signature (denote-signature-prompt
+ signature
+ (format "Rename `%s' with SIGNATURE (empty to
remove)" file-in-prompt))))
('date
(unless (denote-file-has-identifier-p file)
- (aset args 3 (denote-date-prompt))))))
- (append (vector file) args nil)))
+ (setq date (denote-date-prompt))))))
+ (list file title keywords signature date)))
(let* ((dir (file-name-directory file))
(id (or (denote-retrieve-filename-identifier file)
(denote-create-unique-file-identifier file
(denote--get-all-used-ids) date)))
@@ -2877,42 +2880,42 @@ setting `denote-rename-no-confirm' to a non-nil value)."
(interactive nil dired-mode)
(if-let ((marks (dired-get-marked-files)))
(let ((used-ids (unless (seq-every-p #'denote-file-has-identifier-p
marks)
- (denote--get-all-used-ids)))
- (date-p (memq 'date denote-prompts))
- (title-p (memq 'title denote-prompts))
- (keywords-p (memq 'keywords denote-prompts))
- (signature-p (memq 'signature denote-prompts)))
+ (denote--get-all-used-ids))))
(dolist (file marks)
(let* ((file-type (denote-filetype-heuristics file))
(file-in-prompt (propertize (file-relative-name file) 'face
'denote-faces-prompt-current-name))
(dir (file-name-directory file))
- (id (or (when date-p
- (denote-prompt-for-date-return-id))
- (denote-retrieve-filename-identifier file)
+ (id (or (denote-retrieve-filename-identifier file)
(denote-create-unique-file-identifier file used-ids)))
- (title (when title-p
- (denote-title-prompt
- (denote-retrieve-title-or-filename file file-type)
- (format "Rename `%s' with TITLE (empty to remove)"
file-in-prompt))))
- (keywords (when keywords-p
- (denote-keywords-sort
- (denote-keywords-prompt
- (format "Rename `%s' with KEYWORDS (empty to
remove)" file-in-prompt)
- (denote-convert-file-name-keywords-to-crm (or
(denote-retrieve-filename-keywords file) ""))))))
- (signature (when signature-p
- (denote-signature-prompt
- (or (denote-retrieve-filename-signature file)
"")
- (format "Rename `%s' with SIGNATURE (empty to
remove)" file-in-prompt))))
- (extension (denote-get-file-extension file))
- (new-name (denote-format-file-name dir id keywords title
extension signature)))
- (denote-rename-file-and-buffer file new-name)
- (when (denote-file-is-writable-and-supported-p new-name)
- (if (denote--edit-front-matter-p new-name file-type)
- (denote-rewrite-front-matter new-name title keywords
file-type :no-confirm)
- (denote--add-front-matter new-name title keywords id file-type
:save-buffer)))
- (run-hooks 'denote-after-rename-file-hook)
- (when used-ids
- (puthash id t used-ids))))
+ (title (denote-retrieve-title-or-filename file file-type))
+ (keywords (denote-convert-file-name-keywords-to-crm (or
(denote-retrieve-filename-keywords file) "")))
+ (signature (or (denote-retrieve-filename-signature file) ""))
+ (extension (denote-get-file-extension file)))
+ (dolist (prompt denote-prompts)
+ (pcase prompt
+ ('title
+ (setq title (denote-title-prompt
+ title
+ (format "Rename `%s' with TITLE (empty to
remove)" file-in-prompt))))
+ ('keywords
+ (setq keywords (denote-keywords-prompt
+ (format "Rename `%s' with KEYWORDS (empty to
remove)" file-in-prompt)
+ keywords)))
+ ('signature
+ (setq signature (denote-signature-prompt
+ signature
+ (format "Rename `%s' with SIGNATURE (empty
to remove)" file-in-prompt))))
+ ('date
+ (setq id (denote-prompt-for-date-return-id)))))
+ (let ((new-name (denote-format-file-name dir id keywords title
extension signature)))
+ (denote-rename-file-and-buffer file new-name)
+ (when (denote-file-is-writable-and-supported-p new-name)
+ (if (denote--edit-front-matter-p new-name file-type)
+ (denote-rewrite-front-matter new-name title keywords
file-type :no-confirm)
+ (denote--add-front-matter new-name title keywords id
file-type :save-buffer)))
+ (run-hooks 'denote-after-rename-file-hook)
+ (when used-ids
+ (puthash id t used-ids)))))
(denote-update-dired-buffers))
(user-error "No marked files; aborting")))
- [elpa] externals/denote updated (2e1d5f318f -> 60ff790d33), ELPA Syncer, 2024/03/18
- [elpa] externals/denote 11396de4c9 3/9: Simplify :safe declaration, ELPA Syncer, 2024/03/18
- [elpa] externals/denote 4a94e03e5e 1/9: Revert "Make denote-rename-file and denote-dired-rename-files prompt for signature, if it exists", ELPA Syncer, 2024/03/18
- [elpa] externals/denote 13407bf7ba 4/9: Reword some statements in the manual about sluggification, ELPA Syncer, 2024/03/18
- [elpa] externals/denote e94cc50fd4 5/9: Make denote-file-name-slug-functions a user option; expand its documentation, ELPA Syncer, 2024/03/18
- [elpa] externals/denote 5789ca599b 8/9: Clarify denote-rename-file docs about keeping components not covered by denote-prompts, ELPA Syncer, 2024/03/18
- [elpa] externals/denote 768464999f 7/9: Fix typo "sepator" to "separator", ELPA Syncer, 2024/03/18
- [elpa] externals/denote e4d070e028 6/9: Merge pull request #293 from jeanphilippegg/renaming-commands, ELPA Syncer, 2024/03/18
- [elpa] externals/denote 090b4dbbef 2/9: Only modify prompted components in renaming commands,
ELPA Syncer <=
- [elpa] externals/denote 60ff790d33 9/9: Ensure that keywords are a list in denote-rename-file and denote-dired-rename-files, ELPA Syncer, 2024/03/18