From f9169e8c7c3c491ca3e10a26018308d540bc8ce5 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 31 Jan 2023 09:38:24 +0100 Subject: [PATCH] [213] Dummy code style facade for ClsElementImpl.appendMirrorText() The only test that fails without is FirOldFrontendLightClassesTestGenerated. While there's no proof that code fails in production, the footprint from services shouldn't be big, and it's better to have them instead of failing in runtime. KTI-1114 --- .../DummyJavaFileCodeStyleFacadeFactory.kt | 31 +++++++++++++++++++ .../KotlinCoreApplicationEnvironment.kt | 5 +++ 2 files changed, 36 insertions(+) create mode 100644 compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/DummyJavaFileCodeStyleFacadeFactory.kt diff --git a/compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/DummyJavaFileCodeStyleFacadeFactory.kt b/compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/DummyJavaFileCodeStyleFacadeFactory.kt new file mode 100644 index 00000000000..781a3acb3fc --- /dev/null +++ b/compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/DummyJavaFileCodeStyleFacadeFactory.kt @@ -0,0 +1,31 @@ +/* + * Copyright 2010-2023 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.lang.Language +import com.intellij.psi.PsiFile +import com.intellij.psi.codeStyle.CodeStyleSettingsFacade +import com.intellij.psi.codeStyle.JavaFileCodeStyleFacade +import com.intellij.psi.codeStyle.JavaFileCodeStyleFacadeFactory + +internal class DummyJavaFileCodeStyleFacadeFactory : JavaFileCodeStyleFacadeFactory { + private class DummyJavaFileCodeStyleFacade : JavaFileCodeStyleFacade { + override fun getNamesCountToUseImportOnDemand(): Int = 0 + override fun isToImportOnDemand(qualifiedName: String): Boolean = false + override fun useFQClassNames(): Boolean = false + override fun isJavaDocLeadingAsterisksEnabled(): Boolean = false + override fun isGenerateFinalParameters(): Boolean = false + override fun isGenerateFinalLocals(): Boolean = false + override fun withLanguage(language: Language): CodeStyleSettingsFacade = DummyJavaFileCodeStyleFacade() + override fun getTabSize(): Int = 4 + override fun getIndentSize(): Int = 4 + override fun isSpaceBeforeComma(): Boolean = false + override fun isSpaceAfterComma(): Boolean = false + override fun isSpaceAroundAssignmentOperators(): Boolean = false + } + + override fun createFacade(psiFile: PsiFile): JavaFileCodeStyleFacade = DummyJavaFileCodeStyleFacade() +} \ No newline at end of file diff --git a/compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreApplicationEnvironment.kt b/compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreApplicationEnvironment.kt index 6aa0cb03ba5..52686ab29ed 100644 --- a/compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreApplicationEnvironment.kt +++ b/compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreApplicationEnvironment.kt @@ -6,6 +6,8 @@ package org.jetbrains.kotlin.cli.jvm.compiler import com.intellij.DynamicBundle import com.intellij.codeInsight.ContainerProvider +import com.intellij.codeInsight.folding.JavaCodeFoldingSettings +import com.intellij.codeInsight.folding.impl.JavaCodeFoldingSettingsBase import com.intellij.codeInsight.runner.JavaMainMethodProvider import com.intellij.core.JavaCoreApplicationEnvironment import com.intellij.ide.highlighter.JavaClassFileType @@ -16,6 +18,8 @@ import com.intellij.openapi.util.Disposer import com.intellij.openapi.vfs.VirtualFileSystem import com.intellij.psi.FileContextProvider import com.intellij.psi.augment.PsiAugmentProvider +import com.intellij.psi.codeStyle.JavaFileCodeStyleFacade +import com.intellij.psi.codeStyle.JavaFileCodeStyleFacadeFactory import com.intellij.psi.impl.smartPointers.SmartPointerAnchorProvider import com.intellij.psi.meta.MetaDataContributor import org.jetbrains.kotlin.cli.jvm.compiler.IdeaExtensionPoints.registerVersionSpecificAppExtensionPoints @@ -28,6 +32,7 @@ class KotlinCoreApplicationEnvironment private constructor( JavaCoreApplicationEnvironment(parentDisposable, unitTestMode) { init { + registerApplicationService(JavaFileCodeStyleFacadeFactory::class.java, DummyJavaFileCodeStyleFacadeFactory()) registerFileType(JavaClassFileType.INSTANCE, "sig"); }