[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#45780: 28.0.50; [PATCH] Face used for affixation function annotation
From: |
Juri Linkov |
Subject: |
bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations |
Date: |
Tue, 12 Jan 2021 20:30:54 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) |
>>> This gives the client full control over the visual appearance if that is
>>> preferred. Maybe this approach could also make sense to be included in
>>> Emacs?
>> Do you see any possible backward-compatibility issues with changing this
>> in
>> Emacs? For example, when a package like Selectrum puts another face
>> on the completion string, then it will be displayed instead of the default
>> completion-annotations face.
>
> We already do this for annotations/affixations in Selectrum but only based
> on the face of the annotation/affixation itself, the completion string
> doesn't affect this. I hope this wouldn't have any visual downsides for old
> code which assumes the faces get merged but I haven't encountered any cases
> where code tried to apply custom faces to annotations besides the
> marginalia package. Letting the client control it makes it easier to
> configure the display as it's hard to predict what will come out of face
> merging with the face the user has configured as `completion-annotations`
> face. This new behaviour could also only be applied for affixation
> functions to avoid any possibly bad effects of existing code.
It seems the current logic already supports overriding faces for
completion strings:
1. when only annotation suffix string is provided, then the face
completion-annotations is added;
2. when both prefix and suffix are provided, then the client decides
what face to add. Also it's possible to provide an empty prefix
string to be able to specify a custom face for the suffix string.
So when the client wants to override the default annotation face,
this is already easy to do using something like (this is not a patch
to commit, but just demonstration of current abilities):
diff --git a/lisp/simple.el b/lisp/simple.el
index 4896a282ec..ca308d0bb6 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -1969,7 +1969,7 @@ read-extended-command--affixation
(format " (%s)" (car obsolete)))
((and binding (not (stringp binding)))
(format " (%s)" (key-description binding))))))
- (if suffix (list command-name suffix) command-name)))
+ (if suffix (list command-name "" (propertize suffix 'face 'shadow))
command-name)))
command-names)))
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations, Clemens, 2021/01/11
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations, Juri Linkov, 2021/01/11
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations, Clemens, 2021/01/11
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations,
Juri Linkov <=
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations, Clemens, 2021/01/13
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations, Juri Linkov, 2021/01/14
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations, Clemens, 2021/01/14
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations, Juri Linkov, 2021/01/14
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations, Clemens, 2021/01/14
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations, Juri Linkov, 2021/01/25
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations, Juri Linkov, 2021/01/30
- bug#45780: 28.0.50; [PATCH] Face used for affixation function annotations, Clemens, 2021/01/31