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 @@
+