Bumps [dev.detekt:detekt-gradle-plugin](https://github.com/detekt/detekt) from 2.0.0-alpha.3 to 2.0.0-alpha.5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/detekt/detekt/releases">dev.detekt:detekt-gradle-plugin's releases</a>.</em></p> <blockquote> <h2>v2.0.0-alpha.5</h2> <h2>2.0.0-alpha.5 - 2026-06-17</h2> <p>This is a hotfix release for <code>2.0.0-alpha.4</code> where we fixed 2 bugs that were preventing detekt from running correctly.</p> <h3>Changelog</h3> <ul> <li>fix: stop leaking ktlint-repackage as a transitive dependency - <a href="https://redirect.github.com/detekt/detekt/pull/9391">#9391</a></li> <li>fix: exclude gradle-public-api from published POM - <a href="https://redirect.github.com/detekt/detekt/pull/9408">#9408</a></li> <li>Stop accepting unsupported API or language versions passed to CLI - <a href="https://redirect.github.com/detekt/detekt/pull/9410">#9410</a></li> </ul> <h2>v2.0.0-alpha.4</h2> <h2>2.0.0-alpha.4 - 2026-06-13</h2> <p>This is an alpha release of Detekt 2.0.0. Is built against Kotlin 2.4.0, Gradle 9.5.1, AGP 9.2.1 and is tested against JDK 25.</p> <h3>Notable Changes</h3> <ul> <li>Support Kotlin 2.4.0 - <a href="https://redirect.github.com/detekt/detekt/pull/9218">#9218</a></li> <li>Add new rule <code>LeakingSessionBoundType</code> - <a href="https://redirect.github.com/detekt/detekt/pull/9242">#9242</a></li> <li>Apply the <code>indent_style</code> configuration to all the ktlint wrapper rules (previsouly this was applied only to the <code>Indentation</code> rule) - <a href="https://redirect.github.com/detekt/detekt/pull/9315">#9315</a></li> </ul> <h3>Breaking Changes</h3> <ul> <li>Expose Glob-to-Regex functions in <code>psi-utils</code> - <a href="https://redirect.github.com/detekt/detekt/pull/9340">#9340</a></li> <li>Make <code>Detektion</code> immutable - <a href="https://redirect.github.com/detekt/detekt/pull/8583">#8583</a></li> </ul> <h3>Changelog</h3> <ul> <li>fix: prevent ArrayPrimitive crash on unresolved types - <a href="https://redirect.github.com/detekt/detekt/pull/9364">#9364</a></li> <li>Update ktlint documentation links - <a href="https://redirect.github.com/detekt/detekt/pull/9354">#9354</a></li> <li>Fix PrintStackTrace nested call detection - <a href="https://redirect.github.com/detekt/detekt/pull/9352">#9352</a></li> <li>Fix unused import false positive for companion object member extension properties - <a href="https://redirect.github.com/detekt/detekt/pull/9349">#9349</a></li> <li>Accept punctuation after a link - <a href="https://redirect.github.com/detekt/detekt/pull/9341">#9341</a></li> <li>Fixes UnnecessaryFullyQualifiedName false positive with explicit import shadowing - <a href="https://redirect.github.com/detekt/detekt/pull/9329">#9329</a></li> <li>docs: fix KMP type resolution task names - <a href="https://redirect.github.com/detekt/detekt/pull/9316">#9316</a></li> <li>Stop publishing ktlint-repackage - <a href="https://redirect.github.com/detekt/detekt/pull/9314">#9314</a></li> <li>Stop exposing ktlint's StandardRule to detekt-rules-ktlint-wrapper consumers - <a href="https://redirect.github.com/detekt/detekt/pull/9313">#9313</a></li> <li>Include ktlint-repackage in ktlint-wrapper JAR - <a href="https://redirect.github.com/detekt/detekt/pull/9312">#9312</a></li> <li>Declare DGP compatibility with Gradle's configuration cache - <a href="https://redirect.github.com/detekt/detekt/pull/9311">#9311</a></li> <li>Forward languageVersionSettings to KotlinAnalysisApiEngine.compile - <a href="https://redirect.github.com/detekt/detekt/pull/9305">#9305</a></li> <li>docs: add ForbiddenImport configuration example - <a href="https://redirect.github.com/detekt/detekt/pull/9302">#9302</a></li> <li>Fix <code>UnnecessaryFullyQualifiedName</code> clashes with kotlin package name - <a href="https://redirect.github.com/detekt/detekt/pull/9289">#9289</a></li> <li>Remove excludeImportStatements from Deprecation rule - <a href="https://redirect.github.com/detekt/detekt/pull/9287">#9287</a></li> <li>Improve repackaging of Analysis API dependencies - <a href="https://redirect.github.com/detekt/detekt/pull/9285">#9285</a></li> <li>MaxChainedCallsOnSameLine - Fix AA type leaks - <a href="https://redirect.github.com/detekt/detekt/pull/9261">#9261</a></li> <li>SuspendFunSwallowedCancellation - Fix AA type leaks - <a href="https://redirect.github.com/detekt/detekt/pull/9256">#9256</a></li> <li>feat: Add exhaustive option to OutdatedDocumentation rule, also improve error messages - <a href="https://redirect.github.com/detekt/detekt/pull/9255">#9255</a></li> <li>Excluding generated sources by default - <a href="https://redirect.github.com/detekt/detekt/pull/9251">#9251</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="9c6ced6339"><code>9c6ced6</code></a> Stop accepting unsupported API or language versions passed to CLI (<a href="https://redirect.github.com/detekt/detekt/issues/9410">#9410</a>)</li> <li><a href="44526f4564"><code>44526f4</code></a> fix: exclude gradle-public-api from published POM (<a href="https://redirect.github.com/detekt/detekt/issues/9408">#9408</a>)</li> <li><a href="6bad2e8a81"><code>6bad2e8</code></a> fix: stop leaking ktlint-repackage as a transitive dependency (<a href="https://redirect.github.com/detekt/detekt/issues/9391">#9391</a>)</li> <li><a href="fd5683e47a"><code>fd5683e</code></a> Update dependency path-to-regexp to v0.2.5 (<a href="https://redirect.github.com/detekt/detekt/issues/9397">#9397</a>)</li> <li><a href="7865b27e71"><code>7865b27</code></a> fix: resolve npm security vulnerabilities in website and bots dependencies (#...</li> <li><a href="bb582d5e6a"><code>bb582d5</code></a> Unbreak snapshot publishing (<a href="https://redirect.github.com/detekt/detekt/issues/9394">#9394</a>)</li> <li><a href="69866dd873"><code>69866dd</code></a> Update caniuse browser definitions (<a href="https://redirect.github.com/detekt/detekt/issues/9393">#9393</a>)</li> <li><a href="bfd3b5d4ef"><code>bfd3b5d</code></a> Add Docs for 2.0.0-alpha.4 (<a href="https://redirect.github.com/detekt/detekt/issues/9388">#9388</a>)</li> <li><a href="60300b2d43"><code>60300b2</code></a> Switch to vanniktech/gradle-maven-publish-plugin for publishing (<a href="https://redirect.github.com/detekt/detekt/issues/9357">#9357</a>)</li> <li><a href="63e0777f45"><code>63e0777</code></a> Update gradle/actions digest to 3f131e8 (<a href="https://redirect.github.com/detekt/detekt/issues/9386">#9386</a>)</li> <li>Additional commits viewable in <a href="https://github.com/detekt/detekt/compare/v2.0.0-alpha.3...v2.0.0-alpha.5">compare view</a></li> </ul> </details> <br /> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: devcrocod <devcrocod@gmail.com>
841 lines
23 KiB
YAML
841 lines
23 KiB
YAML
config:
|
|
validation: true
|
|
warningsAsErrors: false
|
|
checkExhaustiveness: false
|
|
|
|
processors:
|
|
active: false
|
|
|
|
console-reports:
|
|
active: true
|
|
exclude:
|
|
- 'ProjectStatisticsReport'
|
|
- 'ComplexityReport'
|
|
- 'NotificationReport'
|
|
- 'IssuesReport'
|
|
- 'FileBasedIssuesReport'
|
|
# - 'LiteIssuesReport'
|
|
|
|
comments:
|
|
active: true
|
|
AbsentOrWrongFileLicense:
|
|
active: false
|
|
licenseTemplateIsRegex: false
|
|
licenseTemplate: ''
|
|
DeprecatedBlockTag:
|
|
active: true
|
|
DocumentationOverPrivateFunction:
|
|
active: false
|
|
DocumentationOverPrivateProperty:
|
|
active: false
|
|
EndOfSentenceFormat:
|
|
active: false
|
|
endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)'
|
|
KDocReferencesNonPublicProperty:
|
|
active: true
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
OutdatedDocumentation:
|
|
active: false
|
|
matchTypeParameters: true
|
|
matchDeclarationsOrder: true
|
|
allowParamOnConstructorProperties: false
|
|
UndocumentedPublicClass:
|
|
active: true
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
searchInNestedClass: true
|
|
searchInInnerClass: true
|
|
searchInInnerObject: true
|
|
searchInInnerInterface: true
|
|
searchInProtectedClass: false
|
|
ignoreDefaultCompanionObject: true
|
|
UndocumentedPublicFunction:
|
|
active: true
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
searchProtectedFunction: false
|
|
UndocumentedPublicProperty:
|
|
active: false
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
searchProtectedProperty: false
|
|
ignoreEnumEntries: false
|
|
|
|
complexity:
|
|
active: true
|
|
CognitiveComplexMethod:
|
|
active: false
|
|
allowedComplexity: 20
|
|
ComplexCondition:
|
|
active: true
|
|
allowedConditions: 4
|
|
ComplexInterface:
|
|
active: false
|
|
allowedDefinitions: 10
|
|
includeStaticDeclarations: false
|
|
includePrivateDeclarations: false
|
|
ignoreOverloaded: false
|
|
CyclomaticComplexMethod:
|
|
active: false
|
|
allowedComplexity: 15
|
|
ignoreSingleWhenExpression: false
|
|
ignoreSimpleWhenEntries: false
|
|
ignoreNestingFunctions: false
|
|
ignoreLocalFunctions: false
|
|
nestingFunctions:
|
|
- 'also'
|
|
- 'apply'
|
|
- 'forEach'
|
|
- 'isNotNull'
|
|
- 'ifNull'
|
|
- 'let'
|
|
- 'run'
|
|
- 'use'
|
|
- 'with'
|
|
LabeledExpression:
|
|
active: false
|
|
ignoredLabels: []
|
|
LargeClass:
|
|
active: false
|
|
allowedLines: 700
|
|
LongMethod:
|
|
active: false
|
|
allowedLines: 110
|
|
LongParameterList:
|
|
active: false
|
|
allowedFunctionParameters: 8
|
|
allowedConstructorParameters: 8
|
|
ignoreDefaultParameters: false
|
|
ignoreDataClasses: true
|
|
ignoreAnnotatedParameter: []
|
|
MethodOverloading:
|
|
active: false
|
|
allowedOverloads: 6
|
|
NamedArguments:
|
|
active: false
|
|
allowedArguments: 3
|
|
ignoreMethods: []
|
|
ignoreArgumentsMatchingNames: false
|
|
NestedBlockDepth:
|
|
active: true
|
|
allowedDepth: 4
|
|
NestedScopeFunctions:
|
|
active: false
|
|
allowedDepth: 1
|
|
functions:
|
|
- 'kotlin.apply'
|
|
- 'kotlin.run'
|
|
- 'kotlin.with'
|
|
- 'kotlin.let'
|
|
- 'kotlin.also'
|
|
ReplaceSafeCallChainWithRun:
|
|
active: false
|
|
StringLiteralDuplication:
|
|
active: false
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
allowedDuplications: 3
|
|
ignoreAnnotation: true
|
|
allowedWithLengthLessThan: 5
|
|
ignoreStringsRegex: '$^'
|
|
TooManyFunctions:
|
|
active: false
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
allowedFunctionsPerFile: 20
|
|
allowedFunctionsPerClass: 20
|
|
allowedFunctionsPerInterface: 20
|
|
allowedFunctionsPerObject: 20
|
|
allowedFunctionsPerEnum: 11
|
|
ignoreDeprecated: true
|
|
ignorePrivate: true
|
|
ignoreInternal: true
|
|
ignoreOverridden: false
|
|
ignoreAnnotatedFunctions: []
|
|
|
|
coroutines:
|
|
active: true
|
|
CoroutineLaunchedInTestWithoutRunTest:
|
|
active: false
|
|
GlobalCoroutineUsage:
|
|
active: true
|
|
InjectDispatcher:
|
|
active: false
|
|
dispatcherNames:
|
|
- 'IO'
|
|
- 'Default'
|
|
- 'Unconfined'
|
|
RedundantSuspendModifier:
|
|
active: true
|
|
SleepInsteadOfDelay:
|
|
active: true
|
|
SuspendFunInFinallySection:
|
|
active: false
|
|
SuspendFunSwallowedCancellation:
|
|
active: false
|
|
SuspendFunWithCoroutineScopeReceiver:
|
|
active: false
|
|
aliases: ['SuspendFunctionOnCoroutineScope']
|
|
SuspendFunWithFlowReturnType:
|
|
active: true
|
|
|
|
empty-blocks:
|
|
active: true
|
|
EmptyCatchBlock:
|
|
active: true
|
|
allowedExceptionNameRegex: '_|(ignore|expected).*'
|
|
EmptyClassBlock:
|
|
active: true
|
|
EmptyDefaultConstructor:
|
|
active: true
|
|
EmptyDoWhileBlock:
|
|
active: true
|
|
EmptyElseBlock:
|
|
active: true
|
|
EmptyFinallyBlock:
|
|
active: true
|
|
EmptyForBlock:
|
|
active: true
|
|
EmptyFunctionBlock:
|
|
active: true
|
|
ignoreOverridden: false
|
|
EmptyIfBlock:
|
|
active: true
|
|
EmptyInitBlock:
|
|
active: true
|
|
EmptyKotlinFile:
|
|
active: true
|
|
EmptySecondaryConstructor:
|
|
active: true
|
|
EmptyTryBlock:
|
|
active: true
|
|
EmptyWhenBlock:
|
|
active: true
|
|
EmptyWhileBlock:
|
|
active: true
|
|
|
|
exceptions:
|
|
active: true
|
|
ErrorUsageWithThrowable:
|
|
active: false
|
|
ExceptionRaisedInUnexpectedLocation:
|
|
active: true
|
|
methodNames:
|
|
- 'equals'
|
|
- 'finalize'
|
|
- 'hashCode'
|
|
- 'toString'
|
|
InstanceOfCheckForException:
|
|
active: false
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
NotImplementedDeclaration:
|
|
active: true
|
|
ObjectExtendsThrowable:
|
|
active: true
|
|
PrintStackTrace:
|
|
active: true
|
|
RethrowCaughtException:
|
|
active: true
|
|
ReturnFromFinally:
|
|
active: true
|
|
ignoreLabeled: false
|
|
SwallowedException:
|
|
active: true
|
|
ignoredExceptionTypes:
|
|
- 'InterruptedException'
|
|
- 'MalformedURLException'
|
|
- 'NumberFormatException'
|
|
- 'ParseException'
|
|
allowedExceptionNameRegex: '_|(ignore|expected).*'
|
|
ThrowingExceptionFromFinally:
|
|
active: true
|
|
ThrowingExceptionInMain:
|
|
active: false
|
|
ThrowingExceptionsWithoutMessageOrCause:
|
|
active: true
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
exceptions:
|
|
- 'ArrayIndexOutOfBoundsException'
|
|
- 'Exception'
|
|
- 'IllegalArgumentException'
|
|
- 'IllegalMonitorStateException'
|
|
- 'IllegalStateException'
|
|
- 'IndexOutOfBoundsException'
|
|
- 'NullPointerException'
|
|
- 'RuntimeException'
|
|
- 'Throwable'
|
|
ThrowingNewInstanceOfSameException:
|
|
active: true
|
|
TooGenericExceptionCaught:
|
|
active: false
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
exceptionNames:
|
|
- 'ArrayIndexOutOfBoundsException'
|
|
- 'Error'
|
|
- 'Exception'
|
|
- 'IllegalMonitorStateException'
|
|
- 'IndexOutOfBoundsException'
|
|
- 'NullPointerException'
|
|
- 'RuntimeException'
|
|
- 'Throwable'
|
|
allowedExceptionNameRegex: '_|(ignore|expected).*'
|
|
TooGenericExceptionThrown:
|
|
active: false
|
|
exceptionNames:
|
|
- 'Error'
|
|
- 'Exception'
|
|
- 'RuntimeException'
|
|
- 'Throwable'
|
|
|
|
naming:
|
|
active: true
|
|
BooleanPropertyNaming:
|
|
active: false
|
|
allowedPattern: '^(is|has|are)'
|
|
ClassNaming:
|
|
active: true
|
|
aliases: ['ClassName']
|
|
classPattern: '[A-Z][a-zA-Z0-9]*'
|
|
ConstructorParameterNaming:
|
|
active: true
|
|
parameterPattern: '[a-z][A-Za-z0-9]*'
|
|
privateParameterPattern: '[a-z][A-Za-z0-9]*'
|
|
excludeClassPattern: '$^'
|
|
EnumNaming:
|
|
active: true
|
|
aliases: ['EnumEntryName']
|
|
enumEntryPattern: '[A-Z][_a-zA-Z0-9]*'
|
|
ForbiddenClassName:
|
|
active: false
|
|
forbiddenName: []
|
|
FunctionNameMaxLength:
|
|
active: false
|
|
aliases: ['FunctionMaxNameLength']
|
|
maximumFunctionNameLength: 30
|
|
FunctionNameMinLength:
|
|
active: false
|
|
aliases: ['FunctionMinNameLength']
|
|
minimumFunctionNameLength: 3
|
|
FunctionNaming:
|
|
active: true
|
|
aliases: ['FunctionName']
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
functionPattern: '[a-z][a-zA-Z0-9]*'
|
|
excludeClassPattern: '$^'
|
|
FunctionParameterNaming:
|
|
active: true
|
|
parameterPattern: '[a-z][A-Za-z0-9]*'
|
|
excludeClassPattern: '$^'
|
|
InvalidPackageDeclaration:
|
|
active: true
|
|
aliases: ['PackageDirectoryMismatch']
|
|
rootPackage: ''
|
|
requireRootInDeclaration: false
|
|
LambdaParameterNaming:
|
|
active: false
|
|
parameterPattern: '[a-z][A-Za-z0-9]*|_'
|
|
MatchingDeclarationName:
|
|
active: false
|
|
mustBeFirst: true
|
|
multiplatformTargets:
|
|
- 'ios'
|
|
- 'android'
|
|
- 'js'
|
|
- 'jvm'
|
|
- 'native'
|
|
- 'iosArm64'
|
|
- 'iosX64'
|
|
- 'macosX64'
|
|
- 'mingwX64'
|
|
- 'linuxX64'
|
|
MemberNameEqualsClassName:
|
|
active: true
|
|
ignoreOverridden: true
|
|
NoNameShadowing:
|
|
active: true
|
|
NonBooleanPropertyPrefixedWithIs:
|
|
active: true
|
|
ObjectPropertyNaming:
|
|
active: true
|
|
aliases: ['ObjectPropertyName']
|
|
constantPattern: '[A-Za-z][_A-Za-z0-9]*'
|
|
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
|
|
privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*'
|
|
PackageNaming:
|
|
active: true
|
|
aliases: ['PackageName']
|
|
packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*'
|
|
TopLevelPropertyNaming:
|
|
active: true
|
|
constantPattern: '[A-Z][_A-Z0-9]*'
|
|
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
|
|
privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*'
|
|
VariableMaxLength:
|
|
active: false
|
|
maximumVariableNameLength: 64
|
|
VariableMinLength:
|
|
active: false
|
|
minimumVariableNameLength: 1
|
|
VariableNaming:
|
|
active: false
|
|
aliases: ['PropertyName']
|
|
variablePattern: '[a-z][A-Za-z0-9]*'
|
|
privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*'
|
|
excludeClassPattern: '$^'
|
|
|
|
performance:
|
|
active: true
|
|
ArrayPrimitive:
|
|
active: true
|
|
CouldBeSequence:
|
|
active: false
|
|
allowedOperations: 3
|
|
ForEachOnRange:
|
|
active: true
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
SpreadOperator:
|
|
active: false
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
UnnecessaryInitOnArray:
|
|
active: false
|
|
UnnecessaryPartOfBinaryExpression:
|
|
active: true
|
|
UnnecessaryTemporaryInstantiation:
|
|
active: true
|
|
UnnecessaryTypeCasting:
|
|
active: true
|
|
|
|
potential-bugs:
|
|
active: true
|
|
AvoidReferentialEquality:
|
|
active: true
|
|
forbiddenTypePatterns:
|
|
- 'kotlin.String'
|
|
CastNullableToNonNullableType:
|
|
active: true
|
|
ignorePlatformTypes: true
|
|
CastToNullableType:
|
|
active: false
|
|
CharArrayToStringCall:
|
|
active: false
|
|
Deprecation:
|
|
active: false
|
|
aliases: ['DEPRECATION']
|
|
DontDowncastCollectionTypes:
|
|
active: false
|
|
DoubleMutabilityForCollection:
|
|
active: true
|
|
aliases: ['DoubleMutability']
|
|
mutableTypes:
|
|
- 'kotlin.collections.MutableList'
|
|
- 'kotlin.collections.MutableMap'
|
|
- 'kotlin.collections.MutableSet'
|
|
- 'java.util.ArrayList'
|
|
- 'java.util.LinkedHashSet'
|
|
- 'java.util.HashSet'
|
|
- 'java.util.LinkedHashMap'
|
|
- 'java.util.HashMap'
|
|
ElseCaseInsteadOfExhaustiveWhen:
|
|
active: false
|
|
ignoredSubjectTypes: []
|
|
EqualsAlwaysReturnsTrueOrFalse:
|
|
active: true
|
|
EqualsWithHashCodeExist:
|
|
active: true
|
|
ExitOutsideMain:
|
|
active: false
|
|
ExplicitGarbageCollectionCall:
|
|
active: true
|
|
HasPlatformType:
|
|
active: true
|
|
IgnoredReturnValue:
|
|
active: true
|
|
restrictToConfig: true
|
|
returnValueAnnotations:
|
|
- 'CheckResult'
|
|
- '*.CheckResult'
|
|
- 'CheckReturnValue'
|
|
- '*.CheckReturnValue'
|
|
ignoreReturnValueAnnotations:
|
|
- 'CanIgnoreReturnValue'
|
|
- '*.CanIgnoreReturnValue'
|
|
returnValueTypes:
|
|
- 'kotlin.Function*'
|
|
- 'kotlin.sequences.Sequence'
|
|
- 'kotlinx.coroutines.flow.*Flow'
|
|
- 'java.util.stream.*Stream'
|
|
ignoreFunctionCall: []
|
|
ImplicitDefaultLocale:
|
|
active: true
|
|
ImplicitUnitReturnType:
|
|
active: false
|
|
ignoreAnnotated: ['Test']
|
|
allowExplicitReturnType: true
|
|
InvalidRange:
|
|
active: true
|
|
IteratorHasNextCallsNextMethod:
|
|
active: true
|
|
IteratorNotThrowingNoSuchElementException:
|
|
active: true
|
|
LateinitUsage:
|
|
active: false
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
ignoreOnClassesPattern: ''
|
|
MapGetWithNotNullAssertionOperator:
|
|
active: true
|
|
MissingPackageDeclaration:
|
|
active: true
|
|
excludes: ['**/*.kts']
|
|
MissingSuperCall:
|
|
active: false
|
|
mustInvokeSuperAnnotations:
|
|
- 'androidx.annotation.CallSuper'
|
|
- 'javax.annotation.OverridingMethodsMustInvokeSuper'
|
|
MissingUseCall:
|
|
active: false
|
|
ignoreClass:
|
|
- 'java.io.ByteArrayInputStream'
|
|
- 'java.io.ByteArrayOutputStream'
|
|
NullCheckOnMutableProperty:
|
|
active: false
|
|
NullableToStringCall:
|
|
active: false
|
|
PropertyUsedBeforeDeclaration:
|
|
active: false
|
|
UnconditionalJumpStatementInLoop:
|
|
active: false
|
|
UnnamedParameterUse:
|
|
active: false
|
|
allowAdjacentDifferentTypeParams: true
|
|
allowSingleParamUse: true
|
|
ignoreArgumentsMatchingNames: true
|
|
ignoreFunctionCall: []
|
|
UnnecessaryNotNullCheck:
|
|
active: false
|
|
UnnecessaryNotNullOperator:
|
|
active: true
|
|
UnnecessarySafeCall:
|
|
active: true
|
|
UnreachableCatchBlock:
|
|
active: true
|
|
UnreachableCode:
|
|
active: true
|
|
UnsafeCallOnNullableType:
|
|
active: true
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
UnsafeCast:
|
|
active: true
|
|
aliases: ['UNCHECKED_CAST']
|
|
UnusedUnaryOperator:
|
|
active: true
|
|
UselessPostfixExpression:
|
|
active: true
|
|
WrongEqualsTypeParameter:
|
|
active: true
|
|
|
|
style:
|
|
active: true
|
|
AbstractClassCanBeConcreteClass:
|
|
active: true
|
|
AbstractClassCanBeInterface:
|
|
active: true
|
|
AlsoCouldBeApply:
|
|
active: false
|
|
BracesOnIfStatements:
|
|
active: false
|
|
singleLine: 'never'
|
|
multiLine: 'always'
|
|
BracesOnWhenStatements:
|
|
active: false
|
|
singleLine: 'necessary'
|
|
multiLine: 'consistent'
|
|
CanBeNonNullable:
|
|
active: false
|
|
CascadingCallWrapping:
|
|
active: false
|
|
includeElvis: true
|
|
ClassOrdering:
|
|
active: false
|
|
CollapsibleIfStatements:
|
|
active: false
|
|
DataClassContainsFunctions:
|
|
active: false
|
|
conversionFunctionPrefix:
|
|
- 'to'
|
|
allowOperators: false
|
|
DataClassShouldBeImmutable:
|
|
active: false
|
|
DestructuringDeclarationWithTooManyEntries:
|
|
active: true
|
|
maxDestructuringEntries: 3
|
|
DoubleNegativeExpression:
|
|
active: false
|
|
DoubleNegativeLambda:
|
|
active: false
|
|
negativeFunctions:
|
|
- reason: 'Use `takeIf` instead.'
|
|
value: 'takeUnless'
|
|
- reason: 'Use `all` instead.'
|
|
value: 'none'
|
|
negativeFunctionNameParts:
|
|
- 'not'
|
|
- 'non'
|
|
EqualsNullCall:
|
|
active: true
|
|
EqualsOnSignatureLine:
|
|
active: false
|
|
ExplicitCollectionElementAccessMethod:
|
|
active: false
|
|
ExplicitItLambdaMultipleParameters:
|
|
active: true
|
|
ExplicitItLambdaParameter:
|
|
active: false
|
|
ExpressionBodySyntax:
|
|
active: false
|
|
includeLineWrapping: false
|
|
ForbiddenAnnotation:
|
|
active: true
|
|
annotations:
|
|
- reason: 'it is a java annotation. Use `Suppress` instead.'
|
|
value: 'java.lang.SuppressWarnings'
|
|
- reason: 'it is a java annotation. Use `kotlin.Deprecated` instead.'
|
|
value: 'java.lang.Deprecated'
|
|
- reason: 'it is a java annotation. Use `kotlin.annotation.MustBeDocumented` instead.'
|
|
value: 'java.lang.annotation.Documented'
|
|
- reason: 'it is a java annotation. Use `kotlin.annotation.Target` instead.'
|
|
value: 'java.lang.annotation.Target'
|
|
- reason: 'it is a java annotation. Use `kotlin.annotation.Retention` instead.'
|
|
value: 'java.lang.annotation.Retention'
|
|
- reason: 'it is a java annotation. Use `kotlin.annotation.Repeatable` instead.'
|
|
value: 'java.lang.annotation.Repeatable'
|
|
ForbiddenComment:
|
|
active: true
|
|
comments:
|
|
- reason: 'Forbidden FIXME todo marker in comment, please fix the problem.'
|
|
value: 'FIXME:'
|
|
- reason: 'Forbidden STOPSHIP todo marker in comment, please address the problem before shipping the code.'
|
|
value: 'STOPSHIP:'
|
|
- reason: 'Forbidden TODO todo marker in comment, please do the changes.'
|
|
value: 'TODO:'
|
|
allowedPatterns: ''
|
|
ForbiddenImport:
|
|
active: false
|
|
forbiddenImports: []
|
|
allowedImports: []
|
|
ForbiddenMethodCall:
|
|
active: true
|
|
methods:
|
|
- reason: 'print does not allow you to configure the output stream. Use a logger instead.'
|
|
value: 'kotlin.io.print'
|
|
- reason: 'println does not allow you to configure the output stream. Use a logger instead.'
|
|
value: 'kotlin.io.println'
|
|
- reason: 'using `BigDecimal(Double)` can result in unexpected floating point precision behavior. Use `BigDecimal.valueOf(Double)` or `String.toBigDecimalOrNull()` instead.'
|
|
value: 'java.math.BigDecimal.<init>(kotlin.Double)'
|
|
- reason: 'using `BigDecimal(String)` can result in a `NumberFormatException`. Use `String.toBigDecimalOrNull()`'
|
|
value: 'java.math.BigDecimal.<init>(kotlin.String)'
|
|
- reason: 'It is marked as obsolete. Use `kotlin.time.measureTime` instead.'
|
|
value: 'kotlin.system.measureTimeMillis'
|
|
ForbiddenNamedParam:
|
|
active: false
|
|
methods: []
|
|
ForbiddenOptIn:
|
|
active: false
|
|
markerClasses: []
|
|
ForbiddenSuppress:
|
|
active: false
|
|
rules: []
|
|
ForbiddenVoid:
|
|
active: true
|
|
ignoreOverridden: false
|
|
ignoreUsageInGenerics: false
|
|
FunctionOnlyReturningConstant:
|
|
active: true
|
|
ignoreOverridableFunction: true
|
|
ignoreActualFunction: true
|
|
excludedFunctions: []
|
|
LoopWithTooManyJumpStatements:
|
|
active: true
|
|
maxJumpCount: 1
|
|
MagicNumber:
|
|
active: false
|
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/*.kts']
|
|
ignoreNumbers:
|
|
- '-1'
|
|
- '0'
|
|
- '1'
|
|
- '2'
|
|
ignoreHashCodeFunction: true
|
|
ignorePropertyDeclaration: true
|
|
ignoreLocalVariableDeclaration: true
|
|
ignoreConstantDeclaration: true
|
|
ignoreCompanionObjectPropertyDeclaration: true
|
|
ignoreAnnotation: false
|
|
ignoreNamedArgument: true
|
|
ignoreEnums: false
|
|
ignoreRanges: false
|
|
ignoreExtensionFunctions: true
|
|
MandatoryBracesLoops:
|
|
active: false
|
|
MaxChainedCallsOnSameLine:
|
|
active: false
|
|
maxChainedCalls: 5
|
|
MaxLineLength:
|
|
active: false
|
|
maxLineLength: 120
|
|
excludePackageStatements: true
|
|
excludeImportStatements: true
|
|
excludeCommentStatements: false
|
|
excludeRawStrings: true
|
|
MayBeConstant:
|
|
active: true
|
|
ModifierOrder:
|
|
active: true
|
|
MultilineLambdaItParameter:
|
|
active: false
|
|
MultilineRawStringIndentation:
|
|
active: false
|
|
indentSize: 4
|
|
trimmingMethods:
|
|
- 'trimIndent'
|
|
- 'trimMargin'
|
|
NestedClassesVisibility:
|
|
active: true
|
|
NewLineAtEndOfFile:
|
|
active: true
|
|
NoTabs:
|
|
active: false
|
|
NullableBooleanCheck:
|
|
active: false
|
|
ObjectLiteralToLambda:
|
|
active: true
|
|
OptionalAbstractKeyword:
|
|
active: true
|
|
OptionalUnit:
|
|
active: false
|
|
ProtectedMemberInFinalClass:
|
|
active: true
|
|
RangeUntilInsteadOfRangeTo:
|
|
active: true
|
|
RedundantConstructorKeyword:
|
|
active: false
|
|
RedundantExplicitType:
|
|
active: false
|
|
RedundantHigherOrderMapUsage:
|
|
active: true
|
|
RedundantVisibilityModifier:
|
|
active: false
|
|
ReturnCount:
|
|
active: false
|
|
max: 2
|
|
excludedFunctions:
|
|
- 'equals'
|
|
excludeLabeled: false
|
|
excludeReturnFromLambda: true
|
|
excludeGuardClauses: false
|
|
SafeCast:
|
|
active: true
|
|
SerialVersionUIDInSerializableClass:
|
|
active: true
|
|
SpacingAfterPackageAndImports:
|
|
active: false
|
|
StringShouldBeRawString:
|
|
active: false
|
|
maxEscapedCharacterCount: 2
|
|
ignoredCharacters: []
|
|
ThrowsCount:
|
|
active: false
|
|
max: 2
|
|
excludeGuardClauses: false
|
|
TrailingWhitespace:
|
|
active: false
|
|
TrimMultilineRawString:
|
|
active: false
|
|
trimmingMethods:
|
|
- 'trimIndent'
|
|
- 'trimMargin'
|
|
UnderscoresInNumericLiterals:
|
|
active: false
|
|
acceptableLength: 4
|
|
allowNonStandardGrouping: false
|
|
UnnecessaryAny:
|
|
active: false
|
|
UnnecessaryApply:
|
|
active: true
|
|
UnnecessaryBackticks:
|
|
active: false
|
|
UnnecessaryBracesAroundTrailingLambda:
|
|
active: false
|
|
UnnecessaryFilter:
|
|
active: true
|
|
UnnecessaryFullyQualifiedName:
|
|
active: true
|
|
UnnecessaryInheritance:
|
|
active: true
|
|
UnnecessaryInnerClass:
|
|
active: false
|
|
UnnecessaryLet:
|
|
active: false
|
|
UnnecessaryParentheses:
|
|
active: false
|
|
allowForUnclearPrecedence: false
|
|
UnnecessaryReversed:
|
|
active: false
|
|
UnusedImport:
|
|
active: false
|
|
additionalOperatorSet: []
|
|
UnusedParameter:
|
|
active: true
|
|
aliases: ['UNUSED_PARAMETER', 'unused']
|
|
allowedNames: 'ignored|expected'
|
|
UnusedPrivateClass:
|
|
active: true
|
|
aliases: ['unused']
|
|
UnusedPrivateFunction:
|
|
active: true
|
|
aliases: ['unused']
|
|
allowedNames: ''
|
|
UnusedPrivateProperty:
|
|
active: true
|
|
aliases: ['unused']
|
|
allowedNames: 'ignored|expected|serialVersionUID'
|
|
UnusedVariable:
|
|
active: true
|
|
aliases: ['UNUSED_VARIABLE', 'unused']
|
|
allowedNames: 'ignored|_'
|
|
UseAnyOrNoneInsteadOfFind:
|
|
active: true
|
|
UseArrayLiteralsInAnnotations:
|
|
active: true
|
|
UseCheckNotNull:
|
|
active: true
|
|
UseCheckOrError:
|
|
active: true
|
|
UseDataClass:
|
|
active: false
|
|
allowVars: false
|
|
UseEmptyCounterpart:
|
|
active: false
|
|
UseIfEmptyOrIfBlank:
|
|
active: false
|
|
UseIfInsteadOfWhen:
|
|
active: false
|
|
ignoreWhenContainingVariableDeclaration: false
|
|
UseIsNullOrEmpty:
|
|
active: true
|
|
UseLet:
|
|
active: false
|
|
UseOrEmpty:
|
|
active: true
|
|
UseRequire:
|
|
active: true
|
|
UseRequireNotNull:
|
|
active: true
|
|
UseSumOfInsteadOfFlatMapSize:
|
|
active: false
|
|
UselessCallOnNotNull:
|
|
active: true
|
|
UtilityClassWithPublicConstructor:
|
|
active: true
|
|
VarCouldBeVal:
|
|
active: true
|
|
aliases: ['CanBeVal']
|
|
ignoreLateinitVar: false
|
|
WildcardImport:
|
|
active: false
|
|
excludeImports:
|
|
- 'java.util.*'
|