FIR IDE: Lift extensions registration higher in session creation process
We want to do that before creating symbol providers
This commit is contained in:
+17
-15
@@ -88,6 +88,7 @@ internal object LLFirSessionFactory {
|
|||||||
registerCommonComponents(languageVersionSettings)
|
registerCommonComponents(languageVersionSettings)
|
||||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
||||||
registerResolveComponents()
|
registerResolveComponents()
|
||||||
|
registerJavaSpecificResolveComponents()
|
||||||
|
|
||||||
val provider = LLFirProvider(
|
val provider = LLFirProvider(
|
||||||
project,
|
project,
|
||||||
@@ -135,6 +136,15 @@ internal object LLFirSessionFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FirSessionFactory.FirSessionConfigurator(this).apply {
|
||||||
|
if (isRootModule) {
|
||||||
|
registerExtendedCommonCheckers()
|
||||||
|
}
|
||||||
|
for (extensionRegistrar in FirExtensionRegistrar.getInstances(project)) {
|
||||||
|
registerExtensions(extensionRegistrar.configure())
|
||||||
|
}
|
||||||
|
}.configure()
|
||||||
|
|
||||||
val dependencyProvider = DependentModuleProviders(this, dependentProviders)
|
val dependencyProvider = DependentModuleProviders(this, dependentProviders)
|
||||||
|
|
||||||
register(
|
register(
|
||||||
@@ -157,15 +167,6 @@ internal object LLFirSessionFactory {
|
|||||||
register(FirDependenciesSymbolProvider::class, dependencyProvider)
|
register(FirDependenciesSymbolProvider::class, dependencyProvider)
|
||||||
register(FirJvmTypeMapper::class, FirJvmTypeMapper(this))
|
register(FirJvmTypeMapper::class, FirJvmTypeMapper(this))
|
||||||
|
|
||||||
registerJavaSpecificResolveComponents()
|
|
||||||
FirSessionFactory.FirSessionConfigurator(this).apply {
|
|
||||||
if (isRootModule) {
|
|
||||||
registerExtendedCommonCheckers()
|
|
||||||
}
|
|
||||||
for (extensionRegistrar in FirExtensionRegistrar.getInstances(project)) {
|
|
||||||
registerExtensions(extensionRegistrar.configure())
|
|
||||||
}
|
|
||||||
}.configure()
|
|
||||||
configureSession?.invoke(this)
|
configureSession?.invoke(this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -305,6 +306,7 @@ internal object LLFirSessionFactory {
|
|||||||
registerCommonComponents(languageVersionSettings)
|
registerCommonComponents(languageVersionSettings)
|
||||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
||||||
registerResolveComponents()
|
registerResolveComponents()
|
||||||
|
registerJavaSpecificResolveComponents()
|
||||||
|
|
||||||
val provider = LLFirProvider(
|
val provider = LLFirProvider(
|
||||||
project,
|
project,
|
||||||
@@ -339,6 +341,12 @@ internal object LLFirSessionFactory {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FirSessionFactory.FirSessionConfigurator(this).apply {
|
||||||
|
for (extensionRegistrar in FirExtensionRegistrar.getInstances(project)) {
|
||||||
|
registerExtensions(extensionRegistrar.configure())
|
||||||
|
}
|
||||||
|
}.configure()
|
||||||
|
|
||||||
val dependencyProvider = DependentModuleProviders(this, dependentProviders)
|
val dependencyProvider = DependentModuleProviders(this, dependentProviders)
|
||||||
|
|
||||||
register(
|
register(
|
||||||
@@ -361,12 +369,6 @@ internal object LLFirSessionFactory {
|
|||||||
register(FirDependenciesSymbolProvider::class, dependencyProvider)
|
register(FirDependenciesSymbolProvider::class, dependencyProvider)
|
||||||
register(FirJvmTypeMapper::class, FirJvmTypeMapper(this))
|
register(FirJvmTypeMapper::class, FirJvmTypeMapper(this))
|
||||||
|
|
||||||
registerJavaSpecificResolveComponents()
|
|
||||||
FirSessionFactory.FirSessionConfigurator(this).apply {
|
|
||||||
for (extensionRegistrar in FirExtensionRegistrar.getInstances(project)) {
|
|
||||||
registerExtensions(extensionRegistrar.configure())
|
|
||||||
}
|
|
||||||
}.configure()
|
|
||||||
configureSession?.invoke(this)
|
configureSession?.invoke(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user