summaryrefslogtreecommitdiff
path: root/corfu.el
diff options
context:
space:
mode:
authorDaniel Mendler <mail@daniel-mendler.de>2024-11-05 14:28:28 +0100
committerDaniel Mendler <mail@daniel-mendler.de>2024-11-05 14:28:28 +0100
commitac505abdc0d20eba2d1222f8552e4422338c2843 (patch)
tree6d917d6a01c48e712611b670bfdc2894c0966931 /corfu.el
parent8902eebb3c5994ade298be773730b19ffad9a78b (diff)
corfu-insert-separator: Jump back to prompt if a candidate is previewed
Diffstat (limited to 'corfu.el')
-rw-r--r--corfu.el10
1 files changed, 8 insertions, 2 deletions
diff --git a/corfu.el b/corfu.el
index c5a3729..2de8113 100644
--- a/corfu.el
+++ b/corfu.el
@@ -1233,9 +1233,15 @@ there hasn't been any input, then quit."
(defun corfu-insert-separator ()
"Insert a separator character, inhibiting quit on completion boundary.
-See `corfu-separator' for more details."
+If the currently selected candidate is previewed, jump to the input
+prompt instead. See `corfu-separator' for more details."
(interactive)
- (insert corfu-separator))
+ (if (not (corfu--preview-current-p))
+ (insert corfu-separator)
+ (corfu--goto -1)
+ (unless (or (= (car completion-in-region--data) (point))
+ (= (char-before) corfu-separator))
+ (insert corfu-separator))))
(defun corfu-next (&optional n)
"Go forward N candidates."