Convert KotlinConfigurationCheckerComponent to service
Relates to #KT-36471
This commit is contained in:
+4
-5
@@ -7,13 +7,12 @@ package org.jetbrains.kotlin.idea.actions.internal
|
|||||||
|
|
||||||
import com.intellij.openapi.actionSystem.AnAction
|
import com.intellij.openapi.actionSystem.AnAction
|
||||||
import com.intellij.openapi.actionSystem.AnActionEvent
|
import com.intellij.openapi.actionSystem.AnActionEvent
|
||||||
import com.intellij.openapi.project.impl.ProjectImpl
|
import org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerService
|
||||||
import org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerComponent
|
|
||||||
|
|
||||||
class ReactivePostOpenProjectActionsAction : AnAction() {
|
class ReactivePostOpenProjectActionsAction : AnAction() {
|
||||||
override fun actionPerformed(e: AnActionEvent) {
|
override fun actionPerformed(e: AnActionEvent) {
|
||||||
val project = e.project as? ProjectImpl ?: return
|
val project = e.project ?: return
|
||||||
val configureComponent = project.getComponentInstancesOfType(KotlinConfigurationCheckerComponent::class.java).single()
|
val configurationChecker = KotlinConfigurationCheckerService.getInstanceIfNotDisposed(project) ?: return
|
||||||
configureComponent.performProjectPostOpenActions()
|
configurationChecker.performProjectPostOpenActions()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -20,19 +20,19 @@ import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId
|
|||||||
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskNotificationListenerAdapter
|
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskNotificationListenerAdapter
|
||||||
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskType
|
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskType
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerComponent
|
import org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerService
|
||||||
|
|
||||||
class KotlinExternalSystemSyncListener : ExternalSystemTaskNotificationListenerAdapter() {
|
class KotlinExternalSystemSyncListener : ExternalSystemTaskNotificationListenerAdapter() {
|
||||||
override fun onStart(id: ExternalSystemTaskId, workingDir: String) {
|
override fun onStart(id: ExternalSystemTaskId, workingDir: String) {
|
||||||
val project = id.findResolvedProject() ?: return
|
val project = id.findResolvedProject() ?: return
|
||||||
KotlinMigrationProjectComponent.getInstanceIfNotDisposed(project)?.onImportAboutToStart()
|
KotlinMigrationProjectComponent.getInstanceIfNotDisposed(project)?.onImportAboutToStart()
|
||||||
KotlinConfigurationCheckerComponent.getInstanceIfNotDisposed(project)?.syncStarted()
|
KotlinConfigurationCheckerService.getInstanceIfNotDisposed(project)?.syncStarted()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onEnd(id: ExternalSystemTaskId) {
|
override fun onEnd(id: ExternalSystemTaskId) {
|
||||||
// At this point changes might be still not applied to project structure yet.
|
// At this point changes might be still not applied to project structure yet.
|
||||||
val project = id.findResolvedProject() ?: return
|
val project = id.findResolvedProject() ?: return
|
||||||
KotlinConfigurationCheckerComponent.getInstanceIfNotDisposed(project)?.syncDone()
|
KotlinConfigurationCheckerService.getInstanceIfNotDisposed(project)?.syncDone()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -26,7 +26,7 @@ import com.intellij.ui.EditorNotifications
|
|||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
import org.jetbrains.kotlin.idea.KotlinJvmBundle
|
import org.jetbrains.kotlin.idea.KotlinJvmBundle
|
||||||
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.KotlinConfigurationCheckerService
|
||||||
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
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
|
||||||
@@ -60,9 +60,9 @@ class KotlinSetupEnvironmentNotificationProvider(private val myProject: Project)
|
|||||||
return createSetupSdkPanel(myProject, psiFile)
|
return createSetupSdkPanel(myProject, psiFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
val configurationCheckerComponent = KotlinConfigurationCheckerComponent.getInstanceIfNotDisposed(module.project) ?: return null
|
val configurationChecker = KotlinConfigurationCheckerService.getInstanceIfNotDisposed(module.project) ?: return null
|
||||||
|
|
||||||
if (!configurationCheckerComponent.isSyncing &&
|
if (!configurationChecker.isSyncing &&
|
||||||
isNotConfiguredNotificationRequired(module.toModuleGroup()) &&
|
isNotConfiguredNotificationRequired(module.toModuleGroup()) &&
|
||||||
!hasAnyKotlinRuntimeInScope(module) &&
|
!hasAnyKotlinRuntimeInScope(module) &&
|
||||||
UnsupportedAbiVersionNotificationPanelProvider.collectBadRoots(module).isEmpty()
|
UnsupportedAbiVersionNotificationPanelProvider.collectBadRoots(module).isEmpty()
|
||||||
|
|||||||
+1
-76
@@ -16,80 +16,5 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.configuration.ui
|
package org.jetbrains.kotlin.idea.configuration.ui
|
||||||
|
|
||||||
import com.intellij.notification.NotificationDisplayType
|
class KotlinConfigurationCheckerComponent {
|
||||||
import com.intellij.notification.NotificationsConfiguration
|
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
|
||||||
import com.intellij.openapi.application.runReadAction
|
|
||||||
import com.intellij.openapi.components.ProjectComponent
|
|
||||||
import com.intellij.openapi.externalSystem.service.project.manage.ProjectDataImportListener
|
|
||||||
import com.intellij.openapi.project.Project
|
|
||||||
import com.intellij.openapi.startup.StartupManager
|
|
||||||
import org.jetbrains.kotlin.idea.configuration.getModulesWithKotlinFiles
|
|
||||||
import org.jetbrains.kotlin.idea.configuration.notifyOutdatedBundledCompilerIfNecessary
|
|
||||||
import org.jetbrains.kotlin.idea.configuration.ui.notifications.notifyKotlinStyleUpdateIfNeeded
|
|
||||||
import org.jetbrains.kotlin.idea.project.getAndCacheLanguageLevelByDependencies
|
|
||||||
import org.jetbrains.kotlin.idea.util.runReadActionInSmartMode
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger
|
|
||||||
|
|
||||||
class KotlinConfigurationCheckerComponent(val project: Project) : ProjectComponent {
|
|
||||||
private val syncDepth = AtomicInteger()
|
|
||||||
|
|
||||||
init {
|
|
||||||
NotificationsConfiguration.getNotificationsConfiguration()
|
|
||||||
.register(CONFIGURE_NOTIFICATION_GROUP_ID, NotificationDisplayType.STICKY_BALLOON, true)
|
|
||||||
|
|
||||||
val connection = project.messageBus.connect()
|
|
||||||
connection.subscribe(ProjectDataImportListener.TOPIC, ProjectDataImportListener {
|
|
||||||
notifyOutdatedBundledCompilerIfNecessary(project)
|
|
||||||
})
|
|
||||||
|
|
||||||
notifyKotlinStyleUpdateIfNeeded(project)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun projectOpened() {
|
|
||||||
super.projectOpened()
|
|
||||||
|
|
||||||
StartupManager.getInstance(project).registerPostStartupActivity {
|
|
||||||
performProjectPostOpenActions()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun performProjectPostOpenActions() {
|
|
||||||
ApplicationManager.getApplication().executeOnPooledThread {
|
|
||||||
val modulesWithKotlinFiles = project.runReadActionInSmartMode {
|
|
||||||
getModulesWithKotlinFiles(project)
|
|
||||||
}
|
|
||||||
for (module in modulesWithKotlinFiles) {
|
|
||||||
runReadAction {
|
|
||||||
if (project.isDisposed) return@runReadAction
|
|
||||||
module.getAndCacheLanguageLevelByDependencies()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val isSyncing: Boolean get() = syncDepth.get() > 0
|
|
||||||
|
|
||||||
fun syncStarted() {
|
|
||||||
syncDepth.incrementAndGet()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun syncDone() {
|
|
||||||
syncDepth.decrementAndGet()
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
const val CONFIGURE_NOTIFICATION_GROUP_ID = "Configure Kotlin in Project"
|
|
||||||
|
|
||||||
fun getInstanceIfNotDisposed(project: Project): KotlinConfigurationCheckerComponent? {
|
|
||||||
return runReadAction {
|
|
||||||
if (!project.isDisposed) {
|
|
||||||
project.getComponent(KotlinConfigurationCheckerComponent::class.java)
|
|
||||||
?: error("Can't find ${KotlinConfigurationCheckerComponent::class} component")
|
|
||||||
} else {
|
|
||||||
null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+97
@@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2015 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.configuration.ui
|
||||||
|
|
||||||
|
import com.intellij.notification.NotificationDisplayType
|
||||||
|
import com.intellij.notification.NotificationsConfiguration
|
||||||
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
|
import com.intellij.openapi.application.runReadAction
|
||||||
|
import com.intellij.openapi.components.ProjectComponent
|
||||||
|
import com.intellij.openapi.externalSystem.service.project.manage.ProjectDataImportListener
|
||||||
|
import com.intellij.openapi.project.Project
|
||||||
|
import com.intellij.openapi.startup.StartupManager
|
||||||
|
import org.jetbrains.kotlin.idea.configuration.getModulesWithKotlinFiles
|
||||||
|
import org.jetbrains.kotlin.idea.configuration.notifyOutdatedBundledCompilerIfNecessary
|
||||||
|
import org.jetbrains.kotlin.idea.configuration.ui.notifications.notifyKotlinStyleUpdateIfNeeded
|
||||||
|
import org.jetbrains.kotlin.idea.project.getAndCacheLanguageLevelByDependencies
|
||||||
|
import org.jetbrains.kotlin.idea.util.runReadActionInSmartMode
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger
|
||||||
|
|
||||||
|
typealias KotlinConfigurationCheckerService = KotlinConfigurationCheckerComponent
|
||||||
|
|
||||||
|
class KotlinConfigurationCheckerComponent(val project: Project) : ProjectComponent {
|
||||||
|
private val syncDepth = AtomicInteger()
|
||||||
|
|
||||||
|
init {
|
||||||
|
NotificationsConfiguration.getNotificationsConfiguration()
|
||||||
|
.register(CONFIGURE_NOTIFICATION_GROUP_ID, NotificationDisplayType.STICKY_BALLOON, true)
|
||||||
|
|
||||||
|
val connection = project.messageBus.connect()
|
||||||
|
connection.subscribe(ProjectDataImportListener.TOPIC, ProjectDataImportListener {
|
||||||
|
notifyOutdatedBundledCompilerIfNecessary(project)
|
||||||
|
})
|
||||||
|
|
||||||
|
notifyKotlinStyleUpdateIfNeeded(project)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun projectOpened() {
|
||||||
|
super.projectOpened()
|
||||||
|
|
||||||
|
StartupManager.getInstance(project).registerPostStartupActivity {
|
||||||
|
performProjectPostOpenActions()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun performProjectPostOpenActions() {
|
||||||
|
ApplicationManager.getApplication().executeOnPooledThread {
|
||||||
|
val modulesWithKotlinFiles = project.runReadActionInSmartMode {
|
||||||
|
getModulesWithKotlinFiles(project)
|
||||||
|
}
|
||||||
|
for (module in modulesWithKotlinFiles) {
|
||||||
|
runReadAction {
|
||||||
|
if (project.isDisposed) return@runReadAction
|
||||||
|
module.getAndCacheLanguageLevelByDependencies()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val isSyncing: Boolean get() = syncDepth.get() > 0
|
||||||
|
|
||||||
|
fun syncStarted() {
|
||||||
|
syncDepth.incrementAndGet()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun syncDone() {
|
||||||
|
syncDepth.decrementAndGet()
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
const val CONFIGURE_NOTIFICATION_GROUP_ID = "Configure Kotlin in Project"
|
||||||
|
|
||||||
|
fun getInstanceIfNotDisposed(project: Project): KotlinConfigurationCheckerComponent? {
|
||||||
|
return runReadAction {
|
||||||
|
if (!project.isDisposed) {
|
||||||
|
project.getComponent(KotlinConfigurationCheckerComponent::class.java)
|
||||||
|
?: error("Can't find ${KotlinConfigurationCheckerComponent::class} component")
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+93
@@ -0,0 +1,93 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2015 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.configuration.ui
|
||||||
|
|
||||||
|
import com.intellij.notification.NotificationDisplayType
|
||||||
|
import com.intellij.notification.NotificationsConfiguration
|
||||||
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
|
import com.intellij.openapi.application.runReadAction
|
||||||
|
import com.intellij.openapi.externalSystem.service.project.manage.ProjectDataImportListener
|
||||||
|
import com.intellij.openapi.project.Project
|
||||||
|
import com.intellij.openapi.startup.StartupActivity
|
||||||
|
import org.jetbrains.kotlin.idea.configuration.getModulesWithKotlinFiles
|
||||||
|
import org.jetbrains.kotlin.idea.configuration.notifyOutdatedBundledCompilerIfNecessary
|
||||||
|
import org.jetbrains.kotlin.idea.configuration.ui.notifications.notifyKotlinStyleUpdateIfNeeded
|
||||||
|
import org.jetbrains.kotlin.idea.project.getAndCacheLanguageLevelByDependencies
|
||||||
|
import org.jetbrains.kotlin.idea.util.runReadActionInSmartMode
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger
|
||||||
|
|
||||||
|
class KotlinConfigurationCheckerStartupActivity : StartupActivity.DumbAware {
|
||||||
|
override fun runActivity(project: Project) {
|
||||||
|
NotificationsConfiguration.getNotificationsConfiguration()
|
||||||
|
.register(
|
||||||
|
KotlinConfigurationCheckerService.CONFIGURE_NOTIFICATION_GROUP_ID,
|
||||||
|
NotificationDisplayType.STICKY_BALLOON, true
|
||||||
|
)
|
||||||
|
|
||||||
|
val connection = project.messageBus.connect(project)
|
||||||
|
connection.subscribe(ProjectDataImportListener.TOPIC, ProjectDataImportListener {
|
||||||
|
notifyOutdatedBundledCompilerIfNecessary(project)
|
||||||
|
})
|
||||||
|
|
||||||
|
notifyKotlinStyleUpdateIfNeeded(project)
|
||||||
|
|
||||||
|
KotlinConfigurationCheckerService.getInstanceIfNotDisposed(project)?.performProjectPostOpenActions()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class KotlinConfigurationCheckerService(val project: Project) {
|
||||||
|
private val syncDepth = AtomicInteger()
|
||||||
|
|
||||||
|
fun performProjectPostOpenActions() {
|
||||||
|
ApplicationManager.getApplication().executeOnPooledThread {
|
||||||
|
val modulesWithKotlinFiles = project.runReadActionInSmartMode {
|
||||||
|
getModulesWithKotlinFiles(project)
|
||||||
|
}
|
||||||
|
for (module in modulesWithKotlinFiles) {
|
||||||
|
runReadAction {
|
||||||
|
if (project.isDisposed) return@runReadAction
|
||||||
|
module.getAndCacheLanguageLevelByDependencies()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val isSyncing: Boolean get() = syncDepth.get() > 0
|
||||||
|
|
||||||
|
fun syncStarted() {
|
||||||
|
syncDepth.incrementAndGet()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun syncDone() {
|
||||||
|
syncDepth.decrementAndGet()
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
const val CONFIGURE_NOTIFICATION_GROUP_ID = "Configure Kotlin in Project"
|
||||||
|
|
||||||
|
fun getInstanceIfNotDisposed(project: Project): KotlinConfigurationCheckerService? {
|
||||||
|
return runReadAction {
|
||||||
|
if (!project.isDisposed) {
|
||||||
|
project.getService(KotlinConfigurationCheckerService::class.java)
|
||||||
|
?: error("Can't find ${KotlinConfigurationCheckerService::class} service")
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-2
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.idea.KotlinJvmBundle
|
|||||||
import org.jetbrains.kotlin.idea.configuration.KotlinProjectConfigurator
|
import org.jetbrains.kotlin.idea.configuration.KotlinProjectConfigurator
|
||||||
import org.jetbrains.kotlin.idea.configuration.getConfigurationPossibilitiesForConfigureNotification
|
import org.jetbrains.kotlin.idea.configuration.getConfigurationPossibilitiesForConfigureNotification
|
||||||
import org.jetbrains.kotlin.idea.configuration.getConfiguratorByName
|
import org.jetbrains.kotlin.idea.configuration.getConfiguratorByName
|
||||||
import org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerComponent
|
import org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerService
|
||||||
import javax.swing.event.HyperlinkEvent
|
import javax.swing.event.HyperlinkEvent
|
||||||
|
|
||||||
data class ConfigureKotlinNotificationState(
|
data class ConfigureKotlinNotificationState(
|
||||||
@@ -28,7 +28,7 @@ class ConfigureKotlinNotification(
|
|||||||
excludeModules: List<Module>,
|
excludeModules: List<Module>,
|
||||||
val notificationState: ConfigureKotlinNotificationState
|
val notificationState: ConfigureKotlinNotificationState
|
||||||
) : Notification(
|
) : Notification(
|
||||||
KotlinConfigurationCheckerComponent.CONFIGURE_NOTIFICATION_GROUP_ID, KotlinJvmBundle.message("configure.kotlin"),
|
KotlinConfigurationCheckerService.CONFIGURE_NOTIFICATION_GROUP_ID, KotlinJvmBundle.message("configure.kotlin"),
|
||||||
notificationState.notificationString,
|
notificationState.notificationString,
|
||||||
NotificationType.WARNING,
|
NotificationType.WARNING,
|
||||||
NotificationListener { notification, event ->
|
NotificationListener { notification, event ->
|
||||||
|
|||||||
@@ -0,0 +1,239 @@
|
|||||||
|
<idea-plugin>
|
||||||
|
<application-components>
|
||||||
|
<component>
|
||||||
|
<implementation-class>org.jetbrains.kotlin.idea.JvmPluginStartupComponent</implementation-class>
|
||||||
|
</component>
|
||||||
|
</application-components>
|
||||||
|
|
||||||
|
<project-components>
|
||||||
|
<component>
|
||||||
|
<implementation-class>org.jetbrains.kotlin.idea.compiler.KotlinCompilerManager</implementation-class>
|
||||||
|
</component>
|
||||||
|
<component>
|
||||||
|
<implementation-class>org.jetbrains.kotlin.idea.scratch.ScratchFileModuleInfoProvider</implementation-class>
|
||||||
|
</component>
|
||||||
|
</project-components>
|
||||||
|
|
||||||
|
<actions>
|
||||||
|
<!-- Kotlin Console REPL-->
|
||||||
|
<action id="KotlinConsoleREPL" class="org.jetbrains.kotlin.console.actions.RunKotlinConsoleAction"
|
||||||
|
text="Kotlin REPL"
|
||||||
|
icon="/org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.png">
|
||||||
|
<add-to-group group-id="KotlinToolsGroup" anchor="last"/>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action id="ConfigureKotlinInProject" class="org.jetbrains.kotlin.idea.actions.ConfigureKotlinJavaInProjectAction"
|
||||||
|
text="Configure Kotlin in Project">
|
||||||
|
<add-to-group group-id="KotlinToolsGroup"/>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action id="ConfigureKotlinJsInProject" class="org.jetbrains.kotlin.idea.actions.ConfigureKotlinJsInProjectAction"
|
||||||
|
text="Configure Kotlin (JavaScript) in Project">
|
||||||
|
<add-to-group group-id="KotlinToolsGroup"/>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action id="ShowKotlinBytecode" class="org.jetbrains.kotlin.idea.actions.ShowKotlinBytecodeAction"
|
||||||
|
text="Show Kotlin Bytecode">
|
||||||
|
<add-to-group group-id="KotlinToolsGroup"/>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action id="CreateIncrementalCompilationBackup"
|
||||||
|
class="org.jetbrains.kotlin.idea.internal.makeBackup.CreateIncrementalCompilationBackup" internal="true">
|
||||||
|
<add-to-group group-id="KotlinInternalGroup"/>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action id="ReactivePostOpenProjectActionsAction" class="org.jetbrains.kotlin.idea.actions.internal.ReactivePostOpenProjectActionsAction"
|
||||||
|
text="Kotlin Project Post-Open Activity" internal="true">
|
||||||
|
<add-to-group group-id="KotlinInternalGroup"/>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action id="AddToProblemApiInspection" class="org.jetbrains.kotlin.idea.inspections.api.AddIncompatibleApiAction"
|
||||||
|
text="Report as incompatible API">
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<group id="Kotlin.XDebugger.Actions">
|
||||||
|
<!-- TODO(design)-->
|
||||||
|
<action id="Kotlin.XDebugger.CoroutinesDump"
|
||||||
|
class="org.jetbrains.kotlin.idea.debugger.coroutine.command.CoroutineDumpAction"
|
||||||
|
text="Get Coroutines Dump"
|
||||||
|
icon="/org/jetbrains/kotlin/idea/icons/kotlin.png"/>
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<action id="Kotlin.XDebugger.ToggleKotlinVariableView"
|
||||||
|
class="org.jetbrains.kotlin.idea.debugger.ToggleKotlinVariablesView"
|
||||||
|
text="Show Kotlin Variables Only">
|
||||||
|
<add-to-group group-id="XDebugger.Settings" relative-to-action="XDebugger.Inline" anchor="after"/>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action id="InspectBreakpointApplicability" class="org.jetbrains.kotlin.idea.debugger.breakpoints.InspectBreakpointApplicabilityAction"
|
||||||
|
text="Inspect Breakpoint Applicability" internal="true">
|
||||||
|
<add-to-group group-id="KotlinInternalGroup"/>
|
||||||
|
</action>
|
||||||
|
</actions>
|
||||||
|
|
||||||
|
<extensions defaultExtensionNs="com.intellij">
|
||||||
|
<projectService serviceInterface="org.jetbrains.kotlin.console.KotlinConsoleKeeper"
|
||||||
|
serviceImplementation="org.jetbrains.kotlin.console.KotlinConsoleKeeper"/>
|
||||||
|
|
||||||
|
<buildProcess.parametersProvider implementation="org.jetbrains.kotlin.idea.compiler.configuration.KotlinBuildProcessParametersProvider"/>
|
||||||
|
|
||||||
|
<projectService serviceInterface="org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches"
|
||||||
|
serviceImplementation="org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches"/>
|
||||||
|
|
||||||
|
<projectService serviceInterface="org.jetbrains.kotlin.idea.scratch.ScratchFileAutoRunner"
|
||||||
|
serviceImplementation="org.jetbrains.kotlin.idea.scratch.ScratchFileAutoRunner"/>
|
||||||
|
|
||||||
|
<projectService serviceImplementation="org.jetbrains.kotlin.idea.versions.SuppressNotificationState"/>
|
||||||
|
|
||||||
|
<applicationService serviceImplementation="org.jetbrains.kotlin.idea.debugger.ToggleKotlinVariablesState"/>
|
||||||
|
|
||||||
|
<debugger.asyncStackTraceProvider implementation="org.jetbrains.kotlin.idea.debugger.coroutine.CoroutineAsyncStackTraceProvider"/>
|
||||||
|
<debugger.jvmSmartStepIntoHandler implementation="org.jetbrains.kotlin.idea.debugger.stepping.smartStepInto.KotlinSmartStepIntoHandler"/>
|
||||||
|
<debugger.positionManagerFactory implementation="org.jetbrains.kotlin.idea.debugger.KotlinPositionManagerFactory"/>
|
||||||
|
<debugger.codeFragmentFactory implementation="org.jetbrains.kotlin.idea.debugger.evaluate.KotlinCodeFragmentFactory"/>
|
||||||
|
<debuggerEditorTextProvider language="kotlin" implementationClass="org.jetbrains.kotlin.idea.debugger.KotlinEditorTextProvider"/>
|
||||||
|
<debuggerClassFilterProvider implementation="org.jetbrains.kotlin.idea.debugger.filter.KotlinDebuggerInternalClassesFilterProvider"/>
|
||||||
|
<debugger.nodeRenderer implementation="org.jetbrains.kotlin.idea.debugger.render.KotlinClassWithDelegatedPropertyRenderer"/>
|
||||||
|
<debugger.sourcePositionProvider implementation="org.jetbrains.kotlin.idea.debugger.KotlinSourcePositionProvider"/>
|
||||||
|
<debugger.sourcePositionHighlighter implementation="org.jetbrains.kotlin.idea.debugger.KotlinSourcePositionHighlighter"/>
|
||||||
|
<debugger.frameExtraVarsProvider implementation="org.jetbrains.kotlin.idea.debugger.KotlinFrameExtraVariablesProvider"/>
|
||||||
|
<debugger.extraSteppingFilter implementation="org.jetbrains.kotlin.idea.KotlinExtraSteppingFilter"/>
|
||||||
|
<xdebugger.settings implementation="org.jetbrains.kotlin.idea.debugger.KotlinDebuggerSettings"/>
|
||||||
|
<xdebugger.breakpointType implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFieldBreakpointType"/>
|
||||||
|
<xdebugger.breakpointType implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinLineBreakpointType" order="first"/>
|
||||||
|
<xdebugger.breakpointType implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFunctionBreakpointType"/>
|
||||||
|
<debugger.syntheticProvider implementation="org.jetbrains.kotlin.idea.debugger.filter.KotlinSyntheticTypeComponentProvider"/>
|
||||||
|
<debugger.javaBreakpointHandlerFactory implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFieldBreakpointHandlerFactory"/>
|
||||||
|
<debugger.javaBreakpointHandlerFactory implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinLineBreakpointHandlerFactory"/>
|
||||||
|
<debugger.javaBreakpointHandlerFactory implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFunctionBreakpointHandlerFactory"/>
|
||||||
|
<debugger.jvmSteppingCommandProvider implementation="org.jetbrains.kotlin.idea.debugger.stepping.KotlinSteppingCommandProvider"/>
|
||||||
|
<debugger.simplePropertyGetterProvider implementation="org.jetbrains.kotlin.idea.debugger.stepping.KotlinSimpleGetterProvider"/>
|
||||||
|
<runConfigurationExtension implementation="org.jetbrains.kotlin.idea.debugger.coroutine.CoroutineDebugConfigurationExtension"/>
|
||||||
|
|
||||||
|
<framework.type implementation="org.jetbrains.kotlin.idea.framework.JavaFrameworkType"/>
|
||||||
|
<projectTemplatesFactory implementation="org.jetbrains.kotlin.idea.framework.KotlinTemplatesFactory" />
|
||||||
|
|
||||||
|
<library.presentationProvider implementation="org.jetbrains.kotlin.idea.framework.JavaRuntimePresentationProvider"/>
|
||||||
|
|
||||||
|
<configurationType implementation="org.jetbrains.kotlin.idea.run.KotlinRunConfigurationType"/>
|
||||||
|
<configurationType implementation="org.jetbrains.kotlin.idea.run.script.standalone.KotlinStandaloneScriptRunConfigurationType"/>
|
||||||
|
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.run.KotlinRunConfigurationProducer"/>
|
||||||
|
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.run.script.standalone.KotlinStandaloneScriptRunConfigurationProducer"/>
|
||||||
|
|
||||||
|
<library.type implementation="org.jetbrains.kotlin.idea.framework.JSLibraryType"/>
|
||||||
|
<library.javaSourceRootDetector implementation="org.jetbrains.kotlin.idea.configuration.KotlinSourceRootDetector"/>
|
||||||
|
|
||||||
|
<multipleRunLocationsProvider implementation="org.jetbrains.kotlin.idea.run.multiplatform.KotlinMultiplatformRunLocationsProvider"/>
|
||||||
|
|
||||||
|
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.configuration.KotlinSetupEnvironmentNotificationProvider"/>
|
||||||
|
<postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.JvmStartupActivity"/>
|
||||||
|
|
||||||
|
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.debugger.KotlinAlternativeSourceNotificationProvider"/>
|
||||||
|
|
||||||
|
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.inspections.JavaOutsideModuleDetector"/>
|
||||||
|
|
||||||
|
<consoleFilterProvider implementation="org.jetbrains.kotlin.idea.run.KotlinConsoleFilterProvider"/>
|
||||||
|
|
||||||
|
<exceptionFilter implementation="org.jetbrains.kotlin.idea.filters.KotlinExceptionFilterFactory" order="first"/>
|
||||||
|
|
||||||
|
<externalSystemTaskNotificationListener implementation="org.jetbrains.kotlin.idea.configuration.KotlinExternalSystemSyncListener"/>
|
||||||
|
|
||||||
|
<lang.surroundDescriptor language="kotlin"
|
||||||
|
implementationClass="org.jetbrains.kotlin.idea.debugger.evaluate.surroundWith.KotlinDebuggerExpressionSurroundDescriptor"/>
|
||||||
|
|
||||||
|
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.versions.UnsupportedAbiVersionNotificationPanelProvider"/>
|
||||||
|
|
||||||
|
<scratch.creationHelper language="kotlin"
|
||||||
|
implementationClass="org.jetbrains.kotlin.idea.scratch.KtScratchFileCreationHelper"/>
|
||||||
|
<runLineMarkerContributor language="kotlin"
|
||||||
|
implementationClass="org.jetbrains.kotlin.idea.scratch.actions.ScratchRunLineMarkerContributor"/>
|
||||||
|
|
||||||
|
<localInspection
|
||||||
|
groupName="Plugin DevKit"
|
||||||
|
shortName="IncompatibleAPI"
|
||||||
|
enabledByDefault="false"
|
||||||
|
level="ERROR"
|
||||||
|
displayName="Incompatible API usage"
|
||||||
|
implementationClass="org.jetbrains.kotlin.idea.inspections.api.IncompatibleAPIInspection"/>
|
||||||
|
|
||||||
|
<projectService serviceInterface="org.jetbrains.uast.kotlin.KotlinUastResolveProviderService"
|
||||||
|
serviceImplementation="org.jetbrains.uast.kotlin.internal.IdeaKotlinUastResolveProviderService"/>
|
||||||
|
|
||||||
|
<applicationService
|
||||||
|
serviceInterface="org.jetbrains.kotlin.platform.DefaultIdeTargetPlatformKindProvider"
|
||||||
|
serviceImplementation="org.jetbrains.kotlin.platform.impl.IdeaDefaultIdeTargetPlatformKindProvider"/>
|
||||||
|
|
||||||
|
<applicationService
|
||||||
|
serviceInterface="org.jetbrains.kotlin.idea.j2k.J2KPostProcessingRegistrar"
|
||||||
|
serviceImplementation="org.jetbrains.kotlin.idea.j2k.J2KPostProcessingRegistrarImpl"/>
|
||||||
|
|
||||||
|
<registryKey key="kotlin.use.ultra.light.classes"
|
||||||
|
description="Whether to use an experimental implementation of Kotlin-as-Java classes"
|
||||||
|
defaultValue="true"
|
||||||
|
restartRequired="false"/>
|
||||||
|
|
||||||
|
<registryKey key="kotlin.ultra.light.classes.empty.text.range"
|
||||||
|
description="Return 'null' text range as in old light class implementation"
|
||||||
|
defaultValue="true"
|
||||||
|
restartRequired="false"/>
|
||||||
|
|
||||||
|
<registryKey key="kotlin.uast.force.uinjectionhost"
|
||||||
|
description="Whether to convert `KtStringTemplateExpression` to `KotlinStringTemplateUPolyadicExpression` in all cases"
|
||||||
|
defaultValue="true"
|
||||||
|
restartRequired="false"/>
|
||||||
|
|
||||||
|
<registryKey key="kotlin.jps.instrument.bytecode"
|
||||||
|
description="Enable bytecode instrumentation for Kotlin classes"
|
||||||
|
defaultValue="false"
|
||||||
|
restartRequired="false"/>
|
||||||
|
<registryKey key="kotlin.debugger.coroutines.standalone"
|
||||||
|
description="Enable debugging for coroutines in Kotlin/JVM with no library support"
|
||||||
|
defaultValue="false"
|
||||||
|
restartRequired="false"/>
|
||||||
|
<registryKey key="kotlin.debugger.coroutines.trace"
|
||||||
|
description="Trace coroutines debugger output"
|
||||||
|
defaultValue="false"
|
||||||
|
restartRequired="false"/>
|
||||||
|
<registryKey key="kotlin.debugger.coroutines.max"
|
||||||
|
description="Maximum amount of coroutines for debug"
|
||||||
|
defaultValue="1000"
|
||||||
|
restartRequired="false"/>
|
||||||
|
<registryKey key="kotlin.debugger.coroutines.switch"
|
||||||
|
description="Continuation information provider possible values are: DISPATCHED_CONTINUATION, CANCELLABLE_CONTINUATION."
|
||||||
|
defaultValue="DISPATCHED_CONTINUATION"
|
||||||
|
restartRequired="false"/>
|
||||||
|
</extensions>
|
||||||
|
|
||||||
|
<extensions defaultExtensionNs="org.jetbrains.uast">
|
||||||
|
<uastLanguagePlugin implementation="org.jetbrains.uast.kotlin.KotlinUastLanguagePlugin"/>
|
||||||
|
</extensions>
|
||||||
|
|
||||||
|
<extensions defaultExtensionNs="org.jetbrains.kotlin">
|
||||||
|
<diagnosticSuppressor implementation="org.jetbrains.kotlin.idea.debugger.DiagnosticSuppressorForDebugger"/>
|
||||||
|
<storageComponentContainerContributor implementation="org.jetbrains.kotlin.samWithReceiver.ide.IdeSamWithReceiverComponentContributor"/>
|
||||||
|
|
||||||
|
<declarationAttributeAltererExtension implementation="org.jetbrains.kotlin.allopen.ide.IdeAllOpenDeclarationAttributeAltererExtension"/>
|
||||||
|
<ultraLightClassModifierExtension implementation="org.jetbrains.kotlin.allopen.ide.AllOpenUltraLightClassModifierExtension"/>
|
||||||
|
|
||||||
|
<storageComponentContainerContributor implementation="org.jetbrains.kotlin.noarg.ide.IdeNoArgComponentContainerContributor"/>
|
||||||
|
<expressionCodegenExtension implementation="org.jetbrains.kotlin.noarg.ide.IdeNoArgExpressionCodegenExtension"/>
|
||||||
|
<ultraLightClassModifierExtension implementation="org.jetbrains.kotlin.noarg.ide.NoArgUltraLightClassModifierExtension"/>
|
||||||
|
<defaultErrorMessages implementation="org.jetbrains.kotlin.noarg.diagnostic.DefaultErrorMessagesNoArg"/>
|
||||||
|
|
||||||
|
<completionExtension implementation="org.jetbrains.kotlin.idea.properties.PropertyKeyCompletion"/>
|
||||||
|
<newFileHook implementation="org.jetbrains.kotlin.idea.configuration.NewKotlinFileConfigurationHook"/>
|
||||||
|
<quickFixContributor implementation="org.jetbrains.kotlin.idea.quickfix.JvmQuickFixRegistrar"/>
|
||||||
|
<clearBuildState implementation="org.jetbrains.kotlin.idea.compiler.configuration.ClearBuildManagerState"/>
|
||||||
|
<facetValidatorCreator implementation="org.jetbrains.kotlin.idea.facet.KotlinLibraryValidatorCreator"/>
|
||||||
|
|
||||||
|
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleJavaFrameworkSupportProvider" />
|
||||||
|
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleKotlinDSLKotlinJavaFrameworkSupportProvider" />
|
||||||
|
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleKotlinDSLKotlinJSFrameworkSupportProvider" />
|
||||||
|
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleGroovyFrameworkSupportProvider" />
|
||||||
|
|
||||||
|
<syntheticScopeProviderExtension implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldSyntheticScopeProvider"/>
|
||||||
|
<expressionCodegenExtension implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldExpressionCodegenExtension"/>
|
||||||
|
<completionInformationProvider implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldCompletionInformationProvider" />
|
||||||
|
<kotlinIndicesHelperExtension implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldKotlinIndicesHelperExtension"/>
|
||||||
|
</extensions>
|
||||||
|
</idea-plugin>
|
||||||
@@ -1,242 +1,9 @@
|
|||||||
<idea-plugin>
|
<idea-plugin>
|
||||||
<application-components>
|
|
||||||
<component>
|
|
||||||
<implementation-class>org.jetbrains.kotlin.idea.JvmPluginStartupComponent</implementation-class>
|
|
||||||
</component>
|
|
||||||
</application-components>
|
|
||||||
|
|
||||||
<project-components>
|
|
||||||
<component>
|
|
||||||
<implementation-class>org.jetbrains.kotlin.idea.compiler.KotlinCompilerManager</implementation-class>
|
|
||||||
</component>
|
|
||||||
<component>
|
|
||||||
<implementation-class>org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerComponent</implementation-class>
|
|
||||||
</component>
|
|
||||||
<component>
|
|
||||||
<implementation-class>org.jetbrains.kotlin.idea.scratch.ScratchFileModuleInfoProvider</implementation-class>
|
|
||||||
</component>
|
|
||||||
</project-components>
|
|
||||||
|
|
||||||
<actions>
|
|
||||||
<!-- Kotlin Console REPL-->
|
|
||||||
<action id="KotlinConsoleREPL" class="org.jetbrains.kotlin.console.actions.RunKotlinConsoleAction"
|
|
||||||
text="Kotlin REPL"
|
|
||||||
icon="/org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.png">
|
|
||||||
<add-to-group group-id="KotlinToolsGroup" anchor="last"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="ConfigureKotlinInProject" class="org.jetbrains.kotlin.idea.actions.ConfigureKotlinJavaInProjectAction"
|
|
||||||
text="Configure Kotlin in Project">
|
|
||||||
<add-to-group group-id="KotlinToolsGroup"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="ConfigureKotlinJsInProject" class="org.jetbrains.kotlin.idea.actions.ConfigureKotlinJsInProjectAction"
|
|
||||||
text="Configure Kotlin (JavaScript) in Project">
|
|
||||||
<add-to-group group-id="KotlinToolsGroup"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="ShowKotlinBytecode" class="org.jetbrains.kotlin.idea.actions.ShowKotlinBytecodeAction"
|
|
||||||
text="Show Kotlin Bytecode">
|
|
||||||
<add-to-group group-id="KotlinToolsGroup"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="CreateIncrementalCompilationBackup"
|
|
||||||
class="org.jetbrains.kotlin.idea.internal.makeBackup.CreateIncrementalCompilationBackup" internal="true">
|
|
||||||
<add-to-group group-id="KotlinInternalGroup"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="ReactivePostOpenProjectActionsAction" class="org.jetbrains.kotlin.idea.actions.internal.ReactivePostOpenProjectActionsAction"
|
|
||||||
text="Kotlin Project Post-Open Activity" internal="true">
|
|
||||||
<add-to-group group-id="KotlinInternalGroup"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="AddToProblemApiInspection" class="org.jetbrains.kotlin.idea.inspections.api.AddIncompatibleApiAction"
|
|
||||||
text="Report as incompatible API">
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<group id="Kotlin.XDebugger.Actions">
|
|
||||||
<!-- TODO(design)-->
|
|
||||||
<action id="Kotlin.XDebugger.CoroutinesDump"
|
|
||||||
class="org.jetbrains.kotlin.idea.debugger.coroutine.command.CoroutineDumpAction"
|
|
||||||
text="Get Coroutines Dump"
|
|
||||||
icon="/org/jetbrains/kotlin/idea/icons/kotlin.png"/>
|
|
||||||
</group>
|
|
||||||
|
|
||||||
<action id="Kotlin.XDebugger.ToggleKotlinVariableView"
|
|
||||||
class="org.jetbrains.kotlin.idea.debugger.ToggleKotlinVariablesView"
|
|
||||||
text="Show Kotlin Variables Only">
|
|
||||||
<add-to-group group-id="XDebugger.Settings" relative-to-action="XDebugger.Inline" anchor="after"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="InspectBreakpointApplicability" class="org.jetbrains.kotlin.idea.debugger.breakpoints.InspectBreakpointApplicabilityAction"
|
|
||||||
text="Inspect Breakpoint Applicability" internal="true">
|
|
||||||
<add-to-group group-id="KotlinInternalGroup"/>
|
|
||||||
</action>
|
|
||||||
</actions>
|
|
||||||
|
|
||||||
<extensions defaultExtensionNs="com.intellij">
|
<extensions defaultExtensionNs="com.intellij">
|
||||||
<projectService serviceInterface="org.jetbrains.kotlin.console.KotlinConsoleKeeper"
|
<postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerStartupActivity"/>
|
||||||
serviceImplementation="org.jetbrains.kotlin.console.KotlinConsoleKeeper"/>
|
|
||||||
|
|
||||||
<buildProcess.parametersProvider implementation="org.jetbrains.kotlin.idea.compiler.configuration.KotlinBuildProcessParametersProvider"/>
|
<projectService serviceImplementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerService"/>
|
||||||
|
|
||||||
<projectService serviceInterface="org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches"
|
|
||||||
serviceImplementation="org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches"/>
|
|
||||||
|
|
||||||
<projectService serviceInterface="org.jetbrains.kotlin.idea.scratch.ScratchFileAutoRunner"
|
|
||||||
serviceImplementation="org.jetbrains.kotlin.idea.scratch.ScratchFileAutoRunner"/>
|
|
||||||
|
|
||||||
<projectService serviceImplementation="org.jetbrains.kotlin.idea.versions.SuppressNotificationState"/>
|
|
||||||
|
|
||||||
<applicationService serviceImplementation="org.jetbrains.kotlin.idea.debugger.ToggleKotlinVariablesState"/>
|
|
||||||
|
|
||||||
<debugger.asyncStackTraceProvider implementation="org.jetbrains.kotlin.idea.debugger.coroutine.CoroutineAsyncStackTraceProvider"/>
|
|
||||||
<debugger.jvmSmartStepIntoHandler implementation="org.jetbrains.kotlin.idea.debugger.stepping.smartStepInto.KotlinSmartStepIntoHandler"/>
|
|
||||||
<debugger.positionManagerFactory implementation="org.jetbrains.kotlin.idea.debugger.KotlinPositionManagerFactory"/>
|
|
||||||
<debugger.codeFragmentFactory implementation="org.jetbrains.kotlin.idea.debugger.evaluate.KotlinCodeFragmentFactory"/>
|
|
||||||
<debuggerEditorTextProvider language="kotlin" implementationClass="org.jetbrains.kotlin.idea.debugger.KotlinEditorTextProvider"/>
|
|
||||||
<debuggerClassFilterProvider implementation="org.jetbrains.kotlin.idea.debugger.filter.KotlinDebuggerInternalClassesFilterProvider"/>
|
|
||||||
<debugger.nodeRenderer implementation="org.jetbrains.kotlin.idea.debugger.render.KotlinClassWithDelegatedPropertyRenderer"/>
|
|
||||||
<debugger.sourcePositionProvider implementation="org.jetbrains.kotlin.idea.debugger.KotlinSourcePositionProvider"/>
|
|
||||||
<debugger.sourcePositionHighlighter implementation="org.jetbrains.kotlin.idea.debugger.KotlinSourcePositionHighlighter"/>
|
|
||||||
<debugger.frameExtraVarsProvider implementation="org.jetbrains.kotlin.idea.debugger.KotlinFrameExtraVariablesProvider"/>
|
|
||||||
<debugger.extraSteppingFilter implementation="org.jetbrains.kotlin.idea.KotlinExtraSteppingFilter"/>
|
|
||||||
<xdebugger.settings implementation="org.jetbrains.kotlin.idea.debugger.KotlinDebuggerSettings"/>
|
|
||||||
<xdebugger.breakpointType implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFieldBreakpointType"/>
|
|
||||||
<xdebugger.breakpointType implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinLineBreakpointType" order="first"/>
|
|
||||||
<xdebugger.breakpointType implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFunctionBreakpointType"/>
|
|
||||||
<debugger.syntheticProvider implementation="org.jetbrains.kotlin.idea.debugger.filter.KotlinSyntheticTypeComponentProvider"/>
|
|
||||||
<debugger.javaBreakpointHandlerFactory implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFieldBreakpointHandlerFactory"/>
|
|
||||||
<debugger.javaBreakpointHandlerFactory implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinLineBreakpointHandlerFactory"/>
|
|
||||||
<debugger.javaBreakpointHandlerFactory implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFunctionBreakpointHandlerFactory"/>
|
|
||||||
<debugger.jvmSteppingCommandProvider implementation="org.jetbrains.kotlin.idea.debugger.stepping.KotlinSteppingCommandProvider"/>
|
|
||||||
<debugger.simplePropertyGetterProvider implementation="org.jetbrains.kotlin.idea.debugger.stepping.KotlinSimpleGetterProvider"/>
|
|
||||||
<runConfigurationExtension implementation="org.jetbrains.kotlin.idea.debugger.coroutine.CoroutineDebugConfigurationExtension"/>
|
|
||||||
|
|
||||||
<framework.type implementation="org.jetbrains.kotlin.idea.framework.JavaFrameworkType"/>
|
|
||||||
<projectTemplatesFactory implementation="org.jetbrains.kotlin.idea.framework.KotlinTemplatesFactory" />
|
|
||||||
|
|
||||||
<library.presentationProvider implementation="org.jetbrains.kotlin.idea.framework.JavaRuntimePresentationProvider"/>
|
|
||||||
|
|
||||||
<configurationType implementation="org.jetbrains.kotlin.idea.run.KotlinRunConfigurationType"/>
|
|
||||||
<configurationType implementation="org.jetbrains.kotlin.idea.run.script.standalone.KotlinStandaloneScriptRunConfigurationType"/>
|
|
||||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.run.KotlinRunConfigurationProducer"/>
|
|
||||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.run.script.standalone.KotlinStandaloneScriptRunConfigurationProducer"/>
|
|
||||||
|
|
||||||
<library.type implementation="org.jetbrains.kotlin.idea.framework.JSLibraryType"/>
|
|
||||||
<library.javaSourceRootDetector implementation="org.jetbrains.kotlin.idea.configuration.KotlinSourceRootDetector"/>
|
|
||||||
|
|
||||||
<multipleRunLocationsProvider implementation="org.jetbrains.kotlin.idea.run.multiplatform.KotlinMultiplatformRunLocationsProvider"/>
|
|
||||||
|
|
||||||
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.configuration.KotlinSetupEnvironmentNotificationProvider"/>
|
|
||||||
<postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.JvmStartupActivity"/>
|
|
||||||
|
|
||||||
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.debugger.KotlinAlternativeSourceNotificationProvider"/>
|
|
||||||
|
|
||||||
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.inspections.JavaOutsideModuleDetector"/>
|
|
||||||
|
|
||||||
<consoleFilterProvider implementation="org.jetbrains.kotlin.idea.run.KotlinConsoleFilterProvider"/>
|
|
||||||
|
|
||||||
<exceptionFilter implementation="org.jetbrains.kotlin.idea.filters.KotlinExceptionFilterFactory" order="first"/>
|
|
||||||
|
|
||||||
<externalSystemTaskNotificationListener implementation="org.jetbrains.kotlin.idea.configuration.KotlinExternalSystemSyncListener"/>
|
|
||||||
|
|
||||||
<lang.surroundDescriptor language="kotlin"
|
|
||||||
implementationClass="org.jetbrains.kotlin.idea.debugger.evaluate.surroundWith.KotlinDebuggerExpressionSurroundDescriptor"/>
|
|
||||||
|
|
||||||
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.versions.UnsupportedAbiVersionNotificationPanelProvider"/>
|
|
||||||
|
|
||||||
<scratch.creationHelper language="kotlin"
|
|
||||||
implementationClass="org.jetbrains.kotlin.idea.scratch.KtScratchFileCreationHelper"/>
|
|
||||||
<runLineMarkerContributor language="kotlin"
|
|
||||||
implementationClass="org.jetbrains.kotlin.idea.scratch.actions.ScratchRunLineMarkerContributor"/>
|
|
||||||
|
|
||||||
<localInspection
|
|
||||||
groupName="Plugin DevKit"
|
|
||||||
shortName="IncompatibleAPI"
|
|
||||||
enabledByDefault="false"
|
|
||||||
level="ERROR"
|
|
||||||
displayName="Incompatible API usage"
|
|
||||||
implementationClass="org.jetbrains.kotlin.idea.inspections.api.IncompatibleAPIInspection"/>
|
|
||||||
|
|
||||||
<projectService serviceInterface="org.jetbrains.uast.kotlin.KotlinUastResolveProviderService"
|
|
||||||
serviceImplementation="org.jetbrains.uast.kotlin.internal.IdeaKotlinUastResolveProviderService"/>
|
|
||||||
|
|
||||||
<applicationService
|
|
||||||
serviceInterface="org.jetbrains.kotlin.platform.DefaultIdeTargetPlatformKindProvider"
|
|
||||||
serviceImplementation="org.jetbrains.kotlin.platform.impl.IdeaDefaultIdeTargetPlatformKindProvider"/>
|
|
||||||
|
|
||||||
<applicationService
|
|
||||||
serviceInterface="org.jetbrains.kotlin.idea.j2k.J2KPostProcessingRegistrar"
|
|
||||||
serviceImplementation="org.jetbrains.kotlin.idea.j2k.J2KPostProcessingRegistrarImpl"/>
|
|
||||||
|
|
||||||
<registryKey key="kotlin.use.ultra.light.classes"
|
|
||||||
description="Whether to use an experimental implementation of Kotlin-as-Java classes"
|
|
||||||
defaultValue="true"
|
|
||||||
restartRequired="false"/>
|
|
||||||
|
|
||||||
<registryKey key="kotlin.ultra.light.classes.empty.text.range"
|
|
||||||
description="Return 'null' text range as in old light class implementation"
|
|
||||||
defaultValue="true"
|
|
||||||
restartRequired="false"/>
|
|
||||||
|
|
||||||
<registryKey key="kotlin.uast.force.uinjectionhost"
|
|
||||||
description="Whether to convert `KtStringTemplateExpression` to `KotlinStringTemplateUPolyadicExpression` in all cases"
|
|
||||||
defaultValue="true"
|
|
||||||
restartRequired="false"/>
|
|
||||||
|
|
||||||
<registryKey key="kotlin.jps.instrument.bytecode"
|
|
||||||
description="Enable bytecode instrumentation for Kotlin classes"
|
|
||||||
defaultValue="false"
|
|
||||||
restartRequired="false"/>
|
|
||||||
<registryKey key="kotlin.debugger.coroutines.standalone"
|
|
||||||
description="Enable debugging for coroutines in Kotlin/JVM with no library support"
|
|
||||||
defaultValue="false"
|
|
||||||
restartRequired="false"/>
|
|
||||||
<registryKey key="kotlin.debugger.coroutines.trace"
|
|
||||||
description="Trace coroutines debugger output"
|
|
||||||
defaultValue="false"
|
|
||||||
restartRequired="false"/>
|
|
||||||
<registryKey key="kotlin.debugger.coroutines.max"
|
|
||||||
description="Maximum amount of coroutines for debug"
|
|
||||||
defaultValue="1000"
|
|
||||||
restartRequired="false"/>
|
|
||||||
<registryKey key="kotlin.debugger.coroutines.switch"
|
|
||||||
description="Continuation information provider possible values are: DISPATCHED_CONTINUATION, CANCELLABLE_CONTINUATION."
|
|
||||||
defaultValue="DISPATCHED_CONTINUATION"
|
|
||||||
restartRequired="false"/>
|
|
||||||
</extensions>
|
</extensions>
|
||||||
|
|
||||||
<extensions defaultExtensionNs="org.jetbrains.uast">
|
|
||||||
<uastLanguagePlugin implementation="org.jetbrains.uast.kotlin.KotlinUastLanguagePlugin"/>
|
|
||||||
</extensions>
|
|
||||||
|
|
||||||
<extensions defaultExtensionNs="org.jetbrains.kotlin">
|
|
||||||
<diagnosticSuppressor implementation="org.jetbrains.kotlin.idea.debugger.DiagnosticSuppressorForDebugger"/>
|
|
||||||
<storageComponentContainerContributor implementation="org.jetbrains.kotlin.samWithReceiver.ide.IdeSamWithReceiverComponentContributor"/>
|
|
||||||
|
|
||||||
<declarationAttributeAltererExtension implementation="org.jetbrains.kotlin.allopen.ide.IdeAllOpenDeclarationAttributeAltererExtension"/>
|
|
||||||
<ultraLightClassModifierExtension implementation="org.jetbrains.kotlin.allopen.ide.AllOpenUltraLightClassModifierExtension"/>
|
|
||||||
|
|
||||||
<storageComponentContainerContributor implementation="org.jetbrains.kotlin.noarg.ide.IdeNoArgComponentContainerContributor"/>
|
|
||||||
<expressionCodegenExtension implementation="org.jetbrains.kotlin.noarg.ide.IdeNoArgExpressionCodegenExtension"/>
|
|
||||||
<ultraLightClassModifierExtension implementation="org.jetbrains.kotlin.noarg.ide.NoArgUltraLightClassModifierExtension"/>
|
|
||||||
<defaultErrorMessages implementation="org.jetbrains.kotlin.noarg.diagnostic.DefaultErrorMessagesNoArg"/>
|
|
||||||
|
|
||||||
<completionExtension implementation="org.jetbrains.kotlin.idea.properties.PropertyKeyCompletion"/>
|
|
||||||
<newFileHook implementation="org.jetbrains.kotlin.idea.configuration.NewKotlinFileConfigurationHook"/>
|
|
||||||
<quickFixContributor implementation="org.jetbrains.kotlin.idea.quickfix.JvmQuickFixRegistrar"/>
|
|
||||||
<clearBuildState implementation="org.jetbrains.kotlin.idea.compiler.configuration.ClearBuildManagerState"/>
|
|
||||||
<facetValidatorCreator implementation="org.jetbrains.kotlin.idea.facet.KotlinLibraryValidatorCreator"/>
|
|
||||||
|
|
||||||
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleJavaFrameworkSupportProvider" />
|
|
||||||
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleKotlinDSLKotlinJavaFrameworkSupportProvider" />
|
|
||||||
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleKotlinDSLKotlinJSFrameworkSupportProvider" />
|
|
||||||
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleGroovyFrameworkSupportProvider" />
|
|
||||||
|
|
||||||
<syntheticScopeProviderExtension implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldSyntheticScopeProvider"/>
|
|
||||||
<expressionCodegenExtension implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldExpressionCodegenExtension"/>
|
|
||||||
<completionInformationProvider implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldCompletionInformationProvider" />
|
|
||||||
<kotlinIndicesHelperExtension implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldKotlinIndicesHelperExtension"/>
|
|
||||||
</extensions>
|
|
||||||
</idea-plugin>
|
</idea-plugin>
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<idea-plugin>
|
||||||
|
<project-components>
|
||||||
|
<component>
|
||||||
|
<implementation-class>org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerComponent</implementation-class>
|
||||||
|
</component>
|
||||||
|
</project-components>
|
||||||
|
|
||||||
|
</idea-plugin>
|
||||||
@@ -1,231 +1,13 @@
|
|||||||
<idea-plugin>
|
<idea-plugin>
|
||||||
<application-components>
|
|
||||||
<component>
|
|
||||||
<implementation-class>org.jetbrains.kotlin.idea.JvmPluginStartupComponent</implementation-class>
|
|
||||||
</component>
|
|
||||||
</application-components>
|
|
||||||
|
|
||||||
<project-components>
|
|
||||||
<component>
|
|
||||||
<implementation-class>org.jetbrains.kotlin.idea.compiler.KotlinCompilerManager</implementation-class>
|
|
||||||
</component>
|
|
||||||
<component>
|
|
||||||
<implementation-class>org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerComponent</implementation-class>
|
|
||||||
</component>
|
|
||||||
<component>
|
|
||||||
<implementation-class>org.jetbrains.kotlin.idea.scratch.ScratchFileModuleInfoProvider</implementation-class>
|
|
||||||
</component>
|
|
||||||
</project-components>
|
|
||||||
|
|
||||||
<actions>
|
|
||||||
<!-- Kotlin Console REPL-->
|
|
||||||
<action id="KotlinConsoleREPL" class="org.jetbrains.kotlin.console.actions.RunKotlinConsoleAction"
|
|
||||||
text="Kotlin REPL"
|
|
||||||
icon="/org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.png">
|
|
||||||
<add-to-group group-id="KotlinToolsGroup" anchor="last"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="ConfigureKotlinInProject" class="org.jetbrains.kotlin.idea.actions.ConfigureKotlinJavaInProjectAction"
|
|
||||||
text="Configure Kotlin in Project">
|
|
||||||
<add-to-group group-id="KotlinToolsGroup"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="ConfigureKotlinJsInProject" class="org.jetbrains.kotlin.idea.actions.ConfigureKotlinJsInProjectAction"
|
|
||||||
text="Configure Kotlin (JavaScript) in Project">
|
|
||||||
<add-to-group group-id="KotlinToolsGroup"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="ShowKotlinBytecode" class="org.jetbrains.kotlin.idea.actions.ShowKotlinBytecodeAction"
|
|
||||||
text="Show Kotlin Bytecode">
|
|
||||||
<add-to-group group-id="KotlinToolsGroup"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="CreateIncrementalCompilationBackup"
|
|
||||||
class="org.jetbrains.kotlin.idea.internal.makeBackup.CreateIncrementalCompilationBackup" internal="true">
|
|
||||||
<add-to-group group-id="KotlinInternalGroup"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="ReactivePostOpenProjectActionsAction" class="org.jetbrains.kotlin.idea.actions.internal.ReactivePostOpenProjectActionsAction"
|
|
||||||
text="Kotlin Project Post-Open Activity" internal="true">
|
|
||||||
<add-to-group group-id="KotlinInternalGroup"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="AddToProblemApiInspection" class="org.jetbrains.kotlin.idea.inspections.api.AddIncompatibleApiAction"
|
|
||||||
text="Report as incompatible API">
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<group id="Kotlin.XDebugger.Actions">
|
|
||||||
<!-- TODO(design)-->
|
|
||||||
<action id="Kotlin.XDebugger.CoroutinesDump"
|
|
||||||
class="org.jetbrains.kotlin.idea.debugger.coroutine.command.CoroutineDumpAction"
|
|
||||||
text="Get Coroutines Dump"
|
|
||||||
icon="/org/jetbrains/kotlin/idea/icons/kotlin.png"/>
|
|
||||||
</group>
|
|
||||||
|
|
||||||
<action id="Kotlin.XDebugger.ToggleKotlinVariableView"
|
|
||||||
class="org.jetbrains.kotlin.idea.debugger.ToggleKotlinVariablesView"
|
|
||||||
text="Show Kotlin Variables Only">
|
|
||||||
<add-to-group group-id="XDebugger.Settings" relative-to-action="XDebugger.Inline" anchor="after"/>
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action id="InspectBreakpointApplicability" class="org.jetbrains.kotlin.idea.debugger.breakpoints.InspectBreakpointApplicabilityAction"
|
|
||||||
text="Inspect Breakpoint Applicability" internal="true">
|
|
||||||
<add-to-group group-id="KotlinInternalGroup"/>
|
|
||||||
</action>
|
|
||||||
</actions>
|
|
||||||
|
|
||||||
<extensions defaultExtensionNs="com.intellij">
|
|
||||||
<projectService serviceInterface="org.jetbrains.kotlin.console.KotlinConsoleKeeper"
|
|
||||||
serviceImplementation="org.jetbrains.kotlin.console.KotlinConsoleKeeper"/>
|
|
||||||
|
|
||||||
<buildProcess.parametersProvider implementation="org.jetbrains.kotlin.idea.compiler.configuration.KotlinBuildProcessParametersProvider"/>
|
|
||||||
|
|
||||||
<projectService serviceInterface="org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches"
|
|
||||||
serviceImplementation="org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches"/>
|
|
||||||
|
|
||||||
<projectService serviceInterface="org.jetbrains.kotlin.idea.scratch.ScratchFileAutoRunner"
|
|
||||||
serviceImplementation="org.jetbrains.kotlin.idea.scratch.ScratchFileAutoRunner"/>
|
|
||||||
|
|
||||||
<projectService serviceImplementation="org.jetbrains.kotlin.idea.versions.SuppressNotificationState"/>
|
|
||||||
|
|
||||||
<applicationService serviceImplementation="org.jetbrains.kotlin.idea.debugger.ToggleKotlinVariablesState"/>
|
|
||||||
|
|
||||||
<debugger.asyncStackTraceProvider implementation="org.jetbrains.kotlin.idea.debugger.coroutine.CoroutineAsyncStackTraceProvider"/>
|
|
||||||
<debugger.jvmSmartStepIntoHandler implementation="org.jetbrains.kotlin.idea.debugger.stepping.smartStepInto.KotlinSmartStepIntoHandler"/>
|
|
||||||
<debugger.positionManagerFactory implementation="org.jetbrains.kotlin.idea.debugger.KotlinPositionManagerFactory"/>
|
|
||||||
<debugger.codeFragmentFactory implementation="org.jetbrains.kotlin.idea.debugger.evaluate.KotlinCodeFragmentFactory"/>
|
|
||||||
<debuggerEditorTextProvider language="kotlin" implementationClass="org.jetbrains.kotlin.idea.debugger.KotlinEditorTextProvider"/>
|
|
||||||
<debuggerClassFilterProvider implementation="org.jetbrains.kotlin.idea.debugger.filter.KotlinDebuggerInternalClassesFilterProvider"/>
|
|
||||||
<debugger.nodeRenderer implementation="org.jetbrains.kotlin.idea.debugger.render.KotlinClassWithDelegatedPropertyRenderer"/>
|
|
||||||
<debugger.sourcePositionProvider implementation="org.jetbrains.kotlin.idea.debugger.KotlinSourcePositionProvider"/>
|
|
||||||
<debugger.sourcePositionHighlighter implementation="org.jetbrains.kotlin.idea.debugger.KotlinSourcePositionHighlighter"/>
|
|
||||||
<debugger.frameExtraVarsProvider implementation="org.jetbrains.kotlin.idea.debugger.KotlinFrameExtraVariablesProvider"/>
|
|
||||||
<debugger.extraSteppingFilter implementation="org.jetbrains.kotlin.idea.KotlinExtraSteppingFilter"/>
|
|
||||||
<xdebugger.settings implementation="org.jetbrains.kotlin.idea.debugger.KotlinDebuggerSettings"/>
|
|
||||||
<xdebugger.breakpointType implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFieldBreakpointType"/>
|
|
||||||
<xdebugger.breakpointType implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinLineBreakpointType" order="first"/>
|
|
||||||
<xdebugger.breakpointType implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFunctionBreakpointType"/>
|
|
||||||
<debugger.syntheticProvider implementation="org.jetbrains.kotlin.idea.debugger.filter.KotlinSyntheticTypeComponentProvider"/>
|
|
||||||
<debugger.javaBreakpointHandlerFactory implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFieldBreakpointHandlerFactory"/>
|
|
||||||
<debugger.javaBreakpointHandlerFactory implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinLineBreakpointHandlerFactory"/>
|
|
||||||
<debugger.javaBreakpointHandlerFactory implementation="org.jetbrains.kotlin.idea.debugger.breakpoints.KotlinFunctionBreakpointHandlerFactory"/>
|
|
||||||
<debugger.jvmSteppingCommandProvider implementation="org.jetbrains.kotlin.idea.debugger.stepping.KotlinSteppingCommandProvider"/>
|
|
||||||
<debugger.simplePropertyGetterProvider implementation="org.jetbrains.kotlin.idea.debugger.stepping.KotlinSimpleGetterProvider"/>
|
|
||||||
<runConfigurationExtension implementation="org.jetbrains.kotlin.idea.debugger.coroutine.CoroutineDebugConfigurationExtension"/>
|
|
||||||
|
|
||||||
<framework.type implementation="org.jetbrains.kotlin.idea.framework.JavaFrameworkType"/>
|
|
||||||
<projectTemplatesFactory implementation="org.jetbrains.kotlin.idea.framework.KotlinTemplatesFactory" />
|
|
||||||
|
|
||||||
<library.presentationProvider implementation="org.jetbrains.kotlin.idea.framework.JavaRuntimePresentationProvider"/>
|
|
||||||
|
|
||||||
<configurationType implementation="org.jetbrains.kotlin.idea.run.KotlinRunConfigurationType"/>
|
|
||||||
<configurationType implementation="org.jetbrains.kotlin.idea.run.script.standalone.KotlinStandaloneScriptRunConfigurationType"/>
|
|
||||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.run.KotlinRunConfigurationProducer"/>
|
|
||||||
<runConfigurationProducer implementation="org.jetbrains.kotlin.idea.run.script.standalone.KotlinStandaloneScriptRunConfigurationProducer"/>
|
|
||||||
|
|
||||||
<library.type implementation="org.jetbrains.kotlin.idea.framework.JSLibraryType"/>
|
|
||||||
<library.javaSourceRootDetector implementation="org.jetbrains.kotlin.idea.configuration.KotlinSourceRootDetector"/>
|
|
||||||
|
|
||||||
<multipleRunLocationsProvider implementation="org.jetbrains.kotlin.idea.run.multiplatform.KotlinMultiplatformRunLocationsProvider"/>
|
|
||||||
|
|
||||||
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.configuration.KotlinSetupEnvironmentNotificationProvider"/>
|
|
||||||
<postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.JvmStartupActivity"/>
|
|
||||||
|
|
||||||
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.debugger.KotlinAlternativeSourceNotificationProvider"/>
|
|
||||||
|
|
||||||
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.inspections.JavaOutsideModuleDetector"/>
|
|
||||||
|
|
||||||
<consoleFilterProvider implementation="org.jetbrains.kotlin.idea.run.KotlinConsoleFilterProvider"/>
|
|
||||||
|
|
||||||
<exceptionFilter implementation="org.jetbrains.kotlin.idea.filters.KotlinExceptionFilterFactory" order="first"/>
|
|
||||||
|
|
||||||
<externalSystemTaskNotificationListener implementation="org.jetbrains.kotlin.idea.configuration.KotlinExternalSystemSyncListener"/>
|
|
||||||
|
|
||||||
<lang.surroundDescriptor language="kotlin"
|
|
||||||
implementationClass="org.jetbrains.kotlin.idea.debugger.evaluate.surroundWith.KotlinDebuggerExpressionSurroundDescriptor"/>
|
|
||||||
|
|
||||||
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.versions.UnsupportedAbiVersionNotificationPanelProvider"/>
|
|
||||||
|
|
||||||
<scratch.creationHelper language="kotlin"
|
|
||||||
implementationClass="org.jetbrains.kotlin.idea.scratch.KtScratchFileCreationHelper"/>
|
|
||||||
<runLineMarkerContributor language="kotlin"
|
|
||||||
implementationClass="org.jetbrains.kotlin.idea.scratch.actions.ScratchRunLineMarkerContributor"/>
|
|
||||||
|
|
||||||
<localInspection
|
|
||||||
groupName="Plugin DevKit"
|
|
||||||
shortName="IncompatibleAPI"
|
|
||||||
enabledByDefault="false"
|
|
||||||
level="ERROR"
|
|
||||||
displayName="Incompatible API usage"
|
|
||||||
implementationClass="org.jetbrains.kotlin.idea.inspections.api.IncompatibleAPIInspection"/>
|
|
||||||
|
|
||||||
<projectService serviceInterface="org.jetbrains.uast.kotlin.KotlinUastResolveProviderService"
|
|
||||||
serviceImplementation="org.jetbrains.uast.kotlin.internal.IdeaKotlinUastResolveProviderService"/>
|
|
||||||
|
|
||||||
<applicationService
|
|
||||||
serviceInterface="org.jetbrains.kotlin.platform.DefaultIdeTargetPlatformKindProvider"
|
|
||||||
serviceImplementation="org.jetbrains.kotlin.platform.impl.IdeaDefaultIdeTargetPlatformKindProvider"/>
|
|
||||||
|
|
||||||
<applicationService
|
|
||||||
serviceInterface="org.jetbrains.kotlin.idea.j2k.J2KPostProcessingRegistrar"
|
|
||||||
serviceImplementation="org.jetbrains.kotlin.idea.j2k.J2KPostProcessingRegistrarImpl"/>
|
|
||||||
|
|
||||||
<registryKey key="kotlin.use.ultra.light.classes"
|
|
||||||
description="Whether to use an experimental implementation of Kotlin-as-Java classes"
|
|
||||||
defaultValue="true"
|
|
||||||
restartRequired="false"/>
|
|
||||||
|
|
||||||
<registryKey key="kotlin.ultra.light.classes.empty.text.range"
|
|
||||||
description="Return 'null' text range as in old light class implementation"
|
|
||||||
defaultValue="true"
|
|
||||||
restartRequired="false"/>
|
|
||||||
|
|
||||||
<registryKey key="kotlin.uast.force.uinjectionhost"
|
|
||||||
description="Whether to convert `KtStringTemplateExpression` to `KotlinStringTemplateUPolyadicExpression` in all cases"
|
|
||||||
defaultValue="true"
|
|
||||||
restartRequired="false"/>
|
|
||||||
|
|
||||||
<registryKey key="kotlin.jps.instrument.bytecode"
|
|
||||||
description="Enable bytecode instrumentation for Kotlin classes"
|
|
||||||
defaultValue="false"
|
|
||||||
restartRequired="false"/>
|
|
||||||
<registryKey key="kotlin.debugger.coroutines"
|
|
||||||
description="Enable debugging for coroutines in Kotlin/JVM"
|
|
||||||
defaultValue="false"
|
|
||||||
restartRequired="false"/>
|
|
||||||
</extensions>
|
|
||||||
|
|
||||||
<extensions defaultExtensionNs="org.jetbrains.uast">
|
<extensions defaultExtensionNs="org.jetbrains.uast">
|
||||||
<uastLanguagePlugin implementation="org.jetbrains.uast.kotlin.KotlinUastLanguagePlugin"/>
|
|
||||||
<generate.uastCodeGenerationPlugin implementation="org.jetbrains.uast.kotlin.generate.KotlinUastCodeGenerationPlugin"/>
|
<generate.uastCodeGenerationPlugin implementation="org.jetbrains.uast.kotlin.generate.KotlinUastCodeGenerationPlugin"/>
|
||||||
</extensions>
|
</extensions>
|
||||||
|
|
||||||
<extensions defaultExtensionNs="org.jetbrains.kotlin">
|
<extensions defaultExtensionNs="com.intellij">
|
||||||
<diagnosticSuppressor implementation="org.jetbrains.kotlin.idea.debugger.DiagnosticSuppressorForDebugger"/>
|
<postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerStartupActivity"/>
|
||||||
<storageComponentContainerContributor implementation="org.jetbrains.kotlin.samWithReceiver.ide.IdeSamWithReceiverComponentContributor"/>
|
|
||||||
|
|
||||||
<declarationAttributeAltererExtension implementation="org.jetbrains.kotlin.allopen.ide.IdeAllOpenDeclarationAttributeAltererExtension"/>
|
<projectService serviceImplementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerService"/>
|
||||||
<ultraLightClassModifierExtension implementation="org.jetbrains.kotlin.allopen.ide.AllOpenUltraLightClassModifierExtension"/>
|
|
||||||
|
|
||||||
<storageComponentContainerContributor implementation="org.jetbrains.kotlin.noarg.ide.IdeNoArgComponentContainerContributor"/>
|
|
||||||
<expressionCodegenExtension implementation="org.jetbrains.kotlin.noarg.ide.IdeNoArgExpressionCodegenExtension"/>
|
|
||||||
<ultraLightClassModifierExtension implementation="org.jetbrains.kotlin.noarg.ide.NoArgUltraLightClassModifierExtension"/>
|
|
||||||
<defaultErrorMessages implementation="org.jetbrains.kotlin.noarg.diagnostic.DefaultErrorMessagesNoArg"/>
|
|
||||||
|
|
||||||
<completionExtension implementation="org.jetbrains.kotlin.idea.properties.PropertyKeyCompletion"/>
|
|
||||||
<newFileHook implementation="org.jetbrains.kotlin.idea.configuration.NewKotlinFileConfigurationHook"/>
|
|
||||||
<quickFixContributor implementation="org.jetbrains.kotlin.idea.quickfix.JvmQuickFixRegistrar"/>
|
|
||||||
<clearBuildState implementation="org.jetbrains.kotlin.idea.compiler.configuration.ClearBuildManagerState"/>
|
|
||||||
<facetValidatorCreator implementation="org.jetbrains.kotlin.idea.facet.KotlinLibraryValidatorCreator"/>
|
|
||||||
|
|
||||||
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleJavaFrameworkSupportProvider" />
|
|
||||||
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleKotlinDSLKotlinJavaFrameworkSupportProvider" />
|
|
||||||
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleKotlinDSLKotlinJSFrameworkSupportProvider" />
|
|
||||||
<gradleFrameworkSupport implementation="org.jetbrains.kotlin.gradle.kdsl.frameworkSupport.GradleGroovyFrameworkSupportProvider" />
|
|
||||||
|
|
||||||
<syntheticScopeProviderExtension implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldSyntheticScopeProvider"/>
|
|
||||||
<expressionCodegenExtension implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldExpressionCodegenExtension"/>
|
|
||||||
<completionInformationProvider implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldCompletionInformationProvider" />
|
|
||||||
<kotlinIndicesHelperExtension implementation="org.jetbrains.kotlin.idea.debugger.evaluate.DebuggerFieldKotlinIndicesHelperExtension"/>
|
|
||||||
</extensions>
|
</extensions>
|
||||||
|
|
||||||
</idea-plugin>
|
</idea-plugin>
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
|||||||
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
||||||
|
<xi:include href="jvm-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
|||||||
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
||||||
|
<xi:include href="jvm-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
|||||||
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
||||||
|
<xi:include href="jvm-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
|||||||
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
||||||
|
<xi:include href="jvm-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
|||||||
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
||||||
|
<xi:include href="jvm-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
|||||||
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
||||||
|
<xi:include href="jvm-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
|||||||
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
||||||
|
<xi:include href="jvm-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2020 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea;
|
|
||||||
|
|
||||||
|
|
||||||
public class PluginStartupActivity {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,149 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2015 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea;
|
|
||||||
|
|
||||||
import com.intellij.openapi.application.ApplicationManager;
|
|
||||||
import com.intellij.openapi.application.PathMacros;
|
|
||||||
import com.intellij.openapi.components.BaseComponent;
|
|
||||||
import com.intellij.openapi.components.ServiceManager;
|
|
||||||
import com.intellij.openapi.diagnostic.Logger;
|
|
||||||
import com.intellij.openapi.editor.EditorFactory;
|
|
||||||
import com.intellij.openapi.editor.event.DocumentEvent;
|
|
||||||
import com.intellij.openapi.editor.event.DocumentListener;
|
|
||||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
|
||||||
import com.intellij.openapi.updateSettings.impl.UpdateChecker;
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
|
||||||
import com.intellij.psi.search.searches.IndexPatternSearch;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory;
|
|
||||||
import org.jetbrains.kotlin.diagnostics.Errors;
|
|
||||||
import org.jetbrains.kotlin.idea.reporter.KotlinReportSubmitter;
|
|
||||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinTodoSearcher;
|
|
||||||
import org.jetbrains.kotlin.js.resolve.diagnostics.ErrorsJs;
|
|
||||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.ErrorsJvm;
|
|
||||||
import org.jetbrains.kotlin.resolve.konan.diagnostics.ErrorsNative;
|
|
||||||
import org.jetbrains.kotlin.utils.PathUtil;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import static org.jetbrains.kotlin.idea.TestResourceBundleKt.registerAdditionalResourceBundleInTests;
|
|
||||||
|
|
||||||
public class PluginStartupComponent implements BaseComponent {
|
|
||||||
private static final Logger LOG = Logger.getInstance(PluginStartupComponent.class);
|
|
||||||
|
|
||||||
private static final String KOTLIN_BUNDLED = "KOTLIN_BUNDLED";
|
|
||||||
|
|
||||||
public static PluginStartupComponent getInstance() {
|
|
||||||
return ApplicationManager.getApplication().getComponent(PluginStartupComponent.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public String getComponentName() {
|
|
||||||
return PluginStartupComponent.class.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void initComponent() {
|
|
||||||
if (ApplicationManager.getApplication().isUnitTestMode()) {
|
|
||||||
registerAdditionalResourceBundleInTests();
|
|
||||||
}
|
|
||||||
|
|
||||||
registerPathVariable();
|
|
||||||
initializeDiagnostics();
|
|
||||||
|
|
||||||
try {
|
|
||||||
// API added in 15.0.2
|
|
||||||
UpdateChecker.INSTANCE.getExcludedFromUpdateCheckPlugins().add("org.jetbrains.kotlin");
|
|
||||||
}
|
|
||||||
catch (Throwable throwable) {
|
|
||||||
LOG.debug("Excluding Kotlin plugin updates using old API", throwable);
|
|
||||||
UpdateChecker.getDisabledToUpdatePlugins().add("org.jetbrains.kotlin");
|
|
||||||
}
|
|
||||||
EditorFactory.getInstance().getEventMulticaster().addDocumentListener(new DocumentListener() {
|
|
||||||
@Override
|
|
||||||
public void documentChanged(@NotNull DocumentEvent e) {
|
|
||||||
VirtualFile virtualFile = FileDocumentManager.getInstance().getFile(e.getDocument());
|
|
||||||
if (virtualFile != null && virtualFile.getFileType() == KotlinFileType.INSTANCE) {
|
|
||||||
KotlinPluginUpdater.Companion.getInstance().kotlinFileEdited(virtualFile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
ServiceManager.getService(IndexPatternSearch.class).registerExecutor(new KotlinTodoSearcher());
|
|
||||||
|
|
||||||
KotlinPluginCompatibilityVerifier.checkCompatibility();
|
|
||||||
|
|
||||||
KotlinReportSubmitter.Companion.setupReportingFromRelease();
|
|
||||||
|
|
||||||
//todo[Sedunov]: wait for fix in platform to avoid misunderstood from Java newbies (also ConfigureKotlinInTempDirTest)
|
|
||||||
//KotlinSdkType.Companion.setUpIfNeeded();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Concurrent access to Errors may lead to the class loading dead lock because of non-trivial initialization in Errors.
|
|
||||||
As a work-around, all Error classes are initialized beforehand.
|
|
||||||
It doesn't matter what exact diagnostic factories are used here.
|
|
||||||
*/
|
|
||||||
private static void initializeDiagnostics() {
|
|
||||||
consumeFactory(Errors.DEPRECATION);
|
|
||||||
consumeFactory(ErrorsJvm.ACCIDENTAL_OVERRIDE);
|
|
||||||
consumeFactory(ErrorsJs.CALL_FROM_UMD_MUST_BE_JS_MODULE_AND_JS_NON_MODULE);
|
|
||||||
consumeFactory(ErrorsNative.INCOMPATIBLE_THROWS_INHERITED);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void consumeFactory(DiagnosticFactory<?> factory) {
|
|
||||||
//noinspection ResultOfMethodCallIgnored
|
|
||||||
factory.getClass();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void registerPathVariable() {
|
|
||||||
PathMacros macros = PathMacros.getInstance();
|
|
||||||
macros.setMacro(KOTLIN_BUNDLED, PathUtil.getKotlinPathsForIdeaPlugin().getHomePath().getPath());
|
|
||||||
}
|
|
||||||
|
|
||||||
private String aliveFlagPath;
|
|
||||||
|
|
||||||
public synchronized String getAliveFlagPath() {
|
|
||||||
if (this.aliveFlagPath == null) {
|
|
||||||
try {
|
|
||||||
File flagFile = File.createTempFile("kotlin-idea-", "-is-running");
|
|
||||||
flagFile.deleteOnExit();
|
|
||||||
this.aliveFlagPath = flagFile.getAbsolutePath();
|
|
||||||
}
|
|
||||||
catch (IOException e) {
|
|
||||||
this.aliveFlagPath = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return this.aliveFlagPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
public synchronized void resetAliveFlag() {
|
|
||||||
if (this.aliveFlagPath != null) {
|
|
||||||
File flagFile = new File(this.aliveFlagPath);
|
|
||||||
if (flagFile.exists()) {
|
|
||||||
if (flagFile.delete()) {
|
|
||||||
this.aliveFlagPath = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void disposeComponent() {}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2020 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea;
|
|
||||||
|
|
||||||
import com.intellij.openapi.application.ApplicationManager;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public class PluginStartupService {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user