help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Overriding some face attributes without changing the default(s) one(


From: Alexandre LAURENT
Subject: Re: Overriding some face attributes without changing the default(s) one(s)
Date: Mon, 9 Jun 2014 20:10:31 +0200

On Mon, Jun 9, 2014 at 8:26 AM, Alex Kost <alezost@gmail.com> wrote:
> Oh, now I understand what you want.  Actually here you faced with
> another problem: when you enable whitespace-mode in emacs 24.3.1,
> "whitespace-line" becomes the only active face in a long line, and in
> emacs 24.4 it is added to the faces in that line.
>
> So let's say, you have the following long line in a buffer with
> "emacs-lisp-mode" (and "whitespace-mode" is enabled):
>
> (defun some-function (arg1 arg2 &rest args) "A very useful function." 
> (interactive) (message "Hello"))
>
> If you move your cursor to the "defun" word and press "C-4 C-x =", in
> the bottom of the "*Help*" buffer you will see:
>
> There are text properties here:
>   face                 whitespace-line
>   fontified            t
>
> I.e. only "whitespace-line" face is active and you can't see
> "font-lock-keyword-face" (used for highlighting "defun") no matter how
> you customized "whitespace-line".
>
> As for emacs 24.4, you will see:
>
> There are text properties here:
>   face                 (whitespace-line font-lock-keyword-face)
>   fontified            t
>
> In this case if some bits of face spec are unspecified in
> "whitespace-line" face, the ones from "font-lock-keyword-face" are used.
>
> So that is not the same problem we were discussing before, but it is
> also fixed in emacs 24.4.
Ok, I thought both issues were somehow related.
The thing is, I was not sure how to highlight these long lines anyway,
but I just cannot have a single face to handle this.

I sometimes have to read code from people who don't care about these
kind of rules (yes, they could even develop their project in a single
line (I suppose that they don't plan to read their own code)), so ~70%
of the file loses the syntax highlighting in this case.
For now, I'll just remove "lines" from "whitespace-style" and define
something like this:
(add-hook 'prog-mode-hook
 (lambda ()
(font-lock-add-keywords
nil
'(("^[^\n]\\{80\\}\\(.*\\)$"
;;...
)))))
It should be enough, and I can catch and highlight the end of the line only.

Anyway, thanks it is clear now and I didn't know about "C-4 C-x =".

-- 
Alexandre LAURENT



reply via email to

[Prev in Thread] Current Thread [Next in Thread]