mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-26 03:04:06 +00:00
51 lines
1.4 KiB
Markdown
51 lines
1.4 KiB
Markdown
# Code Style and Conventions
|
|
|
|
## EditorConfig Rules (.editorconfig)
|
|
|
|
- **Charset**: UTF-8
|
|
- **Line endings**: LF
|
|
- **Indent style**: Spaces (except for specific files)
|
|
- **Indent size**: 2 spaces (default)
|
|
- **Final newline**: Required
|
|
- **Trailing whitespace**: Trimmed
|
|
|
|
### Language-specific Rules
|
|
|
|
- **Fish scripts**: 4-space indent, 80 char line limit
|
|
- **PHP files**: 4-space indent
|
|
- **Markdown**: 120 char line limit
|
|
- **Lua**: 90 char line limit
|
|
- **Git files**: Tab indentation
|
|
- **Shell scripts**: 2-space indent with specific shfmt settings
|
|
|
|
## Prettier Configuration
|
|
|
|
- Extends `@ivuorinen/prettier-config`
|
|
- **Trailing commas**: Always
|
|
- **Markdown**: 120 char width, preserve prose wrapping
|
|
|
|
## ESLint Configuration
|
|
|
|
- Extends `@ivuorinen` base configuration
|
|
- Applied to JavaScript/TypeScript files
|
|
|
|
## Shell Script Standards (.shellcheckrc)
|
|
|
|
- External sources following enabled
|
|
- Disabled checks: SC2039, SC2166, SC2154, SC1091, SC2174, SC2016
|
|
- Must include shebang or `# shellcheck shell=bash`
|
|
|
|
## Formatting Tools
|
|
|
|
- **Shell scripts**: shfmt with specific rules
|
|
- **Markdown**: markdownlint + prettier
|
|
- **JavaScript/TypeScript**: prettier + eslint
|
|
- **YAML**: yamllint
|
|
|
|
## Naming Conventions
|
|
|
|
- **Shell functions**: Use `x-` prefix for cross-shell compatibility
|
|
- **Environment variables**: UPPERCASE with underscores
|
|
- **File names**: lowercase with hyphens for scripts
|
|
- **Directory structure**: lowercase, organized by tool/purpose
|