>>foo
>>---
>>ba
>
>
>>to
>
>
>>foo
>>---
>>bar
>
>
>>which to my knowledge neither font-lock nor jit-lock can handle.
>
>
> I'm tempted to say "no, that should work just fine".  But really, it all
> depends on many more details of how foo and bar relate.

When

foo
---
ba

is fontified you have two choices: (a) Don't set a multiline property,
or (b) set a property from `foo' till - in the worst case - the end of
the buffer.  With (a) neither font-lock nor jit-lock will handle this.
I have not seen an application using (b) yet.

>
>>Or, insert a stretch of text containing `foo' and `bar' such that `foo'
>>ends up before `window-start' and `bar' within the window.  This would be
>>handled by pure font-lock but here `font-lock-syntactic-keywords' might
>>fail with jit-lock since neither `font-lock-syntactically-fontified' gets
>>adjusted properly nor is the inserted region fontified immediately.
>
>
> I do not understand what you mean by "might fail".  AFAIK this should work
> just fine.
>

Once set in a buffer `font-lock-syntactically-fontified' is never reset
to a lower position.  It's all contained in the following piece of code:

  (when (and font-lock-syntactically-fontified
             (< font-lock-syntactically-fontified start))
    (setq start (max font-lock-syntactically-fontified (point-min)))
    (setq font-lock-syntactically-fontified end))

Suppose `font-lock-syntactically-fontified' equals N in the current
buffer.  If you now insert a larger stretch of code at any position
before N you rely on font-lock to investigate the entire inserted code
in its syntactic keyword pass.  With pure font-lock this is done in
`font-lock-after-change-function'.  With jit-lock this is not done for
those parts of the inserted code that are not displayed in a window.



_______________________________________________
Emacs-pretest-bug mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug

Reply via email to