From: Drew Adams <drew.adams@oracle.com>
To: "Daniel Colascione" <dancol@dancol.org>,
"Jan Djärv" <jan.h.d@swipnet.se>
Cc: Eli Zaretskii <eliz@gnu.org>, 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 17:32:09 -0800 (PST) [thread overview]
Message-ID: <ebf50f62-3c4c-4a04-93a4-bf0d582509dd@default> (raw)
In-Reply-To: <52D47289.2020700@dancol.org>
> > Region highlighting should never be overridden by font-lock
> > highlighting.
>
> You can configure Emacs to act that way.
Emacs should act that way by default, as it always has. Anyone
who wants automatic foreground twiddling for a given face should
ask for that explicitly. Whether that twiddling is to accommodate
font-locking or for some other reason.
(Likewise, for face filtering, if this feature ends up going
that way in order to generalize the function and give it access
to and effect over all face attributes.)
> > Then choose the `region' background accordingly. If Emacs cannot
> > do that automatically in the case of some platforms, too bad - let
> > users compensate by setting `region' manually. They should always
> > be the ultimate judge of what works best for them.
>
> If we choose a region background that works with traditional font-
> lock colors, that background color cannot come from the system.
Just don't do that. Certainly not by default.
> If we want the region background color to come from the system,
> we have to have some way of making it contrast with the
> foreground.
What has Emacs done in the past? Since Emacs can specify the
default background and foreground, it should be trivial for it
to come up with two colors that contrast. And even two colors
that contrast and are different from the default (e.g. system)
background.
If Emacs on some system (how many are a real problem?) really
cannot find a default `region' background and foreground that
work, then punt and let the user try. How have we gotten by
for almost 4 decades without this feature?
It's hard to believe that a contrasting pair of default
colors cannot be found. Just take the font-lock nonsense
out of the equation, and there should be no problem - that's
my guess.
> Emacs won't change any colors users set on the region face.
> If a user sets the region's foreground and background colors,
> Emacs will use those colors for the selection.
Glad to hear you say that.
And what if the default `region' foreground and background
are exactly what the user wants? Does s?he have to jump
through a hoop to "set" face attributes to what they already
were, just to say "Hands off!"? She shouldn't have to.
> We are talking specifically about the case where users do
> *not* specify a foreground color for region.
And what does "not specify" mean? Does it mean only that
the value has not changed from the standard (default) value?
Or does it mean that users somehow explicitly let you know
that they do not mind if you twiddle their region?
A face being equal to its default setting does not imply
that the user gives Emacs license to change it.
IMO, any such feature should be opt-in, not opt-out. A
user should not need to explicitly do anything to stop
Emacs from twiddling her region. She should ask for
twiddling if she wants that.
> Emacs adjusts colors only when a :contrast-function is set
> for some face applying to a particular character and that
> face isn't overridden by one that sets :contrast-function to
> nil.
OK, that sounds a bit better, at least. So if any face has a
nil :twiddle-me, er sorry, :contrast-function attribute, and
that face is merged with a face that has a non-nil one, the nil
one wins and there is no twiddling. Is that right?
It is important that no face, including `region', have a
non-nil :contrast-function by default.
> Set foreground and background. Uncheck :constrast-function if
> you want
So it is easy for a user or Lisp code to turn this off. Good.
Now let's turn it off by default. It will be just as easy for
a user to turn it on, if s?he wants.
> If a user or package doesn't want automatic contrast
> adjustment, either don't ask for it or explicitly turn it off.
Don't ask for it (i.e., do nothing) sounds good, to keep it off.
Off by default. Explicitly turn it on if you want it.
What you describe now sounds a bit like what I suggested a week
ago:
>> And that user control should be *per face*. One should not
>> be obliged to choose either preventing the overriding or
>> allowing it for all faces. The choice should be a function
>> of the particular face. Now *that* could be done using a
>> new face attribute, if you want. (Or a function.)
This is OK as long as any long-existing faces such as `region'
will not have non-nil :contrast-function attributes by default.
Let users who really want their region twiddled opt into that.
But it still makes life more complicated for Lisp code that
wants to get or set the actual appearance of the face. Whereas
before code needed only to get or set attribute :foreground,
now it will need to also check for a non-nil :contrast-function
and apply that.
Still, this sounds better than what has been proposed so far.
next prev parent reply other threads:[~2014-01-14 1:32 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 [this message]
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
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=ebf50f62-3c4c-4a04-93a4-bf0d582509dd@default \
--to=drew.adams@oracle.com \
--cc=cyd@gnu.org \
--cc=dancol@dancol.org \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=jan.h.d@swipnet.se \
/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.