preserve custom prefix for tag name completion
authorDmitry Avdeev <Dmitry.Avdeev@jetbrains.com>
Wed, 21 Dec 2011 07:53:14 +0000 (11:53 +0400)
committerDmitry Avdeev <Dmitry.Avdeev@jetbrains.com>
Wed, 21 Dec 2011 07:54:59 +0000 (11:54 +0400)
xml/impl/src/com/intellij/codeInsight/completion/XmlCompletionContributor.java

index bcde765f388dd1d54b132becdbc8b7d76c121d34..d293ff34118e22954c41f97abee58f7a129d278e 100644 (file)
@@ -150,10 +150,11 @@ public class XmlCompletionContributor extends CompletionContributor {
     final String namespace = tag.getNamespace();
     final String prefix = result.getPrefixMatcher().getPrefix();
     final int pos = prefix.indexOf(':');
-    final String namespacePrefix = pos > 0 ? prefix.substring(0, pos) : null;
 
     final PsiReference reference = tag.getReference();
-    if (reference != null && !namespace.isEmpty() && !tag.getNamespacePrefix().isEmpty()) {
+    String namespacePrefix = tag.getNamespacePrefix();
+
+    if (reference != null && !namespace.isEmpty() && !namespacePrefix.isEmpty()) {
       // fallback to simple completion
       final Set<LookupElement> set = new HashSet<LookupElement>();
       new XmlCompletionData().completeReference(reference, set, element, parameters.getOriginalFile(), parameters.getOffset());
@@ -170,7 +171,7 @@ public class XmlCompletionContributor extends CompletionContributor {
       for (Pair<String, String> pair : names) {
         final String name = pair.getFirst();
         final String ns = pair.getSecond();
-        final LookupElement item = createLookupElement(name, ns, ns, namespacePrefix);
+        final LookupElement item = createLookupElement(name, ns, ns, namespacePrefix.isEmpty() ? null : namespacePrefix);
         newResult.addElement(item);
       }
     }