mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
WEB-73962: drop BasicHtmlElementFactory & BasicXmlElementFactory
GitOrigin-RevId: 87279905bca461f4cc5b8c9cb72a9fe65d5f2ccb
This commit is contained in:
committed by
intellij-monorepo-bot
parent
37d75e736d
commit
dfe90475a3
+2
-17
@@ -2,10 +2,7 @@
|
||||
package com.intellij.xml.testFramework
|
||||
|
||||
import com.intellij.html.embedding.BasicHtmlRawTextElementFactory
|
||||
import com.intellij.lang.html.BackendHtmlElementFactory
|
||||
import com.intellij.lang.html.BasicHtmlElementFactory
|
||||
import com.intellij.lang.xml.BackendXmlElementFactory
|
||||
import com.intellij.lang.xml.BasicXmlElementFactory
|
||||
import com.intellij.lang.html.HtmlRawTextElementFactoryImpl
|
||||
import com.intellij.mock.MockApplication
|
||||
import com.intellij.openapi.Disposable
|
||||
|
||||
@@ -15,21 +12,9 @@ object XmlElementTypeServiceHelper {
|
||||
application: MockApplication,
|
||||
testRootDisposable: Disposable,
|
||||
) {
|
||||
application.registerService(
|
||||
BasicXmlElementFactory::class.java,
|
||||
BackendXmlElementFactory(),
|
||||
testRootDisposable,
|
||||
)
|
||||
|
||||
application.registerService(
|
||||
BasicHtmlElementFactory::class.java,
|
||||
BackendHtmlElementFactory(),
|
||||
testRootDisposable,
|
||||
)
|
||||
|
||||
application.registerService(
|
||||
BasicHtmlRawTextElementFactory::class.java,
|
||||
BackendHtmlElementFactory(),
|
||||
HtmlRawTextElementFactoryImpl(),
|
||||
testRootDisposable,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
package com.intellij.lang.html
|
||||
|
||||
import com.intellij.lang.ASTNode
|
||||
import com.intellij.psi.FileViewProvider
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
|
||||
interface BasicHtmlElementFactory {
|
||||
fun createFile(viewProvider: FileViewProvider): PsiFile
|
||||
|
||||
fun createElement(node: ASTNode): PsiElement
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package com.intellij.lang.xml
|
||||
|
||||
import com.intellij.lang.ASTNode
|
||||
import com.intellij.psi.FileViewProvider
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.tree.IElementType
|
||||
|
||||
interface BasicXmlElementFactory {
|
||||
fun createFile(
|
||||
viewProvider: FileViewProvider,
|
||||
elementType: IElementType,
|
||||
): PsiFile
|
||||
|
||||
fun createElement(node: ASTNode): PsiElement
|
||||
}
|
||||
@@ -31,12 +31,8 @@
|
||||
<lang.parserDefinition language="HTML" implementationClass="com.intellij.lang.html.HTMLParserDefinition"/>
|
||||
<lang.parserDefinition language="XHTML" implementationClass="com.intellij.lang.xhtml.XHTMLParserDefinition"/>
|
||||
|
||||
<applicationService serviceInterface="com.intellij.lang.xml.BasicXmlElementFactory"
|
||||
serviceImplementation="com.intellij.lang.xml.BackendXmlElementFactory"/>
|
||||
<applicationService serviceInterface="com.intellij.lang.html.BasicHtmlElementFactory"
|
||||
serviceImplementation="com.intellij.lang.html.BackendHtmlElementFactory"/>
|
||||
<applicationService serviceInterface="com.intellij.html.embedding.BasicHtmlRawTextElementFactory"
|
||||
serviceImplementation="com.intellij.lang.html.BackendHtmlElementFactory"/>
|
||||
serviceImplementation="com.intellij.lang.html.HtmlRawTextElementFactoryImpl"/>
|
||||
|
||||
<lang.elementManipulator forClass="com.intellij.psi.xml.XmlAttributeValue"
|
||||
implementationClass="com.intellij.psi.impl.source.resolve.reference.impl.manipulators.XmlAttributeValueManipulator"/>
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.FileViewProvider
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.impl.source.parsing.xml.DtdParsing
|
||||
import com.intellij.psi.impl.source.xml.XmlFileImpl
|
||||
import com.intellij.psi.tree.IFileElementType
|
||||
import com.intellij.psi.xml.XmlElementType
|
||||
import com.intellij.psi.xml.XmlEntityContextType
|
||||
@@ -22,8 +23,7 @@ class DTDParserDefinition :
|
||||
override fun spaceExistenceTypeBetweenTokens(left: ASTNode, right: ASTNode): SpaceRequirements =
|
||||
LanguageUtil.canStickTokensTogetherByLexer(left, right, DtdLexer(false))
|
||||
|
||||
override fun createFile(viewProvider: FileViewProvider): PsiFile =
|
||||
elementFactory.createFile(viewProvider, XmlElementType.DTD_FILE)
|
||||
override fun createFile(viewProvider: FileViewProvider): PsiFile = XmlFileImpl(viewProvider, XmlElementType.DTD_FILE)
|
||||
|
||||
override fun createParser(project: Project?): PsiParser =
|
||||
PsiParser { root, builder ->
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
package com.intellij.lang.html
|
||||
|
||||
import com.intellij.html.embedding.BasicHtmlRawTextElementFactory
|
||||
import com.intellij.html.embedding.HtmlCustomEmbeddedContentTokenType
|
||||
import com.intellij.lang.ASTNode
|
||||
import com.intellij.psi.FileViewProvider
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.impl.source.html.HtmlEmbeddedContentImpl
|
||||
import com.intellij.psi.impl.source.html.HtmlFileImpl
|
||||
import com.intellij.psi.impl.source.html.HtmlRawTextImpl
|
||||
import com.intellij.psi.impl.source.xml.stub.XmlStubBasedElementType
|
||||
import com.intellij.psi.util.UnsupportedNodeElementTypeException
|
||||
import com.intellij.psi.xml.XmlElementType
|
||||
|
||||
class BackendHtmlElementFactory:
|
||||
BasicHtmlElementFactory,
|
||||
BasicHtmlRawTextElementFactory {
|
||||
|
||||
override fun createFile(viewProvider: FileViewProvider): PsiFile =
|
||||
HtmlFileImpl(viewProvider)
|
||||
|
||||
override fun createElement(node: ASTNode): PsiElement {
|
||||
val elementType = node.elementType
|
||||
|
||||
return when {
|
||||
elementType is XmlStubBasedElementType<*>
|
||||
-> elementType.createPsi(node)
|
||||
|
||||
elementType is HtmlCustomEmbeddedContentTokenType
|
||||
-> elementType.createPsi(node)
|
||||
|
||||
elementType === XmlElementType.HTML_EMBEDDED_CONTENT
|
||||
-> HtmlEmbeddedContentImpl(node)
|
||||
|
||||
else -> throw UnsupportedNodeElementTypeException(node)
|
||||
}
|
||||
}
|
||||
|
||||
override fun createRawTextElement(node: ASTNode): PsiElement =
|
||||
HtmlRawTextImpl(node)
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
// 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.html
|
||||
|
||||
import com.intellij.extapi.psi.ASTWrapperPsiElement
|
||||
import com.intellij.html.embedding.HtmlCustomEmbeddedContentTokenType
|
||||
import com.intellij.idea.AppModeAssertions
|
||||
import com.intellij.lang.ASTNode
|
||||
import com.intellij.lang.ParserDefinition
|
||||
import com.intellij.lang.ParserDefinition.SpaceRequirements
|
||||
@@ -8,23 +11,22 @@ import com.intellij.lang.PsiParser
|
||||
import com.intellij.lang.xml.canStickTokensTogether
|
||||
import com.intellij.lexer.HtmlLexer
|
||||
import com.intellij.lexer.Lexer
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.FileViewProvider
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.impl.source.html.HtmlEmbeddedContentImpl
|
||||
import com.intellij.psi.impl.source.html.HtmlFileImpl
|
||||
import com.intellij.psi.impl.source.xml.stub.XmlStubBasedElementType
|
||||
import com.intellij.psi.tree.IFileElementType
|
||||
import com.intellij.psi.tree.TokenSet
|
||||
import com.intellij.psi.util.UnsupportedNodeElementTypeException
|
||||
import com.intellij.psi.xml.XmlElementType
|
||||
import com.intellij.psi.xml.XmlTokenType
|
||||
|
||||
open class HTMLParserDefinition :
|
||||
ParserDefinition {
|
||||
|
||||
private val elementFactory: BasicHtmlElementFactory by lazy {
|
||||
service<BasicHtmlElementFactory>()
|
||||
}
|
||||
|
||||
override fun createLexer(project: Project?): Lexer =
|
||||
HtmlLexer()
|
||||
|
||||
@@ -43,11 +45,23 @@ open class HTMLParserDefinition :
|
||||
override fun createParser(project: Project?): PsiParser =
|
||||
HTMLParser()
|
||||
|
||||
override fun createElement(node: ASTNode): PsiElement =
|
||||
elementFactory.createElement(node)
|
||||
override fun createElement(node: ASTNode): PsiElement {
|
||||
val elementType = node.elementType
|
||||
|
||||
override fun createFile(viewProvider: FileViewProvider): PsiFile =
|
||||
elementFactory.createFile(viewProvider)
|
||||
return when {
|
||||
elementType is XmlStubBasedElementType<*> -> elementType.createPsi(node)
|
||||
|
||||
elementType is HtmlCustomEmbeddedContentTokenType -> elementType.createPsi(node)
|
||||
|
||||
elementType === XmlElementType.HTML_EMBEDDED_CONTENT -> HtmlEmbeddedContentImpl(node)
|
||||
|
||||
AppModeAssertions.isFrontend() -> ASTWrapperPsiElement(node)
|
||||
|
||||
else -> throw UnsupportedNodeElementTypeException(node)
|
||||
}
|
||||
}
|
||||
|
||||
override fun createFile(viewProvider: FileViewProvider): PsiFile = HtmlFileImpl(viewProvider)
|
||||
|
||||
override fun spaceExistenceTypeBetweenTokens(left: ASTNode, right: ASTNode): SpaceRequirements =
|
||||
canStickTokensTogether(left, right)
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.intellij.lang.html
|
||||
|
||||
import com.intellij.html.embedding.BasicHtmlRawTextElementFactory
|
||||
import com.intellij.lang.ASTNode
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.impl.source.html.HtmlRawTextImpl
|
||||
|
||||
class HtmlRawTextElementFactoryImpl: BasicHtmlRawTextElementFactory {
|
||||
override fun createRawTextElement(node: ASTNode): PsiElement = HtmlRawTextImpl(node)
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import com.intellij.lexer.XHtmlLexer
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.FileViewProvider
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.impl.source.xml.XmlFileImpl
|
||||
import com.intellij.psi.xml.XmlElementType
|
||||
|
||||
class XHTMLParserDefinition :
|
||||
@@ -15,6 +16,7 @@ class XHTMLParserDefinition :
|
||||
override fun createLexer(project: Project?): Lexer =
|
||||
XHtmlLexer()
|
||||
|
||||
override fun createFile(viewProvider: FileViewProvider): PsiFile =
|
||||
elementFactory.createFile(viewProvider, XmlElementType.XHTML_FILE)
|
||||
override fun createFile(viewProvider: FileViewProvider): PsiFile {
|
||||
return XmlFileImpl(viewProvider, XmlElementType.XHTML_FILE)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
package com.intellij.lang.xml
|
||||
|
||||
import com.intellij.lang.ASTNode
|
||||
import com.intellij.psi.FileViewProvider
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.impl.source.xml.XmlFileImpl
|
||||
import com.intellij.psi.impl.source.xml.stub.XmlStubBasedElementType
|
||||
import com.intellij.psi.tree.IElementType
|
||||
import com.intellij.psi.util.UnsupportedNodeElementTypeException
|
||||
|
||||
class BackendXmlElementFactory :
|
||||
BasicXmlElementFactory {
|
||||
|
||||
override fun createFile(
|
||||
viewProvider: FileViewProvider,
|
||||
elementType: IElementType,
|
||||
): PsiFile =
|
||||
XmlFileImpl(viewProvider, elementType)
|
||||
|
||||
override fun createElement(node: ASTNode): PsiElement {
|
||||
val elementType = node.elementType
|
||||
|
||||
return when (elementType) {
|
||||
is XmlStubBasedElementType<*>,
|
||||
-> elementType.createPsi(node)
|
||||
|
||||
else -> throw UnsupportedNodeElementTypeException(node)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,30 +1,30 @@
|
||||
// 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.lang.xml
|
||||
|
||||
import com.intellij.extapi.psi.ASTWrapperPsiElement
|
||||
import com.intellij.idea.AppModeAssertions
|
||||
import com.intellij.lang.ASTNode
|
||||
import com.intellij.lang.ParserDefinition
|
||||
import com.intellij.lang.ParserDefinition.SpaceRequirements
|
||||
import com.intellij.lang.PsiParser
|
||||
import com.intellij.lexer.Lexer
|
||||
import com.intellij.lexer.XmlLexer
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.FileViewProvider
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.impl.source.parsing.xml.XmlParser
|
||||
import com.intellij.psi.impl.source.xml.XmlFileImpl
|
||||
import com.intellij.psi.impl.source.xml.stub.XmlStubBasedElementType
|
||||
import com.intellij.psi.tree.IFileElementType
|
||||
import com.intellij.psi.tree.TokenSet
|
||||
import com.intellij.psi.util.UnsupportedNodeElementTypeException
|
||||
import com.intellij.psi.xml.XmlElementType
|
||||
import com.intellij.psi.xml.XmlTokenType
|
||||
|
||||
open class XMLParserDefinition :
|
||||
ParserDefinition {
|
||||
|
||||
protected val elementFactory: BasicXmlElementFactory by lazy {
|
||||
service<BasicXmlElementFactory>()
|
||||
}
|
||||
|
||||
override fun createLexer(project: Project?): Lexer =
|
||||
XmlLexer()
|
||||
|
||||
@@ -43,11 +43,18 @@ open class XMLParserDefinition :
|
||||
override fun createParser(project: Project?): PsiParser =
|
||||
XmlParser()
|
||||
|
||||
override fun createElement(node: ASTNode): PsiElement =
|
||||
elementFactory.createElement(node)
|
||||
override fun createElement(node: ASTNode): PsiElement {
|
||||
val elementType = node.elementType
|
||||
|
||||
override fun createFile(viewProvider: FileViewProvider): PsiFile =
|
||||
elementFactory.createFile(viewProvider, XmlElementType.XML_FILE)
|
||||
return when {
|
||||
elementType is XmlStubBasedElementType<*> -> elementType.createPsi(node)
|
||||
AppModeAssertions.isFrontend() -> ASTWrapperPsiElement(node)
|
||||
|
||||
else -> throw UnsupportedNodeElementTypeException(node)
|
||||
}
|
||||
}
|
||||
|
||||
override fun createFile(viewProvider: FileViewProvider): PsiFile = XmlFileImpl(viewProvider, XmlElementType.XML_FILE)
|
||||
|
||||
override fun spaceExistenceTypeBetweenTokens(left: ASTNode, right: ASTNode): SpaceRequirements =
|
||||
canStickTokensTogether(left, right)
|
||||
|
||||
Reference in New Issue
Block a user