[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/denote-refs 98ab0da334: Fix Xref matching in Denote-Refs e
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/denote-refs 98ab0da334: Fix Xref matching in Denote-Refs enabled buffers |
Date: |
Tue, 20 Dec 2022 10:58:51 -0500 (EST) |
branch: elpa/denote-refs
commit 98ab0da334bcd069ff46ad200cd03b1572a7d7ca
Author: Akib Azmain Turja <akib@disroot.org>
Commit: Akib Azmain Turja <akib@disroot.org>
Fix Xref matching in Denote-Refs enabled buffers
* denote-refs.el (denote-refs--fix-xref--collect-matches): New
function.
* denote-refs.el (denote-refs-mode): Add ':around' advice
'denote-refs--fix-xref--collect-matches' on
'xref--collect-matches'.
---
denote-refs.el | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/denote-refs.el b/denote-refs.el
index e93b0d2fa9..cfb1627c2c 100644
--- a/denote-refs.el
+++ b/denote-refs.el
@@ -238,6 +238,26 @@ The car is PATH relative to user option
`denote-directory'."
(cdr denote-refs-update-delay))
nil #'denote-refs--idle-update buffer)))))
+;; Once added, we won't ever remove this advice, so we've to be extra
+;; careful.
+(defun denote-refs--fix-xref--collect-matches (fn hit &rest args)
+ "Advice around `xref--collect-match' to ignore reference lists.
+
+FN is the original definition of `xref--collect-matches', HIT and ARGS
+are it's arguments."
+ (let* ((file (cadr hit))
+ (file (and file (concat xref--hits-remote-id file)))
+ (buf (xref--find-file-buffer file)))
+ (if (and buf (buffer-local-value 'denote-refs-mode buf))
+ (progn
+ (with-current-buffer buf
+ (denote-refs--remove))
+ (unwind-protect
+ (apply fn hit args)
+ (with-current-buffer buf
+ (denote-refs--show))))
+ (apply fn hit args))))
+
;;;###autoload
(define-minor-mode denote-refs-mode
"Toggle showing links and backlinks in Denote notes."
@@ -256,7 +276,10 @@ The car is PATH relative to user option
`denote-directory'."
(setq denote-refs--idle-update-timer
(run-with-idle-timer
(car denote-refs-update-delay) nil
- #'denote-refs--idle-update (current-buffer))))
+ #'denote-refs--idle-update (current-buffer)))
+ ;; We won't ever remove this advice.
+ (advice-add #'xref--collect-matches :around
+ #'denote-refs--fix-xref--collect-matches))
(cancel-timer denote-refs--idle-update-timer)
(denote-refs--remove)
(remove-hook 'before-save-hook #'denote-refs--remove t)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [nongnu] elpa/denote-refs 98ab0da334: Fix Xref matching in Denote-Refs enabled buffers,
ELPA Syncer <=