Make +(helm|ivy)-file-search public and autoloaded
So it can be safely used anywhere. Maybe these should be defgenerics?
This commit is contained in:
parent
eacaf45279
commit
d5bb770ea6
2 changed files with 44 additions and 18 deletions
|
@ -11,7 +11,20 @@
|
||||||
;; Project search
|
;; Project search
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(cl-defun +helm--file-search (engine &key query in all-files (recursive t))
|
;;;###autoload
|
||||||
|
(cl-defun +helm-file-search (engine &key query in all-files (recursive t))
|
||||||
|
"Conduct a file search using ENGINE, which can be any of: rg, ag, pt, and
|
||||||
|
grep. If omitted, ENGINE will default to the first one it detects, in that
|
||||||
|
order.
|
||||||
|
|
||||||
|
:query STRING
|
||||||
|
Determines the initial input to search for.
|
||||||
|
:in PATH
|
||||||
|
Sets what directory to base the search out of. Defaults to the current
|
||||||
|
project's root.
|
||||||
|
:recursive BOOL
|
||||||
|
Whether or not to search files recursively from the base directory."
|
||||||
|
(declare (indent defun))
|
||||||
(require 'helm-ag)
|
(require 'helm-ag)
|
||||||
(helm-ag--init-state)
|
(helm-ag--init-state)
|
||||||
(let* ((project-root (doom-project-root))
|
(let* ((project-root (doom-project-root))
|
||||||
|
@ -129,48 +142,48 @@ preform search from current directory."
|
||||||
(defun +helm/rg (all-files-p &optional query directory)
|
(defun +helm/rg (all-files-p &optional query directory)
|
||||||
"TODO"
|
"TODO"
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+helm--file-search 'rg :query query :in directory :all-files all-files-p))
|
(+helm-file-search 'rg :query query :in directory :all-files all-files-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +helm/ag (all-files-p &optional query directory)
|
(defun +helm/ag (all-files-p &optional query directory)
|
||||||
"TODO"
|
"TODO"
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+helm--file-search 'ag :query query :in directory :all-files all-files-p))
|
(+helm-file-search 'ag :query query :in directory :all-files all-files-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +helm/pt (all-files-p &optional query directory)
|
(defun +helm/pt (all-files-p &optional query directory)
|
||||||
"TODO"
|
"TODO"
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+helm--file-search 'pt :query query :in directory :all-files all-files-p))
|
(+helm-file-search 'pt :query query :in directory :all-files all-files-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +helm/grep (all-files-p &optional query directory)
|
(defun +helm/grep (all-files-p &optional query directory)
|
||||||
"TODO"
|
"TODO"
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+helm--file-search 'grep :query query :in directory :all-files all-files-p))
|
(+helm-file-search 'grep :query query :in directory :all-files all-files-p))
|
||||||
|
|
||||||
;; Relative to current directory
|
;; Relative to current directory
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +helm/rg-from-cwd (recurse-p &optional query)
|
(defun +helm/rg-from-cwd (recurse-p &optional query)
|
||||||
"TODO"
|
"TODO"
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+helm--file-search 'rg :query query :in default-directory :recursive recurse-p))
|
(+helm-file-search 'rg :query query :in default-directory :recursive recurse-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +helm/ag-from-cwd (recurse-p &optional query)
|
(defun +helm/ag-from-cwd (recurse-p &optional query)
|
||||||
"TODO"
|
"TODO"
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+helm--file-search 'ag :query query :in default-directory :recursive recurse-p))
|
(+helm-file-search 'ag :query query :in default-directory :recursive recurse-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +helm/pt-from-cwd (recurse-p &optional query)
|
(defun +helm/pt-from-cwd (recurse-p &optional query)
|
||||||
"TODO"
|
"TODO"
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+helm--file-search 'pt :query query :in default-directory :recursive recurse-p))
|
(+helm-file-search 'pt :query query :in default-directory :recursive recurse-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +helm/grep-from-cwd (recurse-p &optional query)
|
(defun +helm/grep-from-cwd (recurse-p &optional query)
|
||||||
"TODO"
|
"TODO"
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+helm--file-search 'grep :query query :in default-directory :recursive recurse-p))
|
(+helm-file-search 'grep :query query :in default-directory :recursive recurse-p))
|
||||||
|
|
||||||
|
|
|
@ -202,7 +202,20 @@ search current file. See `+ivy-task-tags' to customize what this searches for."
|
||||||
;; File searching
|
;; File searching
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(cl-defun +ivy--file-search (engine &key query in all-files (recursive t))
|
;;;###autoload
|
||||||
|
(cl-defun +ivy-file-search (engine &key query in all-files (recursive t))
|
||||||
|
"Conduct a file search using ENGINE, which can be any of: rg, ag, pt, and
|
||||||
|
grep. If omitted, ENGINE will default to the first one it detects, in that
|
||||||
|
order.
|
||||||
|
|
||||||
|
:query STRING
|
||||||
|
Determines the initial input to search for.
|
||||||
|
:in PATH
|
||||||
|
Sets what directory to base the search out of. Defaults to the current
|
||||||
|
project's root.
|
||||||
|
:recursive BOOL
|
||||||
|
Whether or not to search files recursively from the base directory."
|
||||||
|
(declare (indent defun))
|
||||||
(let* ((project-root (doom-project-root))
|
(let* ((project-root (doom-project-root))
|
||||||
(directory (or in project-root))
|
(directory (or in project-root))
|
||||||
(default-directory directory)
|
(default-directory directory)
|
||||||
|
@ -286,7 +299,7 @@ If ALL-FILES-P, don't respect .gitignore files and search everything.
|
||||||
|
|
||||||
NOTE: ripgrep doesn't support multiline searches (yet)."
|
NOTE: ripgrep doesn't support multiline searches (yet)."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+ivy--file-search 'rg :query query :in directory :all-files all-files-p))
|
(+ivy-file-search 'rg :query query :in directory :all-files all-files-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +ivy/ag (all-files-p &optional query directory)
|
(defun +ivy/ag (all-files-p &optional query directory)
|
||||||
|
@ -296,7 +309,7 @@ the last known search is used.
|
||||||
|
|
||||||
If ALL-FILES-P, don't respect .gitignore files and search everything."
|
If ALL-FILES-P, don't respect .gitignore files and search everything."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+ivy--file-search 'ag :query query :in directory :all-files all-files-p))
|
(+ivy-file-search 'ag :query query :in directory :all-files all-files-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +ivy/pt (all-files-p &optional query directory)
|
(defun +ivy/pt (all-files-p &optional query directory)
|
||||||
|
@ -306,7 +319,7 @@ the last known search is used.
|
||||||
|
|
||||||
If ALL-FILES-P, don't respect .gitignore files and search everything."
|
If ALL-FILES-P, don't respect .gitignore files and search everything."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+ivy--file-search 'pt :query query :in directory :all-files all-files-p))
|
(+ivy-file-search 'pt :query query :in directory :all-files all-files-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +ivy/grep (all-files-p &optional query directory)
|
(defun +ivy/grep (all-files-p &optional query directory)
|
||||||
|
@ -316,7 +329,7 @@ active, the last known search is used.
|
||||||
|
|
||||||
If ALL-FILES-P, don't respect .gitignore files and search everything."
|
If ALL-FILES-P, don't respect .gitignore files and search everything."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+ivy--file-search 'grep :query query :in directory :all-files all-files-p))
|
(+ivy-file-search 'grep :query query :in directory :all-files all-files-p))
|
||||||
|
|
||||||
;; Relative to current directory
|
;; Relative to current directory
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
|
@ -324,28 +337,28 @@ If ALL-FILES-P, don't respect .gitignore files and search everything."
|
||||||
"Like `+ivy/rg', but from the current directory (recursively if RECURSIVE-P is
|
"Like `+ivy/rg', but from the current directory (recursively if RECURSIVE-P is
|
||||||
non-nil)."
|
non-nil)."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+ivy--file-search 'rg :query query :in default-directory :recursive recursive-p))
|
(+ivy-file-search 'rg :query query :in default-directory :recursive recursive-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +ivy/ag-from-cwd (recursive-p &optional query)
|
(defun +ivy/ag-from-cwd (recursive-p &optional query)
|
||||||
"Like `+ivy/ag', but from the current directory (recursively if RECURSIVE-P is
|
"Like `+ivy/ag', but from the current directory (recursively if RECURSIVE-P is
|
||||||
non-nil)."
|
non-nil)."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+ivy--file-search 'ag :query query :in default-directory :recursive recursive-p))
|
(+ivy-file-search 'ag :query query :in default-directory :recursive recursive-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +ivy/pt-from-cwd (recursive-p &optional query)
|
(defun +ivy/pt-from-cwd (recursive-p &optional query)
|
||||||
"Like `+ivy/pt', but from the current directory (recursively if RECURSIVE-P is
|
"Like `+ivy/pt', but from the current directory (recursively if RECURSIVE-P is
|
||||||
non-nil)."
|
non-nil)."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+ivy--file-search 'pt :query query :in default-directory :recursive recursive-p))
|
(+ivy-file-search 'pt :query query :in default-directory :recursive recursive-p))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +ivy/grep-from-cwd (recursive-p &optional query)
|
(defun +ivy/grep-from-cwd (recursive-p &optional query)
|
||||||
"Like `+ivy/grep', but from the current directory (recursively if RECURSIVE-P is
|
"Like `+ivy/grep', but from the current directory (recursively if RECURSIVE-P is
|
||||||
non-nil)."
|
non-nil)."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(+ivy--file-search 'grep :query query :in default-directory :recursive recursive-p))
|
(+ivy-file-search 'grep :query query :in default-directory :recursive recursive-p))
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue