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
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.roots.ModuleRootEvent
import com.intellij.openapi.roots.ModuleRootListener
import com.intellij.openapi.roots.ProjectRootManager
// This is a workaround until IDEA-200525 is fixed.
class ProjectRootModificationTrackerFixer(project: Project) : AbstractProjectComponent(project) {
class ProjectRootModificationTrackerFixer(val project: Project) : ProjectComponent {
override fun initComponent() {
myProject.messageBus.connect(myProject).subscribe(
project.messageBus.connect(project).subscribe(
ProjectTopics.PROJECT_ROOTS,
object : ModuleRootListener {
override fun rootsChanged(event: ModuleRootEvent) {
// Forcefully increment modification counter. This would cause invalidation of
// 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.UpdateHighlightersUtil
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.Editor
import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.project.DumbAware
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiRecursiveElementVisitor
@@ -63,7 +62,7 @@ class KotlinBeforeResolveHighlightingPass(
annotationHolder = null
}
class Factory(project: Project, registrar: TextEditorHighlightingPassRegistrar) : AbstractProjectComponent(project), TextEditorHighlightingPassFactory {
class Factory(registrar: TextEditorHighlightingPassRegistrar) : ProjectComponent, TextEditorHighlightingPassFactory {
init {
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.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.Editor
import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.project.DumbAware
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiFile
import org.jetbrains.kotlin.idea.core.script.IdeScriptReportSink
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 {
init {
registrar.registerTextEditorHighlightingPass(
@@ -17,19 +17,22 @@
package org.jetbrains.kotlin.idea.completion
import com.intellij.codeInsight.lookup.Lookup
import com.intellij.codeInsight.lookup.LookupAdapter
import com.intellij.codeInsight.lookup.LookupEvent
import com.intellij.codeInsight.lookup.LookupListener
import com.intellij.codeInsight.lookup.LookupManager
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.EditorFactory
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.util.Key
class LookupCancelWatcher(project: Project) : AbstractProjectComponent(project) {
class LookupCancelWatcher(val project: Project) : ProjectComponent {
private class Reminiscence(editor: Editor, offset: Int) {
var editor: Editor? = editor
private var marker: RangeMarker? = editor.document.createRangeMarker(offset, offset)
@@ -101,7 +104,7 @@ class LookupCancelWatcher(project: Project) : AbstractProjectComponent(project)
},
myProject)
LookupManager.getInstance(myProject).addPropertyChangeListener { event ->
LookupManager.getInstance(project).addPropertyChangeListener { event ->
if (event.propertyName == LookupManager.PROP_ACTIVE_LOOKUP) {
(event.newValue as Lookup?)?.addLookupListener(lookupCancelListener)
}
@@ -20,7 +20,7 @@ import com.intellij.ProjectTopics
import com.intellij.notification.NotificationDisplayType
import com.intellij.notification.NotificationsConfiguration
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.project.DumbService
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 java.util.concurrent.atomic.AtomicInteger
class KotlinConfigurationCheckerComponent(project: Project) : AbstractProjectComponent(project) {
class KotlinConfigurationCheckerComponent(val project: Project) : ProjectComponent {
private val syncDepth = AtomicInteger()
@Volatile
@@ -54,12 +54,12 @@ class KotlinConfigurationCheckerComponent(project: Project) : AbstractProjectCom
if (notificationPostponed && !isSyncing) {
ApplicationManager.getApplication().executeOnPooledThread {
DumbService.getInstance(myProject).waitForSmartMode()
DumbService.getInstance(project).waitForSmartMode()
if (!isSyncing) {
notificationPostponed = false
showConfigureKotlinNotificationIfNeeded(
myProject,
collectModulesWithOutdatedRuntime(findOutdatedKotlinLibraries(myProject))
project,
collectModulesWithOutdatedRuntime(findOutdatedKotlinLibraries(project))
)
}
}
@@ -79,23 +79,23 @@ class KotlinConfigurationCheckerComponent(project: Project) : AbstractProjectCom
override fun projectOpened() {
super.projectOpened()
StartupManager.getInstance(myProject).registerPostStartupActivity {
StartupManager.getInstance(project).registerPostStartupActivity {
performProjectPostOpenActions()
}
}
fun performProjectPostOpenActions() {
ApplicationManager.getApplication().executeOnPooledThread {
DumbService.getInstance(myProject).waitForSmartMode()
DumbService.getInstance(project).waitForSmartMode()
for (module in getModulesWithKotlinFiles(myProject)) {
for (module in getModulesWithKotlinFiles(project)) {
module.getAndCacheLanguageLevelByDependencies()
}
if (!isSyncing) {
val libraries = findOutdatedKotlinLibraries(myProject)
val libraries = findOutdatedKotlinLibraries(project)
val excludeModules = collectModulesWithOutdatedRuntime(libraries)
showConfigureKotlinNotificationIfNeeded(myProject, excludeModules)
showConfigureKotlinNotificationIfNeeded(project, excludeModules)
} else {
notificationPostponed = true
}
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.idea.scratch
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer
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.fileEditor.FileEditorManager
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.psi.KtFile
class ScratchFileModuleInfoProvider(project: Project) : AbstractProjectComponent(project) {
class ScratchFileModuleInfoProvider(val project: Project) : ProjectComponent {
private val LOG = Logger.getInstance(this.javaClass)
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 {
@@ -46,7 +46,7 @@ class ScratchFileModuleInfoProvider(project: Project) : AbstractProjectComponent
if (!file.isValid) 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
if (file.extension == KotlinFileType.EXTENSION) {
@@ -71,16 +71,16 @@ class ScratchFileModuleInfoProvider(project: Project) : AbstractProjectComponent
psiFile.virtualFile.scriptRelatedModuleName = module.name
// Drop caches for old module
ScriptDependenciesModificationTracker.getInstance(myProject).incModificationCount()
ScriptDependenciesModificationTracker.getInstance(project).incModificationCount()
// 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) {
scratchPanel?.setModule(module)
} else {
val firstModule = ModuleManager.getInstance(myProject).modules.firstOrNull()
val firstModule = ModuleManager.getInstance(project).modules.firstOrNull()
if (firstModule != null) {
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.ScratchRootType
import com.intellij.openapi.components.AbstractProjectComponent
import com.intellij.openapi.components.ProjectComponent
import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.fileEditor.FileEditorManagerListener
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.removeScratchPanel
class ScratchFileHook(project: Project) : AbstractProjectComponent(project) {
class ScratchFileHook(val project: Project) : ProjectComponent {
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() {
getAllEditorsWithScratchPanel(myProject).forEach { (editor, panel) -> editor.removeScratchPanel(panel) }
getAllEditorsWithScratchPanel(project).forEach { (editor, panel) -> editor.removeScratchPanel(panel) }
}
private inner class ScratchEditorListener : FileEditorManagerListener {
@@ -45,7 +45,7 @@ class ScratchFileHook(project: Project) : AbstractProjectComponent(project) {
val editor = getEditorWithoutScratchPanel(source, file) ?: return
ScratchTopPanel.createPanel(myProject, file, editor)
ScratchTopPanel.createPanel(project, file, editor)
}
override fun fileClosed(source: FileEditorManager, file: VirtualFile) {}
@@ -54,7 +54,7 @@ class ScratchFileHook(project: Project) : AbstractProjectComponent(project) {
private fun isPluggable(file: VirtualFile): Boolean {
if (!file.isValid) 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
}
}
@@ -24,7 +24,7 @@ import com.intellij.codeInsight.daemon.impl.HighlightInfo
import com.intellij.codeInsight.daemon.impl.HighlightInfoType
import com.intellij.codeInsight.daemon.impl.UpdateHighlightersUtil
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.progress.ProgressIndicator
import com.intellij.openapi.project.Project
@@ -32,8 +32,8 @@ import com.intellij.psi.PsiFile
import com.intellij.psi.util.PsiModificationTracker
import org.jetbrains.kotlin.idea.conversion.copy.range
class MoveDeclarationsPassFactory(project: Project, highlightingPassRegistrar: TextEditorHighlightingPassRegistrar)
: AbstractProjectComponent(project), TextEditorHighlightingPassFactory {
class MoveDeclarationsPassFactory(highlightingPassRegistrar: TextEditorHighlightingPassRegistrar)
: ProjectComponent, TextEditorHighlightingPassFactory {
init {
highlightingPassRegistrar.registerTextEditorHighlightingPass(this, TextEditorHighlightingPassRegistrar.Anchor.BEFORE, Pass.POPUP_HINTS, true, true)