[#150] Simplify Detekt configuration
- Switch to configuration that builds upon default - Add Gradle convention plugin
This commit is contained in:
parent
eb9ba2cdd5
commit
4501ded6ee
|
@ -24,8 +24,9 @@ fun String.fromHex(): ByteArray {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun String.swap(srcWord: Int, destWord: Int = srcWord + 1): String {
|
fun String.swap(srcWord: Int, destWord: Int = srcWord + 1): String {
|
||||||
if (srcWord >= destWord) throw IllegalArgumentException("srcWord must be less than destWord")
|
require(srcWord < destWord) { "srcWord must be less than destWord" }
|
||||||
if (destWord > count { it == ' ' }) throw IllegalArgumentException("there aren't that many words")
|
require(destWord <= count { it == ' ' }) { "there aren't that many words" }
|
||||||
|
|
||||||
return split(' ').let { words ->
|
return split(' ').let { words ->
|
||||||
words.reduceIndexed { i, result, word ->
|
words.reduceIndexed { i, result, word ->
|
||||||
val next = when (i) {
|
val next = when (i) {
|
||||||
|
|
|
@ -21,7 +21,9 @@ java {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${getRootProperties().getProperty("KOTLIN_VERSION")}")
|
val rootProperties = getRootProperties()
|
||||||
|
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${rootProperties.getProperty("KOTLIN_VERSION")}")
|
||||||
|
implementation("io.gitlab.arturbosch.detekt:detekt-gradle-plugin:${rootProperties.getProperty("DETEKT_VERSION")}")
|
||||||
}
|
}
|
||||||
|
|
||||||
// A slightly gross way to use the root gradle.properties as the single source of truth for version numbers
|
// A slightly gross way to use the root gradle.properties as the single source of truth for version numbers
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
# This is a Gradle generated file for dependency locking.
|
# This is a Gradle generated file for dependency locking.
|
||||||
# Manual edits can break the build and are not advised.
|
# Manual edits can break the build and are not advised.
|
||||||
# This file is expected to be part of source control.
|
# This file is expected to be part of source control.
|
||||||
|
io.github.detekt.sarif4k:sarif4k:0.0.1=runtimeClasspath
|
||||||
|
io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.22.0=compileClasspath,runtimeClasspath
|
||||||
net.java.dev.jna:jna:5.6.0=kotlinCompilerClasspath,runtimeClasspath
|
net.java.dev.jna:jna:5.6.0=kotlinCompilerClasspath,runtimeClasspath
|
||||||
org.jetbrains.intellij.deps:trove4j:1.0.20200330=kotlinCompilerClasspath,runtimeClasspath
|
org.jetbrains.intellij.deps:trove4j:1.0.20200330=kotlinCompilerClasspath,runtimeClasspath
|
||||||
org.jetbrains.kotlin:kotlin-android-extensions:1.8.0=runtimeClasspath
|
org.jetbrains.kotlin:kotlin-android-extensions:1.8.0=runtimeClasspath
|
||||||
|
@ -35,9 +37,11 @@ org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.10=kotlinComp
|
||||||
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.8.0=runtimeClasspath
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.8.0=runtimeClasspath
|
||||||
org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10=kotlinCompilerPluginClasspathMain
|
org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10=kotlinCompilerPluginClasspathMain
|
||||||
org.jetbrains.kotlin:kotlin-scripting-jvm:1.8.0=runtimeClasspath
|
org.jetbrains.kotlin:kotlin-scripting-jvm:1.8.0=runtimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-common:1.4.31=runtimeClasspath
|
||||||
org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain
|
org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain
|
||||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10=compileClasspath
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10=compileClasspath
|
||||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10=compileClasspath
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10=compileClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:1.4.31=runtimeClasspath
|
||||||
org.jetbrains.kotlin:kotlin-stdlib:1.7.10=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain
|
org.jetbrains.kotlin:kotlin-stdlib:1.7.10=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain
|
||||||
org.jetbrains.kotlin:kotlin-tooling-core:1.7.10=kotlinCompilerPluginClasspathMain
|
org.jetbrains.kotlin:kotlin-tooling-core:1.7.10=kotlinCompilerPluginClasspathMain
|
||||||
org.jetbrains.kotlin:kotlin-tooling-core:1.8.0=compileClasspath,runtimeClasspath
|
org.jetbrains.kotlin:kotlin-tooling-core:1.8.0=compileClasspath,runtimeClasspath
|
||||||
|
@ -45,5 +49,9 @@ org.jetbrains.kotlin:kotlin-util-io:1.7.10=kotlinCompilerPluginClasspathMain
|
||||||
org.jetbrains.kotlin:kotlin-util-io:1.8.0=compileClasspath,runtimeClasspath
|
org.jetbrains.kotlin:kotlin-util-io:1.8.0=compileClasspath,runtimeClasspath
|
||||||
org.jetbrains.kotlin:kotlin-util-klib:1.8.0=runtimeClasspath
|
org.jetbrains.kotlin:kotlin-util-klib:1.8.0=runtimeClasspath
|
||||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0=runtimeClasspath
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0=runtimeClasspath
|
||||||
org.jetbrains:annotations:13.0=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain
|
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.1.0=runtimeClasspath
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-core:1.1.0=runtimeClasspath
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.1.0=runtimeClasspath
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-json:1.1.0=runtimeClasspath
|
||||||
|
org.jetbrains:annotations:13.0=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,runtimeClasspath
|
||||||
empty=annotationProcessor,kotlinScriptDefExtensions
|
empty=annotationProcessor,kotlinScriptDefExtensions
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
import io.gitlab.arturbosch.detekt.Detekt
|
||||||
|
import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("io.gitlab.arturbosch.detekt")
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks {
|
||||||
|
register("detektAll", Detekt::class) {
|
||||||
|
parallel = true
|
||||||
|
setSource(files(projectDir))
|
||||||
|
include("**/*.kt")
|
||||||
|
include("**/*.kts")
|
||||||
|
exclude("**/resources/**")
|
||||||
|
exclude("**/build/**")
|
||||||
|
config.setFrom(files("${rootProject.projectDir}/tools/detekt.yml"))
|
||||||
|
baseline.set(File("${rootProject.projectDir}/tools/detekt-baseline.xml"))
|
||||||
|
buildUponDefaultConfig = true
|
||||||
|
}
|
||||||
|
|
||||||
|
register("detektGenerateBaseline", DetektCreateBaselineTask::class) {
|
||||||
|
description = "Overrides current baseline."
|
||||||
|
buildUponDefaultConfig.set(true)
|
||||||
|
ignoreFailures.set(true)
|
||||||
|
parallel.set(true)
|
||||||
|
setSource(files(rootDir))
|
||||||
|
config.setFrom(files("${rootProject.projectDir}/tools/detekt.yml"))
|
||||||
|
baseline.set(file("$rootDir/tools/detekt-baseline.xml"))
|
||||||
|
include("**/*.kt")
|
||||||
|
include("**/*.kts")
|
||||||
|
exclude("**/resources/**")
|
||||||
|
exclude("**/build/**")
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,27 +9,13 @@ dependencyLocking {
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
|
id("bip39.detekt-conventions")
|
||||||
id("bip39.ktlint-conventions")
|
id("bip39.ktlint-conventions")
|
||||||
alias(libs.plugins.detekt)
|
|
||||||
alias(libs.plugins.kover)
|
alias(libs.plugins.kover)
|
||||||
alias(libs.plugins.versions)
|
alias(libs.plugins.versions)
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks {
|
tasks {
|
||||||
register("detektAll", io.gitlab.arturbosch.detekt.Detekt::class) {
|
|
||||||
parallel = true
|
|
||||||
setSource(files(projectDir))
|
|
||||||
include("**/*.kt")
|
|
||||||
//include("**/*.kts")
|
|
||||||
exclude("**/resources/**")
|
|
||||||
exclude("**/build/**")
|
|
||||||
exclude("**/commonTest/**")
|
|
||||||
exclude("**/jvmTest/**")
|
|
||||||
exclude("**/androidTest/**")
|
|
||||||
config.setFrom(files("${rootProject.projectDir}/tools/detekt.yml"))
|
|
||||||
baseline.set(file("$rootDir/tools/detekt-baseline.xml"))
|
|
||||||
buildUponDefaultConfig = true
|
|
||||||
}
|
|
||||||
|
|
||||||
withType<com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask> {
|
withType<com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask> {
|
||||||
gradleReleaseChannel = "current"
|
gradleReleaseChannel = "current"
|
||||||
|
|
|
@ -11,7 +11,6 @@ com.thoughtworks.xstream:xstream:1.4.19=classpath
|
||||||
io.github.detekt.sarif4k:sarif4k:0.0.1=classpath
|
io.github.detekt.sarif4k:sarif4k:0.0.1=classpath
|
||||||
io.github.x-stream:mxparser:1.2.2=classpath
|
io.github.x-stream:mxparser:1.2.2=classpath
|
||||||
io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.22.0=classpath
|
io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.22.0=classpath
|
||||||
io.gitlab.arturbosch.detekt:io.gitlab.arturbosch.detekt.gradle.plugin:1.22.0=classpath
|
|
||||||
net.java.dev.jna:jna:5.6.0=classpath
|
net.java.dev.jna:jna:5.6.0=classpath
|
||||||
org.jetbrains.intellij.deps:trove4j:1.0.20200330=classpath
|
org.jetbrains.intellij.deps:trove4j:1.0.20200330=classpath
|
||||||
org.jetbrains.kotlin:kotlin-android-extensions:1.8.0=classpath
|
org.jetbrains.kotlin:kotlin-android-extensions:1.8.0=classpath
|
||||||
|
|
|
@ -13,6 +13,7 @@ BIP39_IS_COVERAGE_ENABLED=true
|
||||||
JVM_TOOLCHAIN=17
|
JVM_TOOLCHAIN=17
|
||||||
JVM_TARGET=8
|
JVM_TARGET=8
|
||||||
KOTLIN_VERSION=1.8.0
|
KOTLIN_VERSION=1.8.0
|
||||||
|
DETEKT_VERSION=1.22.0
|
||||||
|
|
||||||
# Publishing
|
# Publishing
|
||||||
ZCASH_MAVEN_PUBLISH_SNAPSHOT_URL=https://oss.sonatype.org/content/repositories/snapshots/
|
ZCASH_MAVEN_PUBLISH_SNAPSHOT_URL=https://oss.sonatype.org/content/repositories/snapshots/
|
||||||
|
|
|
@ -11,7 +11,6 @@ kotest-assertion = { module = "io.kotest:kotest-assertions-core", version.ref =
|
||||||
kotest-property = { module = "io.kotest:kotest-property", version.ref = "kotest" }
|
kotest-property = { module = "io.kotest:kotest-property", version.ref = "kotest" }
|
||||||
|
|
||||||
[plugins]
|
[plugins]
|
||||||
detekt = "io.gitlab.arturbosch.detekt:1.22.0"
|
|
||||||
dokka = "org.jetbrains.dokka:1.7.20"
|
dokka = "org.jetbrains.dokka:1.7.20"
|
||||||
kover = "org.jetbrains.kotlinx.kover:0.6.1"
|
kover = "org.jetbrains.kotlinx.kover:0.6.1"
|
||||||
versions = "com.github.ben-manes.versions:0.44.0"
|
versions = "com.github.ben-manes.versions:0.44.0"
|
||||||
|
|
702
tools/detekt.yml
702
tools/detekt.yml
|
@ -1,533 +1,16 @@
|
||||||
build:
|
|
||||||
maxIssues: 0
|
|
||||||
excludeCorrectable: false
|
|
||||||
weights:
|
|
||||||
# complexity: 2
|
|
||||||
# LongParameterList: 1
|
|
||||||
# style: 1
|
|
||||||
# comments: 1
|
|
||||||
|
|
||||||
config:
|
|
||||||
validation: true
|
|
||||||
warningsAsErrors: false
|
|
||||||
checkExhaustiveness: false
|
|
||||||
# when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]'
|
|
||||||
excludes: ''
|
|
||||||
|
|
||||||
processors:
|
|
||||||
active: true
|
|
||||||
exclude:
|
|
||||||
- 'DetektProgressListener'
|
|
||||||
# - 'KtFileCountProcessor'
|
|
||||||
# - 'PackageCountProcessor'
|
|
||||||
# - 'ClassCountProcessor'
|
|
||||||
# - 'FunctionCountProcessor'
|
|
||||||
# - 'PropertyCountProcessor'
|
|
||||||
# - 'ProjectComplexityProcessor'
|
|
||||||
# - 'ProjectCognitiveComplexityProcessor'
|
|
||||||
# - 'ProjectLLOCProcessor'
|
|
||||||
# - 'ProjectCLOCProcessor'
|
|
||||||
# - 'ProjectLOCProcessor'
|
|
||||||
# - 'ProjectSLOCProcessor'
|
|
||||||
# - 'LicenseHeaderLoaderExtension'
|
|
||||||
|
|
||||||
console-reports:
|
|
||||||
active: true
|
|
||||||
exclude:
|
|
||||||
- 'ProjectStatisticsReport'
|
|
||||||
- 'ComplexityReport'
|
|
||||||
- 'NotificationReport'
|
|
||||||
- 'FindingsReport'
|
|
||||||
- 'FileBasedFindingsReport'
|
|
||||||
# - 'LiteFindingsReport'
|
|
||||||
|
|
||||||
output-reports:
|
|
||||||
active: true
|
|
||||||
exclude:
|
|
||||||
# - 'TxtOutputReport'
|
|
||||||
# - 'XmlOutputReport'
|
|
||||||
# - 'HtmlOutputReport'
|
|
||||||
# - 'MdOutputReport'
|
|
||||||
|
|
||||||
comments:
|
|
||||||
active: true
|
|
||||||
AbsentOrWrongFileLicense:
|
|
||||||
active: false
|
|
||||||
licenseTemplateFile: 'license.template'
|
|
||||||
licenseTemplateIsRegex: false
|
|
||||||
CommentOverPrivateFunction:
|
|
||||||
active: false
|
|
||||||
CommentOverPrivateProperty:
|
|
||||||
active: false
|
|
||||||
DeprecatedBlockTag:
|
|
||||||
active: false
|
|
||||||
EndOfSentenceFormat:
|
|
||||||
active: false
|
|
||||||
endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)'
|
|
||||||
KDocReferencesNonPublicProperty:
|
|
||||||
active: false
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
OutdatedDocumentation:
|
|
||||||
active: false
|
|
||||||
matchTypeParameters: true
|
|
||||||
matchDeclarationsOrder: true
|
|
||||||
allowParamOnConstructorProperties: false
|
|
||||||
UndocumentedPublicClass:
|
|
||||||
active: false
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
searchInNestedClass: true
|
|
||||||
searchInInnerClass: true
|
|
||||||
searchInInnerObject: true
|
|
||||||
searchInInnerInterface: true
|
|
||||||
searchInProtectedClass: false
|
|
||||||
UndocumentedPublicFunction:
|
|
||||||
active: false
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
searchProtectedFunction: false
|
|
||||||
UndocumentedPublicProperty:
|
|
||||||
active: false
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
searchProtectedProperty: false
|
|
||||||
|
|
||||||
complexity:
|
|
||||||
active: true
|
|
||||||
CognitiveComplexMethod:
|
|
||||||
active: false
|
|
||||||
threshold: 15
|
|
||||||
ComplexCondition:
|
|
||||||
active: true
|
|
||||||
threshold: 4
|
|
||||||
ComplexInterface:
|
|
||||||
active: false
|
|
||||||
threshold: 10
|
|
||||||
includeStaticDeclarations: false
|
|
||||||
includePrivateDeclarations: false
|
|
||||||
ignoreOverloaded: false
|
|
||||||
CyclomaticComplexMethod:
|
|
||||||
active: true
|
|
||||||
threshold: 15
|
|
||||||
ignoreSingleWhenExpression: false
|
|
||||||
ignoreSimpleWhenEntries: false
|
|
||||||
ignoreNestingFunctions: false
|
|
||||||
nestingFunctions:
|
|
||||||
- 'also'
|
|
||||||
- 'apply'
|
|
||||||
- 'forEach'
|
|
||||||
- 'isNotNull'
|
|
||||||
- 'ifNull'
|
|
||||||
- 'let'
|
|
||||||
- 'run'
|
|
||||||
- 'use'
|
|
||||||
- 'with'
|
|
||||||
LabeledExpression:
|
|
||||||
active: false
|
|
||||||
ignoredLabels: []
|
|
||||||
LargeClass:
|
|
||||||
active: true
|
|
||||||
threshold: 600
|
|
||||||
LongMethod:
|
|
||||||
active: true
|
|
||||||
threshold: 60
|
|
||||||
LongParameterList:
|
|
||||||
active: true
|
|
||||||
functionThreshold: 6
|
|
||||||
constructorThreshold: 7
|
|
||||||
ignoreDefaultParameters: false
|
|
||||||
ignoreDataClasses: true
|
|
||||||
ignoreAnnotatedParameter: []
|
|
||||||
MethodOverloading:
|
|
||||||
active: false
|
|
||||||
threshold: 6
|
|
||||||
NamedArguments:
|
|
||||||
active: false
|
|
||||||
threshold: 3
|
|
||||||
ignoreArgumentsMatchingNames: false
|
|
||||||
NestedBlockDepth:
|
|
||||||
active: true
|
|
||||||
threshold: 4
|
|
||||||
NestedScopeFunctions:
|
|
||||||
active: false
|
|
||||||
threshold: 1
|
|
||||||
functions:
|
|
||||||
- 'kotlin.apply'
|
|
||||||
- 'kotlin.run'
|
|
||||||
- 'kotlin.with'
|
|
||||||
- 'kotlin.let'
|
|
||||||
- 'kotlin.also'
|
|
||||||
ReplaceSafeCallChainWithRun:
|
|
||||||
active: false
|
|
||||||
StringLiteralDuplication:
|
|
||||||
active: false
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
threshold: 3
|
|
||||||
ignoreAnnotation: true
|
|
||||||
excludeStringsWithLessThan5Characters: true
|
|
||||||
ignoreStringsRegex: '$^'
|
|
||||||
TooManyFunctions:
|
|
||||||
active: true
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
thresholdInFiles: 11
|
|
||||||
thresholdInClasses: 11
|
|
||||||
thresholdInInterfaces: 11
|
|
||||||
thresholdInObjects: 11
|
|
||||||
thresholdInEnums: 11
|
|
||||||
ignoreDeprecated: false
|
|
||||||
ignorePrivate: false
|
|
||||||
ignoreOverridden: false
|
|
||||||
|
|
||||||
coroutines:
|
|
||||||
active: true
|
|
||||||
GlobalCoroutineUsage:
|
|
||||||
active: false
|
|
||||||
InjectDispatcher:
|
|
||||||
active: true
|
|
||||||
dispatcherNames:
|
|
||||||
- 'IO'
|
|
||||||
- 'Default'
|
|
||||||
- 'Unconfined'
|
|
||||||
RedundantSuspendModifier:
|
|
||||||
active: true
|
|
||||||
SleepInsteadOfDelay:
|
|
||||||
active: true
|
|
||||||
SuspendFunWithCoroutineScopeReceiver:
|
|
||||||
active: false
|
|
||||||
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
|
|
||||||
EmptyKtFile:
|
|
||||||
active: true
|
|
||||||
EmptySecondaryConstructor:
|
|
||||||
active: true
|
|
||||||
EmptyTryBlock:
|
|
||||||
active: true
|
|
||||||
EmptyWhenBlock:
|
|
||||||
active: true
|
|
||||||
EmptyWhileBlock:
|
|
||||||
active: true
|
|
||||||
|
|
||||||
exceptions:
|
|
||||||
active: true
|
|
||||||
ExceptionRaisedInUnexpectedLocation:
|
|
||||||
active: true
|
|
||||||
methodNames:
|
|
||||||
- 'equals'
|
|
||||||
- 'finalize'
|
|
||||||
- 'hashCode'
|
|
||||||
- 'toString'
|
|
||||||
InstanceOfCheckForException:
|
|
||||||
active: true
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
NotImplementedDeclaration:
|
|
||||||
active: false
|
|
||||||
ObjectExtendsThrowable:
|
|
||||||
active: false
|
|
||||||
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/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
exceptions:
|
|
||||||
- 'ArrayIndexOutOfBoundsException'
|
|
||||||
- 'Exception'
|
|
||||||
- 'IllegalArgumentException'
|
|
||||||
- 'IllegalMonitorStateException'
|
|
||||||
- 'IllegalStateException'
|
|
||||||
- 'IndexOutOfBoundsException'
|
|
||||||
- 'NullPointerException'
|
|
||||||
- 'RuntimeException'
|
|
||||||
- 'Throwable'
|
|
||||||
ThrowingNewInstanceOfSameException:
|
|
||||||
active: true
|
|
||||||
TooGenericExceptionCaught:
|
|
||||||
active: true
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
exceptionNames:
|
|
||||||
- 'ArrayIndexOutOfBoundsException'
|
|
||||||
- 'Error'
|
|
||||||
- 'Exception'
|
|
||||||
- 'IllegalMonitorStateException'
|
|
||||||
- 'IndexOutOfBoundsException'
|
|
||||||
- 'NullPointerException'
|
|
||||||
- 'RuntimeException'
|
|
||||||
- 'Throwable'
|
|
||||||
allowedExceptionNameRegex: '_|(ignore|expected).*'
|
|
||||||
TooGenericExceptionThrown:
|
|
||||||
active: true
|
|
||||||
exceptionNames:
|
|
||||||
- 'Error'
|
|
||||||
- 'Exception'
|
|
||||||
- 'RuntimeException'
|
|
||||||
- 'Throwable'
|
|
||||||
|
|
||||||
naming:
|
naming:
|
||||||
active: true
|
active: true
|
||||||
BooleanPropertyNaming:
|
|
||||||
active: false
|
|
||||||
allowedPattern: '^(is|has|are)'
|
|
||||||
ignoreOverridden: true
|
|
||||||
ClassNaming:
|
|
||||||
active: true
|
|
||||||
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: '$^'
|
|
||||||
ignoreOverridden: true
|
|
||||||
EnumNaming:
|
|
||||||
active: true
|
|
||||||
enumEntryPattern: '[A-Z][_a-zA-Z0-9]*'
|
|
||||||
ForbiddenClassName:
|
|
||||||
active: false
|
|
||||||
forbiddenName: []
|
|
||||||
FunctionMaxLength:
|
|
||||||
active: false
|
|
||||||
maximumFunctionNameLength: 30
|
|
||||||
FunctionMinLength:
|
|
||||||
active: false
|
|
||||||
minimumFunctionNameLength: 3
|
|
||||||
FunctionNaming:
|
FunctionNaming:
|
||||||
active: true
|
active: true
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||||
functionPattern: '[a-z][a-zA-Z0-9]*'
|
functionPattern: '[a-z][a-zA-Z0-9]*'
|
||||||
excludeClassPattern: '$^'
|
excludeClassPattern: '$^'
|
||||||
ignoreOverridden: true
|
ignoreOverridden: true
|
||||||
FunctionParameterNaming:
|
ignoreAnnotated:
|
||||||
active: true
|
- 'Composable'
|
||||||
parameterPattern: '[a-z][A-Za-z0-9]*'
|
|
||||||
excludeClassPattern: '$^'
|
|
||||||
ignoreOverridden: true
|
|
||||||
InvalidPackageDeclaration:
|
|
||||||
active: true
|
|
||||||
rootPackage: ''
|
|
||||||
requireRootInDeclaration: false
|
|
||||||
LambdaParameterNaming:
|
|
||||||
active: false
|
|
||||||
parameterPattern: '[a-z][A-Za-z0-9]*|_'
|
|
||||||
MatchingDeclarationName:
|
|
||||||
active: true
|
|
||||||
mustBeFirst: true
|
|
||||||
MemberNameEqualsClassName:
|
|
||||||
active: true
|
|
||||||
ignoreOverridden: true
|
|
||||||
NoNameShadowing:
|
|
||||||
active: true
|
|
||||||
NonBooleanPropertyPrefixedWithIs:
|
|
||||||
active: false
|
|
||||||
ObjectPropertyNaming:
|
|
||||||
active: true
|
|
||||||
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
|
|
||||||
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: true
|
|
||||||
variablePattern: '[a-z][A-Za-z0-9]*'
|
|
||||||
privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*'
|
|
||||||
excludeClassPattern: '$^'
|
|
||||||
ignoreOverridden: true
|
|
||||||
|
|
||||||
performance:
|
|
||||||
active: true
|
|
||||||
ArrayPrimitive:
|
|
||||||
active: true
|
|
||||||
CouldBeSequence:
|
|
||||||
active: false
|
|
||||||
threshold: 3
|
|
||||||
ForEachOnRange:
|
|
||||||
active: true
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
SpreadOperator:
|
|
||||||
active: true
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
UnnecessaryPartOfBinaryExpression:
|
|
||||||
active: false
|
|
||||||
UnnecessaryTemporaryInstantiation:
|
|
||||||
active: true
|
|
||||||
|
|
||||||
potential-bugs:
|
|
||||||
active: true
|
|
||||||
AvoidReferentialEquality:
|
|
||||||
active: true
|
|
||||||
forbiddenTypePatterns:
|
|
||||||
- 'kotlin.String'
|
|
||||||
CastToNullableType:
|
|
||||||
active: false
|
|
||||||
Deprecation:
|
|
||||||
active: false
|
|
||||||
DontDowncastCollectionTypes:
|
|
||||||
active: false
|
|
||||||
DoubleMutabilityForCollection:
|
|
||||||
active: true
|
|
||||||
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
|
|
||||||
EqualsAlwaysReturnsTrueOrFalse:
|
|
||||||
active: true
|
|
||||||
EqualsWithHashCodeExist:
|
|
||||||
active: true
|
|
||||||
ExitOutsideMain:
|
|
||||||
active: false
|
|
||||||
ExplicitGarbageCollectionCall:
|
|
||||||
active: true
|
|
||||||
HasPlatformType:
|
|
||||||
active: true
|
|
||||||
IgnoredReturnValue:
|
|
||||||
active: true
|
|
||||||
restrictToConfig: true
|
|
||||||
returnValueAnnotations:
|
|
||||||
- '*.CheckResult'
|
|
||||||
- '*.CheckReturnValue'
|
|
||||||
ignoreReturnValueAnnotations:
|
|
||||||
- '*.CanIgnoreReturnValue'
|
|
||||||
returnValueTypes:
|
|
||||||
- 'kotlin.sequences.Sequence'
|
|
||||||
- 'kotlinx.coroutines.flow.*Flow'
|
|
||||||
- 'java.util.stream.*Stream'
|
|
||||||
ignoreFunctionCall: []
|
|
||||||
ImplicitDefaultLocale:
|
|
||||||
active: true
|
|
||||||
ImplicitUnitReturnType:
|
|
||||||
active: false
|
|
||||||
allowExplicitReturnType: true
|
|
||||||
InvalidRange:
|
|
||||||
active: true
|
|
||||||
IteratorHasNextCallsNextMethod:
|
|
||||||
active: true
|
|
||||||
IteratorNotThrowingNoSuchElementException:
|
|
||||||
active: true
|
|
||||||
LateinitUsage:
|
|
||||||
active: false
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
ignoreOnClassesPattern: ''
|
|
||||||
MapGetWithNotNullAssertionOperator:
|
|
||||||
active: true
|
|
||||||
MissingPackageDeclaration:
|
|
||||||
active: false
|
|
||||||
excludes: ['**/*.kts']
|
|
||||||
NullCheckOnMutableProperty:
|
|
||||||
active: false
|
|
||||||
NullableToStringCall:
|
|
||||||
active: false
|
|
||||||
UnconditionalJumpStatementInLoop:
|
|
||||||
active: false
|
|
||||||
UnnecessaryNotNullCheck:
|
|
||||||
active: false
|
|
||||||
UnnecessaryNotNullOperator:
|
|
||||||
active: true
|
|
||||||
UnnecessarySafeCall:
|
|
||||||
active: true
|
|
||||||
UnreachableCatchBlock:
|
|
||||||
active: true
|
|
||||||
UnreachableCode:
|
|
||||||
active: true
|
|
||||||
UnsafeCallOnNullableType:
|
|
||||||
active: true
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
UnsafeCast:
|
|
||||||
active: true
|
|
||||||
UnusedUnaryOperator:
|
|
||||||
active: true
|
|
||||||
UselessPostfixExpression:
|
|
||||||
active: true
|
|
||||||
WrongEqualsTypeParameter:
|
|
||||||
active: true
|
|
||||||
|
|
||||||
style:
|
style:
|
||||||
active: true
|
active: true
|
||||||
AlsoCouldBeApply:
|
|
||||||
active: false
|
|
||||||
CanBeNonNullable:
|
|
||||||
active: false
|
|
||||||
CascadingCallWrapping:
|
|
||||||
active: false
|
|
||||||
includeElvis: true
|
|
||||||
ClassOrdering:
|
|
||||||
active: false
|
|
||||||
CollapsibleIfStatements:
|
|
||||||
active: false
|
|
||||||
DataClassContainsFunctions:
|
|
||||||
active: false
|
|
||||||
conversionFunctionPrefix:
|
|
||||||
- 'to'
|
|
||||||
DataClassShouldBeImmutable:
|
|
||||||
active: false
|
|
||||||
DestructuringDeclarationWithTooManyEntries:
|
|
||||||
active: true
|
|
||||||
maxDestructuringEntries: 3
|
|
||||||
EqualsNullCall:
|
|
||||||
active: true
|
|
||||||
EqualsOnSignatureLine:
|
|
||||||
active: false
|
|
||||||
ExplicitCollectionElementAccessMethod:
|
|
||||||
active: false
|
|
||||||
ExplicitItLambdaParameter:
|
|
||||||
active: true
|
|
||||||
ExpressionBodySyntax:
|
|
||||||
active: false
|
|
||||||
includeLineWrapping: false
|
|
||||||
ForbiddenComment:
|
ForbiddenComment:
|
||||||
active: true
|
active: true
|
||||||
values:
|
values:
|
||||||
|
@ -535,189 +18,14 @@ style:
|
||||||
- 'STOPSHIP:'
|
- 'STOPSHIP:'
|
||||||
- 'TODO:'
|
- 'TODO:'
|
||||||
allowedPatterns: '\[[^\]]\d+\]'
|
allowedPatterns: '\[[^\]]\d+\]'
|
||||||
customMessage: ''
|
customMessage: 'Include issue number prefix for TODO comments, e.g. `TODO [#123]: Fix this later`'
|
||||||
ForbiddenImport:
|
|
||||||
active: false
|
|
||||||
imports: []
|
|
||||||
forbiddenPatterns: ''
|
|
||||||
ForbiddenMethodCall:
|
|
||||||
active: false
|
|
||||||
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'
|
|
||||||
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: true
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**', '**/*.kts']
|
|
||||||
ignoreNumbers:
|
|
||||||
- '-1'
|
|
||||||
- '0'
|
|
||||||
- '1'
|
|
||||||
- '2'
|
|
||||||
ignoreHashCodeFunction: true
|
|
||||||
ignorePropertyDeclaration: false
|
|
||||||
ignoreLocalVariableDeclaration: false
|
|
||||||
ignoreConstantDeclaration: true
|
|
||||||
ignoreCompanionObjectPropertyDeclaration: true
|
|
||||||
ignoreAnnotation: false
|
|
||||||
ignoreNamedArgument: true
|
|
||||||
ignoreEnums: false
|
|
||||||
ignoreRanges: false
|
|
||||||
ignoreExtensionFunctions: true
|
|
||||||
MandatoryBracesIfStatements:
|
|
||||||
active: false
|
|
||||||
MandatoryBracesLoops:
|
|
||||||
active: false
|
|
||||||
MaxChainedCallsOnSameLine:
|
|
||||||
active: false
|
|
||||||
maxChainedCalls: 5
|
|
||||||
MaxLineLength:
|
MaxLineLength:
|
||||||
active: true
|
|
||||||
maxLineLength: 120
|
|
||||||
excludePackageStatements: true
|
|
||||||
excludeImportStatements: true
|
|
||||||
excludeCommentStatements: false
|
|
||||||
excludeRawStrings: true
|
|
||||||
MayBeConst:
|
|
||||||
active: true
|
|
||||||
ModifierOrder:
|
|
||||||
active: true
|
|
||||||
MultilineLambdaItParameter:
|
|
||||||
active: false
|
active: false
|
||||||
MultilineRawStringIndentation:
|
|
||||||
active: false
|
|
||||||
indentSize: 4
|
|
||||||
NestedClassesVisibility:
|
|
||||||
active: true
|
|
||||||
NewLineAtEndOfFile:
|
NewLineAtEndOfFile:
|
||||||
active: true
|
|
||||||
NoTabs:
|
|
||||||
active: false
|
active: false
|
||||||
NullableBooleanCheck:
|
|
||||||
active: false
|
|
||||||
ObjectLiteralToLambda:
|
|
||||||
active: true
|
|
||||||
OptionalAbstractKeyword:
|
|
||||||
active: true
|
|
||||||
OptionalUnit:
|
|
||||||
active: false
|
|
||||||
OptionalWhenBraces:
|
|
||||||
active: false
|
|
||||||
PreferToOverPairSyntax:
|
|
||||||
active: false
|
|
||||||
ProtectedMemberInFinalClass:
|
|
||||||
active: true
|
|
||||||
RedundantExplicitType:
|
|
||||||
active: false
|
|
||||||
RedundantHigherOrderMapUsage:
|
|
||||||
active: true
|
|
||||||
RedundantVisibilityModifierRule:
|
|
||||||
active: false
|
|
||||||
ReturnCount:
|
|
||||||
active: true
|
|
||||||
max: 2
|
|
||||||
excludedFunctions:
|
|
||||||
- 'equals'
|
|
||||||
excludeLabeled: false
|
|
||||||
excludeReturnFromLambda: true
|
|
||||||
excludeGuardClauses: false
|
|
||||||
SafeCast:
|
|
||||||
active: true
|
|
||||||
SerialVersionUIDInSerializableClass:
|
|
||||||
active: true
|
|
||||||
SpacingBetweenPackageAndImports:
|
|
||||||
active: false
|
|
||||||
ThrowsCount:
|
|
||||||
active: true
|
|
||||||
max: 2
|
|
||||||
excludeGuardClauses: false
|
|
||||||
TrailingWhitespace:
|
|
||||||
active: false
|
|
||||||
TrimMultilineRawString:
|
|
||||||
active: false
|
|
||||||
UnderscoresInNumericLiterals:
|
|
||||||
active: false
|
|
||||||
acceptableLength: 4
|
|
||||||
allowNonStandardGrouping: false
|
|
||||||
UnnecessaryAbstractClass:
|
|
||||||
active: true
|
|
||||||
UnnecessaryAnnotationUseSiteTarget:
|
|
||||||
active: false
|
|
||||||
UnnecessaryApply:
|
|
||||||
active: true
|
|
||||||
UnnecessaryBackticks:
|
|
||||||
active: false
|
|
||||||
UnnecessaryFilter:
|
|
||||||
active: true
|
|
||||||
UnnecessaryInheritance:
|
|
||||||
active: true
|
|
||||||
UnnecessaryInnerClass:
|
|
||||||
active: false
|
|
||||||
UnnecessaryLet:
|
|
||||||
active: false
|
|
||||||
UnnecessaryParentheses:
|
|
||||||
active: false
|
|
||||||
allowForUnclearPrecedence: false
|
|
||||||
UntilInsteadOfRangeTo:
|
|
||||||
active: false
|
|
||||||
UnusedImports:
|
|
||||||
active: false
|
|
||||||
UnusedPrivateClass:
|
|
||||||
active: true
|
|
||||||
UnusedPrivateMember:
|
UnusedPrivateMember:
|
||||||
active: true
|
active: true
|
||||||
allowedNames: '(_|ignored|expected|serialVersionUID)'
|
allowedNames: '(_|ignored|expected|serialVersionUID)'
|
||||||
UseAnyOrNoneInsteadOfFind:
|
excludes: [ '**/*.kts' ]
|
||||||
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
|
|
||||||
UseIsNullOrEmpty:
|
|
||||||
active: true
|
|
||||||
UseOrEmpty:
|
|
||||||
active: true
|
|
||||||
UseRequire:
|
|
||||||
active: true
|
|
||||||
UseRequireNotNull:
|
|
||||||
active: true
|
|
||||||
UseSumOfInsteadOfFlatMapSize:
|
|
||||||
active: false
|
|
||||||
UselessCallOnNotNull:
|
|
||||||
active: true
|
|
||||||
UtilityClassWithPublicConstructor:
|
|
||||||
active: true
|
|
||||||
VarCouldBeVal:
|
|
||||||
active: true
|
|
||||||
ignoreLateinitVar: false
|
|
||||||
WildcardImport:
|
WildcardImport:
|
||||||
active: true
|
active: false
|
||||||
excludeImports:
|
|
||||||
- 'java.util.*'
|
|
||||||
|
|
Loading…
Reference in New Issue