branch: externals/consult-denote
commit feb9c31a26eece1bf3a615e706cefb30d209317e
Author: Protesilaos Stavrou <[email protected]>
Commit: Protesilaos Stavrou <[email protected]>

    Rewrite consult-denote-sequence-file-prompt to be like its latest 
denote-sequence.el counterpart
---
 consult-denote.el | 39 ++++++++++++++++++++++-----------------
 1 file changed, 22 insertions(+), 17 deletions(-)

diff --git a/consult-denote.el b/consult-denote.el
index d7c5b6a8b1..158c39e3e3 100644
--- a/consult-denote.el
+++ b/consult-denote.el
@@ -165,23 +165,28 @@ With optional PROMPT-TEXT use it instead of a generic 
prompt.
 
 With optional FILES-WITH-SEQUENCES as a list of strings, use them as
 completion candidates.  Else use `denote-sequence-get-all-files'."
-  (if-let* ((files (or files-with-sequences (denote-sequence-get-all-files)))
-            (roots (denote-directories))
-            (single-dir-p (null (cdr roots)))
-            (relative-files (if single-dir-p
-                                (mapcar 
#'denote-get-file-name-relative-to-denote-directory files)
-                              files))
-            (prompt (format-prompt (or prompt-text "Select FILE with 
sequence") nil))
-            (input (consult--read
-                    (apply 'denote-get-completion-table relative-files 
denote-file-prompt-extra-metadata)
-                    :state (consult--file-preview)
-                    :require-match nil
-                    :history 'denote-sequence-file-history
-                    :prompt prompt)))
-      (if single-dir-p
-          (expand-file-name input (car roots))
-        input)
-    (error "There are no sequence notes in the `denote-directory'")))
+  (let* ((roots (denote-directories))
+         (single-dir-p (null (cdr roots)))
+         ;; Some external program may use `default-directory' with the
+         ;; relative file paths of the completion candidates.
+         (default-directory (if single-dir-p
+                                (car roots)
+                              (denote-directories-get-common-root roots))))
+    (if-let* ((files (or files-with-sequences (denote-sequence-get-all-files)))
+              (relative-files (if single-dir-p
+                                  (mapcar 
#'denote-get-file-name-relative-to-denote-directory files)
+                                files))
+              (prompt (format-prompt (or prompt-text "Select FILE with 
sequence") nil))
+              (input (consult--read
+                      (apply 'denote-get-completion-table relative-files 
denote-sequence-file-prompt-extra-metadata)
+                      :state (consult--file-preview)
+                      :require-match nil
+                      :history 'denote-sequence-file-history
+                      :prompt prompt)))
+        (if single-dir-p
+            (expand-file-name input (car roots))
+          input)
+      (error "There are no sequence notes in the `denote-directory'"))))
 
 (defun consult-denote-select-linked-file-prompt (files &optional prompt-text)
   "Prompt for linked file among FILES and use optional PROMPT-TEXT."

Reply via email to