From eed0df212ac073e55b598938ef7094b2c7dd0134 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Fri, 25 Apr 2014 15:29:06 +0400 Subject: [PATCH] do not process xs:include for stub building --- xml/dom-tests/testData/stubs/include.xml | 3 +++ xml/dom-tests/testData/stubs/inclusion.xml | 5 +++++ .../intellij/util/xml/stubs/DomStubBuilderTest.java | 10 ++++++++++ .../src/com/intellij/xml/util/InclusionProvider.java | 3 ++- 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 xml/dom-tests/testData/stubs/include.xml create mode 100644 xml/dom-tests/testData/stubs/inclusion.xml diff --git a/xml/dom-tests/testData/stubs/include.xml b/xml/dom-tests/testData/stubs/include.xml new file mode 100644 index 000000000000..f60b9f3841ea --- /dev/null +++ b/xml/dom-tests/testData/stubs/include.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/xml/dom-tests/testData/stubs/inclusion.xml b/xml/dom-tests/testData/stubs/inclusion.xml new file mode 100644 index 000000000000..199ed828168d --- /dev/null +++ b/xml/dom-tests/testData/stubs/inclusion.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/xml/dom-tests/tests/com/intellij/util/xml/stubs/DomStubBuilderTest.java b/xml/dom-tests/tests/com/intellij/util/xml/stubs/DomStubBuilderTest.java index 5f84b060089d..946e2d882a11 100644 --- a/xml/dom-tests/tests/com/intellij/util/xml/stubs/DomStubBuilderTest.java +++ b/xml/dom-tests/tests/com/intellij/util/xml/stubs/DomStubBuilderTest.java @@ -81,6 +81,16 @@ public class DomStubBuilderTest extends DomStubTest { assertNull(stubTree); // no stubs for invalid XML } + public void testInclusion() throws Exception { + myFixture.copyFileToProject("include.xml"); + doBuilderTest("inclusion.xml", "File:foo\n" + + " Element:foo\n" + + " Element:bar\n" + + " Attribute:string:xxx\n" + + " Attribute:int:666\n" + + " Element:bar\n"); + } + public static class TestExtender extends DomExtender { @Override diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/InclusionProvider.java b/xml/xml-psi-impl/src/com/intellij/xml/util/InclusionProvider.java index f0970b7031b9..7c05a0aaf750 100644 --- a/xml/xml-psi-impl/src/com/intellij/xml/util/InclusionProvider.java +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/InclusionProvider.java @@ -42,7 +42,8 @@ class InclusionProvider implements CachedValueProvider { @NotNull public static PsiElement[] getIncludedTags(XmlTag xincludeTag) { - return CachedValuesManager.getManager(xincludeTag.getProject()).getCachedValue(xincludeTag, new InclusionProvider(xincludeTag)); + if (XmlUtil.isStubBuilding()) return PsiElement.EMPTY_ARRAY; + return CachedValuesManager.getCachedValue(xincludeTag, new InclusionProvider(xincludeTag)); } public Result compute() {