From a3487280c3c41c51eda0f98e97ccb67174d63dba Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Thu, 13 Nov 2025 19:29:14 +0100 Subject: [PATCH] IJPL-218636 [psi] move fake language to testFramework GitOrigin-RevId: 8fef934140c4d66e7dd21029ed3389b03077d840 --- .../com/intellij/find/SearchTargetTest.kt | 9 ++-- .../intellij/lang/fakeLang/FakeLanguage.kt} | 42 +++++++++---------- 2 files changed, 27 insertions(+), 24 deletions(-) rename platform/{lang-impl/testSources/com/intellij/find/TestLanguage.kt => testFramework/src/com/intellij/lang/fakeLang/FakeLanguage.kt} (63%) diff --git a/platform/lang-impl/testSources/com/intellij/find/SearchTargetTest.kt b/platform/lang-impl/testSources/com/intellij/find/SearchTargetTest.kt index 11d0befade61..3e2694677dd2 100644 --- a/platform/lang-impl/testSources/com/intellij/find/SearchTargetTest.kt +++ b/platform/lang-impl/testSources/com/intellij/find/SearchTargetTest.kt @@ -2,6 +2,9 @@ package com.intellij.find import com.intellij.ide.impl.HeadlessDataManager.fallbackToProductionDataManager +import com.intellij.lang.fakeLang.FakeFile +import com.intellij.lang.fakeLang.FakeLanguage +import com.intellij.lang.fakeLang.registerFakeLanguage import com.intellij.testFramework.fixtures.BasePlatformTestCase internal class SearchTargetTest : BasePlatformTestCase() { @@ -11,12 +14,12 @@ internal class SearchTargetTest : BasePlatformTestCase() { // use production data manager! fallbackToProductionDataManager(testRootDisposable) - registerTestLanguage(testRootDisposable) - registerTestSymbolAndSearchTarget(testRootDisposable, TestLanguage.id, TestFile::class.java.name) + registerFakeLanguage(testRootDisposable) + registerTestSymbolAndSearchTarget(testRootDisposable, FakeLanguage.id, FakeFile::class.java.name) } fun testSearchTarget() { - val fileName = getTestName(false) + ".test" + val fileName = getTestName(false) + ".fake" myFixture.configureByText(fileName, """ search targets must work, targets are important diff --git a/platform/lang-impl/testSources/com/intellij/find/TestLanguage.kt b/platform/testFramework/src/com/intellij/lang/fakeLang/FakeLanguage.kt similarity index 63% rename from platform/lang-impl/testSources/com/intellij/find/TestLanguage.kt rename to platform/testFramework/src/com/intellij/lang/fakeLang/FakeLanguage.kt index fa23eb867f36..36360b2cf742 100644 --- a/platform/lang-impl/testSources/com/intellij/find/TestLanguage.kt +++ b/platform/testFramework/src/com/intellij/lang/fakeLang/FakeLanguage.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.find +// 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.lang.fakeLang import com.intellij.extapi.psi.PsiFileBase import com.intellij.ide.plugins.PluginManagerCore @@ -22,34 +22,34 @@ import com.intellij.psi.tree.IFileElementType import com.intellij.psi.tree.TokenSet import javax.swing.Icon -internal fun registerTestLanguage(testRootDisposable: Disposable) { +fun registerFakeLanguage(testRootDisposable: Disposable) { (FileTypeManager.getInstance() as FileTypeManagerImpl).registerFileType( - /* type = */ TestFileType.INSTANCE, - /* defaultAssociations = */ listOf(ExtensionFileNameMatcher(TestFileType.INSTANCE.defaultExtension)), + /* type = */ FakeFileType.INSTANCE, + /* defaultAssociations = */ listOf(ExtensionFileNameMatcher(FakeFileType.INSTANCE.defaultExtension)), /* disposable = */ testRootDisposable, /* pluginDescriptor = */ PluginManagerCore.getPlugin(PluginManagerCore.CORE_ID)!! ) LanguageParserDefinitions.INSTANCE.addExplicitExtension( - /* key = */ TestLanguage, - /* t = */ TestParserDefinition(), + /* key = */ FakeLanguage, + /* t = */ FakeParserDefinition(), /* parentDisposable = */ testRootDisposable ) } -internal object TestLanguage : Language("TestLang") +object FakeLanguage : Language("FakeLang") -private class TestParserDefinition : ParserDefinition { +private class FakeParserDefinition : ParserDefinition { override fun createLexer(project: Project?): Lexer = EmptyLexer() - override fun createParser(project: Project?): PsiParser = TestParser() - override fun getFileNodeType(): IFileElementType = TestFileElementType + override fun createParser(project: Project?): PsiParser = FakeParser() + override fun getFileNodeType(): IFileElementType = FakeFileElementType override fun getCommentTokens(): TokenSet = TokenSet.EMPTY override fun getStringLiteralElements(): TokenSet = TokenSet.EMPTY override fun createElement(node: ASTNode?): PsiElement = throw UnsupportedOperationException() - override fun createFile(viewProvider: FileViewProvider): PsiFile = TestFile(viewProvider) + override fun createFile(viewProvider: FileViewProvider): PsiFile = FakeFile(viewProvider) } -private class TestParser : PsiParser { +private class FakeParser : PsiParser { override fun parse(root: IElementType, builder: PsiBuilder): ASTNode { val marker = builder.mark() builder.advanceLexer() @@ -58,20 +58,20 @@ private class TestParser : PsiParser { } } -private class TestFileType : LanguageFileType(TestLanguage) { - override fun getName(): String = "TestFileType" - override fun getDescription(): String = "Test file type" - override fun getDefaultExtension(): String = "test" +private class FakeFileType : LanguageFileType(FakeLanguage) { + override fun getName(): String = "FakeFileType" + override fun getDescription(): String = "Fake file type" + override fun getDefaultExtension(): String = "fake" override fun getIcon(): Icon? = null companion object { @JvmField - val INSTANCE = TestFileType() + val INSTANCE = FakeFileType() } } -internal class TestFile(viewProvider: FileViewProvider) : PsiFileBase(viewProvider, TestLanguage), PsiExternalReferenceHost { - override fun getFileType(): FileType = TestFileType.INSTANCE +class FakeFile(viewProvider: FileViewProvider) : PsiFileBase(viewProvider, FakeLanguage), PsiExternalReferenceHost { + override fun getFileType(): FileType = FakeFileType.INSTANCE } -private object TestFileElementType : IFileElementType("TesFileElementType", TestLanguage) \ No newline at end of file +private object FakeFileElementType : IFileElementType("FakeFileElementType", FakeLanguage) \ No newline at end of file