mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJPL-218636 [psi] move fake language to testFramework
GitOrigin-RevId: 8fef934140c4d66e7dd21029ed3389b03077d840
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c795fcbeae
commit
a3487280c3
@@ -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 <caret>targets must work, targets are important
|
||||
|
||||
+21
-21
@@ -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)
|
||||
private object FakeFileElementType : IFileElementType("FakeFileElementType", FakeLanguage)
|
||||
Reference in New Issue
Block a user