deprecate DomPatterns.withDom, always require tag&attribute name to avoid creating dom unless needed

This commit is contained in:
peter
2015-05-27 11:46:02 +02:00
parent 1bc49d92b8
commit f52295d0f6
2 changed files with 8 additions and 1 deletions
@@ -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(),
@@ -50,6 +50,9 @@ public class DomPatterns {
return new GenericDomValuePattern<T>(aClass);
}
/**
* @deprecated use {@link #tagWithDom(String, ElementPattern)} and {@link #attributeWithDom(String, ElementPattern)}
*/
public static XmlElementPattern.Capture withDom(final ElementPattern<? extends DomElement> pattern) {
return new XmlElementPattern.Capture().with(new PatternCondition<XmlElement>("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<? extends DomElement> domPattern) {
return XmlPatterns.xmlAttribute().withLocalName(tagName).and(withDom(domPattern));
}
public static PsiElementPattern.Capture<PomTargetPsiElement> domTargetElement(final ElementPattern<? extends DomElement> pattern) {
return PlatformPatterns.pomElement(withDomTarget(pattern));
}