[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#57534: 29.0.50; Highlighting lost after auto-revert-mode triggers
From: |
Eli Zaretskii |
Subject: |
bug#57534: 29.0.50; Highlighting lost after auto-revert-mode triggers |
Date: |
Fri, 02 Sep 2022 09:10:30 +0300 |
> From: Dima Kogan <dima@secretsauce.net>
> Date: Thu, 01 Sep 2022 15:40:01 -0700
>
> Hi. I'm seeing this:
>
> 1. seq 10 > /tmp/file
>
> 2. emacs -Q /tmp/file
This "file" is in Fundamental mode, yes? If not, which major mode is
used, and does that major mode turns on Font Lock?
> 3. (highlight-lines-matching-regexp "3")
>
> This is bound to "M-s h l". I see the line containing "3" highlighted
> in yellow, as expected
>
> 4. M-x auto-revert-mode
>
> 5. Back in the shell: seq 20 > /tmp/file
>
>
> auto-revert-mode kicks in, updating the buffer with the results of 'seq
> 20' (possibly updating to an empty buffer first, if we react immediately
> to the file truncation). At this point I would expect either:
>
> 1. The buffer being fully reverted, with all the highlighting
> disappearing. This is what happens if we did M-x revert buffer
>
> 2. The buffer contents being reverted, but the highlighting being
> reapplied
>
> In this auto-revert scenario, we get something in-between: after the
> auto-revert hi-lock-interactive-patterns still contains the highlighting
> regex, but no highlighting actually happens. It'd be really nice and
> useful if the highlighting stayed.
The documentation of hi-lock-mode says:
In buffers where Font Lock mode is enabled, patterns are
highlighted using font lock. In buffers where Font Lock mode is
disabled, patterns are applied using overlays; in this case, the
highlighting will not be updated as you type. The Font Lock mode
is considered \"enabled\" in a buffer if its `major-mode'
causes `font-lock-specified-p' to return non-nil, which means
the major mode specifies support for Font Lock.
If I use your recipe in a file visited with C Mode, which does use
Font Lock, the auto-revert doesn't lose the highlighted lines.