GNU bug report logs - #51809
29.0.50; [PATCH] Support for outline default state in Diff buffers

Previous Next

Package: emacs;

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


Message #74 received at 51809 <at> debbugs.gnu.org (full text, mbox):

From: Matthias Meulien <orontee <at> gmail.com>
To: Juri Linkov <juri <at> linkov.net>
Cc: 51809 <at> debbugs.gnu.org
Subject: Re: bug#51809: 29.0.50; [PATCH] Support for outline default state
 in Diff buffers
Date: Sun, 26 Dec 2021 21:55:30 +0100
Matthias Meulien <orontee <at> gmail.com> writes:

> 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', but wondering whether
there's a clean way to achieve the same...

For posterity, here is a sample configuration for *vc-diff* buffers to
hide hunks with long lines, long hunks or matching some regexp.

(add-hook 'diff-mode-hook #'(lambda ()
			      (setq diff-font-lock-prettify t
				    outline-default-state 1
				    outline-default-state-subtree-visibility
				    '(subtree-is-long
				      subtree-has-long-lines
				      (match-regexp . "NEWS\\|test")))
			      (outline-minor-mode)))

(defadvice vc-diff-finish (after ensure-outline-apply-default-state activate)
  (when outline-minor-mode
    (outline-apply-default-state)))




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.