bump: :completion vertico

iyefrat/all-the-icons-completion@d1d4b2f0df -> iyefrat/all-the-icons-completion@9650041854
minad/consult@69bbd213dc -> minad/consult@105a1ac501
minad/marginalia@1123544536 -> minad/marginalia@c6ca58bea8
minad/vertico@9de6709cdd -> minad/vertico@81a4b35f8d
oantolin/embark@1a7e6b5561 -> oantolin/embark@19145d5a33
oantolin/orderless@1e84120a28 -> oantolin/orderless@1a7011ac9c

- Adapt consult async commands to new consult-x-args format instead of
  consult-x-command.
- Change regepx in +vertico-file-search to emacs instead of pcre,
  because consult switched to using only emacs regexps
- Move to new embark-indicators variable, and replace
  embark-mixed-indicator with +vertico/embark-which-key-indicator to be
  compatible with future changes
- Adapt Doom's optional usage of fd to new consult command format
This commit is contained in:
Itai Y. Efrat 2021-08-10 17:48:00 +03:00
parent c3fc7da5f1
commit 940f66fa89
3 changed files with 48 additions and 29 deletions

View file

@ -40,20 +40,19 @@ orderless."
(setq deactivate-mark t) (setq deactivate-mark t)
(let* ((project-root (or (doom-project-root) default-directory)) (let* ((project-root (or (doom-project-root) default-directory))
(directory (or in project-root)) (directory (or in project-root))
(args (consult-ripgrep-args
(split-string (concat "rg "
(string-trim (if all-files "-uu ")
(concat (if all-files "-uu") (unless recursive "--maxdepth 1 ")
(unless recursive "--maxdepth 1") "--line-buffered --color=never --max-columns=1000 "
"--null --line-buffered --color=always --max-columns=500 --no-heading --line-number --smart-case" "--path-separator / --smart-case --no-heading --line-number "
" --hidden -g !.git " "--hidden -g !.git "
(mapconcat #'shell-quote-argument args " "))) (mapconcat #'shell-quote-argument args " ")
" ")) "."))
(prompt (if (stringp prompt) (string-trim prompt) "Search")) (prompt (if (stringp prompt) (string-trim prompt) "Search"))
(query (or query (query (or query
(when (doom-region-active-p) (when (doom-region-active-p)
(rxt-quote-pcre (doom-thing-at-point-or-region))))) (regexp-quote (doom-thing-at-point-or-region)))))
(ripgrep-command (string-join `("rg" ,@args "." "-e ARG OPTS" ) " "))
(consult-async-split-style consult-async-split-style) (consult-async-split-style consult-async-split-style)
(consult-async-split-styles-alist consult-async-split-styles-alist)) (consult-async-split-styles-alist consult-async-split-styles-alist))
;; Change the split style if the initial query contains the separator. ;; Change the split style if the initial query contains the separator.
@ -74,7 +73,7 @@ orderless."
"%") "%")
:type perl) :type perl)
consult-async-split-style 'perlalt)))))) consult-async-split-style 'perlalt))))))
(consult--grep prompt ripgrep-command directory query))) (consult--grep prompt #'consult--ripgrep-builder directory query)))
;;;###autoload ;;;###autoload
(defun +vertico/project-search (&optional arg initial-query directory) (defun +vertico/project-search (&optional arg initial-query directory)
@ -175,9 +174,7 @@ If INITIAL is non-nil, use as initial input."
(require 'consult) (require 'consult)
(let* ((default-directory (or dir default-directory)) (let* ((default-directory (or dir default-directory))
(prompt-dir (consult--directory-prompt "Find" default-directory)) (prompt-dir (consult--directory-prompt "Find" default-directory))
(cmd (split-string-and-unquote consult-find-command " ")) (cmd (split-string-and-unquote +vertico-consult-fd-args " ")))
(cmd (remove "OPTS" cmd))
(cmd (remove "ARG" cmd)))
(find-file (find-file
(consult--read (consult--read
(split-string (cdr (apply #'doom-call-process cmd)) "\n" t) (split-string (cdr (apply #'doom-call-process cmd)) "\n" t)
@ -270,3 +267,25 @@ targets."
(interactive) (interactive)
(run-at-time 0 nil #'vertico-exit) (run-at-time 0 nil #'vertico-exit)
(vertico-exit)) (vertico-exit))
;;;###autoload
(defun +vertico--consult--fd-builder (input)
(pcase-let* ((cmd (split-string-and-unquote +vertico-consult-fd-args))
(`(,arg . ,opts) (consult--command-split input))
(`(,re . ,hl) (funcall consult--regexp-compiler
arg 'extended)))
(when re
(list :command (append cmd
(list (consult--join-regexps re 'extended))
opts)
:highlight hl))))
(autoload #'consult--directory-prompt "consult")
;;;###autoload
(defun +vertico/consult-fd (&optional dir initial)
(interactive "P")
(if doom-projectile-fd-binary
(let* ((prompt-dir (consult--directory-prompt "Fd" dir))
(default-directory (cdr prompt-dir)))
(find-file (consult--find (car prompt-dir) #'+vertico--consult--fd-builder initial)))
(consult-find dir initial)))

View file

@ -91,11 +91,12 @@ overrides `completion-styles' during company completion sessions.")
consult-async-input-throttle 0.2 consult-async-input-throttle 0.2
consult-async-input-debounce 0.1) consult-async-input-debounce 0.1)
(when doom-projectile-fd-binary (setq +vertico-consult-fd-args
(setq consult-find-command (if doom-projectile-fd-binary
(format "%s -i -H -E .git --regex %s ARG OPTS" (format "%s --color=never -i -H -E .git --regex %s"
doom-projectile-fd-binary doom-projectile-fd-binary
(if IS-WINDOWS "--path-separator=/" "")))) (if IS-WINDOWS "--path-separator=/" ""))
consult-find-args))
(consult-customize (consult-customize
consult-ripgrep consult-git-grep consult-grep consult-ripgrep consult-git-grep consult-grep
@ -145,8 +146,7 @@ overrides `completion-styles' during company completion sessions.")
:desc "Actions" "a" #'embark-act)) ; to be moved to :config default if accepted :desc "Actions" "a" #'embark-act)) ; to be moved to :config default if accepted
:config :config
(set-popup-rule! "^\\*Embark Export Grep" :size 0.35 :ttl 0 :quit nil) (set-popup-rule! "^\\*Embark Export Grep" :size 0.35 :ttl 0 :quit nil)
(cl-nsubstitute #'+vertico/embark-which-key-indicator #'embark-mixed-indicator embark-indicators)
(setq embark-indicator #'+vertico/embark-which-key-indicator)
;; add the package! target finder before the file target finder, ;; add the package! target finder before the file target finder,
;; so we don't get a false positive match. ;; so we don't get a false positive match.
(let ((pos (or (cl-position (let ((pos (or (cl-position

View file

@ -4,22 +4,22 @@
(package! vertico (package! vertico
:recipe (:host github :repo "minad/vertico" :recipe (:host github :repo "minad/vertico"
:files ("*.el" "extensions/*.el")) :files ("*.el" "extensions/*.el"))
:pin "9de6709cddc09740d23d24fb425fa3c174d0e956") :pin "81a4b35f8d11dfad56de1727ee9bdd3b4461d07c")
(package! orderless :pin "1e84120a28525ccb47b602fc19b7afbeffbbe502") (package! orderless :pin "1a7011ac9c476dbb083c5ead88462a5f520ef8aa")
(package! consult :pin "69bbd213dc8a98abe94a4f5b1920e3d689d31caa") (package! consult :pin "105a1ac50169382368a36ed53d7af908d02ffa07")
(when (featurep! :checkers syntax) (when (featurep! :checkers syntax)
(package! consult-flycheck :pin "92b259e6a8ebe6439f67d3d7ffa44b7e64b76478")) (package! consult-flycheck :pin "92b259e6a8ebe6439f67d3d7ffa44b7e64b76478"))
(package! embark :pin "1a7e6b556142216fa5f9b897bd5eca73968f3c49") (package! embark :pin "19145d5a3367038f0a9a114b7387c8a896037aec")
(package! embark-consult :pin "1a7e6b556142216fa5f9b897bd5eca73968f3c49") (package! embark-consult :pin "19145d5a3367038f0a9a114b7387c8a896037aec")
(package! marginalia :pin "11235445365c6ab119acabe91828e9182097ece7") (package! marginalia :pin "c6ca58bea819c3b5e4b3295ad693c5cd0ae5db31")
(package! wgrep :pin "f9687c28bbc2e84f87a479b6ce04407bb97cfb23") (package! wgrep :pin "f9687c28bbc2e84f87a479b6ce04407bb97cfb23")
(when (featurep! +icons) (when (featurep! +icons)
(package! all-the-icons-completion (package! all-the-icons-completion
:recipe (:host github :repo "iyefrat/all-the-icons-completion") :recipe (:host github :repo "iyefrat/all-the-icons-completion")
:pin "d1d4b2f0dfbfa94d33fe50e8089c06601adfe674")) :pin "96500418541b7376cd0b3e4583b9509c0dd92b27"))