From 6240eea3a79ebea5f5bf9fffedb16b21bbddcd53 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Tue, 20 Dec 2011 17:55:26 +0400 Subject: [PATCH] no tag name completion after declared prefix --- .../completion/XmlCompletionContributor.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/xml/impl/src/com/intellij/codeInsight/completion/XmlCompletionContributor.java b/xml/impl/src/com/intellij/codeInsight/completion/XmlCompletionContributor.java index cc1196429104..dec9c5de128c 100644 --- a/xml/impl/src/com/intellij/codeInsight/completion/XmlCompletionContributor.java +++ b/xml/impl/src/com/intellij/codeInsight/completion/XmlCompletionContributor.java @@ -33,10 +33,7 @@ import com.intellij.patterns.XmlPatterns; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiReference; import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.psi.xml.XmlAttributeValue; -import com.intellij.psi.xml.XmlFile; -import com.intellij.psi.xml.XmlTag; -import com.intellij.psi.xml.XmlTokenType; +import com.intellij.psi.xml.*; import com.intellij.util.Consumer; import com.intellij.util.ProcessingContext; import com.intellij.xml.XmlBundle; @@ -143,17 +140,20 @@ public class XmlCompletionContributor extends CompletionContributor { PsiElement element = parameters.getPosition(); if (!isXmlNameCompletion(parameters)) return; result.stopHere(); - if (!(element.getParent() instanceof XmlTag) || !(parameters.getOriginalFile() instanceof XmlFile)) { + PsiElement parent = element.getParent(); + if (!(parent instanceof XmlTag) || + !(parameters.getOriginalFile() instanceof XmlFile) || + !((XmlTag)parent).getNamespacePrefix().isEmpty()) { return; } - final XmlTag parent = (XmlTag)element.getParent(); - final String namespace = parent.getNamespace(); - final XmlElementDescriptor parentDescriptor = parent.getDescriptor(); + final XmlTag tag = (XmlTag)parent; + final String namespace = tag.getNamespace(); + final XmlElementDescriptor parentDescriptor = tag.getDescriptor(); final String prefix = result.getPrefixMatcher().getPrefix(); final int pos = prefix.indexOf(':'); final String namespacePrefix = pos > 0 ? prefix.substring(0, pos) : null; - final PsiReference reference = parent.getReference(); + final PsiReference reference = tag.getReference(); if (reference != null && namespace.length() > 0 && parentDescriptor != null && !(parentDescriptor instanceof AnyXmlElementDescriptor)) { final Set set = new HashSet(); new XmlCompletionData().completeReference(reference, set, element, parameters.getOriginalFile(), parameters.getOffset()); @@ -166,7 +166,7 @@ public class XmlCompletionContributor extends CompletionContributor { final CompletionResultSet newResult = result.withPrefixMatcher(pos >= 0 ? prefix.substring(pos + 1) : prefix); final XmlFile file = (XmlFile)parameters.getOriginalFile(); - final List> names = XmlExtension.getExtension(file).getAvailableTagNames(file, parent); + final List> names = XmlExtension.getExtension(file).getAvailableTagNames(file, tag); for (Pair pair : names) { final String name = pair.getFirst(); final String ns = pair.getSecond();