# EditorConfig Intro ## Table of contents 1. [TL;DR](#tldr) 1. [Further readings](#further-readings) 1. [Sources](#sources) ## TL;DR File example: ```ini # EditorConfig is awesome: https://EditorConfig.org # top-most EditorConfig file root = true # Unix-style newlines with a newline ending every file [*] end_of_line = lf insert_final_newline = true # Matches multiple files with brace expansion notation # Set default charset [*.{js,py}] charset = utf-8 # 4 space indentation [*.py] indent_style = space indent_size = 4 # Tab indentation (no size specified) [Makefile] indent_style = tab # Indentation override for all JS under lib directory [lib/**.js] indent_style = space indent_size = 2 # Matches the exact files either package.json or .travis.yml [{package.json,.travis.yml}] indent_style = space indent_size = 2 ``` When opening a file, the compatible editor (or the EditorConfig plugin for it) looks for a file named `.editorconfig` in the directory of the opened file, **and** in every parent directory.
The search for `.editorconfig` files will stop if the root filepath is reached or an EditorConfig file with the `root=true` key pair is found. EditorConfig files are read **top to bottom**, and the most recent rules found take precedence (last one applies).
Properties from matching EditorConfig sections are applied in the order they are read, so properties in closer files take precedence. ## Further readings - [Website] - [Github] ## Sources All the references in the [further readings] section, plus the following: - [Properties] [github]: https://github.com/editorconfig/editorconfig/ [properties]: https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties [website]: https://editorconfig.org/ [further readings]: #further-readings