mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJPL-185506: include psi impl in frontend
GitOrigin-RevId: bd94abe98de747b69139e9ada51dadf5a33ddcea
This commit is contained in:
committed by
intellij-monorepo-bot
parent
18206ec049
commit
b5c1f87bec
@@ -23,6 +23,8 @@ jvm_library(
|
||||
"//platform/util",
|
||||
"//platform/editor-ui-api:editor-ui",
|
||||
"//xml/xml-frontback-impl:frontback-impl",
|
||||
"//xml/xml-psi-impl:psi-impl",
|
||||
"//xml/xml-psi-api:psi",
|
||||
],
|
||||
runtime_deps = [":frontend-split_resources"]
|
||||
)
|
||||
|
||||
@@ -18,5 +18,7 @@
|
||||
<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" />
|
||||
<orderEntry type="module" module-name="intellij.xml.psi.impl" />
|
||||
<orderEntry type="module" module-name="intellij.xml.psi" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -7,14 +7,14 @@
|
||||
</dependencies>
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<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"/>
|
||||
<highlightErrorFilter implementation="com.intellij.xml.frontend.split.editor.FrontendHtmlHighlightErrorFilter"/>
|
||||
|
||||
<virtualFileCustomDataConsumer implementation="com.intellij.xml.HtmlCodeStyleSettingsCustomDataSynchronizer"/>
|
||||
|
||||
<applicationService serviceInterface="com.intellij.javaee.ExternalResourceManager"
|
||||
serviceImplementation="com.intellij.javaee.ExternalResourceManagerExBase"/>
|
||||
|
||||
<applicationService serviceInterface="com.intellij.psi.impl.source.resolve.XmlResolveReferenceSupport"
|
||||
serviceImplementation="com.intellij.xml.frontend.split.editor.DummyXmlResolveReferenceSupport"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// 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.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.impl.source.resolve.XmlResolveReferenceSupport
|
||||
import com.intellij.psi.xml.XmlEntityDecl
|
||||
|
||||
class DummyXmlResolveReferenceSupport : XmlResolveReferenceSupport {
|
||||
override fun resolveReference(reference: PsiReference?): PsiElement? {
|
||||
return null
|
||||
}
|
||||
|
||||
override fun resolveReference(ref: com.intellij.psi.xml.XmlEntityRef, targetFile: PsiFile?): XmlEntityDecl? {
|
||||
return null
|
||||
}
|
||||
|
||||
override fun resolveSchemaTypeOrElementOrAttributeReference(element: PsiElement): PsiElement? {
|
||||
return null
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
// 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)
|
||||
}
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
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)
|
||||
}
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
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"
|
||||
}
|
||||
+6
-1
@@ -2,11 +2,16 @@
|
||||
package com.intellij.xml.frontend.split.editor
|
||||
|
||||
import com.intellij.codeInsight.highlighting.HighlightErrorFilter
|
||||
import com.intellij.idea.AppModeAssertions
|
||||
import com.intellij.psi.PsiErrorElement
|
||||
import com.intellij.psi.impl.source.xml.XmlFileImpl
|
||||
|
||||
class FrontendHtmlHighlightErrorFilter: HighlightErrorFilter() {
|
||||
override fun shouldHighlightErrorElement(element: PsiErrorElement): Boolean {
|
||||
val psiFile = element.getContainingFile()
|
||||
return psiFile !is FrontendFileImpl
|
||||
|
||||
if (psiFile is XmlFileImpl) return !AppModeAssertions.isFrontend()
|
||||
|
||||
return true
|
||||
}
|
||||
}
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
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)
|
||||
}
|
||||
-13
@@ -1,13 +0,0 @@
|
||||
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"
|
||||
}
|
||||
@@ -53,7 +53,6 @@ jvm_library(
|
||||
runtime_deps = [
|
||||
":psi-impl_resources",
|
||||
":psi-impl_resources_1",
|
||||
"//platform/backend",
|
||||
]
|
||||
)
|
||||
### auto-generated section `build intellij.xml.psi.impl` end
|
||||
@@ -34,7 +34,6 @@
|
||||
<orderEntry type="library" name="caffeine" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.platform.util.jdom" />
|
||||
<orderEntry type="module" module-name="intellij.platform.markdown.utils" />
|
||||
<orderEntry type="module" module-name="intellij.platform.backend" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="intellij.platform.polySymbols" />
|
||||
<orderEntry type="module" module-name="intellij.regexp" />
|
||||
<orderEntry type="module" module-name="intellij.xml.ui.common" exported="" />
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<idea-plugin>
|
||||
<dependencies>
|
||||
<module name="intellij.platform.backend"/>
|
||||
<module name="intellij.xml.psi"/>
|
||||
<module name="intellij.xml.parser"/>
|
||||
<module name="intellij.xml.frontback.impl"/>
|
||||
|
||||
Reference in New Issue
Block a user