[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/vertico f132f1b 10/48: improve prompt selection, add mi
From: |
Stefan Monnier |
Subject: |
[elpa] externals/vertico f132f1b 10/48: improve prompt selection, add minicomp--goto |
Date: |
Mon, 5 Apr 2021 10:54:40 -0400 (EDT) |
branch: externals/vertico
commit f132f1b6cf6203d7020560af0d576ade4d5a1cfe
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
improve prompt selection, add minicomp--goto
---
minicomp.el | 40 +++++++++++++++++++++++-----------------
1 file changed, 23 insertions(+), 17 deletions(-)
diff --git a/minicomp.el b/minicomp.el
index 6995ee7..5b8f85c 100644
--- a/minicomp.el
+++ b/minicomp.el
@@ -272,7 +272,7 @@
ann-candidates (cdr ann-candidates)
index (1+ index)))
(put-text-property 0 1 'cursor t displayed)
- (if (< minicomp--index 0)
+ (if (and (< minicomp--index 0) (not (minicomp--require-match)))
(add-text-properties (minibuffer-prompt-end) (point-max) '(face
minicomp-current))
(remove-text-properties (minibuffer-prompt-end) (point-max) '(face nil)))
(move-overlay minicomp--count-ov (point-min) (point-min))
@@ -291,43 +291,49 @@
(minicomp--recompute input metadata))
(minicomp--display input metadata)))
+(defun minicomp--require-match ()
+ "Match is required."
+ (not (memq minibuffer--require-match '(nil confirm
confirm-after-completion))))
+
+(defun minicomp--goto (index)
+ "Go to INDEX."
+ (setq minicomp--keep t
+ minicomp--index
+ (max
+ (if (and (minicomp--require-match) (> minicomp--total 0))
+ 0
+ -1)
+ (min index (- minicomp--total 1)))))
+
(defun minicomp-beginning-of-buffer ()
"Go to first candidate."
(interactive)
- (setq minicomp--index (if (> minicomp--total 0) 0 -1)
- minicomp--keep t))
+ (minicomp--goto 0))
(defun minicomp-end-of-buffer ()
"Go to last candidate."
(interactive)
- (setq minicomp--index (- minicomp--total 1)
- minicomp--keep t))
+ (minicomp--goto (- minicomp--total 1)))
(defun minicomp-scroll-down ()
"Go back by one page."
(interactive)
- (setq minicomp--keep t)
- (when (>= minicomp--index 0)
- (setq minicomp--index (max 0 (- minicomp--index minicomp-count)))))
+ (minicomp--goto (max 0 (- minicomp--index minicomp-count))))
(defun minicomp-scroll-up ()
"Go forward by one page."
(interactive)
- (setq minicomp--keep t)
- (when (>= minicomp--index 0)
- (setq minicomp--index (min (- minicomp--total 1) (+ minicomp--index
minicomp-count)))))
+ (minicomp--goto (+ minicomp--index minicomp-count)))
(defun minicomp-next ()
"Go to next candidate."
(interactive)
- (setq minicomp--index (min (1+ minicomp--index) (- minicomp--total 1))
- minicomp--keep t))
+ (minicomp--goto (1+ minicomp--index)))
(defun minicomp-previous ()
"Go to previous candidate."
(interactive)
- (setq minicomp--index (max -1 (- minicomp--index 1))
- minicomp--keep t))
+ (minicomp--goto (- minicomp--index 1)))
(defun minicomp-exit ()
"Exit minibuffer with current candidate."
@@ -336,13 +342,13 @@
(cond
((let ((input (minibuffer-contents-no-properties)))
(or (not minibuffer--require-match)
- (eq minibuffer-completion-confirm 'confirm-after-completion)
+ (eq minibuffer--require-match 'confirm-after-completion)
(equal "" input)
(test-completion input
minibuffer-completion-table
minibuffer-completion-predicate)))
(exit-minibuffer))
- ((eq minibuffer-completion-confirm 'confirm)
+ ((eq minibuffer--require-match 'confirm)
(when (eq (read-char "Confirm") 13)
(exit-minibuffer)))
(t (message "Match required"))))
- [elpa] branch externals/vertico created (now 1a9b1b2), Stefan Monnier, 2021/04/05
- [elpa] externals/vertico 3257082 07/48: always keep index when explicitly navigating, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico e2472d1 13/48: simplify, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico 9355d05 01/48: minicomp - initial commit, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico 933e938 06/48: Compute history hash table only once, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico f132f1b 10/48: improve prompt selection, add minicomp--goto,
Stefan Monnier <=
- [elpa] externals/vertico 9b81d8d 08/48: remove ./ and ../ from file completion candidates, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico 5bbddb0 03/48: add while-no-input-ignore-events, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico 4ce7c8d 11/48: use seq-subseq, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico f558f53 04/48: extract minicomp--pred, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico 9db7c78 20/48: add minicomp-count-format, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico 245944a 21/48: remap previous/next-line, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico 7fbaeaf 15/48: Add sorting by history for files, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico c2bfea2 17/48: use candidate returned from affixation function, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico bafee15 19/48: add minicomp-exit-input, Stefan Monnier, 2021/04/05
- [elpa] externals/vertico e8a3e96 16/48: Minor optimization, Stefan Monnier, 2021/04/05