branch: externals/consult-denote
commit 4d32f7003cb413d7b011f445a6c323545ab6de74
Author: Protesilaos Stavrou <i...@protesilaos.com>
Commit: Protesilaos Stavrou <i...@protesilaos.com>

    Provide previews for commands like denote-find-link, denote-find-backlink
    
    Thanks to hapst3r for suggesting something like this in issue 7:
    <https://github.com/protesilaos/consult-denote/issues/7>.
---
 consult-denote.el | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/consult-denote.el b/consult-denote.el
index 56fb361258..dd47e844d6 100644
--- a/consult-denote.el
+++ b/consult-denote.el
@@ -135,6 +135,17 @@ Return the absolute path to the matching file."
     ;; appropriately.
     absolute-file))
 
+(defun consult-denote-select-linked-file-prompt (files)
+  "Prompt for linked file among FILES."
+  (let ((file-names (mapcar #'denote-get-file-name-relative-to-denote-directory
+                            files)))
+    (consult--read
+     (denote--completion-table 'file file-names)
+     :state (consult--file-preview)
+     :require-match t
+     :history 'denote-link-find-file-history
+     :prompt "Find linked file")))
+
 (defun consult-denote-select-linked-file-prompt (files)
   "Prompt for Denote file among FILES."
   (let* ((default-directory denote-directory)
@@ -268,6 +279,7 @@ FILE has the same meaning as in 
`denote-org-extras-outline-prompt'."
           (add-to-list 'consult-buffer-sources source :append))
         (advice-add #'denote-file-prompt :override 
#'consult-denote-file-prompt)
         (advice-add #'denote-select-linked-file-prompt :override 
#'consult-denote-select-linked-file-prompt)
+        (advice-add #'denote-select-linked-file-prompt :override 
#'consult-denote-select-linked-file-prompt)
         ;; See FIXME where this function is defined.
         (advice-add #'denote-org-extras-outline-prompt :override 
#'consult-denote-outline-prompt)
         (advice-add #'denote-silo-extras-directory-prompt :override 
#'consult-denote-silo-directory-prompt))
@@ -275,6 +287,7 @@ FILE has the same meaning as in 
`denote-org-extras-outline-prompt'."
       (setq consult-buffer-sources (delq source consult-buffer-sources)))
     (advice-remove #'denote-file-prompt #'consult-denote-file-prompt)
     (advice-remove #'denote-select-linked-file-prompt 
#'consult-denote-select-linked-file-prompt)
+    (advice-remove #'denote-select-linked-file-prompt 
#'consult-denote-select-linked-file-prompt)
     (advice-remove #'denote-org-extras-outline-prompt 
#'consult-denote-outline-prompt)
     (advice-remove #'denote-silo-extras-directory-prompt 
#'consult-denote-silo-directory-prompt)))
 

Reply via email to