mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 01:34:21 +00:00
* lisp/icomplete.el: Fix in-buffer completion.
(icomplete-force-complete-and-exit, icomplete-force-complete): Use
'icomplete--field-beg/end' when not in the minibuffer to not erase
the current buffer. Also disable 'completion-in-region-mode' instead
of calling 'exit-minibuffer' (bug#45764, bug#51575, bug#61479).
Backport:
(cherry picked from commit a7a984c0eb)
This commit is contained in:
parent
07f3236133
commit
ef72e99e86
1 changed files with 17 additions and 3 deletions
|
|
@ -215,15 +215,29 @@ the default otherwise."
|
|||
;; calculated, This causes the first cached completion to
|
||||
;; be taken (i.e. the one that the user sees highlighted)
|
||||
completion-all-sorted-completions)
|
||||
(minibuffer-force-complete-and-exit)
|
||||
(if (window-minibuffer-p)
|
||||
(minibuffer-force-complete-and-exit)
|
||||
(minibuffer-force-complete (icomplete--field-beg)
|
||||
(icomplete--field-end)
|
||||
'dont-cycle)
|
||||
(completion-in-region-mode -1))
|
||||
;; Otherwise take the faster route...
|
||||
(minibuffer-complete-and-exit)))
|
||||
(if (window-minibuffer-p)
|
||||
(minibuffer-complete-and-exit)
|
||||
(completion-complete-and-exit
|
||||
(icomplete--field-beg)
|
||||
(icomplete--field-end)
|
||||
(lambda () (completion-in-region-mode -1))))))
|
||||
|
||||
(defun icomplete-force-complete ()
|
||||
"Complete the icomplete minibuffer."
|
||||
(interactive)
|
||||
;; We're not at all interested in cycling here (bug#34077).
|
||||
(minibuffer-force-complete nil nil 'dont-cycle))
|
||||
(if (window-minibuffer-p)
|
||||
(minibuffer-force-complete nil nil 'dont-cycle)
|
||||
(minibuffer-force-complete (icomplete--field-beg)
|
||||
(icomplete--field-end)
|
||||
'dont-cycle)))
|
||||
|
||||
;; Apropos `icomplete-scroll', we implement "scrolling icomplete"
|
||||
;; within classic icomplete, which is "rotating", by contrast.
|
||||
|
|
|
|||
Loading…
Reference in a new issue