use more deterministic check to determine that "Configure Kotlin in project" notification should be displayed

#KT-10898 Fixed
This commit is contained in:
Dmitry Jemerov
2016-02-03 12:33:24 +01:00
parent 394221fefb
commit e227f6fc74
5 changed files with 9 additions and 7 deletions
@@ -56,7 +56,7 @@ public class ProjectStructureUtil {
return module != null && isJsKotlinModule(module); return module != null && isJsKotlinModule(module);
} }
public static boolean isJavaKotlinModule(@NotNull Module module) { public static boolean hasKotlinRuntimeInScope(@NotNull Module module) {
GlobalSearchScope scope = module.getModuleWithDependenciesAndLibrariesScope( GlobalSearchScope scope = module.getModuleWithDependenciesAndLibrariesScope(
hasKotlinFilesOnlyInTests(module)); hasKotlinFilesOnlyInTests(module));
return KotlinRuntimeLibraryCoreUtil.getKotlinRuntimeMarkerClass(module.getProject(), scope) != null; return KotlinRuntimeLibraryCoreUtil.getKotlinRuntimeMarkerClass(module.getProject(), scope) != null;
@@ -89,7 +89,7 @@ public class ProjectStructureUtil {
boolean hasJvmKotlinModules = false; boolean hasJvmKotlinModules = false;
for (Module module : ModuleManager.getInstance(project).getModules()) { for (Module module : ModuleManager.getInstance(project).getModules()) {
if (isJavaKotlinModule(module)) { if (hasKotlinRuntimeInScope(module)) {
hasJvmKotlinModules = true; hasJvmKotlinModules = true;
break; break;
} }
@@ -117,7 +117,7 @@ public class ProjectStructureUtil {
ModuleUtilCore.collectModulesDependsOn(module, dependentModules); ModuleUtilCore.collectModulesDependsOn(module, dependentModules);
for (Module module : dependentModules) { for (Module module : dependentModules) {
if (isJavaKotlinModule(module)) { if (hasKotlinRuntimeInScope(module)) {
usedInKotlinModule = true; usedInKotlinModule = true;
break; break;
} }
@@ -35,7 +35,7 @@ public class KotlinJavaMavenConfigurator extends KotlinMavenConfigurator {
@Override @Override
protected boolean isKotlinModule(@NotNull Module module) { protected boolean isKotlinModule(@NotNull Module module) {
return ProjectStructureUtil.isJavaKotlinModule(module); return ProjectStructureUtil.hasKotlinRuntimeInScope(module);
} }
@Override @Override
@@ -37,7 +37,7 @@ public class KotlinJavaModuleConfigurator extends KotlinWithLibraryConfigurator
@Override @Override
public boolean isConfigured(@NotNull Module module) { public boolean isConfigured(@NotNull Module module) {
return ProjectStructureUtil.isJavaKotlinModule(module); return ProjectStructureUtil.hasKotlinRuntimeInScope(module);
} }
@NotNull @NotNull
@@ -39,6 +39,7 @@ import com.intellij.ui.EditorNotificationPanel
import com.intellij.ui.EditorNotifications import com.intellij.ui.EditorNotifications
import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.idea.KotlinLanguage
import org.jetbrains.kotlin.idea.project.ProjectStructureUtil
import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.idea.versions.UnsupportedAbiVersionNotificationPanelProvider import org.jetbrains.kotlin.idea.versions.UnsupportedAbiVersionNotificationPanelProvider
import org.jetbrains.kotlin.idea.versions.createComponentActionLabel import org.jetbrains.kotlin.idea.versions.createComponentActionLabel
@@ -77,7 +78,8 @@ class KotlinSetupEnvironmentNotificationProvider(
return createSetupSdkPanel(myProject, psiFile) return createSetupSdkPanel(myProject, psiFile)
} }
if (!isModuleConfigured(module) && UnsupportedAbiVersionNotificationPanelProvider.collectBadRoots(module).isEmpty()) { if (!ProjectStructureUtil.hasKotlinRuntimeInScope(module) &&
UnsupportedAbiVersionNotificationPanelProvider.collectBadRoots(module).isEmpty()) {
return createKotlinNotConfiguredPanel(module) return createKotlinNotConfiguredPanel(module)
} }
@@ -67,7 +67,7 @@ public abstract class KotlinWithGradleConfigurator implements KotlinProjectConfi
@Override @Override
public boolean isConfigured(@NotNull Module module) { public boolean isConfigured(@NotNull Module module) {
if (ProjectStructureUtil.isJavaKotlinModule(module)) { if (ProjectStructureUtil.hasKotlinRuntimeInScope(module)) {
return true; return true;
} }