Skip to content

Commit

Permalink
Add .clang-format and .clang-tidy
Browse files Browse the repository at this point in the history
This enables files for checking against the
[LMMS coding conventions](https://github.com/LMMS/lmms/wiki/Coding-conventions).

There is no strategy for automatic testing yet.
  • Loading branch information
JohannesLorenz committed Nov 1, 2018
1 parent 4252f75 commit 9764661
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 0 deletions.
65 changes: 65 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
# Language
Language: Cpp
Standard: Cpp11

# Identation
TabWidth: 8
UseTab: Always
IndentWidth: 8
ColumnLimit: 80

# Identation detail
AlignAfterOpenBracket: DontAlign
ContinuationIndentWidth: 8
BreakConstructorInitializers: AfterColon
ConstructorInitializerIndentWidth: 8
ConstructorInitializerAllOnOneLineOrOnePerLine: false
BinPackParameters: true
BinPackArguments: false
AlignOperands: false
AlignEscapedNewlines: DontAlign
AccessModifierOffset: -8

# Includes
IncludeBlocks: Regroup
IncludeCategories:
# the "main header" iplicitly gets priority 0
# system headers
- Regex: '^<[^>]+>$'
Priority: 1
# non-system headers
- Regex: '.*'
Priority: 2
SortIncludes: true

# Spaces
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false

# Brace wrapping
# Not directly mentioned in the coding conventions,
# but required to avoid tons of auto reformatting
BreakBeforeBraces: Custom
BraceWrapping:
AfterClass: true
AfterControlStatement: true
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: true
BeforeCatch: true
BeforeElse: true
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true


...

33 changes: 33 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
Checks: 'readability-identifier-naming,readability-misleading-indentation,readability-simplify-boolean-expr,readability-braces-around-statements,bugprone-macro-parentheses,bugprone-macro-repeated-side-effects'
WarningsAsErrors: ''
HeaderFilterRegex: '' # don't show errors from headers
AnalyzeTemporaryDtors: false
FormatStyle: none
User: user
CheckOptions:
- key: readability-identifier-naming.ClassCase
value: CamelCase
- key: readability-identifier-naming.EnumCase
value: CamelCase
- key: readability-identifier-naming.TypedefCase
value: CamelCase
- key: readability-identifier-naming.UnionCase
value: CamelCase
- key: readability-identifier-naming.StructCase
value: CamelCase
- key: readability-identifier-naming.UnionCase
value: CamelCase
# not yet working, as it currently applies both for static and object members
# - key: readability-identifier-naming.MemberPrefix
# value: 'm_'
# currently only working for local static variables:
- key: readability-identifier-naming.StaticVariablePrefix
value: 's_'
# not yet working
# - key: readability-identifier-naming.VariableCase
# value: camelBack
- key: readability-identifier-naming.FunctionCase
value: camelBack
...

0 comments on commit 9764661

Please sign in to comment.