Commit 5761a1a3 authored by João Távora's avatar João Távora

Nudge icomplete-mode a little closer to fido-mode

* lisp/icomplete.el (icomplete-completions): Don't use ellipsis when
truncating determ in fido-mode.  Highlight the center part of
determ with icomplete-first-match.
parent d558d9fa
Pipeline #3971 failed with stage
in 58 minutes and 56 seconds
......@@ -572,6 +572,13 @@ matches exist."
(compare (compare-strings name nil nil
most nil nil completion-ignore-case))
(ellipsis (if (char-displayable-p ?) "…" "..."))
;; `determ' is what we "determined" to be the thing that
;; TAB will complete to. Also, if we're working with a
;; large prefix (like when finding files), we want to
;; truncate the common prefix away. `determ-ellipsis'
;; says if we should do it with an `ellipsis'. Icomplete
;; uses one, Ido doesn't.
(determ-ellipsis (if fido-mode "" ellipsis))
(determ (unless (or (eq t compare) (eq t most-try)
(= (setq compare (1- (abs compare)))
(length most)))
......@@ -582,8 +589,10 @@ matches exist."
(substring most compare))
;; Don't bother truncating if it doesn't gain
;; us at least 2 columns.
((< compare (+ 2 (string-width ellipsis))) most)
(t (concat ellipsis (substring most compare))))
((< compare (+ 2 (string-width determ-ellipsis)))
most)
(t (concat determ-ellipsis
(substring most compare))))
close-bracket)))
;;"-prospects" - more than one candidate
(prospects-len (+ (string-width
......@@ -664,6 +673,8 @@ matches exist."
(mapconcat 'identity prospects icomplete-separator)
(and limit (concat icomplete-separator ellipsis))
"}")
(put-text-property 1 (1- (length determ))
'face 'icomplete-first-match determ)
(concat determ " [Matched]"))))))
;;; Iswitchb compatibility
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment