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

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

[elpa] externals/denote 737c647957 246/355: Rename buffer post file rena


From: ELPA Syncer
Subject: [elpa] externals/denote 737c647957 246/355: Rename buffer post file rename
Date: Sun, 26 Jun 2022 23:58:29 -0400 (EDT)

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

    Rename buffer post file rename
---
 denote-dired.el | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/denote-dired.el b/denote-dired.el
index bf3de7f544..e70faf74aa 100644
--- a/denote-dired.el
+++ b/denote-dired.el
@@ -178,6 +178,21 @@ everything works as intended."
    ((denote-dired--file-attributes-time file))
    (t (format-time-string denote--id-format))))
 
+(defun denote-dired--rename-buffer (old-name new-name)
+  "Rename OLD-NAME buffer to NEW-NAME, when appropriate."
+  (when-let ((old-buf (find-buffer-visiting old-name)))
+    (with-current-buffer old-buf
+      ;; We get the window to replace the buffer without affecting the
+      ;; window layout.
+      (let ((win (get-buffer-window old-buf)))
+        (rename-buffer (file-name-nondirectory new-name))
+        ;; TODO 2022-06-17: Is there a better way to avoid duplication
+        ;; between old and new?  It seems wrong to kill-buffer and then
+        ;; find-file.
+        (kill-buffer (find-buffer-visiting old-name))
+        (with-selected-window win
+          (find-file new-name))))))
+
 ;;;###autoload
 (defun denote-dired-rename-file (file title keywords)
   "Rename FILE to include TITLE and KEYWORDS.
@@ -228,6 +243,7 @@ attachments that the user adds to their notes."
                      (propertize old-name 'face 'error)
                      (propertize (file-name-nondirectory new-name) 'face 
'success)))
         (rename-file old-name new-name nil)
+        (denote-dired--rename-buffer old-name new-name)
         (run-hook-with-args 'denote-dired-post-rename-functions new-name title 
keywords)))))
 
 (defun denote-dired-update-dired-buffers (&rest _)



reply via email to

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