aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Távora2019-10-26 14:31:38 +0100
committerJoão Távora2019-10-26 14:33:02 +0100
commitda0f8dbf8fea53da65d1990b3f9f235e4fe3f9e0 (patch)
treeb535284aae6413a8afa4bd8ef7d60a2e2c3268e0
parente21a1da8dc14c1e54a12c669255cc5496983e54e (diff)
downloademacs-da0f8dbf8fea53da65d1990b3f9f235e4fe3f9e0.tar.gz
emacs-da0f8dbf8fea53da65d1990b3f9f235e4fe3f9e0.zip
Rework face hints for partial-string completion styles
Don't use completions-first-difference for the 'substring', 'flex' and 'partial-completion' styles, since there can be really no reasonable definition of a "first" difference there. Make completions-common-part inherit from 'underline' so that it is useful by default for all completion styles. * lisp/minibuffer.el (completions-common-part): Adjust description and change default value. (completions-first-difference): Ajust docstring. (completion-pcm--hilit-commonality): Don't use completions-first-difference.
-rw-r--r--lisp/minibuffer.el20
1 files changed, 7 insertions, 13 deletions
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index b61b366a576..e7d081eaeb2 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1684,15 +1684,14 @@ See also `display-completion-list'.")
1684 1684
1685(defface completions-first-difference 1685(defface completions-first-difference
1686 '((t (:inherit bold))) 1686 '((t (:inherit bold)))
1687 "Face for the first uncommon character in completions. 1687 "Face for the first uncommon character in prefix completions.
1688See also the face `completions-common-part'.") 1688See also the face `completions-common-part'.")
1689 1689
1690(defface completions-common-part '((t nil)) 1690(defface completions-common-part '((t (:inherit underline)))
1691 "Face for the common prefix substring in completions. 1691 "Face for parts of completions matching a pattern.
1692The idea of this face is that you can use it to make the common parts 1692You can use it to make the common parts less visible than normal,
1693less visible than normal, so that the differing parts are emphasized 1693so that the differing parts are emphasized by contrast. See also
1694by contrast. 1694the face `completions-first-difference'.")
1695See also the face `completions-first-difference'.")
1696 1695
1697(defun completion-hilit-commonality (completions prefix-len &optional base-size) 1696(defun completion-hilit-commonality (completions prefix-len &optional base-size)
1698 "Apply font-lock highlighting to a list of completions, COMPLETIONS. 1697 "Apply font-lock highlighting to a list of completions, COMPLETIONS.
@@ -3082,8 +3081,7 @@ latter (which has two).")
3082 (setq str (copy-sequence str)) 3081 (setq str (copy-sequence str))
3083 (unless (string-match re str) 3082 (unless (string-match re str)
3084 (error "Internal error: %s does not match %s" re str)) 3083 (error "Internal error: %s does not match %s" re str))
3085 (let* ((pos (if point-idx (match-beginning point-idx) (match-end 0))) 3084 (let* ((md (match-data))
3086 (md (match-data))
3087 (start (pop md)) 3085 (start (pop md))
3088 (end (pop md)) 3086 (end (pop md))
3089 (len (length str)) 3087 (len (length str))
@@ -3137,10 +3135,6 @@ latter (which has two).")
3137 (put-text-property start end 3135 (put-text-property start end
3138 'font-lock-face 'completions-common-part 3136 'font-lock-face 'completions-common-part
3139 str) 3137 str)
3140 (if (> (length str) pos)
3141 (put-text-property pos (1+ pos)
3142 'font-lock-face 'completions-first-difference
3143 str))
3144 (unless (zerop (length str)) 3138 (unless (zerop (length str))
3145 (put-text-property 3139 (put-text-property
3146 0 1 'completion-score 3140 0 1 'completion-score