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

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

How to prevent font-lock (& jit-lock etc.) from refontifying?


From: Drew Adams
Subject: How to prevent font-lock (& jit-lock etc.) from refontifying?
Date: Tue, 12 Oct 2004 12:51:55 -0700

In Emacs 21, suppose that I apply a face to certain spans of text. Maybe the
buffer is already font-locked before doing this, maybe not. In either case,
I want these spans of text to show the face I apply, overriding any
font-lock highlighting that might be there.

However, font-lock (jit-lock, I believe) works behind the scene to refontify
things the way it thinks they should look. That is, it effectively _removes_
any highlighting I go to the trouble to add.

In Emacs 20, I only had to worry about lazy-lock doing this, and function
lazy-lock-after-fontify-buffer was available to convince lazy-lock not to
undo things behind my back. I could just call that function after
highlighting, to fool lazy-lock into thinking there was no need to
rehighlight. This function, lock-after-fontify-buffer, is still available in
Emacs 21.

However, in Emacs 21, I do not see an equivalent way (or any other way) to
prevent _jit-lock_ from undoing my highlighting changes.

Example:

(put-text-property start end 'face some-face), where start and end specify
the text span to be highlighted, and some-face is just what it says.

I can set the buffer read-only and modified-p states back to what they were
before my highlighting action, but jit-lock still refontifies behind the
scene, overriding the some-face highlighting I added.

I've checked the source code (font-lock.el, jit-lock.el) and the Elisp
manual, but I don't see how to deal with this.

Please don't reply that I should just use font-lock-keywords and let
font-lock do the highlighting. Assume that there is a reason I want to add
some-face as the 'face property using put-text-property. Thanks.





reply via email to

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