all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jay Kamat <jaygkamat@gmail.com>
To: help-gnu-emacs@gnu.org
Subject: Dir-Locals + Editorconfig Changes in Emacs 26
Date: Mon, 02 Oct 2017 13:55:33 -0400	[thread overview]
Message-ID: <873771wi22.fsf@gmail.com> (raw)

Hi Everyone!

I use an emacs plugin called 'editorconfig' which provides an editor
independent way to set style configuration on a per-project basis, very
similar to the dir-locals feature in Emacs.

In emacs 25 and below, dir-locals and editorconfig interacted "as
expected", in that, the dir-locals file was applied after the
editorconfig, so dir-locals would take precedence over editorconfig
settings.

However, since emacs 26, this is reversed, where dir-locals is applied
first, rather than last, and so editorconfig overrides dir-locals. I
have filed a bug report to the project here to document it:
https://github.com/editorconfig/editorconfig-emacs/issues/141

The reason that this is significant is that editorconfig not only lets
you configure on a per-project basis, but recursively on a per machine
basis as well, so if you have a editorconfig file in your home directory
(as many people do) those settings will apply for every file on your
system, overwriting dir-locals settings. Since dir-locals is more
powerful and project-specific, I would much prefer dir-locals to
override editorconfig.

Editorconfig seems to apply on the 'after-change-major-mode' hook, as
shown below:
https://github.com/editorconfig/editorconfig-emacs/blob/master/editorconfig.el#L521-L531

I tried bisecting emacs to try to find a relevant change, but I wasn't
able to compile some of the older versions due to ASLR-related(?)
crashes I couldn't solve, so unfortunately that approach won't help me.

I am willing to help out with this, both on the editorconfig and the
emacs side of this to try and solve the issue, but I'm not sure where to
begin (since I'm very new to emacs development).

I'm essentially looking for one of:

1. A way to re-apply dir-locals settings manaully, so I can simply run 
that after editorconfig is done
2. A way to change dir-locals to apply after 'after-change-major-mode-hook'
3. A pointer to where dir-locals is applied in emacs source (since I
couldn't easily bisect it)
4. (undesirable) A way to check if dir-locals has been applied, so I can
turn of editorconfig in said situation.

I'll admit I could probably figure this out by going through the emacs
source code myself, but I thought it would be faster to try to find
someone who has seen this before, and I also wanted to ask for opinions
on this situation.

Thanks in advance,
-Jay Kamat



             reply	other threads:[~2017-10-02 17:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-02 17:55 Jay Kamat [this message]
2017-10-03 15:39 ` Dir-Locals + Editorconfig Changes in Emacs 26 Eli Zaretskii
2017-10-04 15:45   ` Jay Kamat
2017-10-04 17:00     ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=873771wi22.fsf@gmail.com \
    --to=jaygkamat@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.