[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 5761a1a 2/2: Nudge icomplete-mode a little closer to fido-mode
From: |
João Távora |
Subject: |
master 5761a1a 2/2: Nudge icomplete-mode a little closer to fido-mode |
Date: |
Fri, 8 Nov 2019 05:18:38 -0500 (EST) |
branch: master
commit 5761a1a3939e23d8e8c725241dd9398a12f191b0
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>
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.
---
lisp/icomplete.el | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 40f4f0b..a7f9086 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -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