wiki/contributing/formatting/code.md

160 lines
2.3 KiB
Markdown
Raw Normal View History

2024-05-05 18:30:39 +00:00
---
title: Code Standards
description: Using .editorconfig
2024-05-05 18:30:39 +00:00
published: true
date: 2024-05-05T21:38:04.029Z
2024-05-05 18:30:39 +00:00
tags:
editor: markdown
dateCreated: 2024-05-05T18:30:37.455Z
---
# Global
Start your `.editorconfig` file with this:
2024-05-05 18:30:39 +00:00
```editorconfig
root = true
[*]
2024-05-05 18:36:10 +00:00
charset = utf-8
2024-05-05 18:30:39 +00:00
trim_trailing_whitespace = true
end_of_line = lf
2024-05-05 19:07:12 +00:00
insert_final_newline = true
indent_style = space
2024-05-05 18:36:10 +00:00
```
And add any additional types you need from below, making sure to separate each section with a new line.
2024-05-05 18:36:10 +00:00
---
2024-05-05 19:07:12 +00:00
# Programming Languages
2024-05-05 18:36:10 +00:00
## Nix
2024-05-05 19:07:12 +00:00
Using nixfmt-rfc-style
2024-05-05 18:36:10 +00:00
```editorconfig
[*.nix]
2024-05-05 19:07:12 +00:00
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
2024-05-05 18:36:10 +00:00
insert_final_newline = false
2024-05-05 19:07:12 +00:00
```
## 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
```
2024-05-05 19:07:12 +00:00
# Data Storage Files
## JSON, YAML
```editorconfig
[*.{json,json5,yaml,yml,webmanifest}]
indent_size = 2
```
## TOML
2024-05-05 19:07:12 +00:00
```editorconfig
[*.toml]
indent_style = unset
indent_size = 0
```
## \*RC
```editorconfig
[.*rc]
2024-05-05 19:07:12 +00:00
indent_size = 2
```
## CSV
```editorconfig
[*.csv]
end_of_line = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
2024-05-05 19:07:12 +00:00
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
2024-05-05 18:30:39 +00:00
```