register PsiElementFinder extensions before JavaPsiFacade is registered
This commit is contained in:
@@ -117,6 +117,28 @@ class KotlinCoreEnvironment private constructor(
|
|||||||
override fun preregisterServices() {
|
override fun preregisterServices() {
|
||||||
registerProjectExtensionPoints(Extensions.getArea(project))
|
registerProjectExtensionPoints(Extensions.getArea(project))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun registerJavaPsiFacade() {
|
||||||
|
with (project) {
|
||||||
|
registerService(CoreJavaFileManager::class.java, ServiceManager.getService(this, JavaFileManager::class.java) as CoreJavaFileManager)
|
||||||
|
|
||||||
|
val cliLightClassGenerationSupport = CliLightClassGenerationSupport(this)
|
||||||
|
registerService(LightClassGenerationSupport::class.java, cliLightClassGenerationSupport)
|
||||||
|
registerService(CliLightClassGenerationSupport::class.java, cliLightClassGenerationSupport)
|
||||||
|
registerService(CodeAnalyzerInitializer::class.java, cliLightClassGenerationSupport)
|
||||||
|
|
||||||
|
registerService(ExternalAnnotationsManager::class.java, MockExternalAnnotationsManager())
|
||||||
|
registerService(InferredAnnotationsManager::class.java, MockInferredAnnotationsManager())
|
||||||
|
|
||||||
|
val area = Extensions.getArea(this)
|
||||||
|
|
||||||
|
area.getExtensionPoint(PsiElementFinder.EP_NAME).registerExtension(JavaElementFinder(this, cliLightClassGenerationSupport))
|
||||||
|
area.getExtensionPoint(PsiElementFinder.EP_NAME).registerExtension(
|
||||||
|
PsiElementFinderImpl(this, ServiceManager.getService(this, JavaFileManager::class.java)))
|
||||||
|
}
|
||||||
|
|
||||||
|
super.registerJavaPsiFacade()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
private val sourceFiles = ArrayList<KtFile>()
|
private val sourceFiles = ArrayList<KtFile>()
|
||||||
private val rootsIndex: JvmDependenciesDynamicCompoundIndex
|
private val rootsIndex: JvmDependenciesDynamicCompoundIndex
|
||||||
@@ -469,23 +491,11 @@ class KotlinCoreEnvironment private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun registerProjectServicesForCLI(projectEnvironment: JavaCoreProjectEnvironment) {
|
private fun registerProjectServicesForCLI(projectEnvironment: JavaCoreProjectEnvironment) {
|
||||||
with (projectEnvironment.project) {
|
/**
|
||||||
registerService(CoreJavaFileManager::class.java, ServiceManager.getService(this, JavaFileManager::class.java) as CoreJavaFileManager)
|
* Note that Kapt may restart code analysis process, and CLI services should be aware of that.
|
||||||
|
* Use PsiManager.getModificationTracker() to ensure that all the data you cached is still valid.
|
||||||
|
*/
|
||||||
|
|
||||||
val cliLightClassGenerationSupport = CliLightClassGenerationSupport(this)
|
|
||||||
registerService(LightClassGenerationSupport::class.java, cliLightClassGenerationSupport)
|
|
||||||
registerService(CliLightClassGenerationSupport::class.java, cliLightClassGenerationSupport)
|
|
||||||
registerService(CodeAnalyzerInitializer::class.java, cliLightClassGenerationSupport)
|
|
||||||
|
|
||||||
registerService(ExternalAnnotationsManager::class.java, MockExternalAnnotationsManager())
|
|
||||||
registerService(InferredAnnotationsManager::class.java, MockInferredAnnotationsManager())
|
|
||||||
|
|
||||||
val area = Extensions.getArea(this)
|
|
||||||
|
|
||||||
area.getExtensionPoint(PsiElementFinder.EP_NAME).registerExtension(JavaElementFinder(this, cliLightClassGenerationSupport))
|
|
||||||
area.getExtensionPoint(PsiElementFinder.EP_NAME).registerExtension(
|
|
||||||
PsiElementFinderImpl(this, ServiceManager.getService(this, JavaFileManager::class.java)))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user