GNU bug report logs -
#51809
29.0.50; [PATCH] Support for outline default state in Diff buffers
Previous Next
Reported by: Matthias Meulien <orontee <at> gmail.com>
Date: Sat, 13 Nov 2021 13:10:02 UTC
Severity: normal
Tags: fixed, patch
Fixed in version 29.0.50
Done: Juri Linkov <juri <at> linkov.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
>> I am now back to the origin of this bug report (toggling visibility of
>> some diff hunks depending on long lines, chunks size, or file names) and
>> I see there's a major drawback with the outline mode default visibility
>> state approach: When outline minor mode is set through diff-mode-hook,
>> the buffer is emtpy and applying the default state visibility is a
>> no-op; It's a side-effect of the buffer content being generated
>> asynchronously...
>
> I fixed it using an advice to `vc-diff-finish',
This problem is not specific to diff-mode. Like I demonstrated
earlier, xref requires using xref-after-update-hook,
so now it could look like this:
#+begin_src emacs-lisp
(add-hook 'xref-after-update-hook
(lambda ()
(setq-local outline-regexp (if (eq xref-file-name-display 'abs)
"/" "[^ 0-9]")
outline-default-state 1)
(outline-minor-mode)
(outline-apply-default-state)))
#+end_src
> but wondering whether there's a clean way to achieve the same...
Some time ago in another bug report I proposed to add a hook
at the end of 'vc-diff-finish', so it will solve this problem.
PS: Please give me more time to test your patch thoroughly
in various modes.
This bug report was last modified 3 years and 91 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.