Skip to content

Commit df7367c

Browse files
kenkangxgwesmile13241324
authored andcommitted
[compleseus] Devide search functions into 2 intial input variants
Each consult search function now comes with two variants regarding initial input. They all initialize the input with region content if a region is active, but differ on whether an empty string or thing-at-point if a region is not active. This change tries to mimic the search behaviors configured in helm layers. Thus the default empty variants are bound to lowercase keys, and the default thing-at-point variants are bound to uppercase keys.
1 parent 03dfd17 commit df7367c

File tree

2 files changed

+49
-28
lines changed

2 files changed

+49
-28
lines changed

layers/+completion/compleseus/funcs.el

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -58,47 +58,70 @@ non-nil."
5858
consult--source-project-buffer
5959
consult--source-project-recent-file)))
6060

61-
62-
(defun spacemacs/compleseus-search (use-initial-input initial-directory)
63-
(let* ((initial-input (if use-initial-input
64-
(rxt-quote-pcre
65-
(if (region-active-p)
66-
(buffer-substring-no-properties
67-
(region-beginning) (region-end))
68-
(or (thing-at-point 'symbol t) "")))
69-
""))
61+
(defun spacemacs/initial-search-input (&optional force-input)
62+
"Get initial input from region for consult search functions. If region is not
63+
active and `force-input' is not nil, `thing-at-point' will be returned."
64+
(if (region-active-p)
65+
(buffer-substring-no-properties
66+
(region-beginning) (region-end))
67+
(if force-input (thing-at-point 'symbol t) ""))
68+
)
69+
70+
(defun spacemacs/compleseus-search (force-initial-input initial-directory)
71+
(let* ((initial-input (rxt-quote-pcre
72+
(spacemacs/initial-search-input force-initial-input)))
7073
(default-directory
71-
(or initial-directory (read-directory-name "Start from directory: "))))
74+
(or initial-directory (read-directory-name "Start from directory: "))))
7275
(consult-ripgrep default-directory initial-input)))
7376

7477
(defun spacemacs/consult-line ()
7578
(interactive)
7679
(consult-line
77-
(if (region-active-p)
78-
(buffer-substring-no-properties
79-
(region-beginning) (region-end))
80-
(thing-at-point 'symbol t))))
80+
(spacemacs/initial-search-input)))
81+
82+
(defun spacemacs/consult-line-symbol ()
83+
(interactive)
84+
(consult-line
85+
(spacemacs/initial-search-input t)))
8186

8287
(defun spacemacs/consult-line-multi ()
8388
(interactive)
8489
(consult-line-multi
8590
nil
86-
(if (region-active-p)
87-
(buffer-substring-no-properties
88-
(region-beginning) (region-end))
89-
(thing-at-point 'symbol t))))
91+
(spacemacs/initial-search-input)))
92+
93+
(defun spacemacs/consult-line-multi-symbol ()
94+
(interactive)
95+
(consult-line-multi
96+
nil
97+
(spacemacs/initial-search-input t)))
9098

9199
(defun spacemacs/compleseus-search-auto ()
100+
"Choose folder to search."
101+
(interactive)
102+
(spacemacs/compleseus-search nil nil))
103+
104+
(defun spacemacs/compleseus-search-auto-symbol ()
92105
"Choose folder to search."
93106
(interactive)
94107
(spacemacs/compleseus-search t nil))
95108

96109
(defun spacemacs/compleseus-search-dir ()
110+
"Search current folder."
111+
(interactive)
112+
(spacemacs/compleseus-search nil default-directory))
113+
114+
(defun spacemacs/compleseus-search-dir-symbol ()
97115
"Search current folder."
98116
(interactive)
99117
(spacemacs/compleseus-search t default-directory))
100118

101119
(defun spacemacs/compleseus-search-projectile ()
120+
"Search in current project."
121+
(interactive)
122+
(spacemacs/compleseus-search nil (projectile-project-root)))
123+
124+
(defun spacemacs/compleseus-search-projectile-symbol ()
102125
"Search in current project."
103126
(interactive)
104127
(spacemacs/compleseus-search t (projectile-project-root)))
@@ -108,11 +131,6 @@ non-nil."
108131
(interactive)
109132
(spacemacs/compleseus-search-projectile))
110133

111-
(defun spacemacs/compleseus-search-projectile-auto ()
112-
"Search in current project."
113-
(interactive)
114-
(spacemacs/compleseus-search nil (projectile-project-root)))
115-
116134
(defun spacemacs/compleseus-search-from (input)
117135
"Embark action to start ripgrep search from candidate's directory."
118136
(interactive "s")

layers/+completion/compleseus/packages.el

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
dotspacemacs-emacs-command-key 'execute-extended-command
142142
"#" #'consult-register
143143
"*" #'spacemacs/compleseus-search-default
144-
"/" #'spacemacs/compleseus-search-projectile-auto
144+
"/" #'spacemacs/compleseus-search-projectile
145145
"bb" #'spacemacs/compleseus-switch-to-buffer
146146
"bB" #'consult-buffer
147147
"fb" #'consult-bookmark
@@ -151,16 +151,19 @@
151151
"hm" #'consult-man
152152
"jm" #'consult-mark
153153
"jM" #'consult-global-mark
154-
"sb" #'consult-line-multi
155-
"sB" #'spacemacs/consult-line-multi
156-
"ss" #'consult-line
157-
"sS" #'spacemacs/consult-line
154+
"sb" #'spacemacs/consult-line-multi
155+
"sB" #'spacemacs/consult-line-multi-symbol
156+
"ss" #'spacemacs/consult-line
157+
"sS" #'spacemacs/consult-line-symbol
158158
"sk" #'consult-keep-lines
159159
"rc" #'consult-complex-command
160160
"su" #'consult-focus-lines
161161
"sf" #'spacemacs/compleseus-search-auto
162+
"sF" #'spacemacs/compleseus-search-auto-symbol
162163
"sd" #'spacemacs/compleseus-search-dir
164+
"sD" #'spacemacs/compleseus-search-dir-symbol
163165
"sp" #'spacemacs/compleseus-search-projectile
166+
"sP" #'spacemacs/compleseus-search-projectile-symbol
164167
"ry" #'consult-yank-from-kill-ring
165168
"Ts" #'consult-theme)
166169

0 commit comments

Comments
 (0)