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/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=" ~~~~"> 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 diff --git a/lint.xml b/lint.xml index 05685cd8e..4b4a78251 100644 --- a/lint.xml +++ b/lint.xml @@ -31,4 +31,5 @@ +