Luc Teirlinck <teirllm <at> dms.auburn.edu> writes:
>
> Stefan Monnier wrote:
>
> Can you explain the change?
> I really don't like the
>
> (defun turn-on-font-lock-as-appropriate ()
> (let (font-lock-set-defaults)
> (turn-on-font-lock-if-enabled)))
>
> since it may cause font-lock-keywords to be reset from font-lock-defaults,
> thus throwing away keywords added via font-lock-add-keywords since.
>
> The problem that binding font-lock-defaults to nil tries to solve is
> that (with org-mode's yesterday's version), after font-lock was turned
> on in outline-mode, I could not get it correct for org-mode by
> disabling and enabling font-lock-mode, font-lock just kept using
> outline-mode's font-lock settings.
I've run into the same problem in sql-mode; the need to alter the font-lock
rules after font-lock-mode has been enabled. My current solution is as follows:
;; Force font lock to reinitialize if it is already on
;; Otherwise, we can wait until it can be started.
(when (and (fboundp 'font-lock-mode)
(boundp 'font-lock-mode)
font-lock-mode)
(font-lock-defontify)
(font-lock-mode -1)
(font-lock-mode 1))
The `defontify' seems to be the ticket to get font-lock to recalc its settings
and actually reperform the fontification. My original solution used internals
from font-lock that were not version stable.
Stefan, can you confirm that this approach should work? The docs for `font-
lock-defontify' certainly imply that this function should do what we are
looking for. Thanks.
-- Michael
_______________________________________________
Emacs-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-devel