Bind 'SPC h d S' to text search; expand ivy/helm file-search API

This commit is contained in:
Henrik Lissner 2019-12-23 01:51:43 -05:00
parent e8aa293bc0
commit b144a3862a
No known key found for this signature in database
GPG Key ID: 5F6C0EA160557395
4 changed files with 38 additions and 14 deletions

View File

@ -196,7 +196,7 @@ selection of all minor-modes, active or not."
(find-file (expand-file-name "index.org" doom-docs-dir)))
;;;###autoload
(defun doom/help-search (&optional initial-input)
(defun doom/help-search-headings (&optional initial-input)
"Search Doom's documentation and jump to a headline."
(interactive)
(doom-completing-read-org-headings
@ -212,6 +212,25 @@ selection of all minor-modes, active or not."
x)
(doom--help-modules-list))))
;;;###autoload
(defun doom/help-search (&optional initial-input)
"Preform a text search on all of Doom's documentation."
(interactive)
(funcall (cond ((featurep! :completion ivy)
#'+ivy-file-search)
((featurep! :completion helm)
#'+helm-file-search)
((rgrep
(read-regexp
"Search for" (or initial-input 'grep-tag-default)
'grep-regexp-history)
"*.org" doom-emacs-dir)
#'ignore))
:query initial-input
:args '("-g" "*.org")
:in doom-emacs-dir
:prompt "Search documentation for: "))
;;;###autoload
(defun doom/help-news-search (&optional initial-input)
"Search headlines in Doom's newsletters."

View File

@ -38,7 +38,7 @@ workspace."
;;; Project search
;;;###autoload
(cl-defun +helm-file-search (&key query in all-files (recursive t))
(cl-defun +helm-file-search (&key query in all-files (recursive t) _prompt args)
"Conduct a file search using ripgrep.
:query STRING
@ -55,8 +55,9 @@ workspace."
(let ((this-command 'helm-rg)
(helm-rg-default-directory (or in (doom-project-root) default-directory))
(helm-rg-default-extra-args
(delq nil (list (when all-files "-z -uu")
(unless recursive "--maxdepth 1")))))
(delq nil (append (list (when all-files "-z -uu")
(unless recursive "--maxdepth 1"))
args))))
(helm-rg (or query
(when (use-region-p)
(let ((beg (or (bound-and-true-p evil-visual-beginning) (region-beginning)))

View File

@ -242,7 +242,7 @@ The point of this is to avoid Emacs locking up indexing massive file trees."
(#'counsel-file-jump)))))
;;;###autoload
(cl-defun +ivy-file-search (&key query in all-files (recursive t))
(cl-defun +ivy-file-search (&key query in all-files (recursive t) prompt args)
"Conduct a file search using ripgrep.
:query STRING
@ -260,7 +260,9 @@ The point of this is to avoid Emacs locking up indexing massive file trees."
(project-root (or (doom-project-root) default-directory))
(directory (or in project-root))
(args (concat (if all-files " -uu")
(unless recursive " --maxdepth 1"))))
(unless recursive " --maxdepth 1")
" "
(mapconcat #'shell-quote-argument args " "))))
(counsel-rg
(or (if query query)
(when (use-region-p)
@ -278,13 +280,14 @@ The point of this is to avoid Emacs locking up indexing massive file trees."
((concat "\\\\" substr))))
(rxt-quote-pcre query)))))))
directory args
(format "rg%s [%s]: "
args
(cond ((equal directory default-directory)
"./")
((equal directory project-root)
(projectile-project-name))
((file-relative-name directory project-root)))))))
(or prompt
(format "rg%s [%s]: "
args
(cond ((equal directory default-directory)
"./")
((equal directory project-root)
(projectile-project-name))
((file-relative-name directory project-root))))))))
;;;###autoload
(defun +ivy/project-search (&optional arg initial-query directory)

View File

@ -328,7 +328,8 @@
"dP" #'doom/help-package-homepage
"dc" #'doom/goto-config-file
"dC" #'doom/help-package-config
"ds" #'doom/help-search
"ds" #'doom/help-search-headings
"dS" #'doom/help-search
"dx" #'doom/sandbox
"dt" #'doom/toggle-profiler
"dv" #'doom/version