From f52295d0f6ce8b69a37102c290bfb7517a2a2027 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 27 May 2015 11:46:02 +0200 Subject: [PATCH] deprecate DomPatterns.withDom, always require tag&attribute name to avoid creating dom unless needed --- .../references/MavenPropertyPsiReferenceContributor.java | 2 +- xml/dom-openapi/src/com/intellij/patterns/DomPatterns.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/references/MavenPropertyPsiReferenceContributor.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/references/MavenPropertyPsiReferenceContributor.java index 6ea57e425bf9..8042b573bf69 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/references/MavenPropertyPsiReferenceContributor.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/references/MavenPropertyPsiReferenceContributor.java @@ -27,7 +27,7 @@ import org.jetbrains.idea.maven.dom.model.MavenDomProperties; public class MavenPropertyPsiReferenceContributor extends PsiReferenceContributor { @Override public void registerReferenceProviders(@NotNull PsiReferenceRegistrar registrar) { - ElementPattern pattern = XmlPatterns.xmlTag().withParent(DomPatterns.withDom(DomPatterns.domElement(MavenDomProperties.class))); + ElementPattern pattern = XmlPatterns.xmlTag().withParent(DomPatterns.tagWithDom("properties", DomPatterns.domElement(MavenDomProperties.class))); registrar.registerReferenceProvider(pattern, new MavenPropertyPsiReferenceProvider(), PsiReferenceRegistrar.DEFAULT_PRIORITY); registrar.registerReferenceProvider(PlatformPatterns.psiElement(), new MavenFilteredPropertyPsiReferenceProvider(), diff --git a/xml/dom-openapi/src/com/intellij/patterns/DomPatterns.java b/xml/dom-openapi/src/com/intellij/patterns/DomPatterns.java index 94bb8e14442b..4c6ac8cd53de 100644 --- a/xml/dom-openapi/src/com/intellij/patterns/DomPatterns.java +++ b/xml/dom-openapi/src/com/intellij/patterns/DomPatterns.java @@ -50,6 +50,9 @@ public class DomPatterns { return new GenericDomValuePattern(aClass); } + /** + * @deprecated use {@link #tagWithDom(String, ElementPattern)} and {@link #attributeWithDom(String, ElementPattern)} + */ public static XmlElementPattern.Capture withDom(final ElementPattern pattern) { return new XmlElementPattern.Capture().with(new PatternCondition("tagWithDom") { @Override @@ -75,6 +78,10 @@ public class DomPatterns { return XmlPatterns.xmlTag().withLocalName(tagName).and(withDom(domPattern)); } + public static XmlNamedElementPattern.XmlAttributePattern attributeWithDom(String tagName, ElementPattern domPattern) { + return XmlPatterns.xmlAttribute().withLocalName(tagName).and(withDom(domPattern)); + } + public static PsiElementPattern.Capture domTargetElement(final ElementPattern pattern) { return PlatformPatterns.pomElement(withDomTarget(pattern)); }