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

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

[nongnu] elpa/denote-refs fcdab0b13a 1/2: Don't save reference list whil


From: ELPA Syncer
Subject: [nongnu] elpa/denote-refs fcdab0b13a 1/2: Don't save reference list while auto-saving
Date: Sun, 15 Jan 2023 11:59:03 -0500 (EST)

branch: elpa/denote-refs
commit fcdab0b13a584d2da4400a363da0a20f0bb92040
Author: Akib Azmain Turja <akib@disroot.org>
Commit: Akib Azmain Turja <akib@disroot.org>

    Don't save reference list while auto-saving
    
    * denote-refs.el (denote-refs--before-write-region): New
    function.
    * denote-refs.el (denote-refs-mode): Don't add functions to
    'before-save-hook' and 'after-save-hook'.  Add
    'denote-refs--before-write-region' to
    'write-region-annotate-functions' hook.
---
 denote-refs.el | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/denote-refs.el b/denote-refs.el
index f79f11416c..9525b3d763 100644
--- a/denote-refs.el
+++ b/denote-refs.el
@@ -290,6 +290,16 @@ are it's arguments."
                         #'denote-refs--fix-xref--collect-matches)
          (cancel-timer denote-refs--schedule-idle-update-timer))))
 
+(defun denote-refs--before-write-region (_ _)
+  "Make sure `write-region' doesn't write the reference lists."
+  (let ((buf (get-buffer-create " *denote-refs-tmp-write-region*"))
+        (str (buffer-string)))
+    (set-buffer buf)
+    (let ((inhibit-read-only t))
+      (erase-buffer))
+    (insert str)
+    (denote-refs--remove)))
+
 ;;;###autoload
 (define-minor-mode denote-refs-mode
   "Toggle showing links and backlinks in Denote notes."
@@ -299,8 +309,8 @@ are it's arguments."
         (progn
           (mapc #'make-local-variable locals)
           (denote-refs--show)
-          (add-hook 'before-save-hook #'denote-refs--remove nil t)
-          (add-hook 'after-save-hook #'denote-refs--show nil t)
+          (add-hook 'write-region-annotate-functions
+                    #'denote-refs--before-write-region nil t)
           (add-hook 'org-capture-prepare-finalize-hook
                     #'denote-refs--remove nil t)
           ;; This runs just once, so we don't bother to keep track of



reply via email to

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