(defvar-local completions-sort-orders nil)
(defvar-local completions-predicate nil)
(defvar-local completions-exceptional-candidates nil)
+(defvar-local completions-ignore-case nil)
(defvar-local completions-action nil)
(defvar-local completions-style nil)
(defvar completions-header-count
'(completions-candidates
- ("count:" (:eval (file-size-human-readable (length completions-candidates) 'si)) " ")))
+ ("" (:eval (file-size-human-readable (length completions-candidates) 'si)) " ")))
(defvar completions-header-category
'(completions-category
- ("category:" (:eval (symbol-name completions-category)) " ")))
+ ("" (:eval (symbol-name completions-category)) " ")))
(defvar completions-header-order
- '(completions-sort-function
- ("sort:"
- (:eval (concat
- (when-let
- ((sd (nth 4 (seq-find
+ '(""
+ (:eval
+ (let ((sd (or (nth 4 (seq-find
(lambda (order)
(eq
(nth 3 order)
(advice--cd*r
completions-sort-function)))
- completions-sort-orders))))
- (concat sd " "))
- (when (advice-function-member-p
- #'reverse completions-sort-function)
- "(reversed)")))
- " ")))
+ completions-sort-orders))
+ "default"))
+ (rv (advice-function-member-p #'reverse completions-sort-function)))
+ (concat (if rv "↑" "↓")
+ sd
+ (if rv "↑" "↓"))))
+ " "))
(defvar completions-header-restriction
- '(completions-predicate
- ("filter:"
- (:eval (or (completions-predicate-description
- completions-predicate)
- (and (symbolp completions-predicate)
- (symbol-name completions-predicate))
- "none"))
- " ")))
+ '("/"
+ (:eval (or (completions-predicate-description completions-predicate)
+ (and completions-predicate
+ (symbolp completions-predicate)
+ (not (eq completions-predicate 'always))
+ (symbol-name completions-predicate))
+ "all"))
+ "/ "))
(defvar completions-header-action
'(completions-action
- ("action:" (:eval (cdr completions-action)) " ")))
+ ("+" (:eval (cdr completions-action)) "+ ")))
(defvar completions-header-style
'(completions-style
- ("style:"
- (:eval (symbol-name completions-style))
- " ")))
+ ("" (:eval (symbol-name completions-style)) " ")))
+
+(defvar completions-header-ignore-case
+ `(:propertize (completions-ignore-case "a" "A")
+ mouse-face mode-line-highlight
+ help-echo "Toggle case sensitivity"
+ keymap
+ ,(let ((map (make-sparse-keymap)))
+ (define-key map [header-line mouse-2]
+ (lambda (e)
+ (interactive "e")
+ (with-current-buffer
+ (buffer-local-value
+ 'completion-reference-buffer
+ (window-buffer (posn-window (event-end e))))
+ (minibuffer-toggle-completion-ignore-case))))
+ map)))
(defvar completions-header-exceptional-candidates
- '(completions-exceptional-candidates "~ "))
+ `(:propertize (completions-exceptional-candidates "~" "!")
+ mouse-face mode-line-highlight
+ help-echo "Toggle exceptional candidates"
+ keymap
+ ,(let ((map (make-sparse-keymap)))
+ (define-key map [header-line mouse-2]
+ (lambda (e)
+ (interactive "e")
+ (with-current-buffer
+ (buffer-local-value
+ 'completion-reference-buffer
+ (window-buffer (posn-window (event-end e))))
+ (minibuffer-toggle-exceptional-candidates))))
+ map)))
(defvar completions-header-extra nil)
completions-header-restriction
completions-header-action
completions-header-style
+ completions-header-ignore-case
completions-header-exceptional-candidates
completions-header-extra))
(put sym 'risky-local-variable t))
(defvar completions-header-format
'(" "
- completions-header-count completions-header-category
- completions-header-order completions-header-restriction
- completions-header-action completions-header-style
- completions-header-exceptional-candidates completions-header-extra)
+ completions-header-count
+ completions-header-style
+ completions-header-category
+ "%b | "
+ completions-header-order
+ completions-header-restriction
+ completions-header-action
+ completions-header-ignore-case
+ completions-header-exceptional-candidates
+ (completions-header-extra (" | " completions-header-extra)))
"Header line format of the *Completions* buffer.")
(defun completion--insert-strings (strings &optional group-fun)
:action action
:base-position (list (+ start base-size) end)
:base-affixes (list base-prefix base-suffix)
+ :ignore-case completion-ignore-case
:insert-choice-function
(let ((cprops completion-extra-properties))
(lambda (start end choice)
completions-sort-orders (plist-get plist :sort-orders)
completions-predicate (plist-get plist :predicate)
completions-exceptional-candidates (plist-get plist :exceptional-candidates)
+ completions-ignore-case (plist-get plist :ignore-case)
completions-action (plist-get plist :action)))
(run-hooks 'completion-setup-hook)
(display-buffer buf
(cons
(lambda (cand)
(eq mode (buffer-local-value 'major-mode (get-buffer cand))))
- (format "mode %s" (capitalize name)))))
+ (format "mode=%s" (capitalize name)))))
(defun completion-buffer-name-affixation (names)
"Return completion affixations for buffer name list NAMES."
((symbolp cand) (symbol-name cand))
(t (car cand)))))
(string-match-p regexp string)))
- (concat "matching " (prin1-to-string regexp)))))
+ (concat "match=" (prin1-to-string regexp)))))
(defun minibuffer--add-completions-predicate (pred desc)
"Restrict minibuffer completions list to candidates satisfying PRED.
((symbolp cand) (symbol-name cand))
(t (car cand)))))
(not (gethash key table))))
- (concat "excluding matches for " (prin1-to-string current)))
+ (concat "remove=" (prin1-to-string current)))
(minibuffer--add-completions-predicate
(lambda (cand &rest _)
(let ((key (cond
((symbolp cand) (symbol-name cand))
(t (car cand)))))
(gethash key table)))
- (concat "narrowing to " (prin1-to-string current))))))
+ (concat "narrow=" (prin1-to-string current))))))
(defun minibuffer-narrow-completions-to-history (&optional exclude)
"EXCLUDE or keep only members of the minibuffer history as completions.
((symbolp cand) (symbol-name cand))
(t (car cand)))))
(funcall func key hist)))
- (concat (when exclude "not ") "previously used"))))
+ (concat "used=" (if exclude "n" "y")))))
(defun minibuffer-toggle-exceptional-candidates ()
"Toggle display of exceptional completion candidates."