From 86ef74cba8e6d2a7ce4f00cdc6df587968f568f1 Mon Sep 17 00:00:00 2001 From: Lucas Sta Maria Date: Wed, 15 Oct 2025 22:30:01 -0500 Subject: [PATCH] feat(emacs): add `consult-ripgrep-file` --- .emacs.d/include/priime-completion.el | 31 ++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/.emacs.d/include/priime-completion.el b/.emacs.d/include/priime-completion.el index bf4b277..ac9c1a3 100644 --- a/.emacs.d/include/priime-completion.el +++ b/.emacs.d/include/priime-completion.el @@ -36,13 +36,38 @@ (use-package orderless :straight t :custom (orderless-matching-styles '(orderless-literal-prefix orderless-literal orderless-regexp))) -(use-package consult :straight t - :bind (("C-c r r" . consult-ripgrep) - ("C-c r g" . consult-grep))) (use-package yasnippet :straight t :hook ((prog-mode . yas-minor-mode))) (use-package yasnippet-snippets :straight t) +(use-package consult :straight t + :bind (("C-c r r" . consult-ripgrep) + ("C-c r g" . consult-grep) + ("C-c r f" . consult-ripgrep-file))) + +(defun consult-ripgrep-file (&optional initial) + "Search with `rg' in the current file with INITIAL input." + (interactive) + (cond + ((buffer-file-name) + (let* ((file (buffer-file-name)) + (builder (consult--ripgrep-make-builder (list file)))) + (consult--read + (consult--process-collection builder + :transform (consult--grep-format builder) + :file-handler t) + :prompt "Ripgrep (current file): " + :lookup #'consult--lookup-member + :state (consult--grep-state) + :initial initial + :add-history (thing-at-point 'symbol) + :require-match t + :category 'consult-grep + :group #'consult--prefix-group + :history '(:input consult--grep-history) + :sort nil))) + (t (user-error "Buffer not visiting a file")))) + (provide 'priime-completion) ;;; priime-completion.el ends here