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);
}
public static boolean isJavaKotlinModule(@NotNull Module module) {
public static boolean hasKotlinRuntimeInScope(@NotNull Module module) {
GlobalSearchScope scope = module.getModuleWithDependenciesAndLibrariesScope(
hasKotlinFilesOnlyInTests(module));
return KotlinRuntimeLibraryCoreUtil.getKotlinRuntimeMarkerClass(module.getProject(), scope) != null;
@@ -89,7 +89,7 @@ public class ProjectStructureUtil {
boolean hasJvmKotlinModules = false;
for (Module module : ModuleManager.getInstance(project).getModules()) {
if (isJavaKotlinModule(module)) {
if (hasKotlinRuntimeInScope(module)) {
hasJvmKotlinModules = true;
break;
}
@@ -117,7 +117,7 @@ public class ProjectStructureUtil {
ModuleUtilCore.collectModulesDependsOn(module, dependentModules);
for (Module module : dependentModules) {
if (isJavaKotlinModule(module)) {
if (hasKotlinRuntimeInScope(module)) {
usedInKotlinModule = true;
break;
}
@@ -35,7 +35,7 @@ public class KotlinJavaMavenConfigurator extends KotlinMavenConfigurator {
@Override
protected boolean isKotlinModule(@NotNull Module module) {
return ProjectStructureUtil.isJavaKotlinModule(module);
return ProjectStructureUtil.hasKotlinRuntimeInScope(module);
}
@Override
@@ -37,7 +37,7 @@ public class KotlinJavaModuleConfigurator extends KotlinWithLibraryConfigurator
@Override
public boolean isConfigured(@NotNull Module module) {
return ProjectStructureUtil.isJavaKotlinModule(module);
return ProjectStructureUtil.hasKotlinRuntimeInScope(module);
}
@NotNull
@@ -39,6 +39,7 @@ import com.intellij.ui.EditorNotificationPanel
import com.intellij.ui.EditorNotifications
import org.jetbrains.kotlin.idea.KotlinFileType
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.versions.UnsupportedAbiVersionNotificationPanelProvider
import org.jetbrains.kotlin.idea.versions.createComponentActionLabel
@@ -77,7 +78,8 @@ class KotlinSetupEnvironmentNotificationProvider(
return createSetupSdkPanel(myProject, psiFile)
}
if (!isModuleConfigured(module) && UnsupportedAbiVersionNotificationPanelProvider.collectBadRoots(module).isEmpty()) {
if (!ProjectStructureUtil.hasKotlinRuntimeInScope(module) &&
UnsupportedAbiVersionNotificationPanelProvider.collectBadRoots(module).isEmpty()) {
return createKotlinNotConfiguredPanel(module)
}
@@ -67,7 +67,7 @@ public abstract class KotlinWithGradleConfigurator implements KotlinProjectConfi
@Override
public boolean isConfigured(@NotNull Module module) {
if (ProjectStructureUtil.isJavaKotlinModule(module)) {
if (ProjectStructureUtil.hasKotlinRuntimeInScope(module)) {
return true;
}