178 lines
2.8 KiB
Markdown
178 lines
2.8 KiB
Markdown
---
|
|
title: Editorconfig
|
|
description: Using .editorconfig
|
|
published: true
|
|
date: 2024-08-02T19:54:32.003Z
|
|
tags:
|
|
editor: markdown
|
|
dateCreated: 2024-05-05T18:30:37.455Z
|
|
---
|
|
|
|
# Global
|
|
Start your `.editorconfig` file with this:
|
|
```editorconfig
|
|
root = true
|
|
|
|
[*]
|
|
charset = utf-8
|
|
trim_trailing_whitespace = true
|
|
end_of_line = lf
|
|
insert_final_newline = true
|
|
indent_style = tabs
|
|
```
|
|
|
|
> The formatting tool `prettier` adjust auto-formatting styles according to `.editorconfig` but ignores some attributes. This includes `insert_final_newline` which is hard-coded to `true`. See [prettier issue #6360](https://github.com/prettier/prettier/issues/6360#issuecomment-520368783)
|
|
> Please ensure you are not setting `insert_final_newline` in any of your language specific settings.
|
|
>{.is-info}
|
|
|
|
And add any additional types you need from below, making sure to separate each section with a new line.
|
|
|
|
---
|
|
|
|
# Programming Languages
|
|
|
|
## Nix
|
|
Using nixfmt-rfc-style
|
|
```editorconfig
|
|
[*.nix]
|
|
indent_size = 2
|
|
indent_style = space
|
|
```
|
|
|
|
## Python
|
|
Using pycodestyle
|
|
```editorconfig
|
|
[*.{py,py3}]
|
|
indent_size = 4
|
|
indent_style = space
|
|
```
|
|
|
|
## Node.js
|
|
Using prettier
|
|
```editorconfig
|
|
[*.{cjs,mjs,js,ts,jsx,tsx}]
|
|
indent_size = 2
|
|
```
|
|
|
|
## Rust
|
|
Using cargo fmt
|
|
```editorconfig
|
|
[*.rs,Cargo.toml]
|
|
indent_size = 4
|
|
```
|
|
|
|
## Go
|
|
Using gofmt
|
|
```editorconfig
|
|
[*.{go,mod}]
|
|
indent_size = 4
|
|
```
|
|
|
|
## C and Related
|
|
```editorconfig
|
|
[*.{c,cpp,cs,h,hpp,C,H,cxx,hxx}]
|
|
indent_size = 4
|
|
|
|
[*.{sln,csproj,vbproj,vcxproj.filters,proj,projitems,shproj}]
|
|
indent_size = 2
|
|
```
|
|
|
|
## Shell Script
|
|
```editorconfig
|
|
[*.{sh,zsh,bash,bat,cmd,ps1,psm1}]
|
|
indent_size = 4
|
|
```
|
|
|
|
# Markup Languages
|
|
|
|
## Markdown
|
|
```editorconfig
|
|
[*.md]
|
|
indent_size = 2
|
|
trim_trailing_whitespace = false
|
|
```
|
|
|
|
## Web
|
|
```editorconfig
|
|
[*.{htm,html,less,svg,vue}]
|
|
indent_size = 2
|
|
|
|
[*.{css.sass,scss,less}]
|
|
indent_size = 2
|
|
```
|
|
|
|
# Data Storage Files
|
|
|
|
## JSON, YAML
|
|
```editorconfig
|
|
[*.{json,json5,webmanifest}]
|
|
indent_size = 2
|
|
```
|
|
|
|
## YAML
|
|
```editorconfig
|
|
[*.{yaml,yml}]
|
|
indent_style = space
|
|
indent_size = 2
|
|
```
|
|
|
|
## TOML
|
|
```editorconfig
|
|
[*.toml]
|
|
indent_style = unset
|
|
indent_size = 0
|
|
```
|
|
|
|
## \*RC
|
|
```editorconfig
|
|
[.*rc]
|
|
indent_size = 2
|
|
```
|
|
|
|
## CSV
|
|
```editorconfig
|
|
[*.csv]
|
|
end_of_line = unset
|
|
insert_final_newline = unset
|
|
trim_trailing_whitespace = unset
|
|
indent_size = 0
|
|
indent_style = unset
|
|
```
|
|
|
|
## Lockfile
|
|
```editorconfig
|
|
[*.lock]
|
|
indent_style = unset
|
|
insert_final_newline = unset
|
|
```
|
|
|
|
## Git
|
|
```editorconfig
|
|
[*.{diff,patch}]
|
|
end_of_line = unset
|
|
insert_final_newline = unset
|
|
trim_trailing_whitespace = unset
|
|
indent_size = unset
|
|
indent_style = unset
|
|
|
|
[.{gitignore,gitreview,gitmodules}]
|
|
indent_style = unset
|
|
indent_size = 0
|
|
```
|
|
|
|
## Keys
|
|
```editorconfig
|
|
[*.{asc,key,ovpn,pem}]
|
|
end_of_line = unset
|
|
insert_final_newline = unset
|
|
trim_trailing_whitespace = unset
|
|
```
|
|
|
|
# Build Tool Files
|
|
|
|
## Make
|
|
|
|
```editorconfig
|
|
[Makefile]
|
|
indent_size = 2
|
|
``` |