bug#81632: 31.0.91; outline-view-change-hook is marked obsolete, without an adequate replacement

Stéphane Marks <[email protected]>
Newsgroups gmane.emacs.bugs
Message-ID <CAN+1HbpdJsDYZyXh0TofwwaTizi3Fn-DSvc=KBLbk8jAAjrrtA@mail.gmail.com>
On Tue, Aug 18, 2026 at 4:16 PM Stefan Monnier <[email protected]>
wrote:

> > The hook `outline-view-change-hook' was deprecated in 29.1 in commit
> > 53b1e6f96cb03a461061e1e21cd185dd8a82ce6b. However there does not seem to
> > exist an adequate replacement. Sometimes there is a need to run some
> > code when folding or unfolding sections of a buffer.
> >
> > For instance the new `markdown-ts-mode' has this comment and code:
> >
> >     ;; NOTE: `outline-view-change-hook' was obsoleted in 29.1 (commit
> >     ;; 53b1e6f96cb) on the grounds that only lazy-lock used it, but no
> >     ;; replacement was provided and outline.el itself still runs the hook
> >     ;; in 10+ places.
> >     (with-suppressed-warnings ((obsolete outline-view-change-hook))
> >       (add-hook 'outline-view-change-hook
> >                 #'markdown-ts--outline-view-change nil t))
>
> I wonder why this is needed.  I see the following comment:
>
>                ;; Don't create image overlays for nodes inside
>                ;; folded (outline-invisible) headings, since the
>                ;; images wouldn't be visible and could interfere
>                ;; with the folded display.
>                (not (markdown-ts--outline-invisible-p node-start)))
>
> The "images wouldn't be visible" bit seems unimportant (jit-lock usually
> skips invisible text, so it shouldn't be an issue resource-wise).
> Is the problem that the images are displayed even in text that's marked
> as invisible?  That would itself sound like a bug, tho I can imagine
> it's debatable and not easy to fix in the redisplay code.
>
> > Would it make sense to revert the deprecation or offer an alternative
> > API to monitor folding and unfolding? Thanks!
>
> I see it's used in a few other packages as well, but it's almost always
> ill-adapted to the needs because it doesn't say what's changed, so the
> clients end up refreshing the whole buffer every time even when we're
> just (un)folding a particular node.
>
> So, I'm in favor of introducing an alternative API
> `outline-view-change-functions` which receives some useful info such as
> a BEG..END range.
>

+ Rahul who worked on outline markdown-ts-mode integration.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.