mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-27 19:31:38 +00:00
(comint-displayed-dynamic-completions): New variable.
(comint-dynamic-list-completions): Be more careful about choosing when to scroll an existing completions window.
This commit is contained in:
parent
95b5b93393
commit
9669f2d6d5
@ -1,3 +1,9 @@
|
||||
2002-07-04 Miles Bader <miles@gnu.org>
|
||||
|
||||
* comint.el (comint-displayed-dynamic-completions): New variable.
|
||||
(comint-dynamic-list-completions): Be more careful about choosing
|
||||
when to scroll an existing completions window.
|
||||
|
||||
2002-07-03 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* net/tramp.el (tramp-handle-ange-ftp): Move interactive spec
|
||||
|
@ -2798,13 +2798,29 @@ See also `comint-dynamic-complete-filename'."
|
||||
(mapcar 'comint-quote-filename completions)))))
|
||||
|
||||
|
||||
;; This is bound locally in a *Completions* buffer to the list of
|
||||
;; completions displayed, and is used to detect the case where the same
|
||||
;; command is repeatedly used without the set of completions changing.
|
||||
(defvar comint-displayed-dynamic-completions nil)
|
||||
|
||||
(defun comint-dynamic-list-completions (completions)
|
||||
"List in help buffer sorted COMPLETIONS.
|
||||
Typing SPC flushes the help buffer."
|
||||
(let ((window (get-buffer-window "*Completions*")))
|
||||
(if (and (eq last-command this-command)
|
||||
window (window-live-p window) (window-buffer window)
|
||||
(buffer-name (window-buffer window)))
|
||||
(buffer-name (window-buffer window))
|
||||
;; The above tests are not sufficient to detect the case where we
|
||||
;; should scroll, because the top-level interactive command may
|
||||
;; not have displayed a completions window the last time it was
|
||||
;; invoked, and there may be such a window left over from a
|
||||
;; previous completion command with a different set of
|
||||
;; completions. To detect that case, we also test that the set
|
||||
;; of displayed completions is in fact the same as the previously
|
||||
;; displayed set.
|
||||
(equal completions
|
||||
(buffer-local-value 'comint-displayed-dynamic-completions
|
||||
(window-buffer window))))
|
||||
;; If this command was repeated, and
|
||||
;; there's a fresh completion window with a live buffer,
|
||||
;; and this command is repeated, scroll that window.
|
||||
@ -2822,6 +2838,9 @@ Typing SPC flushes the help buffer."
|
||||
(let (key first)
|
||||
(if (save-excursion
|
||||
(set-buffer (get-buffer "*Completions*"))
|
||||
(set (make-local-variable
|
||||
'comint-displayed-dynamic-completions)
|
||||
completions)
|
||||
(setq key (read-key-sequence nil)
|
||||
first (aref key 0))
|
||||
(and (consp first) (consp (event-start first))
|
||||
|
Loading…
Reference in New Issue
Block a user