mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[core] Fix missing elements JavaCoreApplicationEnvironment
They caused UAST tests to fail locally. #IDEA-373647 Fixed GitOrigin-RevId: fbc6bc6af2922761930469b7aa63f30b4754ec55
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b7fb649572
commit
751be636a6
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.core;
|
||||
|
||||
import com.intellij.codeInsight.ContainerProvider;
|
||||
@@ -9,10 +9,12 @@ import com.intellij.codeInsight.folding.impl.JavaFoldingBuilderBase;
|
||||
import com.intellij.ide.highlighter.ArchiveFileType;
|
||||
import com.intellij.ide.highlighter.JavaClassFileType;
|
||||
import com.intellij.ide.highlighter.JavaFileType;
|
||||
import com.intellij.java.frontback.psi.impl.syntax.JavaSyntaxDefinitionExtension;
|
||||
import com.intellij.lang.LanguageASTFactory;
|
||||
import com.intellij.lang.folding.LanguageFolding;
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.lang.java.JavaParserDefinition;
|
||||
import com.intellij.lang.java.syntax.JavaElementTypeConverterExtension;
|
||||
import com.intellij.navigation.ItemPresentationProviders;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.fileTypes.BinaryFileTypeDecompilers;
|
||||
@@ -20,6 +22,9 @@ import com.intellij.openapi.fileTypes.PlainTextFileType;
|
||||
import com.intellij.openapi.fileTypes.PlainTextLanguage;
|
||||
import com.intellij.openapi.fileTypes.PlainTextParserDefinition;
|
||||
import com.intellij.openapi.projectRoots.JavaVersionService;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.platform.syntax.psi.ElementTypeConverters;
|
||||
import com.intellij.platform.syntax.psi.LanguageSyntaxDefinitions;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.compiled.ClassFileDecompilers;
|
||||
import com.intellij.psi.impl.LanguageConstantExpressionEvaluator;
|
||||
@@ -51,6 +56,7 @@ public class JavaCoreApplicationEnvironment extends CoreApplicationEnvironment {
|
||||
registerFileType(JavaClassFileType.INSTANCE, "class");
|
||||
registerFileType(JavaFileType.INSTANCE, "java");
|
||||
registerFileType(ArchiveFileType.INSTANCE, "jar;zip");
|
||||
Registry.get("java.highest.language.level").setValue("24");
|
||||
registerFileType(PlainTextFileType.INSTANCE, "txt;sh;bat;cmd;policy;log;cgi;MF;jad;jam;htaccess");
|
||||
|
||||
addExplicitExtension(LanguageASTFactory.INSTANCE, PlainTextLanguage.INSTANCE, new PlainTextASTFactory());
|
||||
@@ -61,6 +67,8 @@ public class JavaCoreApplicationEnvironment extends CoreApplicationEnvironment {
|
||||
addExplicitExtension(BinaryFileStubBuilders.INSTANCE, JavaClassFileType.INSTANCE, new ClassFileStubBuilder());
|
||||
|
||||
addExplicitExtension(LanguageASTFactory.INSTANCE, JavaLanguage.INSTANCE, new JavaASTFactory());
|
||||
addExplicitExtension(LanguageSyntaxDefinitions.getINSTANCE(), JavaLanguage.INSTANCE, new JavaSyntaxDefinitionExtension());
|
||||
addExplicitExtension(ElementTypeConverters.getInstance(), JavaLanguage.INSTANCE, new JavaElementTypeConverterExtension());
|
||||
registerParserDefinition(new JavaParserDefinition());
|
||||
addExplicitExtension(LanguageConstantExpressionEvaluator.INSTANCE, JavaLanguage.INSTANCE, new PsiExpressionEvaluator());
|
||||
|
||||
|
||||
-2
@@ -13,9 +13,7 @@ import com.intellij.psi.JavaDocTokenType
|
||||
import com.intellij.psi.JavaTokenType
|
||||
import com.intellij.psi.impl.source.tree.JavaDocElementType
|
||||
import com.intellij.psi.impl.source.tree.JavaElementType
|
||||
import org.jetbrains.annotations.VisibleForTesting
|
||||
|
||||
@VisibleForTesting
|
||||
class JavaElementTypeConverterExtension : ElementTypeConverterFactory {
|
||||
override fun getElementTypeConverter(): ElementTypeConverter = javaConverter
|
||||
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
*f:com.intellij.platform.syntax.psi.CommonElementTypeConverterFactory
|
||||
- com.intellij.platform.syntax.psi.ElementTypeConverterFactory
|
||||
- <init>():V
|
||||
- getElementTypeConverter():com.intellij.platform.syntax.psi.ElementTypeConverter
|
||||
*:com.intellij.platform.syntax.psi.ElementTypeConverter
|
||||
- a:convert(com.intellij.platform.syntax.SyntaxElementType):com.intellij.psi.tree.IElementType
|
||||
- a:convert(com.intellij.psi.tree.IElementType):com.intellij.platform.syntax.SyntaxElementType
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ import com.intellij.platform.syntax.util.runtime.DUMMY_BLOCK
|
||||
import com.intellij.psi.DummyBlockType
|
||||
import com.intellij.psi.TokenType
|
||||
|
||||
internal class CommonElementTypeConverterFactory : ElementTypeConverterFactory {
|
||||
class CommonElementTypeConverterFactory : ElementTypeConverterFactory {
|
||||
override fun getElementTypeConverter(): ElementTypeConverter = commonConverter
|
||||
|
||||
private val commonConverter: ElementTypeConverter = elementTypeConverterOf(
|
||||
|
||||
+27
-2
@@ -1,19 +1,27 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.uast.test.kotlin
|
||||
|
||||
import com.intellij.core.CoreApplicationEnvironment
|
||||
import com.intellij.lang.LanguageExtensionPoint
|
||||
import com.intellij.mock.MockComponentManager
|
||||
import com.intellij.mock.MockProject
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.application.runWriteActionAndWait
|
||||
import com.intellij.openapi.extensions.DefaultPluginDescriptor
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.extensions.PluginId
|
||||
import com.intellij.openapi.extensions.impl.ExtensionsAreaImpl
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.openapi.vfs.VirtualFileManager
|
||||
import com.intellij.platform.syntax.psi.CommonElementTypeConverterFactory
|
||||
import com.intellij.platform.syntax.psi.ElementTypeConverterFactory
|
||||
import com.intellij.platform.syntax.psi.ElementTypeConverters
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.psi.PsiNameHelper
|
||||
import com.intellij.psi.impl.PsiNameHelperImpl
|
||||
import com.intellij.testFramework.ExtensionTestUtil
|
||||
import com.intellij.testFramework.LightProjectDescriptor
|
||||
import com.intellij.util.io.URLUtil
|
||||
import junit.framework.TestCase
|
||||
@@ -124,6 +132,13 @@ abstract class AbstractKotlinUastTest : TestCase(),
|
||||
}
|
||||
|
||||
private fun initializeCoreEnvironment() {
|
||||
val extensionArea = ApplicationManager.getApplication().extensionArea as ExtensionsAreaImpl
|
||||
|
||||
val pluginDescriptor = DefaultPluginDescriptor(
|
||||
PluginId.getId(javaClass.getName() + "." + name),
|
||||
this::class.java.classLoader,
|
||||
)
|
||||
|
||||
CoreApplicationEnvironment.registerApplicationExtensionPoint(
|
||||
UastLanguagePlugin.EP,
|
||||
UastLanguagePlugin::class.java,
|
||||
@@ -140,13 +155,23 @@ abstract class AbstractKotlinUastTest : TestCase(),
|
||||
)
|
||||
project.registerService(UastContext::class.java)
|
||||
|
||||
Extensions.getRootArea().getExtensionPoint(UastLanguagePlugin.EP)
|
||||
extensionArea.getExtensionPoint(UastLanguagePlugin.EP)
|
||||
.registerExtension(JavaUastLanguagePlugin())
|
||||
|
||||
AnalysisHandlerExtension.registerExtension(
|
||||
project,
|
||||
UastAnalysisHandlerExtension(),
|
||||
)
|
||||
|
||||
extensionArea.registerFakeBeanPoint<ElementTypeConverterFactory>(ElementTypeConverters.instance.name, pluginDescriptor)
|
||||
val languagePlugin: LanguageExtensionPoint<ElementTypeConverterFactory> =
|
||||
LanguageExtensionPoint("any", CommonElementTypeConverterFactory())
|
||||
languagePlugin.pluginDescriptor = pluginDescriptor
|
||||
ExtensionTestUtil.addExtension(
|
||||
extensionArea,
|
||||
ElementTypeConverters.instance,
|
||||
languagePlugin
|
||||
)
|
||||
}
|
||||
|
||||
private fun initializeKotlinEnvironment() {
|
||||
|
||||
Reference in New Issue
Block a user