emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/denote f21a99775d 256/355: Improve rename prompt; only


From: ELPA Syncer
Subject: [elpa] externals/denote f21a99775d 256/355: Improve rename prompt; only rename regular files
Date: Sun, 26 Jun 2022 23:58:30 -0400 (EDT)

branch: externals/denote
commit f21a99775d6b690ea1b64788451c2d2bff15ab28
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>

    Improve rename prompt; only rename regular files
    
    Thanks to Frank Ehmsen for the feedback on the mailing list:
    
<https://lists.sr.ht/~protesilaos/denote/%3C9deea16e-d0d0-91b0-2b6a-0b8276406c6c@eh-is.de%3E>.
---
 denote-dired.el | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/denote-dired.el b/denote-dired.el
index c12299f618..1e10ae264e 100644
--- a/denote-dired.el
+++ b/denote-dired.el
@@ -194,6 +194,22 @@ everything works as intended."
           (with-selected-window win
             (find-file new-name)))))))
 
+(defun denote-dired--rename-dired-file-or-prompt ()
+  "Return Dired file at point, else prompt for one."
+  (or (dired-get-filename nil t)
+      (let* ((file (buffer-file-name))
+             (format (if file
+                         (format "Rename file Denote-style [%s]: " file)
+                       "Rename file Denote-style: ")))
+        (read-file-name format nil file t nil))))
+
+(defun denote-dired--rename-file-is-regular (file)
+  "Throw error is FILE is not regular, else return FILE."
+  (if (or (file-directory-p file)
+          (not (file-regular-p file)))
+      (user-error "Only rename regular files")
+    file))
+
 ;;;###autoload
 (defun denote-dired-rename-file (file title keywords)
   "Rename FILE to include TITLE and KEYWORDS.
@@ -225,7 +241,7 @@ notes, (ii) complement note-taking, such as by renaming
 attachments that the user adds to their notes."
   (interactive
    (list
-    (or (dired-get-filename nil t) (read-file-name "Rename file Denote-style: 
"))
+    (denote-dired--rename-file-is-regular 
(denote-dired--rename-dired-file-or-prompt))
     (denote--title-prompt)
     (denote--keywords-prompt)))
   (let* ((dir (file-name-directory file))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]