diff --git a/Cask b/Cask index 1e2506221..adc968de3 100644 --- a/Cask +++ b/Cask @@ -72,6 +72,7 @@ (depends-on "fancy-narrow") (depends-on "goto-last-change") (depends-on "imenu-list") +(depends-on "pcre2el") (depends-on "rotate-text" :git "https://github.com/debug-ito/rotate-text.el") (depends-on "smart-forward") (depends-on "smartparens") diff --git a/core/core-editor.el b/core/core-editor.el index 433c42fed..3a6a5322e 100644 --- a/core/core-editor.el +++ b/core/core-editor.el @@ -215,6 +215,8 @@ :n [escape] 'reb-quit :n [backtab] 'reb-change-syntax)) +(use-package pcre2el :commands (rxt-quote-pcre)) + (use-package rotate-text :commands (rotate-text rotate-text-backward) :config (push '("true" "false") rotate-text-words)) diff --git a/core/defuns/defuns-ivy.el b/core/defuns/defuns-ivy.el index cbd4a667a..64e1b76a8 100644 --- a/core/defuns/defuns-ivy.el +++ b/core/defuns/defuns-ivy.el @@ -32,6 +32,8 @@ buffers." (interactive "") (swiper (or search (thing-at-point 'symbol)))) +(defvar doom-ivy-ag-last-search nil) + ;;;###autoload (autoload 'doom:ivy-ag-search "defuns-ivy" nil t) (evil-define-operator doom:ivy-ag-search (beg end search regex-p &optional dir) "Preform a counsel search with SEARCH. If SEARCH is nil and in visual mode, @@ -44,7 +46,11 @@ DIR specifies the default-directory from which ag is run." (let ((counsel-ag-base-command (format "ag --nocolor --nogroup %s %%s -- ." (if regex-p "-Q" ""))) - (search (or search (and beg end (buffer-substring-no-properties beg end))))) + (search (or search + (and (evil-visual-state-p) + (and beg end (rxt-quote-pcre (buffer-substring-no-properties beg end)))) + doom-ivy-ag-last-search))) + (setq doom-ivy-ag-last-search search) (counsel-ag search (or dir (f-slash (doom/project-root)))))) ;;;###autoload (autoload 'doom:ivy-ag-search-cwd "defuns-ivy" nil t)