Merge branch 'xref-instead-of-find'

This commit is contained in:
Protesilaos Stavrou 2022-06-22 18:09:09 +03:00
commit 02d6f42ab4
No known key found for this signature in database
GPG key ID: 99BD6459CD5CA3EA

View file

@ -96,33 +96,30 @@ Optional GROUP is a regexp construct for
(when (denote--only-note-p f) f)) (when (denote--only-note-p f) f))
files))) files)))
;; TODO 2022-06-15: Maybe we can do the same in a more standard way? (autoload 'xref--analyze "xref")
;; Perhaps with `xref-matches-in-files'?
;; (defun denote-retrieve--xrefs (identifier)
;; (xref-matches-in-files IDENTIFIER (denote--directory-files :absolute)) "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) (defun denote-retrieve--proces-grep (identifier)
"Process lines matching IDENTIFIER and return list of files." "Process lines matching IDENTIFIER and return list of files."
(let* ((default-directory (denote-directory)) (let* ((default-directory (denote-directory))
(file (file-name-nondirectory (buffer-file-name)))) (file (file-name-nondirectory (buffer-file-name))))
(denote-retrieve--files-in-output (denote-retrieve--files-in-output
(sort (delete file
(process-lines (denote-retrieve--files-in-xrefs
"find" (denote-retrieve--xrefs identifier))))))
default-directory
"-maxdepth" "1"
"-type" "f"
"!" "-name" file
"-exec"
grep-program
"--color=never"
"-m"
"1"
"-e"
identifier
"{}"
";"
"-print")
#'string-lessp))))
(provide 'denote-retrieve) (provide 'denote-retrieve)
;;; denote-retrieve.el ends here ;;; denote-retrieve.el ends here