diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreApplicationEnvironment.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreApplicationEnvironment.kt index 502bd083c61..2f5756deabd 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreApplicationEnvironment.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreApplicationEnvironment.kt @@ -2,54 +2,46 @@ * Copyright 2010-2019 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; +package org.jetbrains.kotlin.cli.jvm.compiler -import com.intellij.DynamicBundle; -import com.intellij.codeInsight.ContainerProvider; -import com.intellij.codeInsight.runner.JavaMainMethodProvider; -import com.intellij.core.JavaCoreApplicationEnvironment; -import com.intellij.lang.MetaLanguage; -import com.intellij.openapi.Disposable; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.vfs.VirtualFileSystem; -import com.intellij.psi.FileContextProvider; -import com.intellij.psi.augment.PsiAugmentProvider; -import com.intellij.psi.impl.smartPointers.SmartPointerAnchorProvider; -import com.intellij.psi.meta.MetaDataContributor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.cli.jvm.modules.CoreJrtFileSystem; +import com.intellij.DynamicBundle +import com.intellij.codeInsight.ContainerProvider +import com.intellij.codeInsight.runner.JavaMainMethodProvider +import com.intellij.core.JavaCoreApplicationEnvironment +import com.intellij.lang.MetaLanguage +import com.intellij.openapi.Disposable +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.vfs.VirtualFileSystem +import com.intellij.psi.FileContextProvider +import com.intellij.psi.augment.PsiAugmentProvider +import com.intellij.psi.impl.smartPointers.SmartPointerAnchorProvider +import com.intellij.psi.meta.MetaDataContributor +import org.jetbrains.kotlin.cli.jvm.compiler.IdeaExtensionPoints.registerVersionSpecificAppExtensionPoints +import org.jetbrains.kotlin.cli.jvm.modules.CoreJrtFileSystem -public class KotlinCoreApplicationEnvironment extends JavaCoreApplicationEnvironment { - public static KotlinCoreApplicationEnvironment create(@NotNull Disposable parentDisposable, boolean unitTestMode) { - KotlinCoreApplicationEnvironment environment = new KotlinCoreApplicationEnvironment(parentDisposable, unitTestMode); - registerExtensionPoints(); - return environment; +class KotlinCoreApplicationEnvironment private constructor(parentDisposable: Disposable, unitTestMode: Boolean) : + JavaCoreApplicationEnvironment(parentDisposable, unitTestMode) { + override fun createJrtFileSystem(): VirtualFileSystem? { + return CoreJrtFileSystem() } - private KotlinCoreApplicationEnvironment(@NotNull Disposable parentDisposable, boolean unitTestMode) { - super(parentDisposable, unitTestMode); + companion object { + fun create(parentDisposable: Disposable, unitTestMode: Boolean): KotlinCoreApplicationEnvironment { + val environment = KotlinCoreApplicationEnvironment(parentDisposable, unitTestMode) + registerExtensionPoints() + return environment + } + + private fun registerExtensionPoints() { + registerApplicationExtensionPoint(DynamicBundle.LanguageBundleEP.EP_NAME, DynamicBundle.LanguageBundleEP::class.java) + registerApplicationExtensionPoint(FileContextProvider.EP_NAME, FileContextProvider::class.java) + registerApplicationExtensionPoint(MetaDataContributor.EP_NAME, MetaDataContributor::class.java) + registerApplicationExtensionPoint(PsiAugmentProvider.EP_NAME, PsiAugmentProvider::class.java) + registerApplicationExtensionPoint(JavaMainMethodProvider.EP_NAME, JavaMainMethodProvider::class.java) + registerApplicationExtensionPoint(ContainerProvider.EP_NAME, ContainerProvider::class.java) + registerApplicationExtensionPoint(MetaLanguage.EP_NAME, MetaLanguage::class.java) + registerApplicationExtensionPoint(SmartPointerAnchorProvider.EP_NAME, SmartPointerAnchorProvider::class.java) + registerVersionSpecificAppExtensionPoints(ApplicationManager.getApplication().extensionArea) + } } - - private static void registerExtensionPoints() { - registerApplicationExtensionPoint(DynamicBundle.LanguageBundleEP.EP_NAME, DynamicBundle.LanguageBundleEP.class); - registerApplicationExtensionPoint(FileContextProvider.EP_NAME, FileContextProvider.class); - - registerApplicationExtensionPoint(MetaDataContributor.EP_NAME, MetaDataContributor.class); - registerApplicationExtensionPoint(PsiAugmentProvider.EP_NAME, PsiAugmentProvider.class); - registerApplicationExtensionPoint(JavaMainMethodProvider.EP_NAME, JavaMainMethodProvider.class); - - registerApplicationExtensionPoint(ContainerProvider.EP_NAME, ContainerProvider.class); - - registerApplicationExtensionPoint(MetaLanguage.EP_NAME, MetaLanguage.class); - registerApplicationExtensionPoint(SmartPointerAnchorProvider.EP_NAME, SmartPointerAnchorProvider.class); - - IdeaExtensionPoints.INSTANCE.registerVersionSpecificAppExtensionPoints(ApplicationManager.getApplication().getExtensionArea()); - } - - @Nullable - @Override - protected VirtualFileSystem createJrtFileSystem() { - return new CoreJrtFileSystem(); - } -} +} \ No newline at end of file