From 23e532f760139a415f952125d4e910d06d7f52c3 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Thu, 3 Jul 2025 13:36:34 +0530 Subject: [PATCH 1/3] chore: ignore extra translations in lint Extra translations are removed automatically by Weblate --- lint.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/lint.xml b/lint.xml index 05685cd8e..4b4a78251 100644 --- a/lint.xml +++ b/lint.xml @@ -31,4 +31,5 @@ + From 994f0b55b934da82bea6c61e02f95a111bd7e093 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Thu, 3 Jul 2025 20:06:25 +0530 Subject: [PATCH 2/3] chore: update detekt rules More compose-friendly --- app/build.gradle.kts | 4 +++ detekt.yml | 58 +++++++++++++++++++++++++++++++++++++++ gradle/libs.versions.toml | 3 ++ 3 files changed, 65 insertions(+) create mode 100644 detekt.yml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9ca00fb0f..d9e89a326 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -131,6 +131,9 @@ android { detekt { baseline = file("detekt-baseline.xml") + config.setFrom("$rootDir/detekt.yml") + buildUponDefaultConfig = true + allRules = false } dependencies { @@ -141,4 +144,5 @@ dependencies { implementation(libs.bundles.room) ksp(libs.androidx.room.compiler) + detektPlugins(libs.compose.detekt) } diff --git a/detekt.yml b/detekt.yml new file mode 100644 index 000000000..6472c5a35 --- /dev/null +++ b/detekt.yml @@ -0,0 +1,58 @@ +build: + maxIssues: 0 + weights: + complexity: 2 + LongParameterList: 2 + style: 1 + +processors: + active: true + exclude: + - "FunctionCountProcessor" + - "PropertyCountProcessor" + +config: + validation: true + +complexity: + LongParameterList: + active: true + functionThreshold: 10 + constructorThreshold: 8 + ignoreDefaultParameters: true + ignoreAnnotated: + - "Composable" + LongMethod: + active: true + threshold: 120 + ignoreAnnotated: + - "Composable" + - "Preview" + +style: + MagicNumber: + active: true + ignoreAnnotated: ["Composable"] + ignoreEnums: true + ignoreNumbers: ["-1", "0", "1", "2", "42", "1000"] + MaxLineLength: + active: true + maxLineLength: 120 + excludePackageStatements: true + excludeImportStatements: true + +naming: + FunctionNaming: + active: true + ignoreAnnotated: ["Composable", "Preview"] + functionPattern: "[a-z][A-Za-z0-9]*" + +Compose: # io.nlopez.compose.rules + ComposableParametersOrdering: + active: true + ModifierDefaultValue: + active: true + MissingModifierDefaultValue: + active: true + PublicComposablePreview: + active: true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7009fc137..9f70365b5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,6 +6,7 @@ kotlinxSerializationJson = "1.8.1" ksp = "2.1.21-2.0.2" #Detekt detekt = "1.23.8" +detektCompose = "0.4.22" #AndroidX androidx-constraintlayout = "2.2.1" androidx-documentfile = "1.1.0" @@ -29,6 +30,8 @@ androidx-documentfile = { module = "androidx.documentfile:documentfile", version androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" } androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" } androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } +#Compose +compose-detekt = { module = "io.nlopez.compose.rules:detekt", version.ref = "detektCompose" } #Fossify fossify-commons = { module = "org.fossify:commons", version.ref = "commons" } #Kotlin From 7e0f982ce7894cb22b644b609458000e8175ba00 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Thu, 3 Jul 2025 21:02:53 +0530 Subject: [PATCH 3/3] chore: update lint baselines --- app/detekt-baseline.xml | 3 --- app/lint-baseline.xml | 14 +++++++------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml index cf6c40f78..3475c07b7 100644 --- a/app/detekt-baseline.xml +++ b/app/detekt-baseline.xml @@ -11,14 +11,11 @@ EmptyFunctionBlock:TasksAdapter.kt$TasksAdapter${} EmptyFunctionBlock:WidgetAdapter.kt$WidgetAdapter${} LargeClass:MainActivity.kt$MainActivity : SimpleActivity - LongMethod:Context.kt$fun Context.backupNotes() MagicNumber:AutomaticBackupReceiver.kt$AutomaticBackupReceiver$3000 MagicNumber:Config.kt$Config$100 MagicNumber:Constants.kt$6 MagicNumber:Context.kt$100f - MagicNumber:ImportFolderDialog.kt$ImportFolderDialog$1000 MagicNumber:MainActivity.kt$MainActivity$0.4f - MagicNumber:MainActivity.kt$MainActivity$1000 MagicNumber:MainActivity.kt$MainActivity$127 MagicNumber:MainActivity.kt$MainActivity$250 MagicNumber:MainActivity.kt$MainActivity$255 diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml index 9110314ef..0824412b6 100644 --- a/app/lint-baseline.xml +++ b/app/lint-baseline.xml @@ -14,8 +14,8 @@ errorLine1="app-build-targetSDK = "34"" errorLine2=" ~~~~"> @@ -80,7 +80,7 @@ errorLine1="distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip" errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -91,8 +91,8 @@ errorLine1="gradlePlugins-agp = "8.10.1"" errorLine2=" ~~~~~~~~"> @@ -102,8 +102,8 @@ errorLine1="app-build-compileSDKVersion = "34"" errorLine2=" ~~~~">