New command icomplete-force-complete-and-exit
* lisp/icomplete.el (icomplete-force-complete-and-exit): New command (http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00461.html) (http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00516.html). (icomplete-minibuffer-map): Bind C-j to it. (icomplete-forward-completions, icomplete-backward-completions): Mention the new command in the docstring. * lisp/minibuffer.el (minibuffer-force-complete-and-exit): Revert the previous fix for bug#17545.
This commit is contained in:
parent
e0fec8d3ca
commit
08033db08b
2 changed files with 19 additions and 13 deletions
|
@ -149,16 +149,26 @@ icompletion is occurring."
|
|||
(defvar icomplete-minibuffer-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map [?\M-\t] 'minibuffer-force-complete)
|
||||
(define-key map [?\C-j] 'minibuffer-force-complete-and-exit)
|
||||
(define-key map [?\C-j] 'icomplete-force-complete-and-exit)
|
||||
(define-key map [?\C-.] 'icomplete-forward-completions)
|
||||
(define-key map [?\C-,] 'icomplete-backward-completions)
|
||||
map)
|
||||
"Keymap used by `icomplete-mode' in the minibuffer.")
|
||||
|
||||
(defun icomplete-force-complete-and-exit ()
|
||||
"Complete the minibuffer and exit.
|
||||
Use the first of the matches if there are any displayed, and use
|
||||
the default otherwise."
|
||||
(interactive)
|
||||
(if (or icomplete-show-matches-on-no-input
|
||||
(> (icomplete--field-end) (icomplete--field-beg)))
|
||||
(minibuffer-force-complete-and-exit)
|
||||
(minibuffer-complete-and-exit)))
|
||||
|
||||
(defun icomplete-forward-completions ()
|
||||
"Step forward completions by one entry.
|
||||
Second entry becomes the first and can be selected with
|
||||
`minibuffer-force-complete-and-exit'."
|
||||
`icomplete-force-complete-and-exit'."
|
||||
(interactive)
|
||||
(let* ((beg (icomplete--field-beg))
|
||||
(end (icomplete--field-end))
|
||||
|
@ -171,7 +181,7 @@ Second entry becomes the first and can be selected with
|
|||
(defun icomplete-backward-completions ()
|
||||
"Step backward completions by one entry.
|
||||
Last entry becomes the first and can be selected with
|
||||
`minibuffer-force-complete-and-exit'."
|
||||
`icomplete-force-complete-and-exit'."
|
||||
(interactive)
|
||||
(let* ((beg (icomplete--field-beg))
|
||||
(end (icomplete--field-end))
|
||||
|
|
|
@ -1241,16 +1241,12 @@ scroll the window of possible completions."
|
|||
(defun minibuffer-force-complete-and-exit ()
|
||||
"Complete the minibuffer with first of the matches and exit."
|
||||
(interactive)
|
||||
(if (and (eq (minibuffer-prompt-end) (point-max))
|
||||
minibuffer-default)
|
||||
;; Use the provided default if there's one (bug#17545).
|
||||
(minibuffer-complete-and-exit)
|
||||
(minibuffer-force-complete)
|
||||
(completion--complete-and-exit
|
||||
(minibuffer-prompt-end) (point-max) #'exit-minibuffer
|
||||
;; If the previous completion completed to an element which fails
|
||||
;; test-completion, then we shouldn't exit, but that should be rare.
|
||||
(lambda () (minibuffer-message "Incomplete")))))
|
||||
(minibuffer-force-complete)
|
||||
(completion--complete-and-exit
|
||||
(minibuffer-prompt-end) (point-max) #'exit-minibuffer
|
||||
;; If the previous completion completed to an element which fails
|
||||
;; test-completion, then we shouldn't exit, but that should be rare.
|
||||
(lambda () (minibuffer-message "Incomplete"))))
|
||||
|
||||
(defun minibuffer-force-complete (&optional start end)
|
||||
"Complete the minibuffer to an exact match.
|
||||
|
|
Loading…
Add table
Reference in a new issue