[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Add a separate mode for .dir-locals.el

From: Stefan Monnier
Subject: Re: Add a separate mode for .dir-locals.el
Date: Thu, 17 Oct 2019 16:32:59 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

> elisp-flymake-* at least have the advantage of having "flymake" in
> their names, so some relation is evident.

Just because the original description of the problem talked about
flymake doesn't mean the problem is specific to flymake.

>> I agree that at some level they are theoretically the same, but in
>> practice they exhibit important differences.
> Differences that are important for an Emacs major mode?
> What differences are those?

To quote the email to which you reply:

   ... other things we may want to fix such as the M-C-x binding which
   makes no sense in .dir-locals.el, or the presence of "Byte-compile
   this file" in the menu, ...

These probably aren't that important, admittedly.  But completion in
.dir-locals.el doesn't work very well right now, because the data has
the form (VAR . VAL) but the completion function presumes this is Elisp
*code* where the head of a list should be a function rather than
a variable, so it will give you bogus completions when trying to
complete the variable names.  We couldn't cleanly fix this completion in
a generic emacs-lisp-data-mode, tho: we'd need something more specific
like a dir-locals-mode.

> And why not make emacs-lisp-mode recognize these differences and
> support them accordingly?

As I said "I don't care if we make it a separate major mode or not".

Tho I was partly lying: I do think a separate major mode is a better
choice down the line (e.g. it makes it easier to use auto-mode-alist
and -*-...-*- to specify the behavior to use for .dir-locals.el,
~/.emacs.d/bookmarks, ~/.emacs.d/tramp, ~/.emacs.d/ecomplterc, ...), but
that's a fairly minor detail compared to the fact that the issue goes
much further than "flymake in .dir-locals.el".


reply via email to

[Prev in Thread] Current Thread [Next in Thread]