wiki/contributing/formatting/code.md
2024-05-05 21:38:05 +00:00

160 lines
2.3 KiB
Markdown

---
title: Code Standards
description: Using .editorconfig
published: true
date: 2024-05-05T21:38:04.029Z
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 = space
```
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
insert_final_newline = false
```
## Python
Using pycodestyle
```editorconfig
[*.{py,py3}]
indent_size = 4
```
## 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
insert_final_newline = false
```
## 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
insert_final_newline = 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,yaml,yml,webmanifest}]
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_style = tab
```