KT-60171 K2-scripting: CLI specific providers are used in IDE context
^KT-60171 fixed Merge-request: KT-MR-10987 Merged-by: Andrei Klunnyi <andrei.klunnyi@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
19ccb23088
commit
527d20c7be
+17
-15
@@ -44,23 +44,25 @@ class FirScriptDefinitionProviderService(
|
||||
companion object {
|
||||
fun getFactory(
|
||||
definitions: List<ScriptDefinition>,
|
||||
definitionSources: List<ScriptDefinitionsSource>
|
||||
definitionSources: List<ScriptDefinitionsSource>,
|
||||
definitionProvider: ScriptDefinitionProvider? = null,
|
||||
configurationProvider: ScriptDependenciesProvider? = null
|
||||
): Factory {
|
||||
return Factory { session ->
|
||||
FirScriptDefinitionProviderService(
|
||||
session,
|
||||
makeDefaultDefinitionProvider = {
|
||||
CliScriptDefinitionProvider().also {
|
||||
it.setScriptDefinitionsSources(definitionSources)
|
||||
it.setScriptDefinitions(definitions)
|
||||
}
|
||||
},
|
||||
makeDefaultConfigurationProvider = {
|
||||
// TODO: check if memory can leak in MockProject (probably not too important, since currently the providers are set externaly in important cases)
|
||||
CliScriptDependenciesProvider(MockProject(null, Disposer.newDisposable()))
|
||||
val makeDefinitionsProvider = definitionProvider?.let { { it } }
|
||||
?: {
|
||||
CliScriptDefinitionProvider().also {
|
||||
it.setScriptDefinitionsSources(definitionSources)
|
||||
it.setScriptDefinitions(definitions)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
val makeConfigurationProvider = configurationProvider?.let { { it } }
|
||||
?: {
|
||||
// TODO: check if memory can leak in MockProject (probably not too important, since currently the providers are set externaly in important cases)
|
||||
CliScriptDependenciesProvider(MockProject(null, Disposer.newDisposable()))
|
||||
}
|
||||
|
||||
return Factory { session -> FirScriptDefinitionProviderService(session, makeDefinitionsProvider, makeConfigurationProvider) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user