Subject: Re: bug#30204: 27.0.50; Changing major mode resets non-default invisibility spec

From: Eli Zaretskii <[email-masked]>
Date: Mon, 22 Jan 2018 17:56:38 +0200

> From: Philipp Stephani <[email-masked]>
> Date: Mon, 22 Jan 2018 10:51:32 +0100
> 
> C-x b *foo* RET
> M-: (progn (add-to-invisibility-spec 'bar) (insert (propertize "foo" 'invisible 'foo)))
> 
> Now "foo" is visible, as it should be.
> 
> M-x fundamental-mode => "foo" becomes invisible, because
> `kill-all-local-variables' has reset `buffer-invisibility-spec' to t.
> This can be confusing for modes that use conditional invisibility
> properties such as markdown-mode.
> Probably `kill-all-local-variables' shouldn't blindly reset
> `buffer-invisibility-spec', or maybe it should remove conditional
> invisibility properties.

Why can't you make buffer-invisibility-spec be a permanent-local
variable in the cases where that is TRT?

(In general, clearing buffer-invisibility-spec on major mode change
sounds appropriate to me.)