Show "No SDK configured" notification only in JVM modules

This commit is contained in:
Dmitry Jemerov
2017-10-24 14:39:36 +02:00
parent 8a9e28afdc
commit 499cfb5772
@@ -40,10 +40,13 @@ 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.configuration.ui.KotlinConfigurationCheckerComponent import org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerComponent
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.idea.versions.SuppressNotificationState import org.jetbrains.kotlin.idea.versions.SuppressNotificationState
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
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
// Code is partially copied from com.intellij.codeInsight.daemon.impl.SetupSDKNotificationProvider // Code is partially copied from com.intellij.codeInsight.daemon.impl.SetupSDKNotificationProvider
class KotlinSetupEnvironmentNotificationProvider( class KotlinSetupEnvironmentNotificationProvider(
@@ -65,7 +68,7 @@ class KotlinSetupEnvironmentNotificationProvider(
return null return null
} }
val psiFile = PsiManager.getInstance(myProject).findFile(file) ?: return null val psiFile = PsiManager.getInstance(myProject).findFile(file) as? KtFile ?: return null
if (psiFile.language !== KotlinLanguage.INSTANCE) { if (psiFile.language !== KotlinLanguage.INSTANCE) {
return null return null
} }
@@ -75,7 +78,8 @@ class KotlinSetupEnvironmentNotificationProvider(
return null return null
} }
if (ModuleRootManager.getInstance(module).sdk == null) { if (ModuleRootManager.getInstance(module).sdk == null &&
TargetPlatformDetector.getPlatform(psiFile) == JvmPlatform) {
return createSetupSdkPanel(myProject, psiFile) return createSetupSdkPanel(myProject, psiFile)
} }