unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Can a face have different attributes in different buffers?
@ 2005-01-22 23:22 Yevgeniy Makarov
  2005-01-23  0:02 ` Pascal Bourguignon
  0 siblings, 1 reply; 5+ messages in thread
From: Yevgeniy Makarov @ 2005-01-22 23:22 UTC (permalink / raw)


Hello,

I have the following question. Judging by the fact that the function which
sets an attribute of some face (set-face-attribute) takes a frame as an
argument, it is not possible to have different buffers in one frame with
different values of the same attribute. Is it so? For example, can I have
comments of different colors (attribute :foreground of face
font-lock-comment-face) in different buffers of the same frame?

Thank you,
Yevgeniy

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Can a face have different attributes in different buffers?
  2005-01-22 23:22 Can a face have different attributes in different buffers? Yevgeniy Makarov
@ 2005-01-23  0:02 ` Pascal Bourguignon
  2005-01-23  2:19   ` Johan Bockgård
  0 siblings, 1 reply; 5+ messages in thread
From: Pascal Bourguignon @ 2005-01-23  0:02 UTC (permalink / raw)


Yevgeniy Makarov <emakarov@cs.indiana.edu> writes:

> Hello,
> 
> I have the following question. Judging by the fact that the function which
> sets an attribute of some face (set-face-attribute) takes a frame as an
> argument, it is not possible to have different buffers in one frame with
> different values of the same attribute. Is it so? For example, can I have
> comments of different colors (attribute :foreground of face
> font-lock-comment-face) in different buffers of the same frame?

I don't think that's possible.  Faces are referenced thru
symbols. Ie. the way it is implemented, faces are not first class
objects, they're attributes of symbols.  Symbols aren't specific to a
buffer.

The best you could do is to create new faces for each buffer, copying
the faces you want onto new gensym'ed symbols and refering them thru
buffer-local  variables.  Of course, since normal font-locking code
refers the faces "literally" thru the symbols they use, you'd have to
patch them or program your own font-locking.


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
The mighty hunter
Returns with gifts of plump birds,
Your foot just squashed one.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Can a face have different attributes in different buffers?
  2005-01-23  0:02 ` Pascal Bourguignon
@ 2005-01-23  2:19   ` Johan Bockgård
  2005-01-23  5:09     ` Yevgeniy Makarov
  0 siblings, 1 reply; 5+ messages in thread
From: Johan Bockgård @ 2005-01-23  2:19 UTC (permalink / raw)


Pascal Bourguignon <spam@mouse-potato.com> writes:

> I don't think that's possible. Faces are referenced thru symbols.

The standard font lock faces are referenced through variables.

C-h v font-lock-comment-face RET =>

    font-lock-comment-face's value is 
    font-lock-comment-face

    Face name to use for comments.

    Defined in `font-lock'.


> Of course, since normal font-locking code refers the faces
> "literally" thru the symbols they use, you'd have to patch them or
> program your own font-locking.

It doesn't, though.

-- 
Johan Bockgård

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Can a face have different attributes in different buffers?
  2005-01-23  2:19   ` Johan Bockgård
@ 2005-01-23  5:09     ` Yevgeniy Makarov
  2005-01-24 17:31       ` Kevin Rodgers
  0 siblings, 1 reply; 5+ messages in thread
From: Yevgeniy Makarov @ 2005-01-23  5:09 UTC (permalink / raw)


Johan Bockgård wrote:

> The standard font lock faces are referenced through variables.

That's a great idea. I created a new face called mail-quotation-face after the
example of font-lock-comment-face, and then put the following code in .emacs:

(add-hook 'mail-mode-hook
  '(lambda ()
     (make-local-variable 'font-lock-comment-face)
     (setq font-lock-comment-face 'mail-quotation-face)))

This makes quotation one color, and the comments in other buffers are another
color.

Thank you again,
Yevgeniy

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Can a face have different attributes in different buffers?
  2005-01-23  5:09     ` Yevgeniy Makarov
@ 2005-01-24 17:31       ` Kevin Rodgers
  0 siblings, 0 replies; 5+ messages in thread
From: Kevin Rodgers @ 2005-01-24 17:31 UTC (permalink / raw)


Yevgeniy Makarov wrote:
 > (add-hook 'mail-mode-hook
 >   '(lambda ()
 >      (make-local-variable 'font-lock-comment-face)
 >      (setq font-lock-comment-face 'mail-quotation-face)))

FYI, that can be shortened to

(add-hook 'mail-mode-hook
           (lambda ()
             (set (make-local-variable 'font-lock-comment-face)
                  'mail-quotation-face)))

-- 
Kevin Rodgers

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-01-24 17:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-22 23:22 Can a face have different attributes in different buffers? Yevgeniy Makarov
2005-01-23  0:02 ` Pascal Bourguignon
2005-01-23  2:19   ` Johan Bockgård
2005-01-23  5:09     ` Yevgeniy Makarov
2005-01-24 17:31       ` Kevin Rodgers

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).