Do not resolve services in non-default ctors
This commit is contained in:
+5
-2
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.caches.resolve
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiManager
|
||||
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
|
||||
@@ -20,8 +21,8 @@ import org.jetbrains.kotlin.psi.KtFileClassProvider
|
||||
import org.jetbrains.kotlin.psi.analysisContext
|
||||
import org.jetbrains.kotlin.platform.jvm.isJvm
|
||||
|
||||
class KtFileClassProviderImpl(val kotlinAsJavaSupport: KotlinAsJavaSupport) :
|
||||
KtFileClassProvider {
|
||||
class KtFileClassProviderImpl(val project: Project) : KtFileClassProvider {
|
||||
|
||||
override fun getFileClasses(file: KtFile): Array<PsiClass> {
|
||||
if (file.project.isInDumbMode()) {
|
||||
return PsiClass.EMPTY_ARRAY
|
||||
@@ -45,6 +46,8 @@ class KtFileClassProviderImpl(val kotlinAsJavaSupport: KotlinAsJavaSupport) :
|
||||
val jvmClassInfo = JvmFileClassUtil.getFileClassInfoNoResolve(file)
|
||||
val fileClassFqName = file.javaFileFacadeFqName
|
||||
|
||||
val kotlinAsJavaSupport = KotlinAsJavaSupport.getInstance(project)
|
||||
|
||||
val facadeClasses = when {
|
||||
file.analysisContext != null && file.hasTopLevelCallables() ->
|
||||
listOf(
|
||||
|
||||
+2
-2
@@ -11,10 +11,10 @@ import com.intellij.psi.util.PsiModificationTracker
|
||||
import org.jetbrains.kotlin.analyzer.KotlinModificationTrackerService
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
|
||||
class KotlinIDEModificationTrackerService(project: Project, psiModificationTracker: PsiModificationTracker) :
|
||||
class KotlinIDEModificationTrackerService(project: Project) :
|
||||
KotlinModificationTrackerService() {
|
||||
|
||||
override val modificationTracker: ModificationTracker = psiModificationTracker
|
||||
override val modificationTracker: ModificationTracker = PsiModificationTracker.SERVICE.getInstance(project)
|
||||
|
||||
override val outOfBlockModificationTracker: ModificationTracker =
|
||||
KotlinCodeBlockModificationListener.getInstance(project).kotlinOutOfCodeBlockTracker
|
||||
|
||||
+2
-5
@@ -38,10 +38,7 @@ import kotlin.script.experimental.api.makeFailureResult
|
||||
|
||||
// NOTE: this service exists exclusively because ScriptDependencyManager
|
||||
// cannot be registered as implementing two services (state would be duplicated)
|
||||
class IdeScriptDependenciesProvider(
|
||||
private val scriptConfigurationManager: ScriptConfigurationManager,
|
||||
project: Project
|
||||
) : ScriptDependenciesProvider(project) {
|
||||
class IdeScriptDependenciesProvider(project: Project) : ScriptDependenciesProvider(project) {
|
||||
override fun getScriptConfigurationResult(file: KtFile): ScriptCompilationConfigurationResult? {
|
||||
val configuration = getScriptConfiguration(file)
|
||||
val reports = IdeScriptReportSink.getReports(file)
|
||||
@@ -52,7 +49,7 @@ class IdeScriptDependenciesProvider(
|
||||
}
|
||||
|
||||
override fun getScriptConfiguration(file: KtFile): ScriptCompilationConfigurationWrapper? {
|
||||
return scriptConfigurationManager.getConfiguration(file)
|
||||
return ScriptConfigurationManager.getInstance(project).getConfiguration(file)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.intellij.openapi.extensions.PluginId
|
||||
import com.intellij.openapi.progress.ProgressIndicator
|
||||
import com.intellij.openapi.progress.ProgressManager
|
||||
import com.intellij.openapi.progress.Task
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.updateSettings.impl.PluginDownloader
|
||||
import com.intellij.openapi.updateSettings.impl.UpdateSettings
|
||||
import com.intellij.openapi.util.JDOMUtil
|
||||
@@ -86,7 +87,7 @@ sealed class PluginUpdateStatus {
|
||||
}
|
||||
}
|
||||
|
||||
class KotlinPluginUpdater(private val propertiesComponent: PropertiesComponent) : Disposable {
|
||||
class KotlinPluginUpdater : Disposable {
|
||||
private var updateDelay = INITIAL_UPDATE_DELAY
|
||||
private val alarm = Alarm(Alarm.ThreadToUse.POOLED_THREAD, this)
|
||||
private val notificationGroup = NotificationGroup("Kotlin plugin updates", NotificationDisplayType.STICKY_BALLOON, true)
|
||||
@@ -101,7 +102,7 @@ class KotlinPluginUpdater(private val propertiesComponent: PropertiesComponent)
|
||||
if (ApplicationManager.getApplication().isUnitTestMode || ApplicationManager.getApplication().isHeadlessEnvironment) return
|
||||
if (!UpdateSettings.getInstance().isCheckNeeded) return
|
||||
|
||||
val lastUpdateTime = java.lang.Long.parseLong(propertiesComponent.getValue(PROPERTY_NAME, "0"))
|
||||
val lastUpdateTime = java.lang.Long.parseLong(PropertiesComponent.getInstance().getValue(PROPERTY_NAME, "0"))
|
||||
if (lastUpdateTime == 0L || System.currentTimeMillis() - lastUpdateTime > CACHED_REQUEST_DELAY) {
|
||||
queueUpdateCheck { updateStatus ->
|
||||
when (updateStatus) {
|
||||
@@ -233,7 +234,7 @@ class KotlinPluginUpdater(private val propertiesComponent: PropertiesComponent)
|
||||
}
|
||||
|
||||
private fun recordSuccessfulUpdateCheck() {
|
||||
propertiesComponent.setValue(PROPERTY_NAME, System.currentTimeMillis().toString())
|
||||
PropertiesComponent.getInstance().setValue(PROPERTY_NAME, System.currentTimeMillis().toString())
|
||||
updateDelay = INITIAL_UPDATE_DELAY
|
||||
}
|
||||
|
||||
|
||||
@@ -30,8 +30,7 @@ import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
class ScriptTemplatesFromCompilerSettingsProvider(
|
||||
private val project: Project,
|
||||
private val compilerSettings: KotlinCompilerSettings
|
||||
private val project: Project
|
||||
) : ScriptDefinitionSourceAsContributor {
|
||||
|
||||
init {
|
||||
@@ -46,7 +45,7 @@ class ScriptTemplatesFromCompilerSettingsProvider(
|
||||
|
||||
override val definitions: Sequence<ScriptDefinition>
|
||||
get() {
|
||||
val kotlinSettings = compilerSettings.settings
|
||||
val kotlinSettings = KotlinCompilerSettings.getInstance(project).settings
|
||||
return if (kotlinSettings.scriptTemplates.isBlank()) emptySequence()
|
||||
else loadDefinitionsFromTemplates(
|
||||
templateClassNames = kotlinSettings.scriptTemplates.split(',', ' '),
|
||||
|
||||
Reference in New Issue
Block a user