From c69641118ce8f7069ef8a373bd3170a8b92c9bb6 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Fri, 11 Sep 2009 21:09:59 +0400 Subject: [PATCH] Allows to map external schemas to "local files" --- .../reference/impl/providers/URIReferenceProvider.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/xml/impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/URIReferenceProvider.java b/xml/impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/URIReferenceProvider.java index 4aa10337b2..ecfe809584 100644 --- a/xml/impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/URIReferenceProvider.java +++ b/xml/impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/URIReferenceProvider.java @@ -26,7 +26,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.StringTokenizer; -import java.io.File; /** * @by Maxim.Mossienko @@ -108,9 +107,16 @@ public class URIReferenceProvider extends PsiReferenceProvider { String url = tokenizer.nextToken(); offset = text.indexOf(url); - if (isUrlText(url)) refs.add(new DependentNSReference(element, new TextRange(offset,offset + url.length()), urlReference)); - else { - refs.addAll(Arrays.asList(new FileReferenceSet(url, element, offset, this, false).getAllReferences())); + final TextRange urlRange = new TextRange(offset, offset + url.length()); + if (isUrlText(url)) { + refs.add(new DependentNSReference(element, urlRange, urlReference)); + } else { + final FakeLocalSchemaReference ref = FakeLocalSchemaReference.getRefToRegisteredSchema(url, element, urlRange); + if (ref != null) { + refs.addAll(Arrays.asList(ref)); + } else { + refs.addAll(Arrays.asList(new FileReferenceSet(url, element, offset, this, false).getAllReferences())); + } } } @@ -155,5 +161,4 @@ public class URIReferenceProvider extends PsiReferenceProvider { private static URLReference[] getUrlReference(final PsiElement element, boolean soft) { return new URLReference[] { new URLReference(element, null, soft)}; } - } -- 2.11.4.GIT