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

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

[elpa] externals/denote 02d6f42ab4 320/355: Merge branch 'xref-instead-o


From: ELPA Syncer
Subject: [elpa] externals/denote 02d6f42ab4 320/355: Merge branch 'xref-instead-of-find'
Date: Sun, 26 Jun 2022 23:58:36 -0400 (EDT)

branch: externals/denote
commit 02d6f42ab475bf5af3a2be3389b54e314273df97
Merge: a2e4497486 92f9cb8cb9
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>

    Merge branch 'xref-instead-of-find'
---
 denote-retrieve.el | 41 +++++++++++++++++++----------------------
 1 file changed, 19 insertions(+), 22 deletions(-)

diff --git a/denote-retrieve.el b/denote-retrieve.el
index fbd55347c5..75724f3ac0 100644
--- a/denote-retrieve.el
+++ b/denote-retrieve.el
@@ -96,33 +96,30 @@ Optional GROUP is a regexp construct for
                       (when (denote--only-note-p f) f))
                     files)))
 
-;; TODO 2022-06-15: Maybe we can do the same in a more standard way?
-;; Perhaps with `xref-matches-in-files'?
-;;
-;; (xref-matches-in-files IDENTIFIER (denote--directory-files :absolute))
+(autoload 'xref--analyze "xref")
+
+(defun denote-retrieve--xrefs (identifier)
+  "Return xrefs of IDENTIFIER in variable `denote-directory'."
+  (xref--analyze
+   (xref-matches-in-files identifier (denote--directory-files :absolute))))
+
+(defun denote-retrieve--files-in-xrefs (xrefs)
+  "Return sorted file names sans directory from XREFS.
+Parse `denote-retrieve--xrefs'."
+  (sort
+   (mapcar (lambda (x)
+             (file-name-nondirectory (car x)))
+           xrefs)
+   #'string-lessp))
+
 (defun denote-retrieve--proces-grep (identifier)
   "Process lines matching IDENTIFIER and return list of files."
   (let* ((default-directory (denote-directory))
          (file (file-name-nondirectory (buffer-file-name))))
     (denote-retrieve--files-in-output
-     (sort
-      (process-lines
-       "find"
-       default-directory
-       "-maxdepth" "1"
-       "-type" "f"
-       "!" "-name" file
-       "-exec"
-       grep-program
-       "--color=never"
-       "-m"
-       "1"
-       "-e"
-       identifier
-       "{}"
-       ";"
-       "-print")
-      #'string-lessp))))
+     (delete file
+             (denote-retrieve--files-in-xrefs
+              (denote-retrieve--xrefs identifier))))))
 
 (provide 'denote-retrieve)
 ;;; denote-retrieve.el ends here



reply via email to

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