Alists,,Action Alists for Buffer Display, elisp, The Emacs Lisp
Reference Manual}).
+@vindex completion-lazy-count
+@vindex completion-header-text-property-list
+ When the boolean variable @code{completion-lazy-count} is
+non-@code{nil} the completions header line shows the total number of
+completion candidates. With the text property list
+@code{completion-header-text-property-list} (@pxref{Property
+Lists,,Property Lists, elisp, The Emacs Lisp Reference Manual}) the
+user can specify some text properties to the completions header line.
+Some useful values may be @code{face}, @code{cursor-intangible} or
+@code{invisible} (@pxref{Special Properties,,Properties with Special
+Meanings, elisp, The Emacs Lisp Reference Manual}).
+
@vindex completions-highlight-mode
When the mode @code{completions-highlight-mode} is active the candidate
under the cursor is highlighted when the completion window is
*** New user option 'completions-max-height'.
This option limits the height of the "*Completions*" buffer.
++++
+*** New option 'completion-header-text-property-list'
+List of text properties to add to the header line of completions.
+
++++
+*** New option 'completion-lazy-count'
+When non-nil the completions header line shows the total number of
+completion candidates.
+
+++
*** New mode 'completions-highlight-mode'.
This mode highlights the current candidate in the *Completions* buffer
with the 'completions-highlight' face.
+
** Isearch and Replace
+++
:type 'boolean
:version "28.1")
+(defcustom completion-header-text-property-list nil
+ "List of text properties to add to the header line of completions.
+For example you can change the header color to red setting this
+to: `(face (:foreground ``red'')). Some useful properties may be
+`cursor-intangible' or `invisible'. See Info node `(elisp) Special
+Properties'."
+ :type 'plist
+ :version "29.1")
+
+(defcustom completion-lazy-count nil
+ "When non-nil, display the total number of candidates in the completions header."
+ :type 'boolean
+ :version "29.1")
+
(defun completion--insert-strings (strings &optional group-fun)
"Insert a list of STRINGS into the current buffer.
The candidate strings are inserted into the buffer depending on the
(with-current-buffer standard-output
(goto-char (point-max))
- (if (null completions)
- (insert "There are no possible completions of what you have typed.")
- (insert "Possible completions are:\n")
- (completion--insert-strings completions group-fun))))
+ (if completions
+ (let ((start (point))
+ (text (concat
+ "Possible completions are"
+ (if completion-lazy-count
+ (format " (%s)" (length completions)))
+ ":\n")))
+ (insert text)
+ (when completion-header-text-property-list
+ (add-text-properties start (point) completion-header-text-property-list))
+ (completion--insert-strings completions group-fun))
+ (insert "There are no possible completions of what you have typed."))))
(run-hooks 'completion-setup-hook)
nil)