[Analysis API] move KtResolveExtensionProvider EP registration to common code

so it can be used from standalone mode
This commit is contained in:
Ilya Kirillov
2023-05-11 14:45:50 +02:00
committed by Space Team
parent b585d7c392
commit 9f2d750f98
2 changed files with 12 additions and 10 deletions
@@ -5,14 +5,12 @@
package org.jetbrains.kotlin.analysis.api.impl.base.test.configurators package org.jetbrains.kotlin.analysis.api.impl.base.test.configurators
import com.intellij.core.CoreApplicationEnvironment
import com.intellij.mock.MockApplication import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject import com.intellij.mock.MockProject
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
import org.jetbrains.kotlin.analysis.api.impl.base.references.HLApiReferenceProviderService import org.jetbrains.kotlin.analysis.api.impl.base.references.HLApiReferenceProviderService
import org.jetbrains.kotlin.analysis.api.lifetime.KtDefaultLifetimeTokenProvider import org.jetbrains.kotlin.analysis.api.lifetime.KtDefaultLifetimeTokenProvider
import org.jetbrains.kotlin.analysis.api.lifetime.KtReadActionConfinementDefaultLifetimeTokenProvider import org.jetbrains.kotlin.analysis.api.lifetime.KtReadActionConfinementDefaultLifetimeTokenProvider
import org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.StandaloneProjectFactory import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.StandaloneProjectFactory
import org.jetbrains.kotlin.analysis.decompiler.psi.BuiltInDefinitionFile import org.jetbrains.kotlin.analysis.decompiler.psi.BuiltInDefinitionFile
import org.jetbrains.kotlin.analysis.project.structure.KtModuleScopeProvider import org.jetbrains.kotlin.analysis.project.structure.KtModuleScopeProvider
@@ -27,14 +25,7 @@ import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.TestServices
object AnalysisApiBaseTestServiceRegistrar: AnalysisApiTestServiceRegistrar() { object AnalysisApiBaseTestServiceRegistrar: AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) { override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {}
@Suppress("UnstableApiUsage")
CoreApplicationEnvironment.registerExtensionPoint(
project.extensionArea,
KtResolveExtensionProvider.EP_NAME.name,
KtResolveExtensionProvider::class.java
)
}
@OptIn(KtAnalysisApiInternals::class) @OptIn(KtAnalysisApiInternals::class)
override fun registerProjectServices(project: MockProject, testServices: TestServices) { override fun registerProjectServices(project: MockProject, testServices: TestServices) {
@@ -26,6 +26,7 @@ import com.intellij.psi.search.ProjectScope
import com.intellij.util.io.URLUtil.JAR_PROTOCOL import com.intellij.util.io.URLUtil.JAR_PROTOCOL
import com.intellij.util.io.URLUtil.JAR_SEPARATOR import com.intellij.util.io.URLUtil.JAR_SEPARATOR
import org.jetbrains.kotlin.analysis.api.impl.base.java.source.JavaElementSourceWithSmartPointerFactory import org.jetbrains.kotlin.analysis.api.impl.base.java.source.JavaElementSourceWithSmartPointerFactory
import org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
import org.jetbrains.kotlin.analysis.project.structure.* import org.jetbrains.kotlin.analysis.project.structure.*
import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.jvm.compiler.* import org.jetbrains.kotlin.cli.jvm.compiler.*
@@ -59,10 +60,20 @@ object StandaloneProjectFactory {
registerApplicationExtensionPoints(applicationEnvironment, applicationDisposable) registerApplicationExtensionPoints(applicationEnvironment, applicationDisposable)
return KotlinCoreProjectEnvironment(projectDisposable, applicationEnvironment).apply { return KotlinCoreProjectEnvironment(projectDisposable, applicationEnvironment).apply {
registerProjectServices(project)
registerJavaPsiFacade(project) registerJavaPsiFacade(project)
} }
} }
private fun registerProjectServices(project: MockProject) {
@Suppress("UnstableApiUsage")
CoreApplicationEnvironment.registerExtensionPoint(
project.extensionArea,
KtResolveExtensionProvider.EP_NAME.name,
KtResolveExtensionProvider::class.java
)
}
private fun registerApplicationExtensionPoints( private fun registerApplicationExtensionPoints(
applicationEnvironment: KotlinCoreApplicationEnvironment, applicationEnvironment: KotlinCoreApplicationEnvironment,
applicationDisposable: Disposable, applicationDisposable: Disposable,