mirror of
https://github.com/LMMS/lmms.git
synced 2025-12-23 22:58:33 -05:00
* Compile in C++20 mode
* Fix implicit lambda captures of `this` by `[=]`
Those implicit captures were deprecated in C++20
* Silence MSVC atomic std::shared_ptr warning
Unfortunately std::atomic<std::shared_ptr> (P0718R2) is not supported by
GCC until GCC 12 and still is not supported by Clang or Apple Clang, so
it looks like we will continue using std::atomic_load for the time being
* Use C++20 in RemoteVstPlugin
* Simplification
* Add comment
* Fix bitwise operations between different enumeration types
* Revert "Fix bitwise operations between different enumeration types"
This reverts commit d45792cd72.
* Use a helper function to combine keys and modifiers
* Remove AnalyzeTemporaryDtors from .clang-tidy
AnalyzeTemporaryDtors was deprecated in clang-tidy 16 and fully removed
in clang-tidy 18
* Use C++20 in .clang-format
* Use bitwise OR
Prevents issues if any enum flags in `args` have bits in common
85 lines
2.0 KiB
YAML
85 lines
2.0 KiB
YAML
---
|
|
# Language
|
|
Language: Cpp
|
|
Standard: c++20
|
|
|
|
# Indentation
|
|
TabWidth: 4
|
|
UseTab: Always
|
|
IndentWidth: 4
|
|
ColumnLimit: 120
|
|
|
|
# Indentation detail
|
|
AlignAfterOpenBracket: DontAlign
|
|
ContinuationIndentWidth: 4
|
|
BreakConstructorInitializers: BeforeComma
|
|
ConstructorInitializerIndentWidth: 4
|
|
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
|
BinPackParameters: true
|
|
BinPackArguments: true
|
|
AlignOperands: false
|
|
|
|
# Alignment
|
|
AlignEscapedNewlines: DontAlign
|
|
AccessModifierOffset: -4
|
|
AllowShortBlocksOnASingleLine: Always
|
|
AllowShortIfStatementsOnASingleLine: Always
|
|
AllowShortCaseLabelsOnASingleLine: false
|
|
AllowShortFunctionsOnASingleLine: InlineOnly
|
|
BreakBeforeBinaryOperators: All
|
|
|
|
# Includes
|
|
IncludeBlocks: Regroup
|
|
IncludeCategories:
|
|
# windows.h must go before everything else
|
|
# otherwise, you will get errors
|
|
- Regex: '^<windows.h>$'
|
|
Priority: -99
|
|
# the "main header" implicitly 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: Always
|
|
AfterEnum: true
|
|
AfterFunction: true
|
|
AfterNamespace: false
|
|
AfterStruct: true
|
|
AfterUnion: true
|
|
AfterExternBlock: false
|
|
BeforeCatch: true
|
|
BeforeElse: true
|
|
IndentBraces: false
|
|
SplitEmptyFunction: true
|
|
SplitEmptyRecord: true
|
|
SplitEmptyNamespace: true
|
|
BeforeWhile: false
|
|
BeforeLambdaBody: false
|
|
|
|
# Do not break doxygen comments
|
|
CommentPragmas: '^[[:space:]]*\\.+'
|
|
|
|
# Pointers
|
|
# Use pointer close to type: `const char* const* function()`
|
|
PointerAlignment: Left
|
|
|
|
...
|
|
|