diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index de58ea3..2310397 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -35,6 +35,9 @@ jobs: key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: | ${{ runner.os }}-gradle- + # Run detekt + - name: Run Linter + run: ./gradlew detekt # Run verifyPlugin Gradle task - name: Verify Plugin run: ./gradlew verifyPlugin --no-daemon diff --git a/build.gradle.kts b/build.gradle.kts index 0fa2320..8db1300 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,9 +1,14 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - id("java") // Compiles Java source files - id("org.jetbrains.kotlin.jvm") version "1.3.72" // Kotlin plugins for Gradle - id("org.jetbrains.intellij") version "0.4.18" // gradle-intellij-plugin + // Java support + id("java") + // Kotlin support + id("org.jetbrains.kotlin.jvm") version "1.3.72" + // gradle-intellij-plugin - read more: https://github.com/JetBrains/gradle-intellij-plugin + id("org.jetbrains.intellij") version "0.4.18" + // detekt linter - read more: https://detekt.github.io/detekt/kotlindsl.html + id("io.gitlab.arturbosch.detekt") version "1.8.0" } // Import variables from gradle.properties file @@ -31,9 +36,11 @@ listOf("compileKotlin", "compileTestKotlin").forEach { // Configure project's dependencies repositories { mavenCentral() + jcenter() } dependencies { implementation(kotlin("stdlib-jdk8")) + detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.8.0") } // Configure gradle-intellij-plugin plugin. Read more: https://github.com/JetBrains/gradle-intellij-plugin @@ -41,16 +48,21 @@ intellij { pluginName = pluginName version = ideaVersion type = ideaType - updateSinceUntilBuild = false + updateSinceUntilBuild = true downloadSources = sources.toBoolean() setPlugins("java") } +// Configure detekt plugin. Read more: https://detekt.github.io/detekt/kotlindsl.html +detekt { + config = files("./detekt-config.yml") +} + tasks { patchPluginXml { version(pluginVersion) + sinceBuild(ideaVersion) // changeNotes("") -// sinceBuild sinceBuild } // publishPlugin { diff --git a/detekt-config.yml b/detekt-config.yml new file mode 100644 index 0000000..2e604c0 --- /dev/null +++ b/detekt-config.yml @@ -0,0 +1,6 @@ +# Default detekt configuration: +# https://github.com/detekt/detekt/blob/master/detekt-cli/src/main/resources/default-detekt-config.yml + +formatting: + Indentation: + active: true diff --git a/src/main/kotlin/org/jetbrains/plugins/template/TemplateBundle.kt b/src/main/kotlin/org/jetbrains/plugins/template/TemplateBundle.kt index 61ec833..6bc8a04 100644 --- a/src/main/kotlin/org/jetbrains/plugins/template/TemplateBundle.kt +++ b/src/main/kotlin/org/jetbrains/plugins/template/TemplateBundle.kt @@ -9,10 +9,13 @@ private const val BUNDLE = "messages.TemplateBundle" object TemplateBundle : DynamicBundle(BUNDLE) { + @Suppress("SpreadOperator") @JvmStatic - fun message(@PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any): String = getMessage(key, *params) + fun message(@PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any) = getMessage(key, *params) + @Suppress("SpreadOperator") @JvmStatic - fun messagePointer(@PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any): () -> String = { message(key, *params) } - + fun messagePointer(@PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any) = run { + message(key, *params) + } } diff --git a/src/main/kotlin/org/jetbrains/plugins/template/listeners/MyDynamicPluginListener.kt b/src/main/kotlin/org/jetbrains/plugins/template/listeners/MyDynamicPluginListener.kt index f4fe41d..a1973a3 100644 --- a/src/main/kotlin/org/jetbrains/plugins/template/listeners/MyDynamicPluginListener.kt +++ b/src/main/kotlin/org/jetbrains/plugins/template/listeners/MyDynamicPluginListener.kt @@ -11,12 +11,11 @@ internal class MyDynamicPluginListener : DynamicPluginListener { ServiceManager.getService(MyApplicationService::class.java) } - override fun pluginLoaded(pluginDescriptor: IdeaPluginDescriptor) {} + override fun pluginLoaded(pluginDescriptor: IdeaPluginDescriptor) = Unit - override fun beforePluginUnload(pluginDescriptor: IdeaPluginDescriptor, isUpdate: Boolean) {} + override fun beforePluginUnload(pluginDescriptor: IdeaPluginDescriptor, isUpdate: Boolean) = Unit - override fun checkUnloadPlugin(pluginDescriptor: IdeaPluginDescriptor) {} - - override fun pluginUnloaded(pluginDescriptor: IdeaPluginDescriptor, isUpdate: Boolean) {} + override fun checkUnloadPlugin(pluginDescriptor: IdeaPluginDescriptor) = Unit + override fun pluginUnloaded(pluginDescriptor: IdeaPluginDescriptor, isUpdate: Boolean) = Unit } diff --git a/src/main/kotlin/org/jetbrains/plugins/template/listeners/MyProjectManagerListener.kt b/src/main/kotlin/org/jetbrains/plugins/template/listeners/MyProjectManagerListener.kt index da81d45..5379d3a 100644 --- a/src/main/kotlin/org/jetbrains/plugins/template/listeners/MyProjectManagerListener.kt +++ b/src/main/kotlin/org/jetbrains/plugins/template/listeners/MyProjectManagerListener.kt @@ -9,5 +9,4 @@ internal class MyProjectManagerListener : ProjectManagerListener { override fun projectOpened(project: Project) { project.getService(MyProjectService::class.java) } - } diff --git a/src/main/kotlin/org/jetbrains/plugins/template/services/MyApplicationService.kt b/src/main/kotlin/org/jetbrains/plugins/template/services/MyApplicationService.kt index 70ca90b..8be1e09 100644 --- a/src/main/kotlin/org/jetbrains/plugins/template/services/MyApplicationService.kt +++ b/src/main/kotlin/org/jetbrains/plugins/template/services/MyApplicationService.kt @@ -7,5 +7,4 @@ class MyApplicationService { init { println(TemplateBundle.message("applicationService")) } - } diff --git a/src/main/kotlin/org/jetbrains/plugins/template/services/MyProjectService.kt b/src/main/kotlin/org/jetbrains/plugins/template/services/MyProjectService.kt index 38789da..e228bf9 100644 --- a/src/main/kotlin/org/jetbrains/plugins/template/services/MyProjectService.kt +++ b/src/main/kotlin/org/jetbrains/plugins/template/services/MyProjectService.kt @@ -6,7 +6,6 @@ import org.jetbrains.plugins.template.TemplateBundle class MyProjectService(project: Project) { init { - println(TemplateBundle.message("projectService", project.name)) +println(TemplateBundle.message("projectService", project.name)) } - }