From 1584f8a61ea064e1fff41609882c20dbde2e975d Mon Sep 17 00:00:00 2001 From: "Itai Y. Efrat" Date: Sat, 9 Dec 2023 23:03:10 +0200 Subject: [PATCH] fix(vertico): use consult-fd only with new enough fd --- modules/completion/vertico/autoload/vertico.el | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/completion/vertico/autoload/vertico.el b/modules/completion/vertico/autoload/vertico.el index c38f21df2..50059b68b 100644 --- a/modules/completion/vertico/autoload/vertico.el +++ b/modules/completion/vertico/autoload/vertico.el @@ -210,8 +210,21 @@ targets." ;;;###autoload (defun +vertico/consult-fd-or-find (&optional dir initial) + "Runs consult-fd if fd version > 8.6.0 exists, consult-find otherwise. +See URL `https://github.com/minad/consult/issues/770'." (interactive "P") - (if doom-projectile-fd-binary + ;; TODO this condition was adapted from a similar one in lisp/doom-projects.el, to be replaced with a more robust check post v3 + (if (when-let* + ((bin (if (ignore-errors (file-remote-p default-directory nil t)) + (cl-find-if (doom-rpartial #'executable-find t) + (list "fdfind" "fd")) + doom-projectile-fd-binary)) + (version (with-memoization doom-projects--fd-version + (cadr (split-string (cdr (doom-call-process bin "--version")) + " " t)))) + ((ignore-errors (version-to-list version)))) + ;; TODO remove once fd 8.6.0 is widespread enough to be the minimum version for doom + (version< "8.6.0" version)) (consult-fd dir initial) (consult-find dir initial)))