From 4405021f855cdeb58eac3c61b9761e2f70f72889 Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Wed, 2 Aug 2017 22:12:50 +0300 Subject: [PATCH] Add ProjectOpenProcessor for *.gradle.kts file to open it as project #KT-19024 Fixed --- .idea/artifacts/KotlinPlugin.xml | 1 + .idea/modules.xml | 1 + idea/idea-gradle/idea-gradle.iml | 15 +++++++++ .../GradleKotlinDSLProjectOpenProcessor.kt | 33 +++++++++++++++++++ idea/src/META-INF/plugin.xml | 1 + 5 files changed, 51 insertions(+) create mode 100644 idea/idea-gradle/idea-gradle.iml create mode 100644 idea/idea-gradle/src/org/jetbrains/kotlin/gradle/GradleKotlinDSLProjectOpenProcessor.kt diff --git a/.idea/artifacts/KotlinPlugin.xml b/.idea/artifacts/KotlinPlugin.xml index 8d0c99c3e64..30b930b6f4c 100644 --- a/.idea/artifacts/KotlinPlugin.xml +++ b/.idea/artifacts/KotlinPlugin.xml @@ -62,6 +62,7 @@ + diff --git a/.idea/modules.xml b/.idea/modules.xml index 050fe90569e..9750bc63f42 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -51,6 +51,7 @@ + diff --git a/idea/idea-gradle/idea-gradle.iml b/idea/idea-gradle/idea-gradle.iml new file mode 100644 index 00000000000..2700cb58987 --- /dev/null +++ b/idea/idea-gradle/idea-gradle.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/gradle/GradleKotlinDSLProjectOpenProcessor.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/gradle/GradleKotlinDSLProjectOpenProcessor.kt new file mode 100644 index 00000000000..cff4a93a35e --- /dev/null +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/gradle/GradleKotlinDSLProjectOpenProcessor.kt @@ -0,0 +1,33 @@ +/* + * Copyright 2010-2017 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.gradle + +import com.intellij.openapi.vfs.VirtualFile +import org.jetbrains.plugins.gradle.service.project.wizard.GradleProjectImportBuilder +import org.jetbrains.plugins.gradle.service.project.wizard.GradleProjectOpenProcessor +import org.jetbrains.plugins.gradle.util.GradleConstants + +class GradleKotlinDSLProjectOpenProcessor(builder: GradleProjectImportBuilder) : GradleProjectOpenProcessor(builder) { + override fun canOpenProject(file: VirtualFile): Boolean = when { + !file.isDirectory -> file.name.endsWith(".gradle.kts") + supportedExtensions.any { file.findChild(it) != null } -> true + else -> super.canOpenProject(file) + } + + override fun getSupportedExtensions(): Array = + arrayOf("${GradleConstants.DEFAULT_SCRIPT_NAME}.kts", GradleConstants.SETTINGS_FILE_NAME) +} \ No newline at end of file diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index 1498ff4571f..ef2b89dbfb0 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -2477,6 +2477,7 @@ +