mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
JspxCompletionTest fixed
This commit is contained in:
@@ -134,8 +134,13 @@ public class ExtendedTagInsertHandler extends XmlTagInsertHandler {
|
||||
if (myNamespace == null) {
|
||||
return null;
|
||||
}
|
||||
final XmlSchemaProvider provider = XmlSchemaProvider.getAvailableProvider(file);
|
||||
return provider == null ? null : provider.getDefaultPrefix(myNamespace, file);
|
||||
for (XmlSchemaProvider provider : XmlSchemaProvider.getAvailableProviders(file)) {
|
||||
String prefix = provider.getDefaultPrefix(myNamespace, file);
|
||||
if (prefix != null) {
|
||||
return prefix;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
protected Set<String> getNamespaces(final XmlFile file) {
|
||||
|
||||
+12
-5
@@ -11,10 +11,11 @@ import com.intellij.codeInsight.daemon.impl.HighlightInfo;
|
||||
import com.intellij.codeInsight.daemon.impl.quickfix.*;
|
||||
import com.intellij.javaee.ExternalResourceManager;
|
||||
import com.intellij.javaee.ExternalResourceManagerEx;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.xml.XmlAttribute;
|
||||
@@ -32,6 +33,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@@ -180,12 +182,17 @@ public class URLReference implements PsiReference, QuickFixProvider, EmptyResolv
|
||||
return myElement.getManager().areElementsEquivalent(resolve(),element);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Object[] getVariants() {
|
||||
final XmlFile file = (XmlFile)myElement.getContainingFile();
|
||||
final XmlSchemaProvider provider = XmlSchemaProvider.getAvailableProvider(file);
|
||||
if (provider != null) {
|
||||
final Set<String> strings = provider.getAvailableNamespaces(file, null);
|
||||
return ArrayUtil.toObjectArray(strings);
|
||||
Set<String> list = new HashSet<String>();
|
||||
for (XmlSchemaProvider provider : Extensions.getExtensions(XmlSchemaProvider.EP_NAME)) {
|
||||
if (provider.isAvailable(file)) {
|
||||
list.addAll(provider.getAvailableNamespaces(file, null));
|
||||
}
|
||||
}
|
||||
if (!list.isEmpty()) {
|
||||
return ArrayUtil.toObjectArray(list);
|
||||
}
|
||||
String[] resourceUrls = ExternalResourceManager.getInstance().getResourceUrls(null, true);
|
||||
final XmlDocument document = file.getDocument();
|
||||
|
||||
@@ -195,9 +195,10 @@ public class XmlDoctypeImpl extends XmlElementImpl implements XmlDoctype, XmlEle
|
||||
if (dtdUrlElement != null) {
|
||||
uriRefs = new PsiReference[1];
|
||||
uriRefs[0] = new URLReference(XmlDoctypeImpl.this) {
|
||||
@NotNull
|
||||
public Object[] getVariants() {
|
||||
return (docTypePublic != null)?
|
||||
super.getVariants(): PsiReference.EMPTY_ARRAY;
|
||||
super.getVariants(): EMPTY_ARRAY;
|
||||
}
|
||||
public String getCanonicalText() {
|
||||
return extractValue(dtdUrlElement);
|
||||
|
||||
@@ -20,16 +20,19 @@ import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtil;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.psi.PsiDirectory;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.xml.XmlFile;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@@ -66,6 +69,10 @@ public abstract class XmlSchemaProvider {
|
||||
return findSchema(url, module, baseFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #getAvailableProviders(com.intellij.psi.xml.XmlFile)
|
||||
*/
|
||||
@Deprecated
|
||||
@Nullable
|
||||
public static XmlSchemaProvider getAvailableProvider(final @NotNull XmlFile file) {
|
||||
for (XmlSchemaProvider provider: Extensions.getExtensions(EP_NAME)) {
|
||||
@@ -76,6 +83,14 @@ public abstract class XmlSchemaProvider {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static List<XmlSchemaProvider> getAvailableProviders(final @NotNull XmlFile file) {
|
||||
return ContainerUtil.findAll(Extensions.getExtensions(EP_NAME), new Condition<XmlSchemaProvider>() {
|
||||
public boolean value(XmlSchemaProvider xmlSchemaProvider) {
|
||||
return xmlSchemaProvider.isAvailable(file);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public abstract XmlFile getSchema(@NotNull @NonNls String url, @Nullable Module module, @NotNull final PsiFile baseFile);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user