From 8af4dc4fe6feb7ecfc3bd88ee7fbcba14c52c6a4 Mon Sep 17 00:00:00 2001 From: sweinreuter Date: Mon, 18 Apr 2011 18:58:25 +0200 Subject: [PATCH] IDEA-68391 XPath 2: cast expression: completion shows "No suggestions" --- .../XPathCompletionContributor.java | 30 +++++++++++++-- .../lang/xpath/XPath2CompletionTest.java | 37 +++++++++++++++++++ .../lang/xpath/XPath2HighlightingTest.java | 2 +- .../lang/xpath/XPath2ParsingTest.java | 2 +- .../intellij/lang/xpath/XPath2TypeTest.java | 2 +- .../lang/xpath/xslt/Xslt2CompletionTest.java | 4 ++ .../xpath2/completion/castInsert.xpath2 | 1 + .../xpath2/completion/castInsert_after.xpath2 | 1 + .../xpath2/completion/treatInsert.xpath2 | 1 + .../completion/treatInsert_after.xpath2 | 1 + .../highlighting/consecutiveComparison.xpath2 | 0 .../highlighting/emptyStringLiteral.xpath2 | 0 .../highlighting/ifInsideArgumentList.xpath2 | 0 .../malformedStringLiteral.xpath2 | 0 .../highlighting/numberFollowedByToken.xpath2 | 0 .../numberFollowedByToken2.xpath2 | 0 .../highlighting/quotedStringLiteral.xpath2 | 0 .../highlighting/types/anyToString.xpath2 | 0 .../types/booleanComparisonIDEA67348.xpath2 | 0 .../highlighting/types/dynamicContext1.xpath2 | 0 .../highlighting/types/dynamicContext2.xpath2 | 0 .../highlighting/types/dynamicContext3.xpath2 | 0 .../highlighting/types/intSeqToAnySeq.xpath2 | 0 .../types/intSeqToStringSeq.xpath2 | 0 .../highlighting/types/integerToString.xpath2 | 0 .../highlighting/types/invalidPath.xpath2 | 0 .../highlighting/types/nodeToDouble.xpath2 | 0 .../highlighting/types/nodeToNode.xpath2 | 0 .../highlighting/types/numberToNode.xpath2 | 0 .../highlighting/types/qNameToBoolean.xpath2 | 0 .../highlighting/types/qNameToQName.xpath2 | 0 .../types/stringFunctionOnPath.xpath2 | 0 .../highlighting/types/stringToAny.xpath2 | 0 .../highlighting/types/stringToBoolean.xpath2 | 0 .../highlighting/types/stringToQName.xpath2 | 0 .../types/toNumericIDEA67335.xpath2 | 0 .../highlighting/types/uriToBoolean.xpath2 | 0 .../{xpath => xpath2}/parsing/comments.xpath2 | 0 .../parsing/doubleLiterals.xpath2 | 0 .../parsing/emptySequence.xpath2 | 0 .../{xpath => xpath2}/parsing/forLoop.xpath2 | 0 .../parsing/ifThenElse.xpath2 | 0 .../parsing/ifThenElseMissing.xpath2 | 0 .../{xpath => xpath2}/parsing/newOps.xpath2 | 0 .../{xpath => xpath2}/parsing/nodeComp.xpath2 | 0 .../{xpath => xpath2}/parsing/range.xpath2 | 0 .../{xpath => xpath2}/parsing/sequence.xpath2 | 0 .../parsing/someEvery.xpath2 | 0 .../parsing/typeExpressions.xpath2 | 0 .../xslt2/completion/typeCompletion.xsl | 9 +++++ .../xslt2/completion/typeCompletion_after.xsl | 9 +++++ 51 files changed, 92 insertions(+), 7 deletions(-) create mode 100644 plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2CompletionTest.java create mode 100644 plugins/xpath/xpath-lang/testData/xpath2/completion/castInsert.xpath2 create mode 100644 plugins/xpath/xpath-lang/testData/xpath2/completion/castInsert_after.xpath2 create mode 100644 plugins/xpath/xpath-lang/testData/xpath2/completion/treatInsert.xpath2 create mode 100644 plugins/xpath/xpath-lang/testData/xpath2/completion/treatInsert_after.xpath2 rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/consecutiveComparison.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/emptyStringLiteral.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/ifInsideArgumentList.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/malformedStringLiteral.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/numberFollowedByToken.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/numberFollowedByToken2.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/quotedStringLiteral.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/anyToString.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/booleanComparisonIDEA67348.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/dynamicContext1.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/dynamicContext2.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/dynamicContext3.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/intSeqToAnySeq.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/intSeqToStringSeq.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/integerToString.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/invalidPath.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/nodeToDouble.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/nodeToNode.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/numberToNode.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/qNameToBoolean.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/qNameToQName.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/stringFunctionOnPath.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/stringToAny.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/stringToBoolean.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/stringToQName.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/toNumericIDEA67335.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/highlighting/types/uriToBoolean.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/comments.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/doubleLiterals.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/emptySequence.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/forLoop.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/ifThenElse.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/ifThenElseMissing.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/newOps.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/nodeComp.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/range.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/sequence.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/someEvery.xpath2 (100%) rename plugins/xpath/xpath-lang/testData/{xpath => xpath2}/parsing/typeExpressions.xpath2 (100%) create mode 100644 plugins/xpath/xpath-lang/testData/xslt2/completion/typeCompletion.xsl create mode 100644 plugins/xpath/xpath-lang/testData/xslt2/completion/typeCompletion_after.xsl diff --git a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/completion/XPathCompletionContributor.java b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/completion/XPathCompletionContributor.java index 28506224370e..5710cf8d6fc9 100644 --- a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/completion/XPathCompletionContributor.java +++ b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/completion/XPathCompletionContributor.java @@ -24,6 +24,7 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.Function; import com.intellij.util.ProcessingContext; import com.intellij.util.containers.ContainerUtil; +import org.intellij.lang.xpath.context.NamespaceContext; import org.intellij.lang.xpath.psi.*; import org.jetbrains.annotations.NotNull; @@ -81,7 +82,24 @@ public class XPathCompletionContributor extends CompletionContributor { extend(CompletionType.BASIC, psiElement().withParent(psiElement(XPath2TypeElement.class).without(prefix())), new CompletionProvider() { protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet result) { final XPathElement parent = PsiTreeUtil.getParentOfType(parameters.getPosition(), XPathElement.class); - addResult(result, CompletionLists.getNodeTypeCompletions(parent), parameters.getPosition(), parameters.getOffset()); + assert parent != null; + + if (parent.getParent() instanceof XPath2TreatAs || parent.getParent() instanceof XPath2InstanceOf) { + addResult(result, CompletionLists.getNodeTypeCompletions(parent), parameters.getPosition(), parameters.getOffset()); + } + + final NamespaceContext namespaceContext = parent.getXPathContext().getNamespaceContext(); + if (namespaceContext != null) { + final String prefixForURI = namespaceContext.getPrefixForURI(XPath2Type.XMLSCHEMA_NS, parent.getXPathContext().getContextElement()); + if (prefixForURI != null && prefixForURI.length() > 0) { + addResult(result, ContainerUtil.map(XPath2Type.SchemaType.listSchemaTypes(), new Function() { + @Override + public Lookup fun(XPath2Type type) { + return new MyLookup(prefixForURI + ":" + type.getQName().getLocalPart()); + } + }), parameters.getPosition(), parameters.getOffset()); + } + } } }); extend(CompletionType.BASIC, psiElement().withParent(psiElement(XPath2TypeElement.class).with(prefix())), new CompletionProvider() { @@ -94,8 +112,7 @@ public class XPathCompletionContributor extends CompletionContributor { addResult(result, ContainerUtil.map(XPath2Type.SchemaType.listSchemaTypes(), new Function() { @Override public Lookup fun(XPath2Type type) { - return new AbstractLookup(type.getQName().getLocalPart(), type.getName()) { - }; + return new MyLookup(type.getQName().getLocalPart()); } }), parameters.getPosition(), parameters.getOffset()); } @@ -130,7 +147,6 @@ public class XPathCompletionContributor extends CompletionContributor { String prefix = CompletionData.findPrefixStatic(element, i); if (element.getParent() instanceof XPathVariableReference) { - final String text = element.getText(); prefix = "$" + prefix; } @@ -155,4 +171,10 @@ public class XPathCompletionContributor extends CompletionContributor { return prefix; } + + private static class MyLookup extends AbstractLookup { + public MyLookup(String name) { + super(name, name); + } + } } diff --git a/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2CompletionTest.java b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2CompletionTest.java new file mode 100644 index 000000000000..557fc13cfa0b --- /dev/null +++ b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2CompletionTest.java @@ -0,0 +1,37 @@ +/* + * Copyright 2000-2011 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.intellij.lang.xpath; + +public class XPath2CompletionTest extends TestBase { + + public void testCastInsert() throws Throwable { + doXPathCompletion(); + } + + public void testTreatInsert() throws Throwable { + doXPathCompletion(); + } + + private void doXPathCompletion() throws Throwable { + final String name = getTestFileName(); + myFixture.testCompletion(name + ".xpath2", name + "_after.xpath2"); + } + + @Override + protected String getSubPath() { + return "xpath2/completion"; + } +} \ No newline at end of file diff --git a/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2HighlightingTest.java b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2HighlightingTest.java index 08b58dd1d83f..23b168ec4fe7 100644 --- a/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2HighlightingTest.java +++ b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2HighlightingTest.java @@ -51,6 +51,6 @@ public class XPath2HighlightingTest extends XPath2HighlightingTestBase { @Override protected String getSubPath() { - return "xpath/highlighting"; + return "xpath2/highlighting"; } } \ No newline at end of file diff --git a/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2ParsingTest.java b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2ParsingTest.java index 8232ef43e486..c06ed53311af 100644 --- a/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2ParsingTest.java +++ b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2ParsingTest.java @@ -74,6 +74,6 @@ public class XPath2ParsingTest extends TestBase { @Override protected String getSubPath() { - return "xpath/parsing"; + return "xpath2/parsing"; } } diff --git a/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2TypeTest.java b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2TypeTest.java index c9ca1d0cafa6..6e52ab359d9b 100644 --- a/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2TypeTest.java +++ b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/XPath2TypeTest.java @@ -99,6 +99,6 @@ public class XPath2TypeTest extends XPath2HighlightingTestBase { @Override protected String getSubPath() { - return "xpath/highlighting/types"; + return "xpath2/highlighting/types"; } } diff --git a/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/xslt/Xslt2CompletionTest.java b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/xslt/Xslt2CompletionTest.java index a6c556b0019c..0f7ff29f8a0f 100644 --- a/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/xslt/Xslt2CompletionTest.java +++ b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/xslt/Xslt2CompletionTest.java @@ -28,6 +28,10 @@ public class Xslt2CompletionTest extends TestBase { doXsltCompletion(); } + public void testTypeCompletion() throws Throwable { + doXsltCompletion(); + } + private void doXsltCompletion(String... moreFiles) throws Throwable { final String name = getTestFileName(); myFixture.testCompletion(name + ".xsl", name + "_after.xsl", moreFiles); diff --git a/plugins/xpath/xpath-lang/testData/xpath2/completion/castInsert.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/completion/castInsert.xpath2 new file mode 100644 index 000000000000..5ce9450ed036 --- /dev/null +++ b/plugins/xpath/xpath-lang/testData/xpath2/completion/castInsert.xpath2 @@ -0,0 +1 @@ +1 cast as a \ No newline at end of file diff --git a/plugins/xpath/xpath-lang/testData/xpath2/completion/castInsert_after.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/completion/castInsert_after.xpath2 new file mode 100644 index 000000000000..5ce9450ed036 --- /dev/null +++ b/plugins/xpath/xpath-lang/testData/xpath2/completion/castInsert_after.xpath2 @@ -0,0 +1 @@ +1 cast as a \ No newline at end of file diff --git a/plugins/xpath/xpath-lang/testData/xpath2/completion/treatInsert.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/completion/treatInsert.xpath2 new file mode 100644 index 000000000000..c028df5cf92d --- /dev/null +++ b/plugins/xpath/xpath-lang/testData/xpath2/completion/treatInsert.xpath2 @@ -0,0 +1 @@ +1 treat as a \ No newline at end of file diff --git a/plugins/xpath/xpath-lang/testData/xpath2/completion/treatInsert_after.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/completion/treatInsert_after.xpath2 new file mode 100644 index 000000000000..ce17052b7499 --- /dev/null +++ b/plugins/xpath/xpath-lang/testData/xpath2/completion/treatInsert_after.xpath2 @@ -0,0 +1 @@ +1 treat as attribute() \ No newline at end of file diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/consecutiveComparison.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/consecutiveComparison.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/consecutiveComparison.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/consecutiveComparison.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/emptyStringLiteral.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/emptyStringLiteral.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/emptyStringLiteral.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/emptyStringLiteral.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/ifInsideArgumentList.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/ifInsideArgumentList.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/ifInsideArgumentList.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/ifInsideArgumentList.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/malformedStringLiteral.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/malformedStringLiteral.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/malformedStringLiteral.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/malformedStringLiteral.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/numberFollowedByToken.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/numberFollowedByToken.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/numberFollowedByToken.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/numberFollowedByToken.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/numberFollowedByToken2.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/numberFollowedByToken2.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/numberFollowedByToken2.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/numberFollowedByToken2.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/quotedStringLiteral.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/quotedStringLiteral.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/quotedStringLiteral.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/quotedStringLiteral.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/anyToString.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/anyToString.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/anyToString.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/anyToString.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/booleanComparisonIDEA67348.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/booleanComparisonIDEA67348.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/booleanComparisonIDEA67348.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/booleanComparisonIDEA67348.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/dynamicContext1.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/dynamicContext1.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/dynamicContext1.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/dynamicContext1.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/dynamicContext2.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/dynamicContext2.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/dynamicContext2.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/dynamicContext2.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/dynamicContext3.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/dynamicContext3.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/dynamicContext3.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/dynamicContext3.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/intSeqToAnySeq.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/intSeqToAnySeq.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/intSeqToAnySeq.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/intSeqToAnySeq.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/intSeqToStringSeq.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/intSeqToStringSeq.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/intSeqToStringSeq.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/intSeqToStringSeq.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/integerToString.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/integerToString.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/integerToString.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/integerToString.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/invalidPath.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/invalidPath.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/invalidPath.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/invalidPath.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/nodeToDouble.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/nodeToDouble.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/nodeToDouble.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/nodeToDouble.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/nodeToNode.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/nodeToNode.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/nodeToNode.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/nodeToNode.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/numberToNode.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/numberToNode.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/numberToNode.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/numberToNode.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/qNameToBoolean.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/qNameToBoolean.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/qNameToBoolean.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/qNameToBoolean.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/qNameToQName.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/qNameToQName.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/qNameToQName.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/qNameToQName.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/stringFunctionOnPath.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/stringFunctionOnPath.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/stringFunctionOnPath.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/stringFunctionOnPath.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/stringToAny.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/stringToAny.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/stringToAny.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/stringToAny.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/stringToBoolean.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/stringToBoolean.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/stringToBoolean.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/stringToBoolean.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/stringToQName.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/stringToQName.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/stringToQName.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/stringToQName.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/toNumericIDEA67335.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/toNumericIDEA67335.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/toNumericIDEA67335.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/toNumericIDEA67335.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/highlighting/types/uriToBoolean.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/uriToBoolean.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/highlighting/types/uriToBoolean.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/highlighting/types/uriToBoolean.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/comments.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/comments.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/comments.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/comments.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/doubleLiterals.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/doubleLiterals.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/doubleLiterals.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/doubleLiterals.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/emptySequence.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/emptySequence.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/emptySequence.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/emptySequence.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/forLoop.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/forLoop.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/forLoop.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/forLoop.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/ifThenElse.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/ifThenElse.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/ifThenElse.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/ifThenElse.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/ifThenElseMissing.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/ifThenElseMissing.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/ifThenElseMissing.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/ifThenElseMissing.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/newOps.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/newOps.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/newOps.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/newOps.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/nodeComp.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/nodeComp.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/nodeComp.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/nodeComp.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/range.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/range.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/range.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/range.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/sequence.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/sequence.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/sequence.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/sequence.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/someEvery.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/someEvery.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/someEvery.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/someEvery.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xpath/parsing/typeExpressions.xpath2 b/plugins/xpath/xpath-lang/testData/xpath2/parsing/typeExpressions.xpath2 similarity index 100% rename from plugins/xpath/xpath-lang/testData/xpath/parsing/typeExpressions.xpath2 rename to plugins/xpath/xpath-lang/testData/xpath2/parsing/typeExpressions.xpath2 diff --git a/plugins/xpath/xpath-lang/testData/xslt2/completion/typeCompletion.xsl b/plugins/xpath/xpath-lang/testData/xslt2/completion/typeCompletion.xsl new file mode 100644 index 000000000000..17e2a2cc9b8b --- /dev/null +++ b/plugins/xpath/xpath-lang/testData/xslt2/completion/typeCompletion.xsl @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/plugins/xpath/xpath-lang/testData/xslt2/completion/typeCompletion_after.xsl b/plugins/xpath/xpath-lang/testData/xslt2/completion/typeCompletion_after.xsl new file mode 100644 index 000000000000..d9ec8d55fe32 --- /dev/null +++ b/plugins/xpath/xpath-lang/testData/xslt2/completion/typeCompletion_after.xsl @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file