mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 21:07:04 +05:30
feat(build): remove Detekt and switch to Slack's Compose lints
This commit is contained in:
parent
d612ed44d9
commit
0ae48dee33
18 changed files with 101 additions and 812 deletions
11
.github/renovate.json5
vendored
11
.github/renovate.json5
vendored
|
@ -55,17 +55,6 @@
|
||||||
"depNameTemplate": "com.facebook:ktfmt",
|
"depNameTemplate": "com.facebook:ktfmt",
|
||||||
"registryUrlTemplate": "https://repo1.maven.org/maven2/",
|
"registryUrlTemplate": "https://repo1.maven.org/maven2/",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"fileMatch": [
|
|
||||||
"Detekt\.kt$"
|
|
||||||
],
|
|
||||||
"matchStrings": [
|
|
||||||
"COMPOSE_RULES_VERSION = \"(?<currentValue>.*)\""
|
|
||||||
],
|
|
||||||
"datasourceTemplate": "maven",
|
|
||||||
"depNameTemplate": "io.nlopez.compose.rules:detekt",
|
|
||||||
"registryUrlTemplate": "https://repo1.maven.org/maven2/",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"fileMatch": [
|
"fileMatch": [
|
||||||
"gradle/libs.versions.toml"
|
"gradle/libs.versions.toml"
|
||||||
|
|
7
.github/workflows/ci.yml
vendored
7
.github/workflows/ci.yml
vendored
|
@ -33,13 +33,6 @@ jobs:
|
||||||
gradle-home-cache-cleanup: true
|
gradle-home-cache-cleanup: true
|
||||||
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
|
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
|
||||||
|
|
||||||
- name: Run Detekt
|
|
||||||
uses: gradle/gradle-build-action@6095a76664413da4c8c134ee32e8a8ae900f0f1f # v2.4.0
|
|
||||||
with:
|
|
||||||
arguments: --no-configuration-cache --stacktrace detektMain
|
|
||||||
gradle-home-cache-cleanup: true
|
|
||||||
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
|
|
||||||
|
|
||||||
- name: (Fail-only) Upload test report
|
- name: (Fail-only) Upload test report
|
||||||
if: failure()
|
if: failure()
|
||||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
||||||
|
|
|
@ -1,4 +1,78 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<issues format="6" by="lint 7.4.0-alpha09" type="baseline" client="gradle" dependencies="false" name="AGP (7.4.0-alpha09)" variant="all" version="7.4.0-alpha09">
|
<issues format="6" by="lint 7.4.2" type="baseline" client="gradle" dependencies="false" name="AGP (7.4.2)" variant="all" version="7.4.2">
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="ObsoleteSdkInt"
|
||||||
|
message="This folder configuration (`v26`) is unnecessary; `minSdkVersion` is 26. Merge all the resources in this folder into `mipmap-anydpi`.">
|
||||||
|
<location
|
||||||
|
file="src/main/res/mipmap-anydpi-v26"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="IconDuplicates"
|
||||||
|
message="The following unrelated icon files have identical contents: ic_launcher_foreground.png, ic_launcher_monochrome.png">
|
||||||
|
<location
|
||||||
|
file="src/main/res/mipmap-hdpi/ic_launcher_monochrome.png"/>
|
||||||
|
<location
|
||||||
|
file="src/main/res/mipmap-hdpi/ic_launcher_foreground.png"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="IconDuplicates"
|
||||||
|
message="The following unrelated icon files have identical contents: ic_launcher_foreground.png, ic_launcher_monochrome.png">
|
||||||
|
<location
|
||||||
|
file="src/main/res/mipmap-mdpi/ic_launcher_monochrome.png"/>
|
||||||
|
<location
|
||||||
|
file="src/main/res/mipmap-mdpi/ic_launcher_foreground.png"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="IconDuplicates"
|
||||||
|
message="The following unrelated icon files have identical contents: ic_launcher_foreground.png, ic_launcher_monochrome.png">
|
||||||
|
<location
|
||||||
|
file="src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png"/>
|
||||||
|
<location
|
||||||
|
file="src/main/res/mipmap-xhdpi/ic_launcher_foreground.png"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="IconDuplicates"
|
||||||
|
message="The following unrelated icon files have identical contents: ic_launcher_foreground.png, ic_launcher_monochrome.png">
|
||||||
|
<location
|
||||||
|
file="src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png"/>
|
||||||
|
<location
|
||||||
|
file="src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="IconDuplicates"
|
||||||
|
message="The following unrelated icon files have identical contents: ic_launcher_foreground.png, ic_launcher_monochrome.png">
|
||||||
|
<location
|
||||||
|
file="src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png"/>
|
||||||
|
<location
|
||||||
|
file="src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="ComposeUnstableCollections"
|
||||||
|
message="The Compose Compiler cannot infer the stability of a parameter if a List<NavigationItem> is used in it, even if the item type is stable.
You should use Kotlinx Immutable Collections instead: `items: ImmutableList<NavigationItem>` or create an `@Immutable` wrapper for this class: `@Immutable data class ItemsList(val items: List<NavigationItem>)`
See https://slackhq.github.io/compose-lints/rules/#avoid-using-unstable-collections for more information."
|
||||||
|
errorLine1=" items: List<NavigationItem>,"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt"
|
||||||
|
line="32"
|
||||||
|
column="10"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="ComposeUnstableCollections"
|
||||||
|
message="The Compose Compiler cannot infer the stability of a parameter if a Map<Month, List<SavedPost>> is used in it, even if the item type is stable.
You should use Kotlinx Immutable Collections instead: `items: ImmutableMap<Month, List<SavedPost>>` or create an `@Immutable` wrapper for this class: `@Immutable data class ItemsMap(val items: Map<Month, List<SavedPost>>)`
See https://slackhq.github.io/compose-lints/rules/#avoid-using-unstable-collections for more information."
|
||||||
|
errorLine1=" items: Map<Month, List<SavedPost>>,"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/DatabasePosts.kt"
|
||||||
|
line="24"
|
||||||
|
column="10"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
</issues>
|
</issues>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<issues format="6" by="lint 8.0.0-alpha08" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-alpha08)" variant="all" version="8.0.0-alpha08">
|
<issues format="6" by="lint 7.4.2" type="baseline" client="gradle" dependencies="false" name="AGP (7.4.2)" variant="all" version="7.4.2">
|
||||||
|
|
||||||
</issues>
|
</issues>
|
||||||
|
|
|
@ -81,7 +81,6 @@ gradlePlugin {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.build.agp)
|
implementation(libs.build.agp)
|
||||||
implementation(libs.build.cachefix)
|
implementation(libs.build.cachefix)
|
||||||
implementation(libs.build.detekt)
|
|
||||||
implementation(libs.build.kotlin.gradle)
|
implementation(libs.build.kotlin.gradle)
|
||||||
implementation(libs.build.semver)
|
implementation(libs.build.semver)
|
||||||
implementation(libs.build.sentry)
|
implementation(libs.build.sentry)
|
||||||
|
|
|
@ -18,9 +18,11 @@ import org.gradle.android.AndroidCacheFixPlugin
|
||||||
import org.gradle.api.JavaVersion
|
import org.gradle.api.JavaVersion
|
||||||
import org.gradle.api.Plugin
|
import org.gradle.api.Plugin
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.artifacts.VersionCatalogsExtension
|
||||||
import org.gradle.kotlin.dsl.apply
|
import org.gradle.kotlin.dsl.apply
|
||||||
import org.gradle.kotlin.dsl.configure
|
import org.gradle.kotlin.dsl.configure
|
||||||
import org.gradle.kotlin.dsl.findByType
|
import org.gradle.kotlin.dsl.findByType
|
||||||
|
import org.gradle.kotlin.dsl.getByType
|
||||||
|
|
||||||
class AndroidCommonPlugin : Plugin<Project> {
|
class AndroidCommonPlugin : Plugin<Project> {
|
||||||
|
|
||||||
|
@ -61,6 +63,9 @@ class AndroidCommonPlugin : Plugin<Project> {
|
||||||
}
|
}
|
||||||
project.extensions.findByType<ApplicationExtension>()?.run { lint.configureLint(project) }
|
project.extensions.findByType<ApplicationExtension>()?.run { lint.configureLint(project) }
|
||||||
project.extensions.findByType<LibraryExtension>()?.run { lint.configureLint(project) }
|
project.extensions.findByType<LibraryExtension>()?.run { lint.configureLint(project) }
|
||||||
|
val catalog = project.extensions.getByType<VersionCatalogsExtension>()
|
||||||
|
val libs = catalog.named("libs")
|
||||||
|
project.dependencies.addProvider("lintChecks", libs.findLibrary("slack-compose-lints").get())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,6 +74,7 @@ private fun Lint.configureLint(project: Project) {
|
||||||
checkReleaseBuilds = false
|
checkReleaseBuilds = false
|
||||||
warningsAsErrors = false
|
warningsAsErrors = false
|
||||||
disable.add("DialogFragmentCallbacksDetector")
|
disable.add("DialogFragmentCallbacksDetector")
|
||||||
|
error.add("ComposeM2Api")
|
||||||
baseline = project.file("lint-baseline.xml")
|
baseline = project.file("lint-baseline.xml")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright © 2022 Harsh Shandilya.
|
* Copyright © 2022-2023 Harsh Shandilya.
|
||||||
* Use of this source code is governed by an MIT-style
|
* Use of this source code is governed by an MIT-style
|
||||||
* license that can be found in the LICENSE file or at
|
* license that can be found in the LICENSE file or at
|
||||||
* https://opensource.org/licenses/MIT.
|
* https://opensource.org/licenses/MIT.
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright © 2022-2023 Harsh Shandilya.
|
|
||||||
* Use of this source code is governed by an MIT-style
|
|
||||||
* license that can be found in the LICENSE file or at
|
|
||||||
* https://opensource.org/licenses/MIT.
|
|
||||||
*/
|
|
||||||
package dev.msfjarvis.claw.gradle
|
|
||||||
|
|
||||||
import io.gitlab.arturbosch.detekt.DetektPlugin
|
|
||||||
import io.gitlab.arturbosch.detekt.extensions.DetektExtension
|
|
||||||
import org.gradle.api.Project
|
|
||||||
import org.gradle.kotlin.dsl.configure
|
|
||||||
|
|
||||||
object Detekt {
|
|
||||||
private const val COMPOSE_RULES_VERSION = "0.1.2"
|
|
||||||
|
|
||||||
fun apply(project: Project) {
|
|
||||||
project.pluginManager.apply(DetektPlugin::class.java)
|
|
||||||
project.extensions.configure<DetektExtension> {
|
|
||||||
debug = project.providers.gradleProperty("debugDetekt").isPresent
|
|
||||||
parallel = true
|
|
||||||
ignoredBuildTypes = listOf("benchmark", "release")
|
|
||||||
basePath = project.layout.projectDirectory.toString()
|
|
||||||
baseline =
|
|
||||||
project.rootProject.layout.projectDirectory
|
|
||||||
.dir("detekt-baselines")
|
|
||||||
.file("${project.name}.xml")
|
|
||||||
.asFile
|
|
||||||
}
|
|
||||||
project.dependencies.add(
|
|
||||||
"detektPlugins",
|
|
||||||
"io.nlopez.compose.rules:detekt:$COMPOSE_RULES_VERSION",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright © 2022 Harsh Shandilya.
|
* Copyright © 2022-2023 Harsh Shandilya.
|
||||||
* Use of this source code is governed by an MIT-style
|
* Use of this source code is governed by an MIT-style
|
||||||
* license that can be found in the LICENSE file or at
|
* license that can be found in the LICENSE file or at
|
||||||
* https://opensource.org/licenses/MIT.
|
* https://opensource.org/licenses/MIT.
|
||||||
|
@ -19,7 +19,6 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
class KotlinCommonPlugin : Plugin<Project> {
|
class KotlinCommonPlugin : Plugin<Project> {
|
||||||
|
|
||||||
override fun apply(project: Project) {
|
override fun apply(project: Project) {
|
||||||
Detekt.apply(project)
|
|
||||||
project.tasks.run {
|
project.tasks.run {
|
||||||
withType<JavaCompile>().configureEach {
|
withType<JavaCompile>().configureEach {
|
||||||
sourceCompatibility = JavaVersion.VERSION_11.toString()
|
sourceCompatibility = JavaVersion.VERSION_11.toString()
|
||||||
|
|
|
@ -1,4 +1,15 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<issues format="6" by="lint 8.0.0-alpha08" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-alpha08)" variant="all" version="8.0.0-alpha08">
|
<issues format="6" by="lint 7.4.2" type="baseline" client="gradle" dependencies="false" name="AGP (7.4.2)" variant="all" version="7.4.2">
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="ComposeUnstableCollections"
|
||||||
|
message="The Compose Compiler cannot infer the stability of a parameter if a List<String> is used in it, even if the item type is stable.
You should use Kotlinx Immutable Collections instead: `tags: ImmutableList<String>` or create an `@Immutable` wrapper for this class: `@Immutable data class TagsList(val items: List<String>)`
See https://slackhq.github.io/compose-lints/rules/#avoid-using-unstable-collections for more information."
|
||||||
|
errorLine1=" tags: List<String>,"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/dev/msfjarvis/claw/common/posts/LobstersCard.kt"
|
||||||
|
line="204"
|
||||||
|
column="9"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
</issues>
|
</issues>
|
||||||
|
|
|
@ -1,733 +0,0 @@
|
||||||
build:
|
|
||||||
maxIssues: 0
|
|
||||||
excludeCorrectable: false
|
|
||||||
weights:
|
|
||||||
# complexity: 2
|
|
||||||
# LongParameterList: 1
|
|
||||||
# style: 1
|
|
||||||
# comments: 1
|
|
||||||
|
|
||||||
config:
|
|
||||||
validation: true
|
|
||||||
warningsAsErrors: 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
|
|
||||||
UndocumentedPublicFunction:
|
|
||||||
active: false
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
UndocumentedPublicProperty:
|
|
||||||
active: false
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
|
|
||||||
complexity:
|
|
||||||
active: true
|
|
||||||
CognitiveComplexMethod:
|
|
||||||
active: false
|
|
||||||
threshold: 15
|
|
||||||
ComplexCondition:
|
|
||||||
active: true
|
|
||||||
threshold: 4
|
|
||||||
ComplexInterface:
|
|
||||||
active: false
|
|
||||||
threshold: 10
|
|
||||||
includeStaticDeclarations: false
|
|
||||||
includePrivateDeclarations: 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: 15
|
|
||||||
thresholdInClasses: 15
|
|
||||||
thresholdInInterfaces: 15
|
|
||||||
thresholdInObjects: 15
|
|
||||||
thresholdInEnums: 15
|
|
||||||
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:
|
|
||||||
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:
|
|
||||||
active: true
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
functionPattern: '[a-z][a-zA-Z0-9]*'
|
|
||||||
excludeClassPattern: '$^'
|
|
||||||
ignoreOverridden: true
|
|
||||||
ignoreAnnotated: ['Composable']
|
|
||||||
FunctionParameterNaming:
|
|
||||||
active: true
|
|
||||||
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-Za-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/**']
|
|
||||||
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'
|
|
||||||
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
|
|
||||||
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:
|
|
||||||
active: true
|
|
||||||
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:
|
|
||||||
active: true
|
|
||||||
values:
|
|
||||||
- 'FIXME:'
|
|
||||||
- 'STOPSHIP:'
|
|
||||||
- 'TODO:'
|
|
||||||
allowedPatterns: ''
|
|
||||||
customMessage: ''
|
|
||||||
ForbiddenImport:
|
|
||||||
active: false
|
|
||||||
imports: []
|
|
||||||
forbiddenPatterns: ''
|
|
||||||
ForbiddenMethodCall:
|
|
||||||
active: false
|
|
||||||
methods:
|
|
||||||
- 'kotlin.io.print'
|
|
||||||
- '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: true
|
|
||||||
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:
|
|
||||||
active: true
|
|
||||||
maxLineLength: 120
|
|
||||||
excludePackageStatements: true
|
|
||||||
excludeImportStatements: true
|
|
||||||
excludeCommentStatements: false
|
|
||||||
MayBeConst:
|
|
||||||
active: true
|
|
||||||
ModifierOrder:
|
|
||||||
active: true
|
|
||||||
MultilineLambdaItParameter:
|
|
||||||
active: false
|
|
||||||
NestedClassesVisibility:
|
|
||||||
active: true
|
|
||||||
NewLineAtEndOfFile:
|
|
||||||
active: true
|
|
||||||
NoTabs:
|
|
||||||
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
|
|
||||||
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
|
|
||||||
UntilInsteadOfRangeTo:
|
|
||||||
active: false
|
|
||||||
UnusedImports:
|
|
||||||
active: false
|
|
||||||
UnusedPrivateClass:
|
|
||||||
active: true
|
|
||||||
UnusedPrivateMember:
|
|
||||||
active: true
|
|
||||||
allowedNames: '(_|ignored|expected|serialVersionUID)'
|
|
||||||
ignoreAnnotated: ['Preview']
|
|
||||||
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
|
|
||||||
UseIsNullOrEmpty:
|
|
||||||
active: true
|
|
||||||
UseOrEmpty:
|
|
||||||
active: true
|
|
||||||
UseRequire:
|
|
||||||
active: true
|
|
||||||
UseRequireNotNull:
|
|
||||||
active: true
|
|
||||||
UselessCallOnNotNull:
|
|
||||||
active: true
|
|
||||||
UtilityClassWithPublicConstructor:
|
|
||||||
active: true
|
|
||||||
VarCouldBeVal:
|
|
||||||
active: true
|
|
||||||
ignoreLateinitVar: false
|
|
||||||
WildcardImport:
|
|
||||||
active: true
|
|
||||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
|
|
||||||
excludeImports:
|
|
||||||
- 'java.util.*'
|
|
||||||
|
|
||||||
Compose:
|
|
||||||
CompositionLocalAllowlist:
|
|
||||||
active: true
|
|
||||||
# allowedCompositionLocals: LocalSomething,LocalSomethingElse
|
|
||||||
ContentEmitterReturningValues:
|
|
||||||
active: true
|
|
||||||
# contentEmitters: MyComposable,MyOtherComposable
|
|
||||||
ModifierComposable:
|
|
||||||
active: true
|
|
||||||
ModifierMissing:
|
|
||||||
active: true
|
|
||||||
ModifierReused:
|
|
||||||
active: true
|
|
||||||
ModifierWithoutDefault:
|
|
||||||
active: true
|
|
||||||
MultipleEmitters:
|
|
||||||
active: true
|
|
||||||
# contentEmitters: MyComposable,MyOtherComposable
|
|
||||||
MutableParams:
|
|
||||||
active: true
|
|
||||||
ComposableNaming:
|
|
||||||
active: true
|
|
||||||
ComposableParamOrder:
|
|
||||||
active: true
|
|
||||||
PreviewNaming:
|
|
||||||
active: true
|
|
||||||
PreviewPublic:
|
|
||||||
active: true
|
|
||||||
RememberMissing:
|
|
||||||
active: true
|
|
||||||
ViewModelForwarding:
|
|
||||||
active: true
|
|
||||||
ViewModelInjection:
|
|
||||||
active: true
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright © 2022 Harsh Shandilya.
|
* Copyright © 2022-2023 Harsh Shandilya.
|
||||||
* Use of this source code is governed by an MIT-style
|
* Use of this source code is governed by an MIT-style
|
||||||
* license that can be found in the LICENSE file or at
|
* license that can be found in the LICENSE file or at
|
||||||
* https://opensource.org/licenses/MIT.
|
* https://opensource.org/licenses/MIT.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<issues format="6" by="lint 8.0.0-alpha08" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-alpha08)" variant="all" version="8.0.0-alpha08">
|
<issues format="6" by="lint 7.4.2" type="baseline" client="gradle" dependencies="false" name="AGP (7.4.2)" variant="all" version="7.4.2">
|
||||||
|
|
||||||
</issues>
|
</issues>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<issues format="6" by="lint 8.0.0-alpha08" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-alpha08)" variant="all" version="8.0.0-alpha08">
|
<issues format="6" by="lint 7.4.2" type="baseline" client="gradle" dependencies="false" name="AGP (7.4.2)" variant="all" version="7.4.2">
|
||||||
|
|
||||||
</issues>
|
</issues>
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" ?>
|
|
||||||
<SmellBaseline>
|
|
||||||
<ManuallySuppressedIssues></ManuallySuppressedIssues>
|
|
||||||
<CurrentIssues>
|
|
||||||
<ID>LongMethod:LobstersApp.kt$@OptIn( ExperimentalComposeUiApi::class, ExperimentalMaterial3Api::class, ) @Composable fun LobstersApp( urlLauncher: UrlLauncher, htmlConverter: HTMLConverter, setWebUri: (String?) -> Unit, modifier: Modifier = Modifier, viewModel: ClawViewModel = injectedViewModel(), )</ID>
|
|
||||||
</CurrentIssues>
|
|
||||||
</SmellBaseline>
|
|
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" ?>
|
|
||||||
<SmellBaseline>
|
|
||||||
<ManuallySuppressedIssues></ManuallySuppressedIssues>
|
|
||||||
<CurrentIssues>
|
|
||||||
<ID>MemberNameEqualsClassName:Tags.kt$Tags$private val tags = arrayListOf<String>()</ID>
|
|
||||||
</CurrentIssues>
|
|
||||||
</SmellBaseline>
|
|
|
@ -48,7 +48,6 @@ androidx-test-uiautomator = "androidx.test.uiautomator:uiautomator:2.3.0-alpha02
|
||||||
androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "workmanager" }
|
androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "workmanager" }
|
||||||
build-agp = { module = "com.android.tools.build:gradle", version.ref = "agp" }
|
build-agp = { module = "com.android.tools.build:gradle", version.ref = "agp" }
|
||||||
build-cachefix = "org.gradle.android.cache-fix:org.gradle.android.cache-fix.gradle.plugin:2.7.0"
|
build-cachefix = "org.gradle.android.cache-fix:org.gradle.android.cache-fix.gradle.plugin:2.7.0"
|
||||||
build-detekt = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.22.0"
|
|
||||||
build-kotlin-gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
|
build-kotlin-gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
|
||||||
build-semver = "com.vdurmont:semver4j:3.1.0"
|
build-semver = "com.vdurmont:semver4j:3.1.0"
|
||||||
build-sentry = "io.sentry.android.gradle:io.sentry.android.gradle.gradle.plugin:3.4.2"
|
build-sentry = "io.sentry.android.gradle:io.sentry.android.gradle.gradle.plugin:3.4.2"
|
||||||
|
@ -80,6 +79,7 @@ okhttp-loggingInterceptor = { module = "com.squareup.okhttp3:logging-interceptor
|
||||||
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
|
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
|
||||||
retrofit-kotlinxSerializationConverter = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0"
|
retrofit-kotlinxSerializationConverter = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0"
|
||||||
sentry-bom = { module = "io.sentry:sentry-bom", version.ref = "sentry-sdk" }
|
sentry-bom = { module = "io.sentry:sentry-bom", version.ref = "sentry-sdk" }
|
||||||
|
slack-compose-lints = "com.slack.lint.compose:compose-lint-checks:1.1.0"
|
||||||
sqldelight-androidDriver = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" }
|
sqldelight-androidDriver = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" }
|
||||||
sqldelight-extensions-coroutines = { module = "app.cash.sqldelight:coroutines-extensions-jvm", version.ref = "sqldelight" }
|
sqldelight-extensions-coroutines = { module = "app.cash.sqldelight:coroutines-extensions-jvm", version.ref = "sqldelight" }
|
||||||
sqldelight-jvmDriver = { module = "app.cash.sqldelight:sqlite-driver", version.ref = "sqldelight" }
|
sqldelight-jvmDriver = { module = "app.cash.sqldelight:sqlite-driver", version.ref = "sqldelight" }
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright © 2022 Harsh Shandilya.
|
* Copyright © 2022-2023 Harsh Shandilya.
|
||||||
* Use of this source code is governed by an MIT-style
|
* Use of this source code is governed by an MIT-style
|
||||||
* license that can be found in the LICENSE file or at
|
* license that can be found in the LICENSE file or at
|
||||||
* https://opensource.org/licenses/MIT.
|
* https://opensource.org/licenses/MIT.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue