From: "Drew Adams" <drew.adams@oracle.com>
Subject: bind faces?
Date: Sat, 13 May 2006 10:54:24 -0700 [thread overview]
Message-ID: <MEEKKIABFKKDFJMPIOEBGEHCDBAA.drew.adams@oracle.com> (raw)
I think the answer to this is "no", but I'm not sure:
Is there some way to get the effect of "binding" a face to a list of face
properties or the properties of another face? That is, do something akin to
this:
(let ((some-face another-face-or-a-list-of-face-properties))
(do-something))
Wouldn't it be useful to be able to do that? We have `let' for variables and
`flet' (via cl.el) for functions, but nothing for faces, IIUC. (Obviously, a
user could work with face variables, but those are not always available and
their use is generally discouraged.)
What is a good way to get such a result currently (i.e. a workaround)? Say
that you want to temporarily make face `x' have all the properties of face
`y'. How would you do that? unwind-protect + defface + defface back again?
Or unwind-protect + loop over all face attributes of `y', assigning them to
`x', then putting back `x's original attributes?
Is there an easy/elegant way to do this?
A special case would be to "wipe out" a face (make it invisible/unnoticable)
temporarily, giving its properties (e.g. fore/background) nil values. Is
there perhaps a good workaround for this special case?
A related feature would be to be able to make an overlay's face
unnoticeable. Not to use the `invisible' property, which hides the text, and
not to delete the overlay, but just to make the face itself
transparent/unnoticeable (e.g. temporarily).
I'm asking here instead of help-gnu-emacs because I suspect there is no easy
way to do this and, if so, I'd propose that we think about creating one
(after the release, of course). Also, in case I'm missing something or
misunderstanding faces or overlays, I know that folks here will help me see
the light. I'd like to know if there is a better way to accomplish what I'm
asking about than fiddling with face properties. Thx.
next reply other threads:[~2006-05-13 17:54 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-13 17:54 Drew Adams [this message]
2006-05-13 18:07 ` bind faces? Chong Yidong
2006-05-13 19:40 ` Drew Adams
2006-05-14 2:39 ` Richard Stallman
2006-05-14 0:52 ` Miles Bader
2006-05-14 1:02 ` Drew Adams
2006-05-14 2:16 ` Miles Bader
2006-05-14 3:13 ` Drew Adams
2006-05-14 4:10 ` David Kastrup
2006-05-14 2:33 ` Miles Bader
2006-05-14 13:17 ` Stefan Monnier
2006-05-14 14:32 ` Drew Adams
2006-05-14 14:46 ` Miles Bader
2006-05-14 16:13 ` Drew Adams
2006-05-14 17:49 ` Stefan Monnier
2006-05-14 18:43 ` 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
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=MEEKKIABFKKDFJMPIOEBGEHCDBAA.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).