[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
This commit is contained in:
Nikolay Krasko
2023-01-31 09:38:24 +01:00
committed by Space Team
parent 31482fbb8b
commit f9169e8c7c
2 changed files with 36 additions and 0 deletions
@@ -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()
}
@@ -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");
}