Mercurial > emacs
changeset 66114:13abee3a9bc6
* message.el (message-expand-group): Pass the common
prefix substring of completion to `display-completion-list'.
* mh-comp.el (mh-complete-word): Pass the common
prefix substring of completion to `display-completion-list'.
* dabbrev.el (dabbrev-completion): Pass the common
prefix substring of completion to `display-completion-list'.
* filecache.el (file-cache-minibuffer-complete)
(file-cache-complete): Ditto.
* tempo.el (tempo-display-completions): Ditto.
* wid-edit.el (widget-file-complete, widget-color-complete): Ditto.
* emacs-lisp/lisp.el (lisp-complete-symbol): Ditto.
* eshell/em-hist.el (eshell-list-history): Ditto.
* mail/mailabbrev.el (mail-abbrev-complete-alias): Ditto.
* progmodes/etags.el (complete-tag): Ditto.
* progmodes/make-mode.el (makefile-complete): Ditto.
* progmodes/meta-mode.el (meta-complete-symbol): Ditto.
* progmodes/octave-mod.el (octave-complete-symbol): Ditto.
* progmodes/pascal.el (pascal-complete-word)
(pascal-show-completions): Ditto.
* textmodes/bibtex.el (bibtex-complete-internal): Ditto.
* simple.el (completion-common-substring): New variable.
(completion-setup-function): Use `completion-common-substring'
to put faces.
* minibuf.c (Fdisplay_completion_list): Add new optional
argument COMMON_SUBSTRING. Bind `completion-common-substring'
to the optional argument during running `completion-setup-hook'.
author | Masatake YAMATO <jet@gyve.org> |
---|---|
date | Sun, 16 Oct 2005 09:31:48 +0000 |
parents | bfb1c3364c23 |
children | 8e27f6e245f1 |
files | lisp/ChangeLog lisp/dabbrev.el lisp/emacs-lisp/lisp.el lisp/eshell/em-hist.el lisp/filecache.el lisp/gnus/ChangeLog lisp/gnus/message.el lisp/mail/mailabbrev.el lisp/mh-e/ChangeLog lisp/mh-e/mh-comp.el lisp/progmodes/etags.el lisp/progmodes/make-mode.el lisp/progmodes/meta-mode.el lisp/progmodes/octave-mod.el lisp/progmodes/pascal.el lisp/simple.el lisp/tempo.el lisp/textmodes/bibtex.el lisp/wid-edit.el src/ChangeLog src/minibuf.c |
diffstat | 21 files changed, 131 insertions(+), 33 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/ChangeLog Sun Oct 16 09:31:48 2005 +0000 @@ -1,3 +1,44 @@ +2005-10-16 Masatake YAMATO <jet@gyve.org> + + * dabbrev.el (dabbrev-completion): Pass the common + prefix substring of completion to `display-completion-list'. + + * filecache.el (file-cache-minibuffer-complete) + (file-cache-complete): Ditto. + + * tempo.el (tempo-display-completions): Ditto. + + * wid-edit.el (widget-file-complete, widget-color-complete): Ditto. + + * emacs-lisp/lisp.el (lisp-complete-symbol): Ditto. + + * eshell/em-hist.el (eshell-list-history): Ditto. + + * mail/mailabbrev.el (mail-abbrev-complete-alias): Ditto. + + * mail/mailalias.el (mail-complete): Ditto. + + * progmodes/etags.el (complete-tag): Ditto. + + * progmodes/make-mode.el (makefile-complete): Ditto. + + * progmodes/meta-mode.el (meta-complete-symbol): Ditto. + + * progmodes/octave-mod.el (octave-complete-symbol): Ditto. + + * progmodes/pascal.el (pascal-complete-word) + (pascal-show-completions): Ditto. + + * progmodes/python.el (python-complete-symbol): Ditto. + + * textmodes/bibtex.el (bibtex-complete-internal): Ditto. + + * textmodes/org.el (org-complete): Ditto. + + * simple.el (completion-common-substring): New variable. + (completion-setup-function): Use `completion-common-substring' + to put faces. + 2005-10-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> * term/mac-win.el: Apply 2005-10-09 change for term/x-win.el.
--- a/lisp/dabbrev.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/dabbrev.el Sun Oct 16 09:31:48 2005 +0000 @@ -461,7 +461,8 @@ ;; * String is a common substring completion already. Make list. (message "Making completion list...") (with-output-to-temp-buffer "*Completions*" - (display-completion-list (all-completions init my-obarray))) + (display-completion-list (all-completions init my-obarray) + init)) (message "Making completion list...done"))) (and (window-minibuffer-p (selected-window)) (message nil))))
--- a/lisp/emacs-lisp/lisp.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/emacs-lisp/lisp.el Sun Oct 16 09:31:48 2005 +0000 @@ -586,7 +586,7 @@ (setq list (cdr list))) (setq list (nreverse new)))) (with-output-to-temp-buffer "*Completions*" - (display-completion-list list))) + (display-completion-list list pattern))) (message "Making completion list...%s" "done"))))))) ;;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e
--- a/lisp/eshell/em-hist.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/eshell/em-hist.el Sun Oct 16 09:31:48 2005 +0000 @@ -507,7 +507,7 @@ ;; Change "completion" to "history reference" ;; to make the display accurate. (with-output-to-temp-buffer history-buffer - (display-completion-list history) + (display-completion-list history prefix) (set-buffer history-buffer) (forward-line 3) (while (search-backward "completion" nil 'move)
--- a/lisp/filecache.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/filecache.el Sun Oct 16 09:31:48 2005 +0000 @@ -607,7 +607,7 @@ completion-setup-hook))) ) (with-output-to-temp-buffer file-cache-completions-buffer - (display-completion-list completion-list)) + (display-completion-list completion-list string)) ) ) (setq file-cache-string (file-cache-file-name completion-string)) @@ -700,7 +700,7 @@ ) (t (with-output-to-temp-buffer "*Completions*" - (display-completion-list all)) + (display-completion-list all pattern)) )) ))
--- a/lisp/gnus/ChangeLog Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/gnus/ChangeLog Sun Oct 16 09:31:48 2005 +0000 @@ -1,3 +1,8 @@ +2005-10-16 Masatake YAMATO <jet@gyve.org> + + * message.el (message-expand-group): Pass the common + prefix substring of completion to `display-completion-list'. + 2005-10-09 Daniel Brockman <daniel@brockman.se> * format-spec.el (format-spec): Propagate text properties of % spec.
--- a/lisp/gnus/message.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/gnus/message.el Sun Oct 16 09:31:48 2005 +0000 @@ -6691,7 +6691,7 @@ (let ((buffer-read-only nil)) (erase-buffer) (let ((standard-output (current-buffer))) - (display-completion-list (sort completions 'string<))) + (display-completion-list (sort completions 'string<) string)) (goto-char (point-min)) (delete-region (point) (progn (forward-line 3) (point))))))))))
--- a/lisp/mail/mailabbrev.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/mail/mailabbrev.el Sun Oct 16 09:31:48 2005 +0000 @@ -587,7 +587,8 @@ (prog2 (message "Making completion list...") (all-completions alias mail-abbrevs) - (message "Making completion list...done")))))))) + (message "Making completion list...done")) + alias)))))) (defun mail-abbrev-next-line (&optional arg) "Expand any mail abbrev, then move cursor vertically down ARG lines.
--- a/lisp/mh-e/ChangeLog Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/mh-e/ChangeLog Sun Oct 16 09:31:48 2005 +0000 @@ -1,3 +1,8 @@ +2005-10-16 Masatake YAMATO <jet@gyve.org> + + * mh-comp.el (mh-complete-word): Pass the common + prefix substring of completion to `display-completion-list'. + 2005-10-15 Satyaki Das <satyaki@theforce.stanford.edu> * mh-init.el (mh-image-load-path-called-flag): New variable which
--- a/lisp/mh-e/mh-comp.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/mh-e/mh-comp.el Sun Oct 16 09:31:48 2005 +0000 @@ -1650,7 +1650,8 @@ ((stringp completion) (if (equal word completion) (with-output-to-temp-buffer completions-buffer - (display-completion-list (all-completions word choices))) + (display-completion-list (all-completions word choices) + word)) (ignore-errors (kill-buffer completions-buffer)) (delete-region begin end)
--- a/lisp/progmodes/etags.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/progmodes/etags.el Sun Oct 16 09:31:48 2005 +0000 @@ -2015,7 +2015,8 @@ (message "Making completion list...") (with-output-to-temp-buffer "*Completions*" (display-completion-list - (all-completions pattern 'tags-complete-tag nil))) + (all-completions pattern 'tags-complete-tag nil) + pattern)) (message "Making completion list...%s" "done"))))) (dolist (x '("^No tags table in use; use .* to select one$"
--- a/lisp/progmodes/make-mode.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/progmodes/make-mode.el Sun Oct 16 09:31:48 2005 +0000 @@ -1176,7 +1176,7 @@ (message "Making completion list...") (let ((list (all-completions try table))) (with-output-to-temp-buffer "*Completions*" - (display-completion-list list))) + (display-completion-list list try))) (message "Making completion list...done"))))))
--- a/lisp/progmodes/meta-mode.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/progmodes/meta-mode.el Sun Oct 16 09:31:48 2005 +0000 @@ -509,7 +509,7 @@ (message "Making completion list...") (let ((list (all-completions symbol list nil))) (with-output-to-temp-buffer "*Completions*" - (display-completion-list list))) + (display-completion-list list symbol))) (message "Making completion list... done")))) (funcall (nth 1 entry)))))
--- a/lisp/progmodes/octave-mod.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/progmodes/octave-mod.el Sun Oct 16 09:31:48 2005 +0000 @@ -1252,7 +1252,7 @@ ;; Taken from comint.el (message "Making completion list...") (with-output-to-temp-buffer "*Completions*" - (display-completion-list list)) + (display-completion-list list string)) (message "Hit space to flush") (let (key first) (if (save-excursion
--- a/lisp/progmodes/pascal.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/progmodes/pascal.el Sun Oct 16 09:31:48 2005 +0000 @@ -1378,7 +1378,7 @@ ((and (not (null (cdr allcomp))) (= (length pascal-str) (length match))) (with-output-to-temp-buffer "*Completions*" - (display-completion-list allcomp)) + (display-completion-list allcomp pascal-str)) ;; Wait for a keypress. Then delete *Completion* window (momentary-string-display "" (point)) (delete-window (get-buffer-window (get-buffer "*Completions*"))) @@ -1398,7 +1398,7 @@ (all-completions pascal-str 'pascal-completion)))) ;; Show possible completions in a temporary buffer. (with-output-to-temp-buffer "*Completions*" - (display-completion-list allcomp)) + (display-completion-list allcomp pascal-str)) ;; Wait for a keypress. Then delete *Completion* window (momentary-string-display "" (point)) (delete-window (get-buffer-window (get-buffer "*Completions*")))))
--- a/lisp/simple.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/simple.el Sun Oct 16 09:31:48 2005 +0000 @@ -4844,10 +4844,13 @@ "Normal hook run at the end of setting up a completion list buffer. When this hook is run, the current buffer is the one in which the command to display the completion list buffer was run. -The completion list buffer is available as the value of `standard-output'.") - -;; This function goes in completion-setup-hook, so that it is called -;; after the text of the completion list buffer is written. +The completion list buffer is available as the value of `standard-output'. +The common prefix substring for completion may be available as the +value of `completion-common-substring'. See also `display-completion-list'.") + + +;; Variables and faces used in `completion-setup-function'. + (defface completions-first-difference '((t (:inherit bold))) "Face put on the first uncommon character in completions in *Completions* buffer." @@ -4867,6 +4870,17 @@ (defvar completion-root-regexp "^/" "Regexp to use in `completion-setup-function' to find the root directory.") +(defvar completion-common-substring nil + "Common prefix substring to use in `completion-setup-function' to put faces. +The value is set by `display-completion-list' during running `completion-setup-hook'. + +To put faces, `completions-first-difference' and `completions-common-part' +into \"*Completions*\* buffer, the common prefix substring in completions is +needed as a hint. (Minibuffer is a special case. The content of minibuffer itself +is the substring.)") + +;; This function goes in completion-setup-hook, so that it is called +;; after the text of the completion list buffer is written. (defun completion-setup-function () (let ((mainbuf (current-buffer)) (mbuf-contents (minibuffer-contents))) @@ -4905,9 +4919,11 @@ (funcall (get minibuffer-completion-table 'completion-base-size-function))) (setq completion-base-size 0)))) ;; Put faces on first uncommon characters and common parts. - (when completion-base-size + (when (or completion-base-size completion-common-substring) (let* ((common-string-length - (- (length mbuf-contents) completion-base-size)) + (if completion-base-size + (- (length mbuf-contents) completion-base-size) + (length completion-common-substring))) (element-start (next-single-property-change (point-min) 'mouse-face))
--- a/lisp/tempo.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/tempo.el Sun Oct 16 09:31:48 2005 +0000 @@ -717,11 +717,13 @@ (if tempo-leave-completion-buffer (with-output-to-temp-buffer "*Completions*" (display-completion-list - (all-completions string tag-list))) + (all-completions string tag-list) + string)) (save-window-excursion (with-output-to-temp-buffer "*Completions*" (display-completion-list - (all-completions string tag-list))) + (all-completions string tag-list) + string)) (sit-for 32767)))) ;;;
--- a/lisp/textmodes/bibtex.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/textmodes/bibtex.el Sun Oct 16 09:31:48 2005 +0000 @@ -2522,7 +2522,8 @@ (message "Making completion list...") (with-output-to-temp-buffer "*Completions*" (display-completion-list (all-completions part-of-word - completions))) + completions) + part-of-word)) (message "Making completion list...done") ;; return value is handled by choose-completion-string-functions nil))))
--- a/lisp/wid-edit.el Sun Oct 16 03:24:54 2005 +0000 +++ b/lisp/wid-edit.el Sun Oct 16 09:31:48 2005 +0000 @@ -3012,7 +3012,8 @@ (with-output-to-temp-buffer "*Completions*" (display-completion-list (sort (file-name-all-completions name-part directory) - 'string<))) + 'string<) + name-part)) (message "Making completion list...%s" "done"))))) (defun widget-file-prompt-value (widget prompt value unbound) @@ -3571,7 +3572,8 @@ (t (message "Making completion list...") (with-output-to-temp-buffer "*Completions*" - (display-completion-list (all-completions prefix list nil))) + (display-completion-list (all-completions prefix list nil) + prefix)) (message "Making completion list...done"))))) (defun widget-color-sample-face-get (widget)
--- a/src/ChangeLog Sun Oct 16 03:24:54 2005 +0000 +++ b/src/ChangeLog Sun Oct 16 09:31:48 2005 +0000 @@ -1,3 +1,9 @@ +2005-10-16 Masatake YAMATO <jet@gyve.org> + + * minibuf.c (Fdisplay_completion_list): Add new optional + argument COMMON_SUBSTRING. Bind `completion-common-substring' + to the optional argument during running `completion-setup-hook'. + 2005-10-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> * mac.c [TARGET_API_MAC_CARBON] (get_cfstring_encoding_from_lisp):
--- a/src/minibuf.c Sun Oct 16 03:24:54 2005 +0000 +++ b/src/minibuf.c Sun Oct 16 09:31:48 2005 +0000 @@ -2351,7 +2351,7 @@ } DEFUN ("display-completion-list", Fdisplay_completion_list, Sdisplay_completion_list, - 1, 1, 0, + 1, 2, 0, doc: /* Display the list of completions, COMPLETIONS, using `standard-output'. Each element may be just a symbol or string or may be a list of two strings to be printed as if concatenated. @@ -2361,14 +2361,23 @@ The actual completion alternatives, as inserted, are given `mouse-face' properties of `highlight'. At the end, this runs the normal hook `completion-setup-hook'. -It can find the completion buffer in `standard-output'. */) - (completions) +It can find the completion buffer in `standard-output'. +The optional second arg COMMON-SUBSTRING is a string. +It is used to put faces, `completions-first-difference` and +`completions-common-part' on the completion bufffer. The +`completions-common-part' face is put on the common substring +specified by COMMON-SUBSTRING. If COMMON-SUBSTRING is nil, +the faces are not put. +Internally, COMMON-SUBSTRING is bound to `completion-common-substring' +during running `completion-setup-hook'. */) + (completions, common_substring) Lisp_Object completions; + Lisp_Object common_substring; { Lisp_Object tail, elt; register int i; int column = 0; - struct gcpro gcpro1, gcpro2; + struct gcpro gcpro1, gcpro2, gcpro3; struct buffer *old = current_buffer; int first = 1; @@ -2377,7 +2386,7 @@ except for ELT. ELT can be pointing to a string when terpri or Findent_to calls a change hook. */ elt = Qnil; - GCPRO2 (completions, elt); + GCPRO3 (completions, elt, common_substring); if (BUFFERP (Vstandard_output)) set_buffer_internal (XBUFFER (Vstandard_output)); @@ -2526,13 +2535,20 @@ } } - UNGCPRO; - if (BUFFERP (Vstandard_output)) set_buffer_internal (old); if (!NILP (Vrun_hooks)) - call1 (Vrun_hooks, intern ("completion-setup-hook")); + { + int count1 = SPECPDL_INDEX (); + + specbind (intern ("completion-common-substring"), common_substring); + call1 (Vrun_hooks, intern ("completion-setup-hook")); + + unbind_to (count1, Qnil); + } + + UNGCPRO; return Qnil; }