From: Daniel Colascione <dancol@dancol.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: "Eli Zaretskii" <eliz@gnu.org>, "Jan Djärv" <jan.h.d@swipnet.se>,
"Chong Yidong" <cyd@gnu.org>, emacs-devel <emacs-devel@gnu.org>
Subject: Re: [PATCH] Re: About the :distant-foreground face attribute
Date: Mon, 13 Jan 2014 18:41:47 -0800 [thread overview]
Message-ID: <52D4A3EB.9040007@dancol.org> (raw)
In-Reply-To: <jwv61pnqr0s.fsf-monnier+emacs@gnu.org>
On 01/13/2014 05:45 PM, Stefan Monnier wrote:
>>>> If you want the :distant-foreground behavior, it can be accommodated
>>>> in this patch. This patch also permits other schemes that some users
>>>> might find more useful. We should push policy to user customization
>>>> when possible instead of hardcoding policy in the logic of
>>>> face attributes.
>>> FWIW, I like the idea of being able to compute the color dynamically.
>>> I also would welcome a way to specify "color filters", e.g. a face which
>>> "darkens the foreground color". IOW the equivalent of the
>>> floating-point :height settings, but for colors.
>> You can write something like that in my setup --- we actually
>> call :contrast-function on every face realization. There's no reason it has
>> to act only on certain conditions, although that's what all the existing
>> implementations do.
>
> There are some differences, tho, w.r.t what the function sees:
> does it see the fully merged face, or does it only see the face
> merged up to the point where the filter appears.
Indeed. Well, let's honor the long tradition of choosing the policy
that's easier to implement. :-)
We can support our hypothetical :filter (which we should rename
:post-realize-filter) without too much change to the face logic using
this scheme:
1) Define LFACE_FILTER_FUNCTION as a possibly-empty list of filter functions
2) When we combine faces A and B, A+B's LFACE_FILTER_FUNCTION is the
concatenation of A's filter list and B's filter list. As an exception,
if B's filter list is of the form (t . OVERRIDE-FILTER-LIST), then A+B's
filter list is just OVERRIDE-FILTER-LIST.
3) On realization, we pass the resulting face attributes through each
filter function, then use the resulting attributes for display.
Later, if we need to, we can add a regular :filter that works
face-by-face, like height.
next prev parent reply other threads:[~2014-01-14 2:41 UTC|newest]
Thread overview: 134+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-07 12:55 About the :distant-foreground face attribute Chong Yidong
2014-01-07 15:00 ` Jan Djärv
2014-01-07 17:28 ` Drew Adams
2014-01-07 18:01 ` Eli Zaretskii
2014-01-07 18:09 ` Joel Mccracken
[not found] ` <<8361pvsmbk.fsf@gnu.org>
2014-01-07 18:44 ` Drew Adams
2014-01-07 19:01 ` Eli Zaretskii
[not found] ` <<83zjn7r4z3.fsf@gnu.org>
2014-01-07 19:06 ` Drew Adams
2014-01-07 19:15 ` Eli Zaretskii
2014-01-07 21:57 ` Chong Yidong
2014-01-08 3:45 ` Eli Zaretskii
2014-01-08 5:24 ` Chong Yidong
2014-01-08 9:35 ` Jan Djärv
2014-01-08 9:52 ` Chong Yidong
2014-01-08 10:10 ` Jan Djärv
2014-01-08 14:49 ` Chong Yidong
2014-01-08 16:37 ` Jan Djärv
2014-01-08 17:08 ` Drew Adams
2014-01-08 16:57 ` Drew Adams
2014-01-08 14:05 ` Stefan Monnier
2014-01-08 17:43 ` Eli Zaretskii
2014-01-09 16:15 ` Chong Yidong
2014-01-09 17:02 ` Stefan Monnier
2014-01-09 17:07 ` Drew Adams
2014-01-09 17:46 ` Eli Zaretskii
2014-01-09 18:21 ` Chong Yidong
2014-01-09 22:25 ` Drew Adams
2014-01-09 22:48 ` David Engster
2014-01-12 11:14 ` David Engster
2014-01-12 11:40 ` Jan Djärv
2014-01-12 12:21 ` David Engster
2014-01-12 12:56 ` Jan Djärv
2014-01-12 13:07 ` David Engster
2014-01-12 13:17 ` Jan Djärv
2014-01-12 20:14 ` Chong Yidong
2014-01-12 21:20 ` Drew Adams
2014-01-12 22:07 ` Jan Djärv
2014-01-13 0:57 ` Drew Adams
2014-01-12 22:59 ` Stefan Monnier
2014-01-13 4:14 ` chad
2014-01-09 17:05 ` Eli Zaretskii
2014-01-09 17:22 ` David Engster
2014-01-09 17:27 ` Lars Magne Ingebrigtsen
2014-01-09 17:50 ` Jan D.
2014-01-09 20:58 ` Darren Hoo
2014-01-09 21:17 ` David Engster
2014-01-09 22:29 ` Darren Hoo
2014-01-09 22:25 ` Drew Adams
2014-01-09 22:24 ` Drew Adams
2014-01-09 17:39 ` Josh
2014-01-09 17:57 ` Eli Zaretskii
2014-01-09 17:49 ` Jan D.
2014-01-13 13:13 ` [PATCH] " Daniel Colascione
2014-01-13 16:27 ` Jan Djärv
2014-01-13 16:33 ` Jan Djärv
2014-01-13 18:41 ` Daniel Colascione
2014-01-13 21:29 ` Jan Djärv
2014-01-13 21:36 ` Daniel Colascione
2014-01-13 23:01 ` Drew Adams
2014-01-13 23:11 ` Daniel Colascione
2014-01-14 1:32 ` Drew Adams
2014-01-14 1:45 ` Stefan Monnier
2014-01-14 19:32 ` Drew Adams
2014-01-14 2:34 ` Daniel Colascione
2014-01-14 19:32 ` Drew Adams
2014-01-14 22:38 ` Daniel Colascione
2014-01-15 0:31 ` Drew Adams
2014-01-15 0:54 ` Daniel Colascione
2014-01-15 3:07 ` Drew Adams
2014-01-15 3:52 ` Daniel Colascione
2014-01-15 4:59 ` Drew Adams
2014-01-15 5:12 ` Daniel Colascione
2014-01-15 5:39 ` Drew Adams
2014-01-15 14:38 ` Stefan Monnier
2014-01-15 4:50 ` Yuri Khan
2014-01-15 7:50 ` Jan D.
2014-01-15 7:52 ` Daniel Colascione
2014-01-15 8:17 ` Jan D.
2014-01-15 17:23 ` Drew Adams
2014-01-13 23:57 ` Stefan Monnier
2014-01-14 0:07 ` Daniel Colascione
2014-01-14 1:45 ` Stefan Monnier
2014-01-14 2:41 ` Daniel Colascione [this message]
2014-01-14 8:47 ` Chong Yidong
2014-01-14 9:42 ` Jan D.
2014-01-14 19:32 ` Drew Adams
2014-01-14 7:47 ` Jan D.
2014-01-14 8:18 ` Daniel Colascione
2014-01-14 9:34 ` Jan D.
2014-01-14 10:44 ` Daniel Colascione
2014-01-14 11:44 ` Jan D.
2014-01-14 17:56 ` Stefan Monnier
2014-01-14 18:06 ` Jan Djärv
2014-01-14 18:31 ` Daniel Colascione
2014-01-14 18:51 ` John Yates
2014-01-14 22:19 ` Stefan Monnier
2014-01-14 18:47 ` Daniel Colascione
2014-01-14 20:01 ` Jan Djärv
2014-01-14 20:06 ` Daniel Colascione
2014-01-14 22:05 ` [PATCH] " Jan Djärv
2014-01-14 22:14 ` Daniel Colascione
2014-01-15 6:33 ` Jan Djärv
2014-01-15 8:05 ` Daniel Colascione
2014-01-15 9:25 ` Jan D.
2014-01-15 14:43 ` Stefan Monnier
2014-01-14 20:39 ` [PATCH] " Daniel Colascione
2014-01-14 21:58 ` [PATCH] " Jan Djärv
2014-01-14 22:06 ` Drew Adams
2014-01-15 3:52 ` Eli Zaretskii
2014-01-15 4:22 ` Stefan Monnier
2014-01-15 4:25 ` Daniel Colascione
2014-01-15 6:39 ` Jan Djärv
2014-01-15 15:39 ` Eli Zaretskii
2014-01-15 14:41 ` Stefan Monnier
2014-01-15 15:38 ` Eli Zaretskii
2014-01-15 16:17 ` Stefan Monnier
2014-01-15 16:53 ` Eli Zaretskii
2014-01-15 17:33 ` Stefan Monnier
2014-01-15 17:51 ` Eli Zaretskii
2014-01-15 18:43 ` Stefan Monnier
2014-01-15 19:06 ` Eli Zaretskii
2014-01-15 20:05 ` Josh
2014-01-15 20:40 ` Eli Zaretskii
2014-01-15 21:03 ` Daniel Colascione
2014-01-15 21:12 ` Eli Zaretskii
2014-01-15 21:15 ` Daniel Colascione
2014-01-15 21:31 ` John Yates
2014-01-15 22:11 ` Drew Adams
2014-01-15 23:58 ` Stefan Monnier
2014-01-07 22:50 ` Jan Djärv
2014-01-08 3:13 ` Darren Hoo
[not found] <<87bnzo9cja.fsf@gnu.org>
[not found] ` <<59B7E7FC-48D0-4737-B1BB-FFAC5BA9E07A@swipnet.se>
[not found] ` <<874n5f3162.fsf@gnu.org>
[not found] ` <<83fvozf86g.fsf@gnu.org>
[not found] ` <<87r48javwe.fsf@gnu.org>
[not found] ` <<83bnzmfjxe.fsf@gnu.org>
[not found] ` <<87bnzlyvwb.fsf@gnu.org>
[not found] ` <<jwvppo1dr9r.fsf-monnier+emacs@gnu.org>
[not found] ` <<b53f01f5-1974-417a-b95b-a7e1b6906467@default>
[not found] ` <<83wqi9cakl.fsf@gnu.org>
2014-01-09 21:12 ` Drew Adams
2014-01-09 21:22 ` Eli Zaretskii
[not found] ` <<52D3E689.6050902@dancol.org>
[not found] ` <<8E16225F-53EF-498A-AB35-66EB9B33B859@swipnet.se>
[not found] ` <<52D43360.6050605@dancol.org>
[not found] ` <<9BD01B88-AF13-44DD-8DBE-4598BAC136DD@swipnet.se>
[not found] ` <<52D45C73.6090906@dancol.org>
[not found] ` <<52D4EBA9.8050802@swipnet.se>
[not found] ` <<52D4F2C2.8080800@dancol.org>
[not found] ` <<52D504A7.80104@swipnet.se>
[not found] ` <<52D514FF.7010404@dancol.org>
[not found] ` <<52D52312.6070106@swipnet.se>
[not found] ` <<52D58632.3010106@dancol.org>
[not found] ` <<381DEBDC-71D8-4FAC-BA55-897FEC73A2FC@swipnet.se>
[not found] ` <<52D5A072.5010508@dancol.org>
[not found] ` <<064CFFB5-6E50-40D5-B2CB-2BECC656D93F@swipnet.se>
[not found] ` <<174db5f5-db14-4484-a2f9-9478d2f5fea1@default>
[not found] ` <<83y52h52cd.fsf@gnu.org>
2014-01-15 3:56 ` [PATCH] " Drew Adams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52D4A3EB.9040007@dancol.org \
--to=dancol@dancol.org \
--cc=cyd@gnu.org \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=jan.h.d@swipnet.se \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.