From c91026f0c090ff679a88bb0458cd8f8ea1296e6b Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Thu, 31 Mar 2016 11:28:53 +0300 Subject: [PATCH] Configure Kotlin action fails for Idea 145 or higher #KT-11593 Fixed --- .../KotlinWithGradleConfigurator.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.java b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.java index ac84b05891c..90610aae47f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.java +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.java @@ -25,6 +25,7 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.DependencyScope; import com.intellij.openapi.roots.ExternalLibraryDescriptor; +import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; @@ -303,9 +304,22 @@ public abstract class KotlinWithGradleConfigurator implements KotlinProjectConfi return project.getBasePath() + "/" + GradleConstants.DEFAULT_SCRIPT_NAME; } - @NotNull + @Nullable private static String getModuleFilePath(@NotNull Module module) { - return new File(module.getModuleFilePath()).getParent() + "/" + GradleConstants.DEFAULT_SCRIPT_NAME; + String moduleDir = new File(module.getModuleFilePath()).getParent(); + File buildGradleFile = new File(moduleDir + "/" + GradleConstants.DEFAULT_SCRIPT_NAME); + if (buildGradleFile.exists()) { + return buildGradleFile.getPath(); + } + + // since IDEA 145 module file is located in .idea directory + for (VirtualFile file : ModuleRootManager.getInstance(module).getContentRoots()) { + buildGradleFile = new File(file.getPath() + "/" + GradleConstants.DEFAULT_SCRIPT_NAME); + if (buildGradleFile.exists()) { + return buildGradleFile.getPath(); + } + } + return null; } private static boolean isSnapshot(@NotNull String version) {