unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
Subject: provide an easy way to customize inherited faces
Date: Sat, 15 Jul 2006 07:44:42 -0700	[thread overview]
Message-ID: <MEEKKIABFKKDFJMPIOEBIEFADDAA.drew.adams@oracle.com> (raw)

In Customize, when a face inherits from another, only the directly inherited
face name appears, and it appears only as text in an editable field. If you
know what you're doing, then you can put point in the field and use M-x
customize-face. Even then, however, the default value is just the face name
in the editable field; there is no easy way to customize other faces in the
inheritance hierarchy.

When a face inherits from others, the list of inherited faces should be
shown explicitly in the Customize buffer in some fashion. A simple list next
to the editable field (perhaps with items separated by "<"), would suffice.
It should be possible to easily customize any of the faces in that list, and
it should be obvious how to do so. Each name could be a link, and the list
of links could have a label such as "Customize Inherited Face(s)", where the
`s' is shown only when the inheritance chain is longer than two.

In many cases, it will make more sense for a user to customize an inherited
face - perhaps even a face at the top of the inheritance tree, than it would
for the user to customize each of several faces separately. An example is
face `link'. Even though the inheritance tree is flat, there are several
faces that inherit from `link'. Most users will want to change the
appearance of all of these at once - for example, to remove underlining. How
to do that is not obvious.

The natural result will be that users will end up customizing multiple faces
when one would have sufficed. The other result is that users will become
confused and frustrated, not understanding why links still appear underlined
(for example) in some buffers, even after customizing.

The starting point for customizing a face for most users will be to put
point on a face and use M-x customize-face or the equivalent via the Text
Properties menu. This will show them a face such as `info-link' or
`custom-link' in Customize, instead of the parent face, `link'. That's good,
but the inheritance information is not as accessible, for customization, as
it could be, especially in the case of a chain longer than two.

The link example is a good one, even if the hierarchy is flat. Although it
is perhaps good that links are underlined by default now, I suspect that
many Emacs users other than newbies will want to remove underlining as one
of their first customizations in Emacs 22.

             reply	other threads:[~2006-07-15 14:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-15 14:44 Drew Adams [this message]
2006-07-16  6:25 ` provide an easy way to customize inherited faces Richard Stallman
2006-07-16 17:33   ` Drew Adams
2006-07-16 12:34 ` Stefan Monnier
2006-07-16 17:02   ` Drew Adams
2006-07-17  1:41   ` Richard Stallman

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=MEEKKIABFKKDFJMPIOEBIEFADDAA.drew.adams@oracle.com \
    --to=drew.adams@oracle.com \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).