From beb70526a21e5247189d3bf40926add71c38aebe Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 31 Jan 2020 02:36:56 +0300 Subject: [PATCH] 201: CoreApplicationEnvironment.registerExtensionPointAndExtensions accepts Path --- .../cli/jvm/compiler/KotlinCoreEnvironment.kt | 11 +++++------ .../coreApplicationEnvironmentCompat.kt | 16 ++++++++++++++++ .../coreApplicationEnvironmentCompat.kt.201 | 18 ++++++++++++++++++ 3 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreApplicationEnvironmentCompat.kt create mode 100644 compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreApplicationEnvironmentCompat.kt.201 diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt index 81343606c17..158a462c2e1 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt @@ -216,7 +216,7 @@ class KotlinCoreEnvironment private constructor( ) val (initialRoots, javaModules) = - classpathRootsResolver.convertClasspathRoots(configuration.getList(CLIConfigurationKeys.CONTENT_ROOTS)) + classpathRootsResolver.convertClasspathRoots(configuration.getList(CLIConfigurationKeys.CONTENT_ROOTS)) this.initialRoots.addAll(initialRoots) if (!configuration.getBoolean(JVMConfigurationKeys.SKIP_RUNTIME_VERSION_CHECK) && messageCollector != null) { @@ -228,7 +228,7 @@ class KotlinCoreEnvironment private constructor( } val (roots, singleJavaFileRoots) = - initialRoots.partition { (file) -> file.isDirectory || file.extension != JavaFileType.DEFAULT_EXTENSION } + initialRoots.partition { (file) -> file.isDirectory || file.extension != JavaFileType.DEFAULT_EXTENSION } // REPL and kapt2 update classpath dynamically rootsIndex = JvmDependenciesDynamicCompoundIndex().apply { @@ -528,7 +528,7 @@ class KotlinCoreEnvironment private constructor( false } - val pluginRoot = + val pluginRoot: File = configuration.get(CLIConfigurationKeys.INTELLIJ_PLUGIN_ROOT)?.let(::File) ?: PathUtil.getResourcePathForClass(this::class.java).takeIf { it.hasConfigFile(configFilePath) } // hack for load extensions when compiler run directly from project directory (e.g. in tests) @@ -538,7 +538,7 @@ class KotlinCoreEnvironment private constructor( "(cp:\n ${(Thread.currentThread().contextClassLoader as? UrlClassLoader)?.urls?.joinToString("\n ") { it.file }})" ) - CoreApplicationEnvironment.registerExtensionPointAndExtensions(pluginRoot, configFilePath, Extensions.getRootArea()) + registerExtensionPointAndExtensionsEx(pluginRoot, configFilePath, Extensions.getRootArea()) } private fun workaroundIbmJdkStaxReportCdataEventIssue() { @@ -714,5 +714,4 @@ class KotlinCoreEnvironment private constructor( } } } -} - +} \ No newline at end of file diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreApplicationEnvironmentCompat.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreApplicationEnvironmentCompat.kt new file mode 100644 index 00000000000..f7df51da834 --- /dev/null +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreApplicationEnvironmentCompat.kt @@ -0,0 +1,16 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.cli.jvm.compiler + +import com.intellij.core.CoreApplicationEnvironment +import com.intellij.openapi.extensions.ExtensionsArea +import java.io.File + +// BUNCH: 193 +fun registerExtensionPointAndExtensionsEx(pluginFile: File, fileName: String, area: ExtensionsArea) { + @Suppress("MissingRecentApi") + CoreApplicationEnvironment.registerExtensionPointAndExtensions(pluginFile, fileName, area) +} \ No newline at end of file diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreApplicationEnvironmentCompat.kt.201 b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreApplicationEnvironmentCompat.kt.201 new file mode 100644 index 00000000000..1c2bda70c36 --- /dev/null +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreApplicationEnvironmentCompat.kt.201 @@ -0,0 +1,18 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.cli.jvm.compiler + +import com.intellij.core.CoreApplicationEnvironment +import com.intellij.openapi.extensions.ExtensionsArea +import java.io.File +import java.nio.file.FileSystems + +// BUNCH: 193 +fun registerExtensionPointAndExtensionsEx(pluginFile: File, fileName: String, area: ExtensionsArea) { + val pluginRoot = FileSystems.getDefault().getPath(pluginFile.path) + @Suppress("MissingRecentApi") + CoreApplicationEnvironment.registerExtensionPointAndExtensions(pluginRoot, fileName, area) +} \ No newline at end of file