Style [formatting.style]
We strive to follow NEP-1 for style matters - naming, capitalization, 80-character limit etc. Common places where deviations happen include:
- Code based on external projects
- Wrappers / FFI
- Implementations of specs that have their own naming convention
- Ports from other languages
- Small differences due to manual formatting
- Aligned indents - we prefer python-style hanging indent for in multiline code
- This is to avoid realignments when changes occur on the first line. The extra level of indentation is there to clearly distinguish itself as a continuation line.
func someLongFunctinName(
alsoLongVariableName: int) = # Double-indent
discard # back to normal indent
if someLongCondition and
moreLongConditions: # Double-indent
discard # back to normal indent
Practical notes
- We do not use
nimpretty
- as of writing (Nim 2.0), it is not stable enough for daily use:- Can break working code
- Naive formatting algorithm
- We do not make use of Nim's "flexible" identifier names - all uses of an identifier should match the declaration in capitalization and underscores
- Enable
--styleCheck:usages
and, where feasible,--styleCheck:error
- Enable