add nix .clang-format
This commit is contained in:
parent
0a4cfcce7d
commit
91ccc02af2
2 changed files with 135 additions and 0 deletions
39
.clang-format
Normal file
39
.clang-format
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
#-* This file was taken directly from the official Nix repository
|
||||
#-* hosted on GitHub, such that Nixide upholds the style guidelines.
|
||||
#-* REF: https://github.com/NixOS/nix.git
|
||||
|
||||
BasedOnStyle: LLVM
|
||||
IndentWidth: 4
|
||||
BreakBeforeBraces: Custom
|
||||
BraceWrapping:
|
||||
AfterStruct: true
|
||||
AfterClass: true
|
||||
AfterFunction: true
|
||||
AfterUnion: true
|
||||
SplitEmptyRecord: false
|
||||
PointerAlignment: Middle
|
||||
FixNamespaceComments: true
|
||||
SortIncludes: Never
|
||||
#IndentPPDirectives: BeforeHash
|
||||
SpaceAfterCStyleCast: true
|
||||
SpaceAfterTemplateKeyword: false
|
||||
AccessModifierOffset: -4
|
||||
AlignAfterOpenBracket: AlwaysBreak
|
||||
AlignEscapedNewlines: Left
|
||||
ColumnLimit: 120
|
||||
BreakStringLiterals: false
|
||||
BitFieldColonSpacing: None
|
||||
AllowShortFunctionsOnASingleLine: Empty
|
||||
AlwaysBreakTemplateDeclarations: Yes
|
||||
BinPackParameters: false
|
||||
BreakConstructorInitializers: BeforeComma
|
||||
EmptyLineAfterAccessModifier: Leave # change to always/never later?
|
||||
EmptyLineBeforeAccessModifier: Leave
|
||||
#PackConstructorInitializers: BinPack
|
||||
BreakBeforeBinaryOperators: NonAssignment
|
||||
AlwaysBreakBeforeMultilineStrings: true
|
||||
IndentPPDirectives: AfterHash
|
||||
PPIndentWidth: 2
|
||||
BinPackArguments: false
|
||||
BreakBeforeTernaryOperators: true
|
||||
SeparateDefinitionBlocks: Always
|
||||
96
.clang-tidy
Normal file
96
.clang-tidy
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
#-* This file was taken directly from the official Nix repository
|
||||
#-* hosted on GitHub, such that Nixide upholds the style guidelines.
|
||||
#-* REF: https://github.com/NixOS/nix.git
|
||||
|
||||
UseColor: true
|
||||
Checks:
|
||||
- -*
|
||||
- bugprone-*
|
||||
# Too many warnings
|
||||
- -bugprone-assignment-in-if-condition
|
||||
# Too many warnings
|
||||
- -bugprone-narrowing-conversions
|
||||
# Kind of nonsense
|
||||
- -bugprone-easily-swappable-parameters
|
||||
# Too many warnings for now
|
||||
- -bugprone-implicit-widening-of-multiplication-result
|
||||
# Exception handling patterns in Nix
|
||||
- -bugprone-empty-catch
|
||||
# Many warnings
|
||||
- -bugprone-unchecked-optional-access
|
||||
# Many warnings, questionable lint
|
||||
- -bugprone-branch-clone
|
||||
# Extremely noisy before clang 19: https://github.com/llvm/llvm-project/issues/93959
|
||||
- -bugprone-multi-level-implicit-pointer-conversion
|
||||
# We don't compile out our asserts
|
||||
- -bugprone-assert-side-effect
|
||||
# TODO: figure out if this warning is useful
|
||||
- -bugprone-exception-escape
|
||||
# We use pointers to aggregates intentionally; void * would look weird
|
||||
- -bugprone-sizeof-expression
|
||||
#
|
||||
# Checks disabled to pass on current codebase (can be progressively enabled):
|
||||
#
|
||||
# 11 warnings - optional value conversions in various places
|
||||
- -bugprone-optional-value-conversion
|
||||
# 4 warnings - switches without default cases
|
||||
- -bugprone-switch-missing-default-case
|
||||
# 4 warnings - string_view::data() usage patterns
|
||||
- -bugprone-suspicious-stringview-data-usage
|
||||
# 4 warnings - .cc files included in other files (intentional pattern)
|
||||
- -bugprone-suspicious-include
|
||||
# 2 warnings - unused return values (AllowCastToVoid helps but some remain)
|
||||
- -bugprone-unused-return-value
|
||||
# 2 warnings - unused local RAII-style variables
|
||||
- -bugprone-unused-local-non-trivial-variable
|
||||
# 2 warnings - returning const& from parameter
|
||||
- -bugprone-return-const-ref-from-parameter
|
||||
# 1 warning - unsafe C functions (e.g., getenv)
|
||||
- -bugprone-unsafe-functions
|
||||
# 1 warning - signed char misuse
|
||||
- -bugprone-signed-char-misuse
|
||||
# 1 warning - calling parent virtual instead of override
|
||||
- -bugprone-parent-virtual-call
|
||||
# 1 warning - null termination issues
|
||||
- -bugprone-not-null-terminated-result
|
||||
# 1 warning - macro parentheses
|
||||
- -bugprone-macro-parentheses
|
||||
# 1 warning - increment/decrement in conditions
|
||||
- -bugprone-inc-dec-in-conditions
|
||||
# 2 warnings - std::move on forwarding reference (auto&&) in ranges lambdas
|
||||
- -bugprone-move-forwarding-reference
|
||||
# 2 warnings - coroutine pattern: co_await await(std::move(waitees)) then reuse.
|
||||
# Relies on moved-from containers being empty (holds for libstdc++/libc++).
|
||||
- -bugprone-use-after-move
|
||||
# 2 warnings - sorts Value* by ->string_view(), not by pointer value (false positive)
|
||||
- -bugprone-nondeterministic-pointer-iteration-order
|
||||
# 9 warnings - intentional std::bit_cast/memcpy on Value* arrays (evaluator hot path)
|
||||
- -bugprone-bitwise-pointer-cast
|
||||
# 1 warning (header) - value.hh mkFailed: GC alloc in noexcept. Boehm's
|
||||
# gc_cleanup::operator new isn't marked noexcept but aborts on OOM rather
|
||||
# than throws; std::terminate here is the intended behavior anyway.
|
||||
- -bugprone-unhandled-exception-at-new
|
||||
# 1 warning (header) - fmt.hh Magenta<T>::operator<<: generic colorizer
|
||||
# template; fires when T=unsigned char but that instantiation is correct.
|
||||
- -bugprone-unintended-char-ostream-output
|
||||
#
|
||||
# Non-bugprone checks (also disabled to pass on current codebase):
|
||||
#
|
||||
# 4 warnings - exceptions not derived from std::exception
|
||||
# All thrown exceptions must derive from std::exception
|
||||
# - hicpp-exception-baseclass
|
||||
# 88 warnings - C-style casts should be explicit about intent
|
||||
# - cppcoreguidelines-pro-type-cstyle-cast
|
||||
# 11 warnings - coroutine lambdas with captures (intentional pattern in async goal/store code)
|
||||
# - cppcoreguidelines-avoid-capturing-lambda-coroutines
|
||||
# Custom nix checks (when added)
|
||||
- nix-*
|
||||
|
||||
CheckOptions:
|
||||
# __asan_default_options: ASAN runtime configuration function (see nix-meson-build-support/common/asan-options/)
|
||||
# __wrap___assert_fail: Linker-wrapped assert handler for better stack traces (see nix-meson-build-support/common/assert-fail/)
|
||||
# _SingleDerivedPathRaw, _DerivedPathRaw: Internal type aliases in derived-path.hh (leading underscore pattern)
|
||||
# _SingleBuiltPathRaw, _BuiltPathRaw: Internal type aliases in built-path.hh (leading underscore pattern)
|
||||
bugprone-reserved-identifier.AllowedIdentifiers: '__asan_default_options;__wrap___assert_fail;_SingleDerivedPathRaw;_DerivedPathRaw;_SingleBuiltPathRaw;_BuiltPathRaw'
|
||||
# Allow explicitly discarding return values with (void) cast
|
||||
bugprone-unused-return-value.AllowCastToVoid: true
|
||||
Loading…
Add table
Add a link
Reference in a new issue