When switching projects, there's a few commands available off the bat that can be selected from the mini-buffer after selecting a project.
[f] Find file [g] Find regexp [d] Find directory ...
Both find file and find directory and interactive. i.e., live results are shown as you type search terms.
However, Find regexp (project-find-regexp
from project.el
) does not. The prompt is simply: Find regexp:
and as you type there's no live results shown and therefore no immediate feedback as to whether the regex provided as matching any results.
How might I define use-package
for project and/or consult
to adjust this initial behaviour of project-find-regexp
?
Some relevant snippets of my init.el are as follows:
(use-package consult
:bind (
("C-s" . consult-line)
("C-x b" . consult-buffer)
("M-g M-g" . consult-goto-line)
("M-g g" . consult-goto-line)
("M-s f" . consult-find)
("M-s r" . consult-ripgrep)
("M-y" . consult-yank-pop)
)
:commands (consult-completing-read-multiple)
:config
(setq consult-project-root-function
(lambda ()
(let ((p (project-current)))
(when p (project-root p)))))
(defvar rah/consult-line-map
(let ((map (make-sparse-keymap)))
(define-key map "\C-s" #'vertico-next)
map))
(advice-add #'completing-read-multiple
:override #'consult-completing-read-multiple)
(consult-customize
consult-line
:history t ;; disable history
:keymap rah/consult-line-map
consult-buffer consult-find consult-ripgrep
:preview-key (kbd "M-.")
consult-theme
:preview-key '(:debounce 1 any)
)
)
(use-package consult-dir
:bind (
("C-x C-d" . consult-dir)
)
:bind (:map minibuffer-local-completion-map
("C-x C-d" . consult-dir)
("C-x C-j" . consult-dir-jump-file)
))
(use-package consult-project-extra
:bind (
("C-c p f" . consult-project-extra-find)
("C-c p o" . consult-project-extra-find-other-window)
))
(use-package consult-xref
:after (consult xref)
:commands (consult-xref)
:init
(setq xref-show-definitions-function #'consult-xref
xref-show-xrefs-function #'consult-xref)
)
(use-package project
:bind-keymap (
("C-x p" . project-prefix-map)
)
:bind (:map project-prefix-map
("m" . magit-project-status)
)
:commands (project-root)
:config
(add-to-list 'project-switch-commands '(magit-project-status "Magit") t)
)