From 830973a93c005e785846e429ff3bf406e48528fe Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Fri, 15 Feb 2019 10:05:40 +0300 Subject: [PATCH] Fix "Multiple Script Definitions" notification for settings.gradle.kts ^KT-29832 Fixed --- .../MultipleScriptDefinitionsChecker.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt b/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt index 88b0eb9a13f..efcfcf8c2e9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt @@ -29,8 +29,7 @@ import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdap class MultipleScriptDefinitionsChecker(private val project: Project) : EditorNotifications.Provider() { - override fun getKey(): Key = - KEY + override fun getKey(): Key = KEY override fun createNotificationPanel(file: VirtualFile, fileEditor: FileEditor): EditorNotificationPanel? { if (file.fileType != KotlinFileType.INSTANCE) return null @@ -49,6 +48,7 @@ class MultipleScriptDefinitionsChecker(private val project: Project) : EditorNot } .toList() if (allApplicableDefinitions.size < 2) return null + if (areDefinitionsForGradleKts(allApplicableDefinitions)) return null return createNotification( ktFile, @@ -56,6 +56,14 @@ class MultipleScriptDefinitionsChecker(private val project: Project) : EditorNot ) } + private fun areDefinitionsForGradleKts(allApplicableDefinitions: List): Boolean { + if (allApplicableDefinitions.size == 2) { + return (allApplicableDefinitions[0] as? KotlinScriptDefinitionFromAnnotatedTemplate)?.scriptFilePattern?.pattern == "^(settings|.+\\.settings)\\.gradle\\.kts\$" + && (allApplicableDefinitions[1] as? KotlinScriptDefinitionFromAnnotatedTemplate)?.scriptFilePattern?.pattern == ".*\\.gradle\\.kts" + } + return false + } + companion object { private val KEY = Key.create("MultipleScriptDefinitionsChecker")