
EditorConfig – file format for defining coding styles and text editor plugins - s_chaudhary
http://editorconfig.org/
======
serkanyersen
People comparing EditorConfig to eslint or prettier does not really understand
it's purpose.

yes they have intersecting features, but EditorConfig's main feature is that
it lets you set file type specific whitespace rules automatically, across
almost all editors.

\- Most editors will have a global whitespace rule and you have to use that
same rule for every file.

\- Some editors can be configured to have different rules per file type but
then it can't be done per project. So every project has to use the same rules.

\- Some editors will let you configure all of these per project, but you have
to save this project-settings file somewhere. Editor specific code is no good
in the repo, so you need to maintain/backup it yourself.

EditorConfig solves all of these issues for me.

------
vortico
Before clicking on the link, I thought "Oh, just another attempt at
standardizing editor preferences from a file in a repo." But looking at their
list of editors which natively support EditorConfig and the list of plugins
for editors which don't, this is far better support than I imagined. This is
it! Problem solved.

~~~
Galanwe
Honestly I don't think much is solved by EditorConfig.

I mean, the idea is great, but the small amount of parameters supported makes
it pretty much useless. Indentation character and size, line termination, ...
and that's all. I would need a hundred of these (like clang-format, yapf, etc
have) to switch to EditorConfig. Unfortunately, looking at the commit log
frequency, I doubt EditorConfig will ever have more than the 10 or so
parameters that it already have.

~~~
SideburnsOfDoom
> Honestly I don't think much is solved by EditorConfig.

No, it doesn't solve all the things. My experience is that it addresses one
specific annoyance - team members checking in changes with varying line
endings and spaces/tabs settings - and makes it a thing of the past.

For solving that one thing, I like it a lot.

~~~
mhw
Well, it moves the problem to making sure that all team members have the right
plugins installed and bother to use them. Depending on the make up of your
team, that could be a hard problem.

~~~
SideburnsOfDoom
It moves the problem from "could you submit your PR with spaces not tabs, the
spurious diff is not good" and "but it doesn't matter, I don't care" on a
regular basis; to "let's install this plugin to your IDE and neither of us has
to worry about it again - you get ease and I get consistency".

If this is really a hard problem for a team then it's down to the people not
the tools.

There is in my experience no "bother to use them" part, it happens
automatically when a file is saved.

Even better, "the right plugins" might be none at all. Some IDEs come with
editorconfig support out of the box:
[https://sorokoletov.com/2016/11/28/editorconfig-in-
visualstu...](https://sorokoletov.com/2016/11/28/editorconfig-in-
visualstudio/)

In short, if you have these specific problems, life really is easier with
editorconfig.

------
Brajeshwar
EditorConfig is awesome, especially for a distributed remote team. I've
standardized everyone whom I ever worked with few initial project settings and
EditorConfig is such one must-do item. Been using it (I think) for the past 5
years or so.

~~~
StavrosK
Same here, and I love it for another reason as well: It can configure my
editor to have different indentation settings for different filetypes.

No longer does JSON get the four spaces that Python does.

------
qntmfred
I made this a standard for all my engineers years ago. anything I can do to
automate consistency and "correctness" in coding style and let my team focus
on doing the real work

------
majewsky
Looks like 99% of this is covered by my editor being configured to autodetect
existing indentation, and adjust itself accordingly:
[https://github.com/ciaranm/detectindent](https://github.com/ciaranm/detectindent)

~~~
rxdazn
it's meant to be used within teams, with people who might not have the same
editor (or the same set of plugins) as you

you just drop an .editorconfig at the root of your project and you'll know for
sure that any code written by anyone will have the same indentation, encoding,
and final newline config

~~~
ewanm89
The other useful case is when you open project on another machine for some
reason and you find your usual editor not installed and configured. Open any
editor and away you go with this, for those quick dirty edits. I require all
editors installed to be able to read .editorconfig files and use them
accordingly.

------
duncan_bayne
I've evangelised this tool on every team I've worked with for years. It
eliminates _so_ many forms of conflict and bikeshedding. (Plus I have
contributed in a trivial way to the Emacs plugin; they very happily accept
PRs).

------
lytedev
At least in the JavaScript world, this was a lovely thing to have. Now we have
linters which are even better! Still nice to include this so that all
collaborators don't need to modify their editors to jump in!

~~~
qntmfred
and now we have [https://prettier.io/docs/en/why-
prettier.html](https://prettier.io/docs/en/why-prettier.html) we can
automatically enforce and fix all these style rules

~~~
andreineculau
I haven't used prettier but eslint can also fix style

~~~
manveru
And of course there's [https://github.com/prettier/prettier-
eslint](https://github.com/prettier/prettier-eslint) to fix it using both :)

------
donatj
I prefer tabs to spaces, not here to argue, and editorconfig is read by GitHub
and let's me change tabs to display as 4 spaces instead of eight. A major win.
Also allows me to default their editor to tabs.

~~~
gibbitz
This is the main reason I use this, though I use 2 space tabs and my coworkers
use 4 space tabs. Things get ugly without editorconfig playing cop. I also
force it to show rulers. It doesn't make the other devs grow a conscience,
tho.

------
andreineculau
The companion would be eclint in order to lint as part of a git hook or CI
test run

[https://github.com/jedmao/eclint](https://github.com/jedmao/eclint)

------
mrkgnao
"LSP for indentation" :)

