use more deterministic check to determine that "Configure Kotlin in project" notification should be displayed
#KT-10898 Fixed
This commit is contained in:
@@ -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
|
||||||
|
|||||||
+3
-1
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user