diff --git a/core/core-projects.el b/core/core-projects.el
index f37babe59..e2920934b 100644
--- a/core/core-projects.el
+++ b/core/core-projects.el
@@ -72,9 +72,9 @@ Emacs.")
;; Disable commands that won't work, as is, and that Doom already provides a
;; better alternative for.
- (put 'projectile-ag 'disabled "Use +{ivy,helm}/project-search or +{ivy,helm}/ag instead")
- (put 'projectile-ripgrep 'disabled "Use +{ivy,helm}/project-search or +{ivy,helm}/rg instead")
- (put 'projectile-grep 'disabled "Use +{ivy,helm}/project-search or +{ivy,helm}/grep instead")
+ (put 'projectile-ag 'disabled "Use +{ivy,helm}/project-search instead")
+ (put 'projectile-ripgrep 'disabled "Use +{ivy,helm}/project-search instead")
+ (put 'projectile-grep 'disabled "Use +{ivy,helm}/project-search instead")
;; Treat current directory in dired as a "file in a project" and track it
(add-hook 'dired-before-readin-hook #'projectile-track-known-projects-find-file-hook)
diff --git a/modules/completion/helm/autoload/evil.el b/modules/completion/helm/autoload/evil.el
index da37452fc..fbcf0a9db 100644
--- a/modules/completion/helm/autoload/evil.el
+++ b/modules/completion/helm/autoload/evil.el
@@ -1,46 +1,17 @@
;;; completion/helm/autoload/evil.el -*- lexical-binding: t; -*-
;;;###if (featurep! :editor evil)
-;;
-;; Project searching
-
-;;;###autoload (autoload '+helm:grep "completion/helm/autoload/evil" nil t)
-(evil-define-command +helm:grep (all-files-p query)
+;;;###autoload (autoload '+helm:project-search "completion/helm/autoload/evil" nil t)
+(evil-define-command +helm:project-search (all-files-p query)
"Ex interface for `+helm/grep'"
(interactive "")
- (+helm/grep all-files-p query))
+ (+helm/project-search all-files-p query))
-;;;###autoload (autoload '+helm:ag "completion/helm/autoload/evil" nil t)
-(evil-define-command +helm:ag (all-files-p query)
- "Ex interface for `+helm/ag'"
- (interactive "")
- (+helm/ag all-files-p query))
-
-;;;###autoload (autoload '+helm:rg "completion/helm/autoload/evil" nil t)
-(evil-define-command +helm:rg (all-files-p query)
- "Ex interface for `+helm/rg'"
- (interactive "")
- (+helm/rg all-files-p query))
-
-
-;;;###autoload (autoload '+helm:grep-from-cwd "completion/helm/autoload/evil" nil t)
-(evil-define-command +helm:grep-from-cwd (query &optional recurse-p)
+;;;###autoload (autoload '+helm:project-search-from-cwd "completion/helm/autoload/evil" nil t)
+(evil-define-command +helm:project-search-from-cwd (query &optional recurse-p)
"Ex interface for `+helm/grep-from-cwd'."
(interactive "")
- (+helm/grep-from-cwd (not recurse-p) query))
-
-;;;###autoload (autoload '+helm:ag-from-cwd "completion/helm/autoload/evil" nil t)
-(evil-define-command +helm:ag-from-cwd (query &optional recurse-p)
- "Ex interface for `+helm/ag-from-cwd'."
- (interactive "")
- (+helm/ag-from-cwd (not recurse-p) query))
-
-;;;###autoload (autoload '+helm:rg-from-cwd "completion/helm/autoload/evil" nil t)
-(evil-define-command +helm:rg-from-cwd (query &optional recurse-p)
- "Ex interface for `+helm/rg-from-cwd'."
- (interactive "")
- (+helm/rg-from-cwd (not recurse-p) query))
-
+ (+helm/project-search-from-cwd (not recurse-p) query))
;;;###autoload
(defun +helm--set-prompt-display (pos)
diff --git a/modules/completion/ivy/README.org b/modules/completion/ivy/README.org
index 4f2afbe7e..0bc51166f 100644
--- a/modules/completion/ivy/README.org
+++ b/modules/completion/ivy/README.org
@@ -17,7 +17,6 @@
- [[#jump-to-file-project-navigation][Jump-to-file project navigation]]
- [[#project-search--replace][Project search & replace]]
- [[#in-buffer-searching][In-buffer searching]]
- - [[#task-lookup][Task lookup]]
- [[#ivy-integration-for-various-completing-commands][Ivy integration for various completing commands]]
- [[#general][General]]
- [[#jump-to-files-buffers-or-projects][Jump to files, buffers or projects)]]
@@ -29,8 +28,7 @@
* Description
This module provides Ivy integration for a variety of Emacs commands, as well as
-a unified interface for project search and replace, powered by ag, rg,
-git-grep & grep (whichever is available).
+a unified interface for project search and replace, powered by ripgrep.
#+begin_quote
I prefer ivy over ido for its flexibility. I prefer ivy over helm because it's
@@ -41,7 +39,6 @@ lighter, simpler and faster in many cases.
+ =+fuzzy= Enables fuzzy completion for Ivy searches.
+ =+prescient= Enables prescient filtering and sorting for Ivy searches.
+ =+childframe= Causes Ivy to display in a floating child frame, above Emacs.
- *This requires GUI Emacs 26.1+*
+ =+icons= Enables file icons for switch-{buffer,project}/find-file counsel
commands.
@@ -67,32 +64,24 @@ lighter, simpler and faster in many cases.
command)
* Prerequisites
-This module optionally depends on one of:
+This module depends on:
+ [[https://github.com/BurntSushi/ripgrep][ripgrep]] (rg)
-+ [[https://github.com/ggreer/the_silver_searcher][the_silver_searcher]] (ag)
-
-Ripgrep is recommended, but the order of its results aren't deterministic and it
-doesn't support full PCRE (at the time of writing). The_silver_searcher is a
-good alternative if either of these bother you.
-
-If none of these are installed, file search commands will use git-grep (falling
-back to grep, otherwise).
** Install
*** MacOS
#+BEGIN_SRC sh
-brew install ripgrep the_silver_searcher
+brew install ripgrep
#+END_SRC
*** Arch Linux
#+BEGIN_SRC sh :dir /sudo::
-sudo pacman --needed --noconfirm -S ripgrep the_silver_searcher
+sudo pacman --needed --noconfirm -S ripgrep
#+END_SRC
*** openSUSE
#+BEGIN_SRC sh :dir /sudo::
-sudo zypper install ripgrep the_silver_searcher
+sudo zypper install ripgrep
#+END_SRC
* Features
@@ -112,8 +101,7 @@ https://assets.doomemacs.org/completion/ivy/projectile.png
| =SPC f f=, =SPC .= | Jump to file from current directory |
** Project search & replace
-This module provides interactive text search and replace using the first search
-program available on your system (rg, ag, git-grep or grep).
+This module provides interactive text search and replace using ripgrep.
| Keybind | Description |
|-----------+---------------------------------|
@@ -124,41 +112,23 @@ program available on your system (rg, ag, git-grep or grep).
https://assets.doomemacs.org/completion/ivy/search.png
-The ~+ivy-project-search-engines~ variable is consulted to determine which
-underlying program to check for (and in what order). It's default value is ~'(rg
-ag pt)~. If none of these are available, it will resort to =git-grep= (falling
-back to =grep= after that).
-
-To use a specific program, the following engine-specific commands are available
-(but not bound to any key by default) for searching from the project root or the
-current directory (recursively), respectively:
-
-+ ~+ivy/ag~ / ~+ivy/ag-from-cwd~
-+ ~+ivy/rg~ / ~+ivy/rg-from-cwd~
-+ ~+ivy/grep~ / ~+ivy/grep-from-cwd~
-
The universal argument (=SPC u= for evil users; =C-u= otherwise) changes the
behavior of these commands, instructing the underlying search engine to include
ignored files.
This module also provides Ex Commands for evil users:
-| Ex command | Description |
-|-----------------------+------------------------------------------------|
-| ~:ag[!] [QUERY]~ | Search project w/ ag[fn:1] |
-| ~:rg[!] [QUERY]~ | Search project w/ rg[fn:1] |
-| ~:grep[!] [QUERY]~ | Search project w/ git-grep/grep[fn:1] |
-| ~:agcwd[!] [QUERY]~ | Search this directory w/ the_silver_searcher |
-| ~:rgcwd[!] [QUERY]~ | Search this directory w/ ripgrep |
-| ~:grepcwd[!] [QUERY]~ | Search this directory w/ git-grep/grep |
+| Ex command | Description |
+|------------------------+------------------------------------------------------------------|
+| ~:pg[rep][!] [QUERY]~ | Search project (if ~!~, include hidden files) |
+| ~:pg[rep]d[!] [QUERY]~ | Search from current directory (if ~!~, don't search recursively) |
The optional BANG functions is equivalent to the universal argument for the
previous commands.
-----
-While in a search (e.g. invoked from ~+ivy:ag~ or ~:rg~), these extra
-keybindings are available to you:
+While in a search these extra keybindings are available to you:
| Keybind | Description |
|-----------+-----------------------------------------------|
@@ -176,22 +146,14 @@ https://assets.doomemacs.org/completion/ivy/search-replace.png
The =swiper= package provides an interactive buffer search powered by ivy. It
can be invoked with:
-+ =SPC s b=
++ =SPC s s=
++ =SPC s S= (uses thing at point as initial input)
+ ~:sw[iper] [QUERY]~
https://assets.doomemacs.org/completion/ivy/swiper.png
A wgrep buffer can be opened from swiper with =C-c C-e=.
-** Task lookup
-Some projects have TODO's and FIXME's littered across them. The ~+ivy/tasks~
-command allows you to search and jump to them. It can be invoked with:
-
-+ =SPC p t= (C-u = restrict search to current file)
-+ ~:todo[!]~ (BANG = restrict search to current file)
-
-https://assets.doomemacs.org/completion/ivy/todo.png
-
** Ivy integration for various completing commands
*** General
| Keybind | Description |
@@ -211,14 +173,16 @@ https://assets.doomemacs.org/completion/ivy/todo.png
| =SPC b B=, =SPC <= | Switch to buffer |
*** Search
-| Keybind | Description |
-|-----------+------------------------------------------|
-| =SPC s i= | Search for symbol in current buffer |
-| =SPC s I= | Search for symbol in all similar buffers |
-| =SPC s b= | Search the current buffer |
-| =SPC s p= | Search project |
-| =SPC s d= | Search this directory |
-| =SPC p t= | List all TODO/FIXMEs in project |
+| Keybind | Description |
+|-----------+-------------------------------------------|
+| =SPC p t= | List all TODO/FIXMEs in project |
+| =SPC s b= | Search the current buffer |
+| =SPC s d= | Search this directory |
+| =SPC s D= | Search another directory |
+| =SPC s i= | Search for symbol in current buffer |
+| =SPC s p= | Search project |
+| =SPC s P= | Search another project |
+| =SPC s s= | Search the current buffer (incrementally) |
* Configuration
** TODO Enable fuzzy/non-fuzzy search for specific commands
diff --git a/modules/completion/ivy/autoload/evil.el b/modules/completion/ivy/autoload/evil.el
index 43faf2a6b..8a8125536 100644
--- a/modules/completion/ivy/autoload/evil.el
+++ b/modules/completion/ivy/autoload/evil.el
@@ -1,55 +1,14 @@
;; completion/ivy/autoload/evil.el -*- lexical-binding: t; -*-
;;;###if (featurep! :editor evil)
-;;;###autoload (autoload '+ivy:swiper "completion/ivy/autoload/evil" nil t)
-(evil-define-command +ivy:swiper (&optional search)
- "Invoke `swiper' with SEARCH, otherwise with the symbol at point."
- (interactive "")
- (swiper search))
-
-;;;###autoload (autoload '+ivy:todo "completion/ivy/autoload/evil" nil t)
-(evil-define-command +ivy:todo (&optional bang)
- "An ex wrapper around `+ivy/tasks'."
- (interactive "")
- (+ivy/tasks bang))
-
-
-;;
-;; Project searching
-
-;;;###autoload (autoload '+ivy:grep "completion/ivy/autoload/evil" nil t)
-(evil-define-command +ivy:grep (all-files-p query)
- "Ex interface for `+ivy/grep'"
- (interactive "")
- (+ivy/grep all-files-p query))
-
-;;;###autoload (autoload '+ivy:ag "completion/ivy/autoload/evil" nil t)
-(evil-define-command +ivy:ag (all-files-p query)
- "Ex interface for `+ivy/ag'"
- (interactive "")
- (+ivy/ag all-files-p query))
-
-;;;###autoload (autoload '+ivy:rg "completion/ivy/autoload/evil" nil t)
-(evil-define-command +ivy:rg (all-files-p query)
- "Ex interface for `+ivy/rg'"
- (interactive "")
- (+ivy/rg all-files-p query))
-
-
-;;;###autoload (autoload '+ivy:grep-from-cwd "completion/ivy/autoload/evil" nil t)
-(evil-define-command +ivy:grep-from-cwd (query &optional recurse-p)
- "Ex interface for `+ivy/grep-from-cwd'."
+;;;###autoload (autoload '+ivy:project-search "completion/ivy/autoload/evil" nil t)
+(evil-define-command +ivy:project-search (query &optional all-files-p)
+ "Ex interface for `+ivy/project-search'."
(interactive "")
- (+ivy/grep-from-cwd (not recurse-p) query))
+ (+ivy/project-search all-files-p query))
-;;;###autoload (autoload '+ivy:ag-from-cwd "completion/ivy/autoload/evil" nil t)
-(evil-define-command +ivy:ag-from-cwd (query &optional recurse-p)
- "Ex interface for `+ivy/ag-from-cwd'."
+;;;###autoload (autoload '+ivy:project-search-from-cwd "completion/ivy/autoload/evil" nil t)
+(evil-define-command +ivy:project-search-from-cwd (query &optional recurse-p)
+ "Ex interface for `+ivy/project-search-from-cwd'."
(interactive "")
- (+ivy/ag-from-cwd (not recurse-p) query))
-
-;;;###autoload (autoload '+ivy:rg-from-cwd "completion/ivy/autoload/evil" nil t)
-(evil-define-command +ivy:rg-from-cwd (query &optional recurse-p)
- "Ex interface for `+ivy/rg-from-cwd'."
- (interactive "")
- (+ivy/rg-from-cwd (not recurse-p) query))
+ (+ivy/project-search-from-cwd (not recurse-p) query))
diff --git a/modules/editor/evil/+commands.el b/modules/editor/evil/+commands.el
index c1a61fc52..56f36286b 100644
--- a/modules/editor/evil/+commands.el
+++ b/modules/editor/evil/+commands.el
@@ -57,25 +57,19 @@
(evil-ex-define-cmd "cd" #'+evil:cd)
(evil-ex-define-cmd "pwd" #'+evil:pwd)
+(evil-define-command +evil:swiper (&optional search)
+ "Invoke `swiper' with SEARCH, otherwise with the symbol at point."
+ (interactive "")
+ (swiper-isearch search))
+(evil-ex-define-cmd "sw[iper]" #'+evil:swiper)
+
(cond ((featurep! :completion ivy)
- (evil-ex-define-cmd "ag" #'+ivy:ag)
- (evil-ex-define-cmd "agc[wd]" #'+ivy:ag-from-cwd)
- (evil-ex-define-cmd "rg" #'+ivy:rg)
- (evil-ex-define-cmd "rgc[wd]" #'+ivy:rg-from-cwd)
- (evil-ex-define-cmd "grep" #'+ivy:grep)
- (evil-ex-define-cmd "grepc[wd]" #'+ivy:grep-from-cwd)
- (evil-ex-define-cmd "sw[iper]" #'+ivy:swiper)
- (evil-ex-define-cmd "todo" #'+ivy:todo))
+ (evil-ex-define-cmd "pg[rep]" #'+ivy:project-search)
+ (evil-ex-define-cmd "pg[grep]d" #'+ivy:project-search-from-cwd))
((featurep! :completion helm)
- (evil-ex-define-cmd "ag" #'+helm:ag)
- (evil-ex-define-cmd "agc[wd]" #'+helm:ag-from-cwd)
- (evil-ex-define-cmd "rg" #'+helm:rg)
- (evil-ex-define-cmd "rgc[wd]" #'+helm:rg-from-cwd)
- (evil-ex-define-cmd "grep" #'+helm:grep)
- (evil-ex-define-cmd "grepc[wd]" #'+helm:grep-from-cwd)
- ;; (evil-ex-define-cmd "todo" #'+helm:todo) TODO implement `+helm:todo'
- ))
+ (evil-ex-define-cmd "pg[rep]" #'+helm:project-search)
+ (evil-ex-define-cmd "pg[grep]d" #'+helm:project-search-from-cwd)))
;;; Project tools
(evil-ex-define-cmd "compile" #'+evil:compile)