~3 min read|
Today, I want to talk about adding another tool designed to improve the developer experience by making easy: Editor Configs.
Before getting into editor config, first a short aside on linters.
eslint are wonderful for linting and keeping projects clean. Linters, however, work by cleaning up code after it’s been written.
That means that unless you set them to clean on every save, it’s likely you’ll have a git log that looks a little like this:
* 02b2595 2020-03-14 | refactor: lint * 8ea04ca 2020-03-14 | feat: add def * a0787e7 2020-03-14 | refactor: lint * 95299fe 2020-03-14 | feat: add abc
Yes, there are configurations to mitigate this - including rebasing, but the editor configuration file is a simple one for some of the more basic linting nuisances.
Editor config handles a few cases particularly well, which can combine with linters nicely:
Unlike linting, with Editor Configs, changes are made as you type. If you set your
indent_size=4 and then tab, you’ll get four character worth of space. No need to clean up and lint later.
Editor Config facilitates cross-platform development (by which I mean some devs working on a Windows machine and others on Unix) with settings like the
Carl Saunders (deadlybyte) wrote a good article on the pain this can cause on Dev.To (see here: 🙏 Please Add .gitattributes To Your Git Repository), but suffice to say: making a decision on how you want lines to end can avoid a lot of linting pain.
Using it is also really simple. A number of editors have built-in support for it. Just put a
.editorconfig file in the root of your project and away you go.
For those editors that don’t have native support, many have plugins (like VSCode).
Once you’re set up (either by using an IDE like Webstorm with native support or with a plugin installed on VS Code), add your
.editorconfig file to the root of the project.
# EditorConfig helps developers define and maintain consistent # coding styles between different editors and IDEs # editorconfig.org root = true [*] # Applies rules to all file types # Holy-War Section indent_style = space indent_size = 4 # Cross-Platform Consistency end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true
That’s it! Using Editor Config is simple and can help avoid a lot of unnecessary conversations / linting pain. Moreover, it can clean up your git history - which is always a plus!
Hi there and thanks for reading! My name's Stephen. I live in Chicago with my wife, Kate, and dog, Finn. Want more? See about and get in touch!