Remove deprecated AbstractProjectComponent

This commit is contained in:
Nikolay Krasko
2018-10-23 18:41:24 +03:00
parent cce125b982
commit 48c0fb2ba9
8 changed files with 43 additions and 43 deletions
@@ -6,23 +6,22 @@
package org.jetbrains.kotlin.idea.caches package org.jetbrains.kotlin.idea.caches
import com.intellij.ProjectTopics import com.intellij.ProjectTopics
import com.intellij.openapi.components.AbstractProjectComponent import com.intellij.openapi.components.ProjectComponent
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.roots.ModuleRootEvent import com.intellij.openapi.roots.ModuleRootEvent
import com.intellij.openapi.roots.ModuleRootListener import com.intellij.openapi.roots.ModuleRootListener
import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.roots.ProjectRootManager
// This is a workaround until IDEA-200525 is fixed. // This is a workaround until IDEA-200525 is fixed.
class ProjectRootModificationTrackerFixer(project: Project) : AbstractProjectComponent(project) { class ProjectRootModificationTrackerFixer(val project: Project) : ProjectComponent {
override fun initComponent() { override fun initComponent() {
myProject.messageBus.connect(myProject).subscribe( project.messageBus.connect(project).subscribe(
ProjectTopics.PROJECT_ROOTS, ProjectTopics.PROJECT_ROOTS,
object : ModuleRootListener { object : ModuleRootListener {
override fun rootsChanged(event: ModuleRootEvent) { override fun rootsChanged(event: ModuleRootEvent) {
// Forcefully increment modification counter. This would cause invalidation of // Forcefully increment modification counter. This would cause invalidation of
// all caches that depend on ProjectRootModificationTracker tracker. // all caches that depend on ProjectRootModificationTracker tracker.
ProjectRootManager.getInstance(myProject).incModificationCount() ProjectRootManager.getInstance(project).incModificationCount()
} }
} }
) )
@@ -24,12 +24,11 @@ import com.intellij.codeInsight.daemon.impl.AnnotationHolderImpl
import com.intellij.codeInsight.daemon.impl.HighlightInfo import com.intellij.codeInsight.daemon.impl.HighlightInfo
import com.intellij.codeInsight.daemon.impl.UpdateHighlightersUtil import com.intellij.codeInsight.daemon.impl.UpdateHighlightersUtil
import com.intellij.lang.annotation.AnnotationSession import com.intellij.lang.annotation.AnnotationSession
import com.intellij.openapi.components.AbstractProjectComponent import com.intellij.openapi.components.ProjectComponent
import com.intellij.openapi.editor.Document import com.intellij.openapi.editor.Document
import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.Editor
import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.project.DumbAware import com.intellij.openapi.project.DumbAware
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile import com.intellij.psi.PsiFile
import com.intellij.psi.PsiRecursiveElementVisitor import com.intellij.psi.PsiRecursiveElementVisitor
@@ -63,7 +62,7 @@ class KotlinBeforeResolveHighlightingPass(
annotationHolder = null annotationHolder = null
} }
class Factory(project: Project, registrar: TextEditorHighlightingPassRegistrar) : AbstractProjectComponent(project), TextEditorHighlightingPassFactory { class Factory(registrar: TextEditorHighlightingPassRegistrar) : ProjectComponent, TextEditorHighlightingPassFactory {
init { init {
registrar.registerTextEditorHighlightingPass(this, TextEditorHighlightingPassRegistrar.Anchor.BEFORE, Pass.UPDATE_FOLDING, false, false) registrar.registerTextEditorHighlightingPass(this, TextEditorHighlightingPassRegistrar.Anchor.BEFORE, Pass.UPDATE_FOLDING, false, false)
} }
@@ -26,12 +26,11 @@ import com.intellij.lang.annotation.Annotation
import com.intellij.lang.annotation.HighlightSeverity import com.intellij.lang.annotation.HighlightSeverity
import com.intellij.lang.annotation.HighlightSeverity.* import com.intellij.lang.annotation.HighlightSeverity.*
import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.components.AbstractProjectComponent import com.intellij.openapi.components.ProjectComponent
import com.intellij.openapi.editor.Document import com.intellij.openapi.editor.Document
import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.Editor
import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.project.DumbAware import com.intellij.openapi.project.DumbAware
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiFile import com.intellij.psi.PsiFile
import org.jetbrains.kotlin.idea.core.script.IdeScriptReportSink import org.jetbrains.kotlin.idea.core.script.IdeScriptReportSink
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
@@ -97,7 +96,7 @@ class ScriptExternalHighlightingPass(
} }
} }
class Factory(project: Project, registrar: TextEditorHighlightingPassRegistrar) : AbstractProjectComponent(project), class Factory(registrar: TextEditorHighlightingPassRegistrar) : ProjectComponent,
TextEditorHighlightingPassFactory { TextEditorHighlightingPassFactory {
init { init {
registrar.registerTextEditorHighlightingPass( registrar.registerTextEditorHighlightingPass(
@@ -17,19 +17,22 @@
package org.jetbrains.kotlin.idea.completion package org.jetbrains.kotlin.idea.completion
import com.intellij.codeInsight.lookup.Lookup import com.intellij.codeInsight.lookup.Lookup
import com.intellij.codeInsight.lookup.LookupAdapter
import com.intellij.codeInsight.lookup.LookupEvent import com.intellij.codeInsight.lookup.LookupEvent
import com.intellij.codeInsight.lookup.LookupListener
import com.intellij.codeInsight.lookup.LookupManager import com.intellij.codeInsight.lookup.LookupManager
import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.components.AbstractProjectComponent import com.intellij.openapi.components.ProjectComponent
import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.Editor
import com.intellij.openapi.editor.EditorFactory import com.intellij.openapi.editor.EditorFactory
import com.intellij.openapi.editor.RangeMarker import com.intellij.openapi.editor.RangeMarker
import com.intellij.openapi.editor.event.* import com.intellij.openapi.editor.event.CaretEvent
import com.intellij.openapi.editor.event.CaretListener
import com.intellij.openapi.editor.event.EditorFactoryEvent
import com.intellij.openapi.editor.event.EditorFactoryListener
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Key import com.intellij.openapi.util.Key
class LookupCancelWatcher(project: Project) : AbstractProjectComponent(project) { class LookupCancelWatcher(val project: Project) : ProjectComponent {
private class Reminiscence(editor: Editor, offset: Int) { private class Reminiscence(editor: Editor, offset: Int) {
var editor: Editor? = editor var editor: Editor? = editor
private var marker: RangeMarker? = editor.document.createRangeMarker(offset, offset) private var marker: RangeMarker? = editor.document.createRangeMarker(offset, offset)
@@ -101,7 +104,7 @@ class LookupCancelWatcher(project: Project) : AbstractProjectComponent(project)
}, },
myProject) myProject)
LookupManager.getInstance(myProject).addPropertyChangeListener { event -> LookupManager.getInstance(project).addPropertyChangeListener { event ->
if (event.propertyName == LookupManager.PROP_ACTIVE_LOOKUP) { if (event.propertyName == LookupManager.PROP_ACTIVE_LOOKUP) {
(event.newValue as Lookup?)?.addLookupListener(lookupCancelListener) (event.newValue as Lookup?)?.addLookupListener(lookupCancelListener)
} }
@@ -20,7 +20,7 @@ import com.intellij.ProjectTopics
import com.intellij.notification.NotificationDisplayType import com.intellij.notification.NotificationDisplayType
import com.intellij.notification.NotificationsConfiguration import com.intellij.notification.NotificationsConfiguration
import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.components.AbstractProjectComponent import com.intellij.openapi.components.ProjectComponent
import com.intellij.openapi.externalSystem.service.project.manage.ProjectDataImportListener import com.intellij.openapi.externalSystem.service.project.manage.ProjectDataImportListener
import com.intellij.openapi.project.DumbService import com.intellij.openapi.project.DumbService
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
@@ -37,7 +37,7 @@ import org.jetbrains.kotlin.idea.versions.collectModulesWithOutdatedRuntime
import org.jetbrains.kotlin.idea.versions.findOutdatedKotlinLibraries import org.jetbrains.kotlin.idea.versions.findOutdatedKotlinLibraries
import java.util.concurrent.atomic.AtomicInteger import java.util.concurrent.atomic.AtomicInteger
class KotlinConfigurationCheckerComponent(project: Project) : AbstractProjectComponent(project) { class KotlinConfigurationCheckerComponent(val project: Project) : ProjectComponent {
private val syncDepth = AtomicInteger() private val syncDepth = AtomicInteger()
@Volatile @Volatile
@@ -54,12 +54,12 @@ class KotlinConfigurationCheckerComponent(project: Project) : AbstractProjectCom
if (notificationPostponed && !isSyncing) { if (notificationPostponed && !isSyncing) {
ApplicationManager.getApplication().executeOnPooledThread { ApplicationManager.getApplication().executeOnPooledThread {
DumbService.getInstance(myProject).waitForSmartMode() DumbService.getInstance(project).waitForSmartMode()
if (!isSyncing) { if (!isSyncing) {
notificationPostponed = false notificationPostponed = false
showConfigureKotlinNotificationIfNeeded( showConfigureKotlinNotificationIfNeeded(
myProject, project,
collectModulesWithOutdatedRuntime(findOutdatedKotlinLibraries(myProject)) collectModulesWithOutdatedRuntime(findOutdatedKotlinLibraries(project))
) )
} }
} }
@@ -79,23 +79,23 @@ class KotlinConfigurationCheckerComponent(project: Project) : AbstractProjectCom
override fun projectOpened() { override fun projectOpened() {
super.projectOpened() super.projectOpened()
StartupManager.getInstance(myProject).registerPostStartupActivity { StartupManager.getInstance(project).registerPostStartupActivity {
performProjectPostOpenActions() performProjectPostOpenActions()
} }
} }
fun performProjectPostOpenActions() { fun performProjectPostOpenActions() {
ApplicationManager.getApplication().executeOnPooledThread { ApplicationManager.getApplication().executeOnPooledThread {
DumbService.getInstance(myProject).waitForSmartMode() DumbService.getInstance(project).waitForSmartMode()
for (module in getModulesWithKotlinFiles(myProject)) { for (module in getModulesWithKotlinFiles(project)) {
module.getAndCacheLanguageLevelByDependencies() module.getAndCacheLanguageLevelByDependencies()
} }
if (!isSyncing) { if (!isSyncing) {
val libraries = findOutdatedKotlinLibraries(myProject) val libraries = findOutdatedKotlinLibraries(project)
val excludeModules = collectModulesWithOutdatedRuntime(libraries) val excludeModules = collectModulesWithOutdatedRuntime(libraries)
showConfigureKotlinNotificationIfNeeded(myProject, excludeModules) showConfigureKotlinNotificationIfNeeded(project, excludeModules)
} else { } else {
notificationPostponed = true notificationPostponed = true
} }
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.idea.scratch
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer
import com.intellij.ide.scratch.ScratchFileService import com.intellij.ide.scratch.ScratchFileService
import com.intellij.openapi.components.AbstractProjectComponent import com.intellij.openapi.components.ProjectComponent
import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.fileEditor.FileEditorManager import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.fileEditor.FileEditorManagerListener import com.intellij.openapi.fileEditor.FileEditorManagerListener
@@ -34,11 +34,11 @@ import org.jetbrains.kotlin.parsing.KotlinParserDefinition.Companion.STD_SCRIPT_
import org.jetbrains.kotlin.parsing.KotlinParserDefinition.Companion.STD_SCRIPT_SUFFIX import org.jetbrains.kotlin.parsing.KotlinParserDefinition.Companion.STD_SCRIPT_SUFFIX
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
class ScratchFileModuleInfoProvider(project: Project) : AbstractProjectComponent(project) { class ScratchFileModuleInfoProvider(val project: Project) : ProjectComponent {
private val LOG = Logger.getInstance(this.javaClass) private val LOG = Logger.getInstance(this.javaClass)
override fun projectOpened() { override fun projectOpened() {
myProject.messageBus.connect(myProject).subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, ScratchFileModuleListener()) project.messageBus.connect(project).subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, ScratchFileModuleListener())
} }
private inner class ScratchFileModuleListener : FileEditorManagerListener { private inner class ScratchFileModuleListener : FileEditorManagerListener {
@@ -46,7 +46,7 @@ class ScratchFileModuleInfoProvider(project: Project) : AbstractProjectComponent
if (!file.isValid) return if (!file.isValid) return
if (!ScratchFileService.isInScratchRoot(file)) return if (!ScratchFileService.isInScratchRoot(file)) return
val ktFile = PsiManager.getInstance(myProject).findFile(file) as? KtFile ?: return val ktFile = PsiManager.getInstance(project).findFile(file) as? KtFile ?: return
// Hack before api in IDEA will be introduced // Hack before api in IDEA will be introduced
if (file.extension == KotlinFileType.EXTENSION) { if (file.extension == KotlinFileType.EXTENSION) {
@@ -71,16 +71,16 @@ class ScratchFileModuleInfoProvider(project: Project) : AbstractProjectComponent
psiFile.virtualFile.scriptRelatedModuleName = module.name psiFile.virtualFile.scriptRelatedModuleName = module.name
// Drop caches for old module // Drop caches for old module
ScriptDependenciesModificationTracker.getInstance(myProject).incModificationCount() ScriptDependenciesModificationTracker.getInstance(project).incModificationCount()
// Force re-highlighting // Force re-highlighting
DaemonCodeAnalyzer.getInstance(myProject).restart(psiFile) DaemonCodeAnalyzer.getInstance(project).restart(psiFile)
} }
val module = ktFile.virtualFile.scriptRelatedModuleName?.let { ModuleManager.getInstance(myProject).findModuleByName(it) } val module = ktFile.virtualFile.scriptRelatedModuleName?.let { ModuleManager.getInstance(project).findModuleByName(it) }
if (module != null) { if (module != null) {
scratchPanel?.setModule(module) scratchPanel?.setModule(module)
} else { } else {
val firstModule = ModuleManager.getInstance(myProject).modules.firstOrNull() val firstModule = ModuleManager.getInstance(project).modules.firstOrNull()
if (firstModule != null) { if (firstModule != null) {
scratchPanel?.setModule(firstModule) scratchPanel?.setModule(firstModule)
} }
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.idea.scratch.ui
import com.intellij.ide.scratch.ScratchFileService import com.intellij.ide.scratch.ScratchFileService
import com.intellij.ide.scratch.ScratchRootType import com.intellij.ide.scratch.ScratchRootType
import com.intellij.openapi.components.AbstractProjectComponent import com.intellij.openapi.components.ProjectComponent
import com.intellij.openapi.fileEditor.FileEditorManager import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.fileEditor.FileEditorManagerListener import com.intellij.openapi.fileEditor.FileEditorManagerListener
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
@@ -29,14 +29,14 @@ import org.jetbrains.kotlin.idea.scratch.getAllEditorsWithScratchPanel
import org.jetbrains.kotlin.idea.scratch.getEditorWithoutScratchPanel import org.jetbrains.kotlin.idea.scratch.getEditorWithoutScratchPanel
import org.jetbrains.kotlin.idea.scratch.removeScratchPanel import org.jetbrains.kotlin.idea.scratch.removeScratchPanel
class ScratchFileHook(project: Project) : AbstractProjectComponent(project) { class ScratchFileHook(val project: Project) : ProjectComponent {
override fun projectOpened() { override fun projectOpened() {
myProject.messageBus.connect(myProject).subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, ScratchEditorListener()) project.messageBus.connect(project).subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, ScratchEditorListener())
} }
override fun projectClosed() { override fun projectClosed() {
getAllEditorsWithScratchPanel(myProject).forEach { (editor, panel) -> editor.removeScratchPanel(panel) } getAllEditorsWithScratchPanel(project).forEach { (editor, panel) -> editor.removeScratchPanel(panel) }
} }
private inner class ScratchEditorListener : FileEditorManagerListener { private inner class ScratchEditorListener : FileEditorManagerListener {
@@ -45,7 +45,7 @@ class ScratchFileHook(project: Project) : AbstractProjectComponent(project) {
val editor = getEditorWithoutScratchPanel(source, file) ?: return val editor = getEditorWithoutScratchPanel(source, file) ?: return
ScratchTopPanel.createPanel(myProject, file, editor) ScratchTopPanel.createPanel(project, file, editor)
} }
override fun fileClosed(source: FileEditorManager, file: VirtualFile) {} override fun fileClosed(source: FileEditorManager, file: VirtualFile) {}
@@ -54,7 +54,7 @@ class ScratchFileHook(project: Project) : AbstractProjectComponent(project) {
private fun isPluggable(file: VirtualFile): Boolean { private fun isPluggable(file: VirtualFile): Boolean {
if (!file.isValid) return false if (!file.isValid) return false
if (ScratchFileService.getInstance().getRootType(file) !is ScratchRootType) return false if (ScratchFileService.getInstance().getRootType(file) !is ScratchRootType) return false
val psiFile = PsiManager.getInstance(myProject).findFile(file) ?: return false val psiFile = PsiManager.getInstance(project).findFile(file) ?: return false
return ScratchFileLanguageProvider.get(psiFile.fileType) != null return ScratchFileLanguageProvider.get(psiFile.fileType) != null
} }
} }
@@ -24,7 +24,7 @@ import com.intellij.codeInsight.daemon.impl.HighlightInfo
import com.intellij.codeInsight.daemon.impl.HighlightInfoType import com.intellij.codeInsight.daemon.impl.HighlightInfoType
import com.intellij.codeInsight.daemon.impl.UpdateHighlightersUtil import com.intellij.codeInsight.daemon.impl.UpdateHighlightersUtil
import com.intellij.codeInsight.daemon.impl.quickfix.QuickFixAction import com.intellij.codeInsight.daemon.impl.quickfix.QuickFixAction
import com.intellij.openapi.components.AbstractProjectComponent import com.intellij.openapi.components.ProjectComponent
import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.Editor
import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
@@ -32,8 +32,8 @@ import com.intellij.psi.PsiFile
import com.intellij.psi.util.PsiModificationTracker import com.intellij.psi.util.PsiModificationTracker
import org.jetbrains.kotlin.idea.conversion.copy.range import org.jetbrains.kotlin.idea.conversion.copy.range
class MoveDeclarationsPassFactory(project: Project, highlightingPassRegistrar: TextEditorHighlightingPassRegistrar) class MoveDeclarationsPassFactory(highlightingPassRegistrar: TextEditorHighlightingPassRegistrar)
: AbstractProjectComponent(project), TextEditorHighlightingPassFactory { : ProjectComponent, TextEditorHighlightingPassFactory {
init { init {
highlightingPassRegistrar.registerTextEditorHighlightingPass(this, TextEditorHighlightingPassRegistrar.Anchor.BEFORE, Pass.POPUP_HINTS, true, true) highlightingPassRegistrar.registerTextEditorHighlightingPass(this, TextEditorHighlightingPassRegistrar.Anchor.BEFORE, Pass.POPUP_HINTS, true, true)