Subject: Re: bug#60787: setq-mode-local doesn't work for buffers not visiting files

From: Eli Zaretskii <[email-masked]>
Date: Thu, 19 Jan 2023 08:31:57 +0200

> Cc: [email-masked]
> From: Sean Whitton <[email-masked]>
> Date: Wed, 18 Jan 2023 15:42:42 -0700
> 
> On Tue 17 Jan 2023 at 09:31AM +02, Juri Linkov wrote:
> 
> >>   (setq-mode-local diff-mode view-read-only nil)
> >>
> >> doesn't affect *vc-diff* buffers, but it should, according to the docstring of
> >> setq-mode-local.
> >
> > Is this because of the condition `(buffer-file-name b)`
> > in mode-local-map-file-buffers?
> 
> Yes, but also how setq-mode-local relies on find-file-hook.

All of mode-local.el is written under the assumption that only
file-visiting buffers are supported.  Evidently, it assumes that modes
for buffers that don't visit files are "not interesting" enough.  This
assumption is explicitly in the doc strings of some of its functions.

I don't know why this was the assumption (maybe because CEDET was
about support of editing program source files?), but if we want to
lift the restriction, it would require changing many of the functions
in the package, not just this one.  Maybe we should do that.
mode-local.el wasn't significantly changed since it was added to Emacs
as part of CEDET merge, so maybe it's time to extend it?