better API

This commit is contained in:
Dmitry Avdeev
2013-07-31 19:07:19 +04:00
parent 404f969cb5
commit b3cca49f78
2 changed files with 16 additions and 5 deletions

View File

@@ -17,6 +17,7 @@ package com.intellij.xml;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.impl.source.xml.SchemaPrefix;
import com.intellij.psi.impl.source.xml.TagNameVariantCollector;
@@ -27,6 +28,7 @@ import com.intellij.psi.xml.XmlTag;
import com.intellij.xml.util.XmlUtil;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.*;
@@ -51,11 +53,17 @@ public class DefaultXmlExtension extends XmlExtension {
List<XmlElementDescriptor> descriptors = TagNameVariantCollector.getTagDescriptors(context, namespaces, nsInfo);
final List<TagInfo> set = new ArrayList<TagInfo>();
for (int i = 0; i < descriptors.size(); i++) {
XmlElementDescriptor descriptor = descriptors.get(i);
final XmlElementDescriptor descriptor = descriptors.get(i);
String qualifiedName = descriptor.getName(context);
final int pos = qualifiedName.indexOf(':');
final String name = pos >= 0 ? qualifiedName.substring(pos + 1) : qualifiedName;
set.add(new TagInfo(name, nsInfo.get(i), descriptors.get(i).getDeclaration()));
set.add(new TagInfo(name, nsInfo.get(i)) {
@Nullable
@Override
public PsiElement getDeclaration() {
return descriptor.getDeclaration();
}
});
}
return set;
}

View File

@@ -67,12 +67,15 @@ public abstract class XmlExtension {
public final String name;
public final String namespace;
public @Nullable final PsiElement declaration;
public TagInfo(String name, String namespace, @Nullable PsiElement declaration) {
public TagInfo(String name, String namespace) {
this.name = name;
this.namespace = namespace;
this.declaration = declaration;
}
@Nullable
public PsiElement getDeclaration() {
return null;
}
}