WI-81268 add xml.frontend.split to core classloader

GitOrigin-RevId: 96c1c3f8d33f3b7346a9f5f6e590c7898b8be0c7
This commit is contained in:
Maria Filippova
2025-06-17 19:17:34 +00:00
committed by intellij-monorepo-bot
parent becdc5b2a2
commit dffaf4c22e
9 changed files with 203 additions and 0 deletions
+1
View File
@@ -1194,6 +1194,7 @@
<module fileurl="file://$PROJECT_DIR$/xml/dom-impl/intellij.xml.dom.impl.iml" filepath="$PROJECT_DIR$/xml/dom-impl/intellij.xml.dom.impl.iml" />
<module fileurl="file://$PROJECT_DIR$/xml/dom-tests/intellij.xml.dom.tests.iml" filepath="$PROJECT_DIR$/xml/dom-tests/intellij.xml.dom.tests.iml" />
<module fileurl="file://$PROJECT_DIR$/xml/xml-frontback-impl/intellij.xml.frontback.impl.iml" filepath="$PROJECT_DIR$/xml/xml-frontback-impl/intellij.xml.frontback.impl.iml" />
<module fileurl="file://$PROJECT_DIR$/xml/xml-frontend-split/intellij.xml.frontend.split.iml" filepath="$PROJECT_DIR$/xml/xml-frontend-split/intellij.xml.frontend.split.iml" />
<module fileurl="file://$PROJECT_DIR$/xml/impl/intellij.xml.impl.iml" filepath="$PROJECT_DIR$/xml/impl/intellij.xml.impl.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/IntelliLang/xml-support/intellij.xml.langInjection.iml" filepath="$PROJECT_DIR$/plugins/IntelliLang/xml-support/intellij.xml.langInjection.iml" />
<module fileurl="file://$PROJECT_DIR$/xml/xml-parser/intellij.xml.parser.iml" filepath="$PROJECT_DIR$/xml/xml-parser/intellij.xml.parser.iml" />
+29
View File
@@ -0,0 +1,29 @@
### auto-generated section `build intellij.xml.frontend.split` start
load("@rules_jvm//:jvm.bzl", "jvm_library", "jvm_resources")
jvm_resources(
name = "frontend-split_resources",
files = glob(["resources/**/*"]),
strip_prefix = "resources"
)
jvm_library(
name = "frontend-split",
module_name = "intellij.xml.frontend.split",
visibility = ["//visibility:public"],
srcs = glob(["src/**/*.kt", "src/**/*.java"], allow_empty = True),
deps = [
"@lib//:kotlin-stdlib",
"//platform/core-api:core",
"//platform/core-impl",
"//platform/util/base",
"//xml/xml-parser:parser",
"//platform/projectModel-api:projectModel",
"//platform/analysis-api:analysis",
"//platform/util",
"//platform/editor-ui-api:editor-ui",
"//xml/xml-frontback-impl:frontback-impl",
],
runtime_deps = [":frontend-split_resources"]
)
### auto-generated section `build intellij.xml.frontend.split` end
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
<orderEntry type="module" module-name="intellij.platform.core" />
<orderEntry type="module" module-name="intellij.platform.core.impl" />
<orderEntry type="module" module-name="intellij.platform.util.base" />
<orderEntry type="module" module-name="intellij.xml.parser" />
<orderEntry type="module" module-name="intellij.platform.projectModel" />
<orderEntry type="module" module-name="intellij.platform.analysis" />
<orderEntry type="module" module-name="intellij.platform.util" />
<orderEntry type="module" module-name="intellij.platform.editor.ui" />
<orderEntry type="module" module-name="intellij.xml.frontback.impl" />
</component>
</module>
@@ -0,0 +1,60 @@
<idea-plugin>
<extensionPoints>
<extensionPoint qualifiedName="com.intellij.embeddedTokenTypesProvider"
interface="com.intellij.lexer.EmbeddedTokenTypesProvider"
dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.embeddedTokenHighlighter"
interface="com.intellij.ide.highlighter.EmbeddedTokenHighlighter"
dynamic="true"/>
</extensionPoints>
<extensions defaultExtensionNs="com.intellij">
<fileType name="XML"
language="XML"
extensions="ant;fxml;jhm;jnlp;jrxml;rng;tld;wsdl;xml;xsd;xsl;xslt;xul"
implementationClass="com.intellij.ide.highlighter.XmlFileType"
fieldName="INSTANCE"/>
<fileType name="DTD"
language="DTD"
extensions="dtd;elt;ent;mod"
implementationClass="com.intellij.ide.highlighter.DTDFileType"
fieldName="INSTANCE"/>
<fileType name="HTML"
language="HTML"
extensions="htm;html;sht;shtm;shtml"
implementationClass="com.intellij.ide.highlighter.HtmlFileType"
fieldName="INSTANCE"/>
<fileType name="XHTML"
language="XHTML"
extensions="xhtml"
implementationClass="com.intellij.ide.highlighter.XHtmlFileType"
fieldName="INSTANCE"/>
<applicationService serviceInterface="com.intellij.lang.xml.BasicXmlElementFactory"
serviceImplementation="com.intellij.xml.frontend.split.editor.FrontendXmlElementFactory"/>
<applicationService serviceInterface="com.intellij.lang.html.BasicHtmlElementFactory"
serviceImplementation="com.intellij.xml.frontend.split.editor.FrontendHtmlElementFactory"/>
<applicationService serviceInterface="com.intellij.html.embedding.BasicHtmlRawTextElementFactory"
serviceImplementation="com.intellij.xml.frontend.split.editor.FrontendHtmlElementFactory"/>
<lang.parserDefinition language="XML"
implementationClass="com.intellij.lang.xml.XMLParserDefinition"/>
<lang.parserDefinition language="DTD"
implementationClass="com.intellij.lang.dtd.DTDParserDefinition"/>
<lang.parserDefinition language="HTML"
implementationClass="com.intellij.lang.html.HTMLParserDefinition"/>
<lang.parserDefinition language="XHTML"
implementationClass="com.intellij.lang.xhtml.XHTMLParserDefinition"/>
<lang.syntaxHighlighterFactory language="XML"
implementationClass="com.intellij.lang.xml.XmlSyntaxHighlighterFactory"/>
<lang.syntaxHighlighterFactory language="DTD"
implementationClass="com.intellij.lang.dtd.DtdSyntaxHighlighterFactory"/>
<lang.syntaxHighlighterFactory language="HTML"
implementationClass="com.intellij.lang.html.HtmlSyntaxHighlighterFactory"/>
<lang.syntaxHighlighterFactory language="XHTML"
implementationClass="com.intellij.lang.xhtml.XhtmlSyntaxHighlighterFactory"/>
<virtualFileCustomDataConsumer implementation="com.intellij.xml.HtmlCodeStyleSettingsCustomDataSynchronizer"/>
</extensions>
</idea-plugin>
@@ -0,0 +1,21 @@
// 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.xml.frontend.split.editor
import com.intellij.openapi.fileTypes.FileType
import com.intellij.psi.FileViewProvider
import com.intellij.psi.PsiElementVisitor
import com.intellij.psi.impl.source.PsiFileImpl
import com.intellij.psi.tree.IElementType
abstract class FrontendFileImpl(
viewProvider: FileViewProvider,
elementType: IElementType,
) : PsiFileImpl(elementType, elementType, viewProvider) {
override fun getFileType(): FileType =
viewProvider.fileType
override fun accept(visitor: PsiElementVisitor) {
visitor.visitFile(this)
}
}
@@ -0,0 +1,23 @@
package com.intellij.xml.frontend.split.editor
import com.intellij.extapi.psi.ASTWrapperPsiElement
import com.intellij.html.embedding.BasicHtmlRawTextElementFactory
import com.intellij.lang.ASTNode
import com.intellij.lang.html.BasicHtmlElementFactory
import com.intellij.psi.FileViewProvider
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
class FrontendHtmlElementFactory :
BasicHtmlElementFactory,
BasicHtmlRawTextElementFactory {
override fun createFile(viewProvider: FileViewProvider): PsiFile =
FrontendHtmlFileImpl(viewProvider)
override fun createElement(node: ASTNode): PsiElement =
ASTWrapperPsiElement(node)
override fun createRawTextElement(node: ASTNode): PsiElement =
ASTWrapperPsiElement(node)
}
@@ -0,0 +1,12 @@
package com.intellij.xml.frontend.split.editor
import com.intellij.psi.FileViewProvider
import com.intellij.psi.xml.XmlElementType
class FrontendHtmlFileImpl(
viewProvider: FileViewProvider,
) : FrontendFileImpl(viewProvider, XmlElementType.HTML_FILE) {
override fun toString(): String =
"HtmlFile:$name"
}
@@ -0,0 +1,22 @@
package com.intellij.xml.frontend.split.editor
import com.intellij.extapi.psi.ASTWrapperPsiElement
import com.intellij.lang.ASTNode
import com.intellij.lang.xml.BasicXmlElementFactory
import com.intellij.psi.FileViewProvider
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import com.intellij.psi.tree.IElementType
import com.intellij.psi.tree.IFileElementType
class FrontendXmlElementFactory :
BasicXmlElementFactory {
override fun createFile(
viewProvider: FileViewProvider,
elementType: IElementType,
): PsiFile =
FrontendXmlFileImpl(viewProvider, IFileElementType(viewProvider.baseLanguage))
override fun createElement(node: ASTNode): PsiElement =
ASTWrapperPsiElement(node)
}
@@ -0,0 +1,13 @@
package com.intellij.xml.frontend.split.editor
import com.intellij.psi.FileViewProvider
import com.intellij.psi.tree.IElementType
class FrontendXmlFileImpl(
viewProvider: FileViewProvider,
elementType: IElementType,
) : FrontendFileImpl(viewProvider, elementType) {
override fun toString(): String =
"XmlFile:$name"
}