FIR IDE: warn about enabled Android plugin
This commit is contained in:
committed by
teamcityserver
parent
af7766b3ac
commit
4f12966d66
+44
@@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.fir
|
||||||
|
|
||||||
|
import com.intellij.ide.plugins.PluginManagerCore
|
||||||
|
import com.intellij.notification.Notification
|
||||||
|
import com.intellij.notification.NotificationDisplayType
|
||||||
|
import com.intellij.notification.NotificationType
|
||||||
|
import com.intellij.notification.NotificationsConfiguration
|
||||||
|
import com.intellij.openapi.extensions.PluginId
|
||||||
|
import com.intellij.openapi.project.Project
|
||||||
|
import com.intellij.openapi.startup.StartupActivity
|
||||||
|
|
||||||
|
class AndroidPluginIncompatibilityCheckerStartupActivity : StartupActivity.DumbAware {
|
||||||
|
override fun runActivity(project: Project) {
|
||||||
|
NotificationsConfiguration.getNotificationsConfiguration()
|
||||||
|
.register(
|
||||||
|
AndroidPluginWarningNotification.ID,
|
||||||
|
NotificationDisplayType.STICKY_BALLOON,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
if (PluginManagerCore.getPlugin(PluginId.getId(ANDROID_PLUGIN_ID))?.isEnabled == true) {
|
||||||
|
AndroidPluginWarningNotification().notify(project)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val ANDROID_PLUGIN_ID = "org.jetbrains.android"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class AndroidPluginWarningNotification : Notification(
|
||||||
|
ID,
|
||||||
|
ID,
|
||||||
|
"Android Plugin is incompatible with FIR IDE. Please, consider disabling Android plugin. Otherwise, Kotlin resolve may not work.",
|
||||||
|
NotificationType.ERROR,
|
||||||
|
) {
|
||||||
|
companion object {
|
||||||
|
const val ID = "Android Plugin is incompatible with FIR IDE"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -116,6 +116,9 @@ The Kotlin FIR plugin provides language support in IntelliJ IDEA and Android Stu
|
|||||||
<extensions defaultExtensionNs="com.intellij">
|
<extensions defaultExtensionNs="com.intellij">
|
||||||
<!-- fir-specific -->
|
<!-- fir-specific -->
|
||||||
<statusBarWidgetFactory implementation="org.jetbrains.kotlin.idea.fir.FirStatusBarWidgetFactory"/>
|
<statusBarWidgetFactory implementation="org.jetbrains.kotlin.idea.fir.FirStatusBarWidgetFactory"/>
|
||||||
|
<postStartupActivity implementation="org.jetbrains.kotlin.idea.fir.AndroidPluginIncompatibilityCheckerStartupActivity"/>
|
||||||
|
|
||||||
|
|
||||||
<projectService serviceInterface="org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSessionProvider"
|
<projectService serviceInterface="org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSessionProvider"
|
||||||
serviceImplementation="org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSessionProvider"/>
|
serviceImplementation="org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSessionProvider"/>
|
||||||
<applicationService serviceInterface="org.jetbrains.kotlin.idea.references.KotlinReferenceProviderContributor"
|
<applicationService serviceInterface="org.jetbrains.kotlin.idea.references.KotlinReferenceProviderContributor"
|
||||||
|
|||||||
Reference in New Issue
Block a user