Files
columba/detekt-config.yml
torlando-tech 4a70196e31 fix: TDD fixes for PR #36 and custom mode UX improvements
- Fix Python RSSI/SNR race condition with proper lock acquisition
- Add manual device name validation (32 char limit, RNode name check)
- Add regulatory warnings for custom mode without region selection
- Preserve user-modified field errors during wizard navigation
- Improve custom mode UX: highlight selection, skip modem/slot steps
- Auto-expand advanced settings in custom mode review
- Hide region/modem/slot summary cards in custom mode
- Split large test file to pass detekt LargeClass rule

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 16:00:12 -05:00

148 lines
2.8 KiB
YAML

build:
maxIssues: 0
excludeCorrectable: false
weights:
complexity: 2
LongParameterList: 1
style: 1
comments: 1
config:
validation: true
warningsAsErrors: false
processors:
active: true
console-reports:
active: true
output-reports:
active: true
exclude:
- 'TxtOutputReport'
comments:
active: true
CommentOverPrivateFunction:
active: false
UndocumentedPublicClass:
active: false
UndocumentedPublicFunction:
active: false
complexity:
active: true
CyclomaticComplexMethod:
active: true
threshold: 18
ignoreAnnotated: ['Composable']
LargeClass:
active: true
threshold: 600
excludes: ['**/test/**', '**/androidTest/**']
LongMethod:
active: true
threshold: 80
ignoreAnnotated: ['Composable']
LongParameterList:
active: true
functionThreshold: 8
constructorThreshold: 10
ignoreAnnotated: ['Composable']
NestedBlockDepth:
active: true
threshold: 5
TooManyFunctions:
active: true
thresholdInFiles: 15
thresholdInClasses: 15
thresholdInInterfaces: 25
thresholdInObjects: 15
thresholdInEnums: 15
coroutines:
active: true
GlobalCoroutineUsage:
active: true
SuspendFunWithFlowReturnType:
active: true
naming:
active: true
FunctionNaming:
active: true
functionPattern: '[a-z][a-zA-Z0-9]*'
ignoreAnnotated: ['Composable']
VariableNaming:
active: true
variablePattern: '[a-z][A-Za-z0-9]*'
TopLevelPropertyNaming:
active: true
constantPattern: '[A-Z][_A-Z0-9]*'
performance:
active: true
ForEachOnRange:
active: true
SpreadOperator:
active: true
potential-bugs:
active: true
EqualsAlwaysReturnsTrueOrFalse:
active: true
EqualsWithHashCodeExist:
active: true
ExplicitGarbageCollectionCall:
active: true
UnreachableCode:
active: true
exceptions:
active: true
TooGenericExceptionCaught:
active: true
exceptionNames:
- 'ArrayIndexOutOfBoundsException'
- 'Error'
- 'IllegalMonitorStateException'
- 'IndexOutOfBoundsException'
- 'NullPointerException'
- 'RuntimeException'
- 'Throwable'
allowedExceptionNameRegex: '_|(ignore|expected).*'
SwallowedException:
active: true
ignoredExceptionTypes:
- 'InterruptedException'
- 'MalformedURLException'
- 'NumberFormatException'
- 'ParseException'
allowedExceptionNameRegex: '_|(ignore|expected).*'
style:
active: true
ForbiddenComment:
active: false
MagicNumber:
active: false
MaxLineLength:
active: true
maxLineLength: 200
ReturnCount:
active: true
max: 3
ThrowsCount:
active: true
max: 2
UnusedPrivateMember:
active: true
UseCheckOrError:
active: true
UseRequire:
active: true
WildcardImport:
active: true
excludes: ['**/test/**', '**/androidTest/**']