You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by db...@apache.org on 2021/06/08 08:34:39 UTC
[netbeans] branch master updated: LSP: groovy initial support
(#2983)
This is an automated email from the ASF dual-hosted git repository.
dbalek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new d3ca797 LSP: groovy initial support (#2983)
d3ca797 is described below
commit d3ca7971bb0c1f59366eb96e1bc7854808ec7e4c
Author: Dusan Balek <du...@oracle.com>
AuthorDate: Tue Jun 8 10:34:02 2021 +0200
LSP: groovy initial support (#2983)
* Upgrading groovy libs to 3.0.8
* Initial Groovy support added to NBLS.
---
groovy/groovy.editor/manifest.mf | 4 +-
.../org-netbeans-modules-groovy-editor.sig | 37 +++--
groovy/groovy.editor/nbproject/project.xml | 2 +-
.../groovy/editor/api/PathFinderVisitor.java | 5 +
.../groovy/editor/api/completion/Bundle.properties | 2 +-
.../api/completion/util/CompletionContext.java | 9 +-
.../editor/api/elements/index/IndexedMethod.java | 2 +-
.../groovy/editor/api/parser/GroovyParser.java | 54 +++++++-
.../editor/completion/NamedParamsCompletion.java | 28 +++-
.../groovy/editor/utils/ASTChildrenVisitor.java | 27 ++--
.../test/unit/data/testfiles/Hello.groovy.indexed | 8 ++
...evels1.groovy.testBasicAccessLevels1.completion | 5 +-
...Closure1.groovy.testInsideClosure1_1.completion | 11 +-
...llections1.groovy.testCollections1_3.completion | 2 +
...llections1.groovy.testCollections1_5.completion | 8 +-
...ls1.groovy.testCollectionLiterals1_1.completion | 2 +
...ls2.groovy.testCollectionLiterals2_1.completion | 2 +
...1.groovy.testCompletionReturnType1_1.completion | 2 +
...1.groovy.testCompletionReturnType1_2.completion | 2 +
...1.groovy.testCompletionReturnType1_3.completion | 2 +
...1.groovy.testCompletionReturnType1_4.completion | 2 +
...1.groovy.testCompletionReturnType1_5.completion | 2 +
...1.groovy.testCompletionReturnType1_6.completion | 2 +
...1.groovy.testCompletionReturnType1_7.completion | 2 +
.../Inference1.groovy.testInference1.completion | 2 +
.../Inference1.groovy.testInference2.completion | 8 ++
...n1.groovy.testInterfaceCompletion1_1.completion | 2 +-
...1.groovy.testCompletionForLiteral1_3.completion | 2 +
....testCompletionGeneratedAccessors1_1.completion | 2 +-
....testCompletionGeneratedAccessors1_2.completion | 2 +-
....groovy.testCompletionGroovyClass1_1.completion | 5 +-
....groovy.testCompletionGroovySuper1_1.completion | 1 +
...1.groovy.testCompletionGroovyThis1_1.completion | 2 +-
...r1.groovy.testCompletionInsideFor1_2.completion | 3 +-
...groovy.testCompletionNoPrefixString1.completion | 15 +++
...groovy.testCompletionNoPrefixString2.completion | 15 +++
.../Methods1.groovy.testMethods1_4.completion | 1 +
.../Methods2.groovy.testMethods2_1.completion | 1 +
...structor.groovy.testEmptyConstructor.completion | 13 +-
....testFewParamsConstructor_AfterComma.completion | 9 ++
...ramsConstructor_AfterLeftParenthesis.completion | 9 ++
...amsConstructor_InsideNamedParameter2.completion | 9 ++
...perator1.groovy.testElvisOperator1_1.completion | 1 +
...perator2.groovy.testElvisOperator2_1.completion | 1 +
...perator3.groovy.testElvisOperator3_1.completion | 1 +
....testSpreadOperator1_stringArray_all.completion | 17 ++-
...tSpreadOperator2_stringArray_sPrefix.completion | 5 +-
...ovy.testSpreadOperator3_intArray_all.completion | 1 +
...testSpreadOperator4_intArray_sPrefix.completion | 3 +-
...oovy.testAfterExtendsTypeCompletion1.completion | 11 +-
...te1_interfaceDelegator_withoutPrefix.completion | 5 +-
....groovy.testSingleton2_withGetPrefix.completion | 2 +-
....groovy.testSingleton3_withoutPrefix.completion | 5 +-
.../editor/api/GroovyDeclarationFinderTest.java | 29 ++--
.../modules/groovy/editor/api/GroovyIndexTest.java | 3 +-
.../parser/GroovyVirtualSourceProviderTest.java | 26 +++-
groovy/groovy.gsp/nbproject/project.xml | 14 +-
groovy/groovy.kit/nbproject/project.xml | 4 +-
groovy/groovy.refactoring/nbproject/project.xml | 26 ++--
groovy/libs.groovy/external/binaries-list | 4 +-
...2.5.14-license.txt => groovy-3.0.8-license.txt} | 4 +-
...y-2.5.14-notice.txt => groovy-3.0.8-notice.txt} | 0
groovy/libs.groovy/manifest.mf | 2 +-
groovy/libs.groovy/nbproject/project.properties | 4 +-
groovy/libs.groovy/nbproject/project.xml | 7 +-
.../parser/antlr4/util/PositionConfigureUtils.java | 150 +++++++++++++++++++++
.../nbcode/nbproject/platform.properties | 10 +-
java/java.lsp.server/script/etc/nbcode.clusters | 1 +
java/java.lsp.server/vscode/src/extension.ts | 7 +-
69 files changed, 543 insertions(+), 123 deletions(-)
diff --git a/groovy/groovy.editor/manifest.mf b/groovy/groovy.editor/manifest.mf
index 33dcedb..ec33846 100644
--- a/groovy/groovy.editor/manifest.mf
+++ b/groovy/groovy.editor/manifest.mf
@@ -1,6 +1,6 @@
Manifest-Version: 1.0
AutoUpdate-Show-In-Client: false
-OpenIDE-Module: org.netbeans.modules.groovy.editor/2
+OpenIDE-Module: org.netbeans.modules.groovy.editor/3
OpenIDE-Module-Layer: org/netbeans/modules/groovy/editor/resources/layer.xml
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/groovy/editor/Bundle.properties
-OpenIDE-Module-Specification-Version: 1.75
+OpenIDE-Module-Specification-Version: 1.76
diff --git a/groovy/groovy.editor/nbproject/org-netbeans-modules-groovy-editor.sig b/groovy/groovy.editor/nbproject/org-netbeans-modules-groovy-editor.sig
index 118f8f2..cd58674 100644
--- a/groovy/groovy.editor/nbproject/org-netbeans-modules-groovy-editor.sig
+++ b/groovy/groovy.editor/nbproject/org-netbeans-modules-groovy-editor.sig
@@ -1,5 +1,5 @@
#Signature file v4.1
-#Version 1.74
+#Version 1.76
CLSS public abstract interface java.io.Serializable
@@ -21,7 +21,6 @@ meth public final java.lang.String name()
meth public java.lang.String toString()
meth public static <%0 extends java.lang.Enum<{%%0}>> {%%0} valueOf(java.lang.Class<{%%0}>,java.lang.String)
supr java.lang.Object
-hfds name,ordinal
CLSS public abstract interface java.lang.Iterable<%0 extends java.lang.Object>
meth public abstract java.util.Iterator<{java.lang.Iterable%0}> iterator()
@@ -44,24 +43,19 @@ meth public java.lang.String toString()
CLSS public org.codehaus.groovy.ast.ASTNode
cons public init()
-meth public <%0 extends java.lang.Object> {%%0} getNodeMetaData(java.lang.Object)
-meth public boolean equals(java.lang.Object)
+intf org.codehaus.groovy.ast.NodeMetaDataHandler
meth public int getColumnNumber()
meth public int getLastColumnNumber()
meth public int getLastLineNumber()
meth public int getLineNumber()
-meth public int hashCode()
-meth public java.lang.Object putNodeMetaData(java.lang.Object,java.lang.Object)
meth public java.lang.String getText()
-meth public java.util.Map<?,?> getNodeMetaData()
-meth public org.codehaus.groovy.util.ListHashMap getMetaDataMap()
+meth public java.util.Map<?,?> getMetaDataMap()
meth public void copyNodeMetaData(org.codehaus.groovy.ast.ASTNode)
-meth public void removeNodeMetaData(java.lang.Object)
meth public void setColumnNumber(int)
meth public void setLastColumnNumber(int)
meth public void setLastLineNumber(int)
meth public void setLineNumber(int)
-meth public void setNodeMetaData(java.lang.Object,java.lang.Object)
+meth public void setMetaDataMap(java.util.Map<?,?>)
meth public void setSourcePosition(org.codehaus.groovy.ast.ASTNode)
meth public void visit(org.codehaus.groovy.ast.GroovyCodeVisitor)
supr java.lang.Object
@@ -72,6 +66,7 @@ cons public init()
intf org.codehaus.groovy.ast.GroovyClassVisitor
intf org.codehaus.groovy.transform.ErrorCollecting
meth protected abstract org.codehaus.groovy.control.SourceUnit getSourceUnit()
+meth protected void visitAnnotation(org.codehaus.groovy.ast.AnnotationNode)
meth protected void visitClassCodeContainer(org.codehaus.groovy.ast.stmt.Statement)
meth protected void visitConstructorOrMethod(org.codehaus.groovy.ast.MethodNode,boolean)
meth protected void visitObjectInitializerStatements(org.codehaus.groovy.ast.ClassNode)
@@ -107,8 +102,7 @@ supr org.codehaus.groovy.ast.CodeVisitorSupport
CLSS public abstract org.codehaus.groovy.ast.CodeVisitorSupport
cons public init()
intf org.codehaus.groovy.ast.GroovyCodeVisitor
-meth protected void visitEmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement)
-meth protected void visitListOfExpressions(java.util.List<? extends org.codehaus.groovy.ast.expr.Expression>)
+meth protected void afterSwitchConditionExpressionVisited(org.codehaus.groovy.ast.stmt.SwitchStatement)
meth public void visitArgumentlistExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression)
meth public void visitArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression)
meth public void visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement)
@@ -130,16 +124,19 @@ meth public void visitConstructorCallExpression(org.codehaus.groovy.ast.expr.Con
meth public void visitContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement)
meth public void visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression)
meth public void visitDoWhileLoop(org.codehaus.groovy.ast.stmt.DoWhileStatement)
+meth public void visitEmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement)
meth public void visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement)
meth public void visitFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression)
meth public void visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement)
meth public void visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression)
meth public void visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement)
+meth public void visitLambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression)
meth public void visitListExpression(org.codehaus.groovy.ast.expr.ListExpression)
meth public void visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression)
meth public void visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression)
meth public void visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression)
meth public void visitMethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression)
+meth public void visitMethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression)
meth public void visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression)
meth public void visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression)
meth public void visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression)
@@ -196,11 +193,13 @@ meth public abstract void visitFieldExpression(org.codehaus.groovy.ast.expr.Fiel
meth public abstract void visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement)
meth public abstract void visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression)
meth public abstract void visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement)
+meth public abstract void visitLambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression)
meth public abstract void visitListExpression(org.codehaus.groovy.ast.expr.ListExpression)
meth public abstract void visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression)
meth public abstract void visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression)
meth public abstract void visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression)
meth public abstract void visitMethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression)
+meth public abstract void visitMethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression)
meth public abstract void visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression)
meth public abstract void visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression)
meth public abstract void visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression)
@@ -221,6 +220,20 @@ meth public abstract void visitUnaryMinusExpression(org.codehaus.groovy.ast.expr
meth public abstract void visitUnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression)
meth public abstract void visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression)
meth public abstract void visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement)
+meth public void visitEmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression)
+meth public void visitEmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement)
+meth public void visitListOfExpressions(java.util.List<? extends org.codehaus.groovy.ast.expr.Expression>)
+
+CLSS public abstract interface org.codehaus.groovy.ast.NodeMetaDataHandler
+meth public <%0 extends java.lang.Object> {%%0} getNodeMetaData(java.lang.Object)
+meth public <%0 extends java.lang.Object> {%%0} getNodeMetaData(java.lang.Object,java.util.function.Function<?,? extends {%%0}>)
+meth public abstract java.util.Map<?,?> getMetaDataMap()
+meth public abstract void setMetaDataMap(java.util.Map<?,?>)
+meth public java.lang.Object putNodeMetaData(java.lang.Object,java.lang.Object)
+meth public java.util.Map<?,?> getNodeMetaData()
+meth public void copyNodeMetaData(org.codehaus.groovy.ast.NodeMetaDataHandler)
+meth public void removeNodeMetaData(java.lang.Object)
+meth public void setNodeMetaData(java.lang.Object,java.lang.Object)
CLSS public abstract interface org.codehaus.groovy.transform.ErrorCollecting
meth public abstract void addError(java.lang.String,org.codehaus.groovy.ast.ASTNode)
diff --git a/groovy/groovy.editor/nbproject/project.xml b/groovy/groovy.editor/nbproject/project.xml
index d971f65..206ae05 100644
--- a/groovy/groovy.editor/nbproject/project.xml
+++ b/groovy/groovy.editor/nbproject/project.xml
@@ -249,7 +249,7 @@
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
- <specification-version>1.0</specification-version>
+ <specification-version>2.11</specification-version>
</run-dependency>
</dependency>
<dependency>
diff --git a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/PathFinderVisitor.java b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/PathFinderVisitor.java
index 52e52f6..b53c49e 100644
--- a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/PathFinderVisitor.java
+++ b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/PathFinderVisitor.java
@@ -594,6 +594,11 @@ public class PathFinderVisitor extends ClassCodeVisitorSupport {
return addToPath ? true : false;
}
+ if (node instanceof ArgumentListExpression || node instanceof TupleExpression) {
+ beginColumn++;
+ endColumn--;
+ }
+
boolean result = false;
if (beginLine == endLine) {
diff --git a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/completion/Bundle.properties b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/completion/Bundle.properties
index 227f1ef..5e40dc7 100644
--- a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/completion/Bundle.properties
+++ b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/completion/Bundle.properties
@@ -16,4 +16,4 @@
# under the License.
GroovyCompletion_NoJavaDocFound=<h2>Unable to find the doc for JDK/GDK.</h2><br>\
-You can configure GDK 2.4.5 doc folder in Tools/Options/Miscellaneous/Groovy.
+You can configure GDK 3.0.8 doc folder in Tools/Options/Miscellaneous/Groovy.
diff --git a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/completion/util/CompletionContext.java b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/completion/util/CompletionContext.java
index 20dccb3..222c205 100644
--- a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/completion/util/CompletionContext.java
+++ b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/completion/util/CompletionContext.java
@@ -247,12 +247,15 @@ public final class CompletionContext {
// now were heading to the beginning to the document ...
boolean classDefBeforePosition = false;
+ boolean openBraceBeforePosition = false;
ts.move(position);
while (ts.isValid() && ts.movePrevious() && ts.offset() >= 0) {
Token<GroovyTokenId> t = ts.token();
- if (t.id() == GroovyTokenId.LITERAL_class || t.id() == GroovyTokenId.LITERAL_interface || t.id() == GroovyTokenId.LITERAL_trait) {
+ if (t.id() == GroovyTokenId.LBRACE) {
+ openBraceBeforePosition = true;
+ } else if (t.id() == GroovyTokenId.LITERAL_class || t.id() == GroovyTokenId.LITERAL_interface || t.id() == GroovyTokenId.LITERAL_trait) {
classDefBeforePosition = true;
break;
}
@@ -298,6 +301,10 @@ public final class CompletionContext {
}
}
+ if (classDefBeforePosition && !openBraceBeforePosition) {
+ return null;
+ }
+
if (!scriptMode && !classDefBeforePosition && classDefAfterPosition) {
return CaretLocation.ABOVE_FIRST_CLASS;
}
diff --git a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/elements/index/IndexedMethod.java b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/elements/index/IndexedMethod.java
index ef549e3..f8f1ec4 100644
--- a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/elements/index/IndexedMethod.java
+++ b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/elements/index/IndexedMethod.java
@@ -96,7 +96,7 @@ public final class IndexedMethod extends IndexedElement implements MethodElement
List<String> paramTypes = new ArrayList<>();
for (MethodParameter parameter : getParameters()) {
- paramTypes.add(parameter.getType());
+ paramTypes.add(parameter.getFqnType());
}
return paramTypes;
}
diff --git a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/parser/GroovyParser.java b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/parser/GroovyParser.java
index f5ca9c2..b73d630 100644
--- a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/parser/GroovyParser.java
+++ b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/api/parser/GroovyParser.java
@@ -161,7 +161,9 @@ public class GroovyParser extends Parser {
int offset = context.caretOffset;
// Let caretOffset represent the offset of the portion of the buffer we'll be operating on
- if ((sanitizing == Sanitize.ERROR_DOT) || (sanitizing == Sanitize.ERROR_LINE)) {
+ if (sanitizing == Sanitize.ERROR_DOT) {
+ offset = context.errorOffset + 1;
+ } else if (sanitizing == Sanitize.ERROR_LINE || sanitizing == Sanitize.PRIOR_ERROR_LINE) {
offset = context.errorOffset;
}
@@ -250,6 +252,41 @@ public class GroovyParser extends Parser {
context.sanitizedContents = doc.substring(lineStart, lineEnd);
return true;
}
+ } else if (sanitizing == Sanitize.PRIOR_ERROR_LINE) {
+ int errRowStart = GroovyUtils.getRowStart(doc, offset);
+ if (errRowStart > 0) {
+ int lineEnd = GroovyUtils.getRowLastNonWhite(doc, errRowStart - 1);
+ if (lineEnd != -1) {
+ lineEnd++; // lineEnd is exclusive, not inclusive
+ StringBuilder sb = new StringBuilder(doc.length());
+ int lineStart = GroovyUtils.getRowStart(doc, errRowStart - 1);
+ if (lineEnd >= lineStart+2) {
+ sb.append(doc.substring(0, lineStart));
+ sb.append("//");
+ int rest = lineStart + 2;
+ if (rest < doc.length()) {
+ sb.append(doc.substring(rest, doc.length()));
+ }
+ } else {
+ // A line with just one character - can't replace with a comment
+ // Just replace the char with a space
+ sb.append(doc.substring(0, lineStart));
+ sb.append(" ");
+ int rest = lineStart + 1;
+ if (rest < doc.length()) {
+ sb.append(doc.substring(rest, doc.length()));
+ }
+
+ }
+
+ assert sb.length() == doc.length();
+
+ context.sanitizedRange = new OffsetRange(lineStart, lineEnd);
+ context.sanitizedSource = sb.toString();
+ context.sanitizedContents = doc.substring(lineStart, lineEnd);
+ return true;
+ }
+ }
} else {
assert sanitizing == Sanitize.ERROR_DOT || sanitizing == Sanitize.EDITED_DOT;
// Try nuking dots/colons from this line
@@ -365,9 +402,16 @@ public class GroovyParser extends Parser {
// Fall through to try the next trick
case ERROR_LINE:
- // Messing with the error line didn't work - we could try "around" the error line
- // but I'm not attempting that now.
- // Finally try removing the whole line around the user editing position
+ // We've tried removing error line - now try removing line prior the the error position
+ if (context.errorOffset != -1) {
+ return parseBuffer(context, Sanitize.PRIOR_ERROR_LINE);
+ }
+
+ // Fall through to try the next trick
+ case PRIOR_ERROR_LINE:
+
+ // Messing with the error line and the line prior didn't work -
+ // finally try removing the whole line around the user editing position
// (which could be far from where the error is showing up - but if you're typing
// say a new "def" statement in a class, this will show up as an error on a mismatched
// "end" statement rather than here
@@ -709,6 +753,8 @@ public class GroovyParser extends Parser {
ERROR_DOT,
/** Try to cut out the error line */
ERROR_LINE,
+ /** Try to cut out line prior the error line */
+ PRIOR_ERROR_LINE,
/** Try to cut out the current edited line, if known */
EDITED_LINE,
/** Attempt to add an "end" to the end of the buffer to make it compile */
diff --git a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/completion/NamedParamsCompletion.java b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/completion/NamedParamsCompletion.java
index 6bc74ad..96e7cb4 100644
--- a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/completion/NamedParamsCompletion.java
+++ b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/completion/NamedParamsCompletion.java
@@ -20,6 +20,7 @@
package org.netbeans.modules.groovy.editor.completion;
import java.util.List;
+import java.util.ListIterator;
import org.codehaus.groovy.ast.ASTNode;
import org.codehaus.groovy.ast.ClassNode;
import org.codehaus.groovy.ast.FieldNode;
@@ -66,12 +67,27 @@ public class NamedParamsCompletion extends BaseCompletion {
}
}
- ASTNode leafParent = context.path.leafParent();
- ASTNode leafGrandparent = context.path.leafGrandParent();
- if (leafParent instanceof NamedArgumentListExpression &&
- leafGrandparent instanceof ConstructorCallExpression) {
-
- completeNamedParams(proposals, anchor, (ConstructorCallExpression) leafGrandparent, (NamedArgumentListExpression) leafParent);
+ ListIterator<ASTNode> leafToRoot = context.path.leafToRoot();
+ ASTNode previous = null;
+ NamedArgumentListExpression namedArgsListExp = null;
+ while(leafToRoot.hasNext()) {
+ ASTNode next = leafToRoot.next();
+ if (next instanceof MapEntryExpression) {
+ if (previous == null || ((MapEntryExpression) next).getValueExpression() == previous) {
+ break;
+ }
+ } else if (next instanceof NamedArgumentListExpression) {
+ if (namedArgsListExp != null) {
+ break;
+ }
+ namedArgsListExp = (NamedArgumentListExpression) next;
+ } else if (next instanceof ConstructorCallExpression) {
+ if (namedArgsListExp != null) {
+ completeNamedParams(proposals, anchor, (ConstructorCallExpression) next, namedArgsListExp);
+ }
+ break;
+ }
+ previous = next;
}
return false;
diff --git a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/utils/ASTChildrenVisitor.java b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/utils/ASTChildrenVisitor.java
index e3d8eec..8e0025e 100644
--- a/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/utils/ASTChildrenVisitor.java
+++ b/groovy/groovy.editor/src/org/netbeans/modules/groovy/editor/utils/ASTChildrenVisitor.java
@@ -197,7 +197,12 @@ public class ASTChildrenVisitor implements GroovyCodeVisitor {
public void visitClosureExpression(ClosureExpression expression) {
children.add(expression.getCode());
}
-
+
+ @Override
+ public void visitLambdaExpression(LambdaExpression expression) {
+ visitClosureExpression(expression);
+ }
+
@Override
public void visitTupleExpression(TupleExpression expression) {
visitListOfExpressions(expression.getExpressions());
@@ -217,14 +222,12 @@ public class ASTChildrenVisitor implements GroovyCodeVisitor {
@Override
public void visitMapExpression(MapExpression expression) {
visitListOfExpressions(expression.getMapEntryExpressions());
-
}
@Override
public void visitMapEntryExpression(MapEntryExpression expression) {
children.add(expression.getKeyExpression());
children.add(expression.getValueExpression());
-
}
@Override
@@ -250,6 +253,11 @@ public class ASTChildrenVisitor implements GroovyCodeVisitor {
}
@Override
+ public void visitMethodReferenceExpression(MethodReferenceExpression expression) {
+ visitMethodPointerExpression(expression);
+ }
+
+ @Override
public void visitUnaryMinusExpression(UnaryMinusExpression expression) {
children.add(expression.getExpression());
}
@@ -308,19 +316,6 @@ public class ASTChildrenVisitor implements GroovyCodeVisitor {
visitListOfExpressions(expression.getValues());
}
- private void visitListOfExpressions(List list) {
- if (list==null) return;
- for (Iterator iter = list.iterator(); iter.hasNext(); ) {
- Expression expression = (Expression) iter.next();
- if (expression instanceof SpreadExpression) {
- Expression spread = ((SpreadExpression) expression).getExpression();
- children.add(spread);
- } else {
- children.add(expression);
- }
- }
- }
-
@Override
public void visitCatchStatement(CatchStatement statement) {
children.add(statement.getCode());
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/Hello.groovy.indexed b/groovy/groovy.editor/test/unit/data/testfiles/Hello.groovy.indexed
index cb343e3..be7a9b0 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/Hello.groovy.indexed
+++ b/groovy/groovy.editor/test/unit/data/testfiles/Hello.groovy.indexed
@@ -5,6 +5,8 @@ Searchable Keys:
class : FourthClass
class-ig : fourthclass
fqn : foo.FourthClass
+ method : getMetaClass;groovy.lang.MetaClass
+ method : setMetaClass(groovy.lang.MetaClass);void
Not Searchable Keys:
@@ -35,10 +37,12 @@ Searchable Keys:
method : dynamicmethod;void
method : getField1;int
method : getGreeting;java.lang.Object
+ method : getMetaClass;groovy.lang.MetaClass
method : getName;java.lang.Object
method : main(java.lang.String[]);void;08
method : setField1(int);void
method : setGreeting(java.lang.Object);void
+ method : setMetaClass(groovy.lang.MetaClass);void
method : setName(java.lang.Object);void
Not Searchable Keys:
@@ -51,6 +55,8 @@ Searchable Keys:
ctor : SecondTestClass;String
ctor : SecondTestClass;int
fqn : foo.SecondTestClass
+ method : getMetaClass;groovy.lang.MetaClass
+ method : setMetaClass(groovy.lang.MetaClass);void
Not Searchable Keys:
@@ -62,5 +68,7 @@ Searchable Keys:
ctor : ThirdTestClass;String
ctor : ThirdTestClass;int
fqn : foo.ThirdTestClass
+ method : getMetaClass;groovy.lang.MetaClass
+ method : setMetaClass(groovy.lang.MetaClass);void
Not Searchable Keys:
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/access/basicAccessLevels1/BasicAccessLevels1.groovy.testBasicAccessLevels1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/access/basicAccessLevels1/BasicAccessLevels1.groovy.testBasicAccessLevels1.completion
index 8e9d3c5..d3f7040 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/access/basicAccessLevels1/BasicAccessLevels1.groovy.testBasicAccessLevels1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/access/basicAccessLevels1/BasicAccessLevels1.groovy.testBasicAccessLevels1.completion
@@ -32,7 +32,7 @@ METHOD findResult(Closure) Object
METHOD findResult(Object, Closure) Object
METHOD getAt(String) Object
METHOD getClass() [PUBLIC] Class<?>
-METHOD getMetaClass() MetaClass
+METHOD getMetaClass() [PUBLIC] MetaClass
METHOD getMetaPropertyValues() List
METHOD getProperties() Map
METHOD getProperty(String) [PUBLIC] Object
@@ -65,13 +65,14 @@ METHOD println(PrintWriter) void
METHOD putAt(String, Object) void
METHOD respondsTo(String) List
METHOD respondsTo(String, Object) List
-METHOD setMetaClass(MetaClass) void
+METHOD setMetaClass(MetaClass) [PUBLIC] void
METHOD setProperty(String, Object) [PUBLIC] void
METHOD sleep(long) void
METHOD sleep(long, Closure) void
METHOD split(Closure) Collection
METHOD sprintf(String, Object) String
METHOD sprintf(String, Object) String
+METHOD stream() Stream
METHOD tap(Closure) Object
METHOD test() [PUBLIC] Object
METHOD toString() [PUBLIC] String
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/closures/insideClosure1/InsideClosure1.groovy.testInsideClosure1_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/closures/insideClosure1/InsideClosure1.groovy.testInsideClosure1_1.completion
index f6165dd..c4f2dd3 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/closures/insideClosure1/InsideClosure1.groovy.testInsideClosure1_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/closures/insideClosure1/InsideClosure1.groovy.testInsideClosure1_1.completion
@@ -5,8 +5,8 @@ Code completion result for source line:
PACKAGE com null
PACKAGE groovy null
PACKAGE groovyjarjarantlr null
+PACKAGE groovyjarjarantlr4 null
PACKAGE groovyjarjarasm null
-PACKAGE groovyjarjarcommonscli null
PACKAGE groovyjarjarpicocli null
PACKAGE java null
PACKAGE javax null
@@ -179,6 +179,7 @@ CLASS GroovyRuntimeException null
CLASS GroovyScriptEngine null
CLASS GroovyShell null
CLASS GroovySystem null
+CLASS Groovydoc null
CLASS HashMap null
CLASS HashSet null
CLASS Hashtable null
@@ -441,7 +442,15 @@ CLASS TracingInterceptor null
CLASS TreeMap null
CLASS TreeSet null
CLASS Tuple null
+CLASS Tuple0 null
CLASS Tuple1 null
+CLASS Tuple10 null
+CLASS Tuple11 null
+CLASS Tuple12 null
+CLASS Tuple13 null
+CLASS Tuple14 null
+CLASS Tuple15 null
+CLASS Tuple16 null
CLASS Tuple2 null
CLASS Tuple3 null
CLASS Tuple4 null
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/collections/collections1/Collections1.groovy.testCollections1_3.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/collections/collections1/Collections1.groovy.testCollections1_3.completion
index 3a98426..0de24cd46 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/collections/collections1/Collections1.groovy.testCollections1_3.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/collections/collections1/Collections1.groovy.testCollections1_3.completion
@@ -20,3 +20,5 @@ METHOD asList() List
METHOD asSynchronized() List
METHOD asType(Class) Object
METHOD asUnmodifiable() List
+METHOD average() Object
+METHOD average(Closure) Object
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/collections/collections1/Collections1.groovy.testCollections1_5.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/collections/collections1/Collections1.groovy.testCollections1_5.completion
index 784fb17..5d19a81 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/collections/collections1/Collections1.groovy.testCollections1_5.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/collections/collections1/Collections1.groovy.testCollections1_5.completion
@@ -20,6 +20,8 @@ METHOD asList() List
METHOD asSynchronized() List
METHOD asType(Class) Object
METHOD asUnmodifiable() List
+METHOD average() Object
+METHOD average(Closure) Object
METHOD bufferedIterator() BufferedIterator
METHOD chop(int[]) List
METHOD clear() [PUBLIC] void
@@ -188,6 +190,10 @@ METHOD reverse(boolean) List
METHOD reverseEach(Closure) List
METHOD set(int, E) [PUBLIC] E
METHOD setMetaClass(MetaClass) void
+METHOD shuffle() void
+METHOD shuffle(Random) void
+METHOD shuffled() List
+METHOD shuffled(Random) List
METHOD size() [PUBLIC] int
METHOD sleep(long) void
METHOD sleep(long, Closure) void
@@ -203,7 +209,7 @@ METHOD sprintf(String, Object) String
METHOD sprintf(String, Object) String
METHOD step(int) [PUBLIC] List<T>
METHOD step(int, Closure) [PUBLIC] void
-METHOD stream() [PUBLIC] Stream<E>
+METHOD stream() Stream
METHOD subList(int, int) [PUBLIC] List<E>
METHOD subsequences() Set
METHOD sum() Object
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/collectionLiterals1/CollectionLiterals1.groovy.testCollectionLiterals1_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/collectionLiterals1/CollectionLiterals1.groovy.testCollectionLiterals1_1.completion
index 144b69b..965459b 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/collectionLiterals1/CollectionLiterals1.groovy.testCollectionLiterals1_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/collectionLiterals1/CollectionLiterals1.groovy.testCollectionLiterals1_1.completion
@@ -20,3 +20,5 @@ METHOD asList() List
METHOD asSynchronized() List
METHOD asType(Class) Object
METHOD asUnmodifiable() List
+METHOD average() Object
+METHOD average(Closure) Object
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/collectionLiterals2/CollectionLiterals2.groovy.testCollectionLiterals2_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/collectionLiterals2/CollectionLiterals2.groovy.testCollectionLiterals2_1.completion
index 144b69b..965459b 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/collectionLiterals2/CollectionLiterals2.groovy.testCollectionLiterals2_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/collectionLiterals2/CollectionLiterals2.groovy.testCollectionLiterals2_1.completion
@@ -20,3 +20,5 @@ METHOD asList() List
METHOD asSynchronized() List
METHOD asType(Class) Object
METHOD asUnmodifiable() List
+METHOD average() Object
+METHOD average(Closure) Object
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_1.completion
index 4fde144..fe8eab7 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_1.completion
@@ -15,11 +15,13 @@ METHOD collect() Collection
METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectReplacements(Closure) String
+METHOD collectReplacements(List) String
METHOD compareTo(String) [PUBLIC] int
METHOD compareTo(T) [PUBLIC] int
METHOD compareToIgnoreCase(String) [PUBLIC] int
METHOD concat(String) [PUBLIC] String
METHOD contains(CharSequence) [PUBLIC] boolean
+METHOD containsIgnoreCase(CharSequenc boolean
METHOD contentEquals(CharSequence) [PUBLIC] boolean
METHOD contentEquals(StringBuffer) [PUBLIC] boolean
METHOD copyValueOf(char[]) [STATIC, String
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_2.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_2.completion
index 53463bc..8980f2f 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_2.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_2.completion
@@ -15,11 +15,13 @@ METHOD collect() Collection
METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectReplacements(Closure) String
+METHOD collectReplacements(List) String
METHOD compareTo(String) [PUBLIC] int
METHOD compareTo(T) [PUBLIC] int
METHOD compareToIgnoreCase(String) [PUBLIC] int
METHOD concat(String) [PUBLIC] String
METHOD contains(CharSequence) [PUBLIC] boolean
+METHOD containsIgnoreCase(CharSequenc boolean
METHOD contentEquals(CharSequence) [PUBLIC] boolean
METHOD contentEquals(StringBuffer) [PUBLIC] boolean
METHOD copyValueOf(char[]) [STATIC, String
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_3.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_3.completion
index 5fd3523..c250ee9 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_3.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_3.completion
@@ -15,11 +15,13 @@ METHOD collect() Collection
METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectReplacements(Closure) String
+METHOD collectReplacements(List) String
METHOD compareTo(String) [PUBLIC] int
METHOD compareTo(T) [PUBLIC] int
METHOD compareToIgnoreCase(String) [PUBLIC] int
METHOD concat(String) [PUBLIC] String
METHOD contains(CharSequence) [PUBLIC] boolean
+METHOD containsIgnoreCase(CharSequenc boolean
METHOD contentEquals(CharSequence) [PUBLIC] boolean
METHOD contentEquals(StringBuffer) [PUBLIC] boolean
METHOD copyValueOf(char[]) [STATIC, String
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_4.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_4.completion
index 493a7a6..24af460 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_4.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_4.completion
@@ -15,11 +15,13 @@ METHOD collect() Collection
METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectReplacements(Closure) String
+METHOD collectReplacements(List) String
METHOD compareTo(String) [PUBLIC] int
METHOD compareTo(T) [PUBLIC] int
METHOD compareToIgnoreCase(String) [PUBLIC] int
METHOD concat(String) [PUBLIC] String
METHOD contains(CharSequence) [PUBLIC] boolean
+METHOD containsIgnoreCase(CharSequenc boolean
METHOD contentEquals(CharSequence) [PUBLIC] boolean
METHOD contentEquals(StringBuffer) [PUBLIC] boolean
METHOD copyValueOf(char[]) [STATIC, String
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_5.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_5.completion
index 492308d..1cd44be 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_5.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_5.completion
@@ -15,11 +15,13 @@ METHOD collect() Collection
METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectReplacements(Closure) String
+METHOD collectReplacements(List) String
METHOD compareTo(String) [PUBLIC] int
METHOD compareTo(T) [PUBLIC] int
METHOD compareToIgnoreCase(String) [PUBLIC] int
METHOD concat(String) [PUBLIC] String
METHOD contains(CharSequence) [PUBLIC] boolean
+METHOD containsIgnoreCase(CharSequenc boolean
METHOD contentEquals(CharSequence) [PUBLIC] boolean
METHOD contentEquals(StringBuffer) [PUBLIC] boolean
METHOD copyValueOf(char[]) [STATIC, String
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_6.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_6.completion
index b471cd1..dfab82e 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_6.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_6.completion
@@ -15,11 +15,13 @@ METHOD collect() Collection
METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectReplacements(Closure) String
+METHOD collectReplacements(List) String
METHOD compareTo(String) [PUBLIC] int
METHOD compareTo(T) [PUBLIC] int
METHOD compareToIgnoreCase(String) [PUBLIC] int
METHOD concat(String) [PUBLIC] String
METHOD contains(CharSequence) [PUBLIC] boolean
+METHOD containsIgnoreCase(CharSequenc boolean
METHOD contentEquals(CharSequence) [PUBLIC] boolean
METHOD contentEquals(StringBuffer) [PUBLIC] boolean
METHOD copyValueOf(char[]) [STATIC, String
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_7.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_7.completion
index b210308..3910625 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_7.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/flow/completionReturnType1/CompletionReturnType1.groovy.testCompletionReturnType1_7.completion
@@ -15,11 +15,13 @@ METHOD collect() Collection
METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectReplacements(Closure) String
+METHOD collectReplacements(List) String
METHOD compareTo(String) [PUBLIC] int
METHOD compareTo(T) [PUBLIC] int
METHOD compareToIgnoreCase(String) [PUBLIC] int
METHOD concat(String) [PUBLIC] String
METHOD contains(CharSequence) [PUBLIC] boolean
+METHOD containsIgnoreCase(CharSequenc boolean
METHOD contentEquals(CharSequence) [PUBLIC] boolean
METHOD contentEquals(StringBuffer) [PUBLIC] boolean
METHOD copyValueOf(char[]) [STATIC, String
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/inference/Inference1.groovy.testInference1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/inference/Inference1.groovy.testInference1.completion
index b83ea06..a9cf23a 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/inference/Inference1.groovy.testInference1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/inference/Inference1.groovy.testInference1.completion
@@ -17,3 +17,5 @@ METHOD asList() List
METHOD asSynchronized() Set
METHOD asType(Class) Object
METHOD asUnmodifiable() Set
+METHOD average() Object
+METHOD average(Closure) Object
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/inference/Inference1.groovy.testInference2.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/inference/Inference1.groovy.testInference2.completion
index a3f7356..3e38b90 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/inference/Inference1.groovy.testInference2.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/inference/Inference1.groovy.testInference2.completion
@@ -3,6 +3,14 @@ text.t|
(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true)
------------------------------------
METHOD take(int) String
+METHOD takeAfter(CharSequence) String
+METHOD takeBefore(CharSequence) CharSequence
+METHOD takeBefore(String) String
+METHOD takeBetween(CharSequence) String
+METHOD takeBetween(CharSequence, int String
+METHOD takeBetween(CharSequence, Char String
+METHOD takeBetween(CharSequence, Char String
+METHOD takeRight(int) String
METHOD takeWhile(Closure) String
METHOD tap(Closure) Object
METHOD toBigDecimal() BigDecimal
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/interface/interfaceCompletion1/InterfaceCompletion1.groovy.testInterfaceCompletion1_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/interface/interfaceCompletion1/InterfaceCompletion1.groovy.testInterfaceCompletion1_1.completion
index 306604e..86cc691 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/interface/interfaceCompletion1/InterfaceCompletion1.groovy.testInterfaceCompletion1_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/interface/interfaceCompletion1/InterfaceCompletion1.groovy.testInterfaceCompletion1_1.completion
@@ -5,8 +5,8 @@ class SpecialGroovyClass implements |Runnable, Serializable {
PACKAGE com null
PACKAGE groovy null
PACKAGE groovyjarjarantlr null
+PACKAGE groovyjarjarantlr4 null
PACKAGE groovyjarjarasm null
-PACKAGE groovyjarjarcommonscli null
PACKAGE groovyjarjarpicocli null
PACKAGE java null
PACKAGE javax null
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionForLiteral1/CompletionForLiteral1.groovy.testCompletionForLiteral1_3.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionForLiteral1/CompletionForLiteral1.groovy.testCompletionForLiteral1_3.completion
index 4a4eb43..1b53022 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionForLiteral1/CompletionForLiteral1.groovy.testCompletionForLiteral1_3.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionForLiteral1/CompletionForLiteral1.groovy.testCompletionForLiteral1_3.completion
@@ -15,11 +15,13 @@ METHOD collect() Collection
METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectReplacements(Closure) String
+METHOD collectReplacements(List) String
METHOD compareTo(String) [PUBLIC] int
METHOD compareTo(T) [PUBLIC] int
METHOD compareToIgnoreCase(String) [PUBLIC] int
METHOD concat(String) [PUBLIC] String
METHOD contains(CharSequence) [PUBLIC] boolean
+METHOD containsIgnoreCase(CharSequenc boolean
METHOD contentEquals(CharSequence) [PUBLIC] boolean
METHOD contentEquals(StringBuffer) [PUBLIC] boolean
METHOD copyValueOf(char[]) [STATIC, String
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGeneratedAccessors1/CompletionGeneratedAccessors1.groovy.testCompletionGeneratedAccessors1_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGeneratedAccessors1/CompletionGeneratedAccessors1.groovy.testCompletionGeneratedAccessors1_1.completion
index bc756c7..816dcf3 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGeneratedAccessors1/CompletionGeneratedAccessors1.groovy.testCompletionGeneratedAccessors1_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGeneratedAccessors1/CompletionGeneratedAccessors1.groovy.testCompletionGeneratedAccessors1_1.completion
@@ -5,7 +5,7 @@ new Test().get|
METHOD getAge() [PUBLIC] Object
METHOD getAt(String) Object
METHOD getClass() [PUBLIC] Class<?>
-METHOD getMetaClass() MetaClass
+METHOD getMetaClass() [PUBLIC] MetaClass
METHOD getMetaPropertyValues() List
METHOD getName() [PUBLIC] String
METHOD getOkDef() [PUBLIC] boolean
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGeneratedAccessors1/CompletionGeneratedAccessors1.groovy.testCompletionGeneratedAccessors1_2.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGeneratedAccessors1/CompletionGeneratedAccessors1.groovy.testCompletionGeneratedAccessors1_2.completion
index c4f1b54..ada963d 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGeneratedAccessors1/CompletionGeneratedAccessors1.groovy.testCompletionGeneratedAccessors1_2.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGeneratedAccessors1/CompletionGeneratedAccessors1.groovy.testCompletionGeneratedAccessors1_2.completion
@@ -3,7 +3,7 @@ new Test().set|
(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true)
------------------------------------
METHOD setAge(Object) [PUBLIC] void
-METHOD setMetaClass(MetaClass) void
+METHOD setMetaClass(MetaClass) [PUBLIC] void
METHOD setName(String) [PUBLIC] void
METHOD setOkDef(boolean) [PUBLIC] void
METHOD setProperty(String, Object) [PUBLIC] void
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovyClass1/CompletionGroovyClass1.groovy.testCompletionGroovyClass1_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovyClass1/CompletionGroovyClass1.groovy.testCompletionGroovyClass1_1.completion
index 068beea..0a1fa4f 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovyClass1/CompletionGroovyClass1.groovy.testCompletionGroovyClass1_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovyClass1/CompletionGroovyClass1.groovy.testCompletionGroovyClass1_1.completion
@@ -30,7 +30,7 @@ METHOD findResult(Closure) Object
METHOD findResult(Object, Closure) Object
METHOD getAt(String) Object
METHOD getClass() [PUBLIC] Class<?>
-METHOD getMetaClass() MetaClass
+METHOD getMetaClass() [PUBLIC] MetaClass
METHOD getMetaPropertyValues() List
METHOD getProperties() Map
METHOD getProperty(String) [PUBLIC] Object
@@ -60,7 +60,7 @@ METHOD println(PrintWriter) void
METHOD putAt(String, Object) void
METHOD respondsTo(String) List
METHOD respondsTo(String, Object) List
-METHOD setMetaClass(MetaClass) void
+METHOD setMetaClass(MetaClass) [PUBLIC] void
METHOD setProperty(String, Object) [PUBLIC] void
METHOD setX(String) [PUBLIC] void
METHOD sleep(long) void
@@ -68,6 +68,7 @@ METHOD sleep(long, Closure) void
METHOD split(Closure) Collection
METHOD sprintf(String, Object) String
METHOD sprintf(String, Object) String
+METHOD stream() Stream
METHOD tap(Closure) Object
METHOD toString() [PUBLIC] String
METHOD use(Class, Closure) Object
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovySuper1/CompletionGroovySuper1.groovy.testCompletionGroovySuper1_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovySuper1/CompletionGroovySuper1.groovy.testCompletionGroovySuper1_1.completion
index aefe1fe..5dffa4e 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovySuper1/CompletionGroovySuper1.groovy.testCompletionGroovySuper1_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovySuper1/CompletionGroovySuper1.groovy.testCompletionGroovySuper1_1.completion
@@ -66,6 +66,7 @@ METHOD sleep(long, Closure) void
METHOD split(Closure) Collection
METHOD sprintf(String, Object) String
METHOD sprintf(String, Object) String
+METHOD stream() Stream
METHOD tap(Closure) Object
METHOD toString() [PUBLIC] String
METHOD use(Class, Closure) Object
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovyThis1/CompletionGroovyThis1.groovy.testCompletionGroovyThis1_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovyThis1/CompletionGroovyThis1.groovy.testCompletionGroovyThis1_1.completion
index 864dfef..ee07533 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovyThis1/CompletionGroovyThis1.groovy.testCompletionGroovyThis1_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionGroovyThis1/CompletionGroovyThis1.groovy.testCompletionGroovyThis1_1.completion
@@ -4,7 +4,7 @@ this.get|
------------------------------------
METHOD getAt(String) Object
METHOD getClass() [PUBLIC] Class<?>
-METHOD getMetaClass() MetaClass
+METHOD getMetaClass() [PUBLIC] MetaClass
METHOD getMetaPropertyValues() List
METHOD getProperties() Map
METHOD getProperty(String) [PUBLIC] Object
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionInsideFor1/CompletionInsideFor1.groovy.testCompletionInsideFor1_2.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionInsideFor1/CompletionInsideFor1.groovy.testCompletionInsideFor1_2.completion
index 2eee575..f750089 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionInsideFor1/CompletionInsideFor1.groovy.testCompletionInsideFor1_2.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionInsideFor1/CompletionInsideFor1.groovy.testCompletionInsideFor1_2.completion
@@ -16,7 +16,7 @@ METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectEntries(Closure) Map
METHOD collectEntries(Map, Closure) Map
-METHOD collectMany(Closure) Collection
+METHOD collectMany(Closure) List
METHOD collectMany(Collection, Closur Collection
METHOD compute(K, BiFunction<? super [PUBLIC] V
METHOD computeIfAbsent(K, Function<? [PUBLIC] V
@@ -122,6 +122,7 @@ METHOD split(Closure) Collection
METHOD spread() SpreadMap
METHOD sprintf(String, Object) String
METHOD sprintf(String, Object) String
+METHOD stream() Stream
METHOD subMap(Collection) Map
METHOD subMap(Object[]) Map
METHOD take(int) Map
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionNoPrefixString1/CompletionNoPrefixString1.groovy.testCompletionNoPrefixString1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionNoPrefixString1/CompletionNoPrefixString1.groovy.testCompletionNoPrefixString1.completion
index 9f6ab19..ef5b7a2 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionNoPrefixString1/CompletionNoPrefixString1.groovy.testCompletionNoPrefixString1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionNoPrefixString1/CompletionNoPrefixString1.groovy.testCompletionNoPrefixString1.completion
@@ -21,11 +21,13 @@ METHOD collect() Collection
METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectReplacements(Closure) String
+METHOD collectReplacements(List) String
METHOD compareTo(String) [PUBLIC] int
METHOD compareTo(T) [PUBLIC] int
METHOD compareToIgnoreCase(String) [PUBLIC] int
METHOD concat(String) [PUBLIC] String
METHOD contains(CharSequence) [PUBLIC] boolean
+METHOD containsIgnoreCase(CharSequenc boolean
METHOD contentEquals(CharSequence) [PUBLIC] boolean
METHOD contentEquals(StringBuffer) [PUBLIC] boolean
METHOD copyValueOf(char[]) [STATIC, String
@@ -37,6 +39,7 @@ METHOD decodeHex() byte[]
METHOD denormalize() String
METHOD digest(String) String
METHOD drop(int) String
+METHOD dropRight(int) String
METHOD dropWhile(Closure) String
METHOD dump() String
METHOD each(Closure) Object
@@ -48,6 +51,7 @@ METHOD eachMatch(String, Closure) String
METHOD eachWithIndex(Closure) Object
METHOD endsWith(String) [PUBLIC] boolean
METHOD endsWithAny(CharSequence[]) boolean
+METHOD endsWithIgnoreCase(CharSequenc boolean
METHOD equals(Object) [PUBLIC] boolean
METHOD equalsIgnoreCase(String) [PUBLIC] boolean
METHOD every() boolean
@@ -196,7 +200,10 @@ METHOD sprintf(String, Object) String
METHOD startsWith(String) [PUBLIC] boolean
METHOD startsWith(String, int) [PUBLIC] boolean
METHOD startsWithAny(CharSequence[]) boolean
+METHOD startsWithIgnoreCase(CharSeque boolean
+METHOD stream() Stream
METHOD stripIndent() String
+METHOD stripIndent(boolean) String
METHOD stripIndent(int) String
METHOD stripMargin() String
METHOD stripMargin(CharSequence) String
@@ -205,6 +212,14 @@ METHOD subSequence(int, int) [PUBLIC] CharSequence
METHOD substring(int) [PUBLIC] String
METHOD substring(int, int) [PUBLIC] String
METHOD take(int) String
+METHOD takeAfter(CharSequence) String
+METHOD takeBefore(CharSequence) CharSequence
+METHOD takeBefore(String) String
+METHOD takeBetween(CharSequence) String
+METHOD takeBetween(CharSequence, int String
+METHOD takeBetween(CharSequence, Char String
+METHOD takeBetween(CharSequence, Char String
+METHOD takeRight(int) String
METHOD takeWhile(Closure) String
METHOD tap(Closure) Object
METHOD toBigDecimal() BigDecimal
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionNoPrefixString2/CompletionNoPrefixString2.groovy.testCompletionNoPrefixString2.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionNoPrefixString2/CompletionNoPrefixString2.groovy.testCompletionNoPrefixString2.completion
index 2e0a500..47b7366 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionNoPrefixString2/CompletionNoPrefixString2.groovy.testCompletionNoPrefixString2.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/completionNoPrefixString2/CompletionNoPrefixString2.groovy.testCompletionNoPrefixString2.completion
@@ -21,11 +21,13 @@ METHOD collect() Collection
METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectReplacements(Closure) String
+METHOD collectReplacements(List) String
METHOD compareTo(String) [PUBLIC] int
METHOD compareTo(T) [PUBLIC] int
METHOD compareToIgnoreCase(String) [PUBLIC] int
METHOD concat(String) [PUBLIC] String
METHOD contains(CharSequence) [PUBLIC] boolean
+METHOD containsIgnoreCase(CharSequenc boolean
METHOD contentEquals(CharSequence) [PUBLIC] boolean
METHOD contentEquals(StringBuffer) [PUBLIC] boolean
METHOD copyValueOf(char[]) [STATIC, String
@@ -37,6 +39,7 @@ METHOD decodeHex() byte[]
METHOD denormalize() String
METHOD digest(String) String
METHOD drop(int) String
+METHOD dropRight(int) String
METHOD dropWhile(Closure) String
METHOD dump() String
METHOD each(Closure) Object
@@ -48,6 +51,7 @@ METHOD eachMatch(String, Closure) String
METHOD eachWithIndex(Closure) Object
METHOD endsWith(String) [PUBLIC] boolean
METHOD endsWithAny(CharSequence[]) boolean
+METHOD endsWithIgnoreCase(CharSequenc boolean
METHOD equals(Object) [PUBLIC] boolean
METHOD equalsIgnoreCase(String) [PUBLIC] boolean
METHOD every() boolean
@@ -196,7 +200,10 @@ METHOD sprintf(String, Object) String
METHOD startsWith(String) [PUBLIC] boolean
METHOD startsWith(String, int) [PUBLIC] boolean
METHOD startsWithAny(CharSequence[]) boolean
+METHOD startsWithIgnoreCase(CharSeque boolean
+METHOD stream() Stream
METHOD stripIndent() String
+METHOD stripIndent(boolean) String
METHOD stripIndent(int) String
METHOD stripMargin() String
METHOD stripMargin(CharSequence) String
@@ -205,6 +212,14 @@ METHOD subSequence(int, int) [PUBLIC] CharSequence
METHOD substring(int) [PUBLIC] String
METHOD substring(int, int) [PUBLIC] String
METHOD take(int) String
+METHOD takeAfter(CharSequence) String
+METHOD takeBefore(CharSequence) CharSequence
+METHOD takeBefore(String) String
+METHOD takeBetween(CharSequence) String
+METHOD takeBetween(CharSequence, int String
+METHOD takeBetween(CharSequence, Char String
+METHOD takeBetween(CharSequence, Char String
+METHOD takeRight(int) String
METHOD takeWhile(Closure) String
METHOD tap(Closure) Object
METHOD toBigDecimal() BigDecimal
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/methods1/Methods1.groovy.testMethods1_4.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/methods1/Methods1.groovy.testMethods1_4.completion
index a18d3ec..8fd8213 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/methods1/Methods1.groovy.testMethods1_4.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/methods1/Methods1.groovy.testMethods1_4.completion
@@ -109,6 +109,7 @@ METHOD splitEachLine(String, Closure) Object
METHOD splitEachLine(String, String, Object
METHOD sprintf(String, Object) String
METHOD sprintf(String, Object) String
+METHOD stream() Stream
METHOD tap(Closure) Object
METHOD toExternalForm() [PUBLIC] String
METHOD toString() [PUBLIC] String
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/methods2/Methods2.groovy.testMethods2_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/methods2/Methods2.groovy.testMethods2_1.completion
index 55b57ec..d922c1e 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/method/methods2/Methods2.groovy.testMethods2_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/method/methods2/Methods2.groovy.testMethods2_1.completion
@@ -104,6 +104,7 @@ METHOD split(Closure) Collection
METHOD sprintf(String, Object) String
METHOD sprintf(String, Object) String
METHOD step(Number, Number, Closure) void
+METHOD stream() Stream
METHOD tap(Closure) Object
METHOD times(Closure) void
METHOD toBigDecimal() BigDecimal
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/emptyConstructor/EmptyConstructor.groovy.testEmptyConstructor.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/emptyConstructor/EmptyConstructor.groovy.testEmptyConstructor.completion
index 87d629b..5be5b16 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/emptyConstructor/EmptyConstructor.groovy.testEmptyConstructor.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/emptyConstructor/EmptyConstructor.groovy.testEmptyConstructor.completion
@@ -10,8 +10,8 @@ PARAMETER e: Object null
PACKAGE com null
PACKAGE groovy null
PACKAGE groovyjarjarantlr null
+PACKAGE groovyjarjarantlr4 null
PACKAGE groovyjarjarasm null
-PACKAGE groovyjarjarcommonscli null
PACKAGE groovyjarjarpicocli null
PACKAGE java null
PACKAGE javax null
@@ -186,6 +186,7 @@ CLASS GroovyRuntimeException null
CLASS GroovyScriptEngine null
CLASS GroovyShell null
CLASS GroovySystem null
+CLASS Groovydoc null
CLASS HashMap null
CLASS HashSet null
CLASS Hashtable null
@@ -447,7 +448,15 @@ CLASS TracingInterceptor null
CLASS TreeMap null
CLASS TreeSet null
CLASS Tuple null
+CLASS Tuple0 null
CLASS Tuple1 null
+CLASS Tuple10 null
+CLASS Tuple11 null
+CLASS Tuple12 null
+CLASS Tuple13 null
+CLASS Tuple14 null
+CLASS Tuple15 null
+CLASS Tuple16 null
CLASS Tuple2 null
CLASS Tuple3 null
CLASS Tuple4 null
@@ -489,4 +498,4 @@ CLASS WriteAbortedException null
CLASS Writer null
FIELD binding [PUBLIC] Binding
FIELD class [PUBLIC] Class
-FIELD defaultMetaClass [PRIVATE] MetaClass
+FIELD defaultMetaClass [PRIVATE] MetaClass
\ No newline at end of file
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_AfterComma.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_AfterComma.completion
index 374a9d8..027abe5 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_AfterComma.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_AfterComma.completion
@@ -173,6 +173,7 @@ CLASS GroovyRuntimeException null
CLASS GroovyScriptEngine null
CLASS GroovyShell null
CLASS GroovySystem null
+CLASS Groovydoc null
CLASS HashMap null
CLASS HashSet null
CLASS Hashtable null
@@ -434,7 +435,15 @@ CLASS TracingInterceptor null
CLASS TreeMap null
CLASS TreeSet null
CLASS Tuple null
+CLASS Tuple0 null
CLASS Tuple1 null
+CLASS Tuple10 null
+CLASS Tuple11 null
+CLASS Tuple12 null
+CLASS Tuple13 null
+CLASS Tuple14 null
+CLASS Tuple15 null
+CLASS Tuple16 null
CLASS Tuple2 null
CLASS Tuple3 null
CLASS Tuple4 null
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_AfterLeftParenthesis.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_AfterLeftParenthesis.completion
index 7de7118..bfc8159 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_AfterLeftParenthesis.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_AfterLeftParenthesis.completion
@@ -173,6 +173,7 @@ CLASS GroovyRuntimeException null
CLASS GroovyScriptEngine null
CLASS GroovyShell null
CLASS GroovySystem null
+CLASS Groovydoc null
CLASS HashMap null
CLASS HashSet null
CLASS Hashtable null
@@ -434,7 +435,15 @@ CLASS TracingInterceptor null
CLASS TreeMap null
CLASS TreeSet null
CLASS Tuple null
+CLASS Tuple0 null
CLASS Tuple1 null
+CLASS Tuple10 null
+CLASS Tuple11 null
+CLASS Tuple12 null
+CLASS Tuple13 null
+CLASS Tuple14 null
+CLASS Tuple15 null
+CLASS Tuple16 null
CLASS Tuple2 null
CLASS Tuple3 null
CLASS Tuple4 null
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_InsideNamedParameter2.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_InsideNamedParameter2.completion
index 63d22c3..266b1d9 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_InsideNamedParameter2.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/namedparams/fewParamsConstructor/FewParamsConstructor.groovy.testFewParamsConstructor_InsideNamedParameter2.completion
@@ -170,6 +170,7 @@ CLASS GroovyRuntimeException null
CLASS GroovyScriptEngine null
CLASS GroovyShell null
CLASS GroovySystem null
+CLASS Groovydoc null
CLASS HashMap null
CLASS HashSet null
CLASS Hashtable null
@@ -431,7 +432,15 @@ CLASS TracingInterceptor null
CLASS TreeMap null
CLASS TreeSet null
CLASS Tuple null
+CLASS Tuple0 null
CLASS Tuple1 null
+CLASS Tuple10 null
+CLASS Tuple11 null
+CLASS Tuple12 null
+CLASS Tuple13 null
+CLASS Tuple14 null
+CLASS Tuple15 null
+CLASS Tuple16 null
CLASS Tuple2 null
CLASS Tuple3 null
CLASS Tuple4 null
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator1/ElvisOperator1.groovy.testElvisOperator1_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator1/ElvisOperator1.groovy.testElvisOperator1_1.completion
index 48598b0..e8d59b2 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator1/ElvisOperator1.groovy.testElvisOperator1_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator1/ElvisOperator1.groovy.testElvisOperator1_1.completion
@@ -11,6 +11,7 @@ METHOD eachMatch(String, Closure) String
METHOD eachWithIndex(Closure) Object
METHOD endsWith(String) [PUBLIC] boolean
METHOD endsWithAny(CharSequence[]) boolean
+METHOD endsWithIgnoreCase(CharSequenc boolean
METHOD equals(Object) [PUBLIC] boolean
METHOD equalsIgnoreCase(String) [PUBLIC] boolean
METHOD every() boolean
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator2/ElvisOperator2.groovy.testElvisOperator2_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator2/ElvisOperator2.groovy.testElvisOperator2_1.completion
index e6a0458..bb681b6 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator2/ElvisOperator2.groovy.testElvisOperator2_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator2/ElvisOperator2.groovy.testElvisOperator2_1.completion
@@ -11,6 +11,7 @@ METHOD eachMatch(String, Closure) String
METHOD eachWithIndex(Closure) Object
METHOD endsWith(String) [PUBLIC] boolean
METHOD endsWithAny(CharSequence[]) boolean
+METHOD endsWithIgnoreCase(CharSequenc boolean
METHOD equals(Object) [PUBLIC] boolean
METHOD equalsIgnoreCase(String) [PUBLIC] boolean
METHOD every() boolean
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator3/ElvisOperator3.groovy.testElvisOperator3_1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator3/ElvisOperator3.groovy.testElvisOperator3_1.completion
index 6bacceb..b785a40 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator3/ElvisOperator3.groovy.testElvisOperator3_1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/elvisOperator3/ElvisOperator3.groovy.testElvisOperator3_1.completion
@@ -11,6 +11,7 @@ METHOD eachMatch(String, Closure) String
METHOD eachWithIndex(Closure) Object
METHOD endsWith(String) [PUBLIC] boolean
METHOD endsWithAny(CharSequence[]) boolean
+METHOD endsWithIgnoreCase(CharSequenc boolean
METHOD equals(Object) [PUBLIC] boolean
METHOD equalsIgnoreCase(String) [PUBLIC] boolean
METHOD every() boolean
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator1/SpreadOperator1.groovy.testSpreadOperator1_stringArray_all.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator1/SpreadOperator1.groovy.testSpreadOperator1_stringArray_all.completion
index 472b2a9..9bdce2c 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator1/SpreadOperator1.groovy.testSpreadOperator1_stringArray_all.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator1/SpreadOperator1.groovy.testSpreadOperator1_stringArray_all.completion
@@ -21,11 +21,13 @@ METHOD collect() Collection
METHOD collect(Closure) List
METHOD collect(Collection, Closure) Collection
METHOD collectReplacements(Closure) String
+METHOD collectReplacements(List) String
METHOD compareTo(String) [PUBLIC] int
METHOD compareTo(T) [PUBLIC] int
METHOD compareToIgnoreCase(String) [PUBLIC] int
METHOD concat(String) [PUBLIC] String
METHOD contains(CharSequence) [PUBLIC] boolean
+METHOD containsIgnoreCase(CharSequenc boolean
METHOD contentEquals(CharSequence) [PUBLIC] boolean
METHOD contentEquals(StringBuffer) [PUBLIC] boolean
METHOD copyValueOf(char[]) [STATIC, String
@@ -37,6 +39,7 @@ METHOD decodeHex() byte[]
METHOD denormalize() String
METHOD digest(String) String
METHOD drop(int) String
+METHOD dropRight(int) String
METHOD dropWhile(Closure) String
METHOD dump() String
METHOD each(Closure) Object
@@ -48,6 +51,7 @@ METHOD eachMatch(String, Closure) String
METHOD eachWithIndex(Closure) Object
METHOD endsWith(String) [PUBLIC] boolean
METHOD endsWithAny(CharSequence[]) boolean
+METHOD endsWithIgnoreCase(CharSequenc boolean
METHOD equals(Object) [PUBLIC] boolean
METHOD equalsIgnoreCase(String) [PUBLIC] boolean
METHOD every() boolean
@@ -196,7 +200,10 @@ METHOD sprintf(String, Object) String
METHOD startsWith(String) [PUBLIC] boolean
METHOD startsWith(String, int) [PUBLIC] boolean
METHOD startsWithAny(CharSequence[]) boolean
+METHOD startsWithIgnoreCase(CharSeque boolean
+METHOD stream() Stream
METHOD stripIndent() String
+METHOD stripIndent(boolean) String
METHOD stripIndent(int) String
METHOD stripMargin() String
METHOD stripMargin(CharSequence) String
@@ -205,6 +212,14 @@ METHOD subSequence(int, int) [PUBLIC] CharSequence
METHOD substring(int) [PUBLIC] String
METHOD substring(int, int) [PUBLIC] String
METHOD take(int) String
+METHOD takeAfter(CharSequence) String
+METHOD takeBefore(CharSequence) CharSequence
+METHOD takeBefore(String) String
+METHOD takeBetween(CharSequence) String
+METHOD takeBetween(CharSequence, int String
+METHOD takeBetween(CharSequence, Char String
+METHOD takeBetween(CharSequence, Char String
+METHOD takeRight(int) String
METHOD takeWhile(Closure) String
METHOD tap(Closure) Object
METHOD toBigDecimal() BigDecimal
@@ -256,4 +271,4 @@ METHOD withTraits(Class[]) Object
FIELD CASE_INSENSITIVE_ORDER [STATIC, Comparator<String>
FIELD bytes [PUBLIC] byte[]
FIELD class [PUBLIC] Class
-FIELD empty [PUBLIC] boolean
+FIELD empty [PUBLIC] boolean
\ No newline at end of file
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator2/SpreadOperator2.groovy.testSpreadOperator2_stringArray_sPrefix.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator2/SpreadOperator2.groovy.testSpreadOperator2_stringArray_sPrefix.completion
index c8d9e8b..3b1c381 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator2/SpreadOperator2.groovy.testSpreadOperator2_stringArray_sPrefix.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator2/SpreadOperator2.groovy.testSpreadOperator2_stringArray_sPrefix.completion
@@ -18,11 +18,14 @@ METHOD sprintf(String, Object) String
METHOD startsWith(String) [PUBLIC] boolean
METHOD startsWith(String, int) [PUBLIC] boolean
METHOD startsWithAny(CharSequence[]) boolean
+METHOD startsWithIgnoreCase(CharSeque boolean
+METHOD stream() Stream
METHOD stripIndent() String
+METHOD stripIndent(boolean) String
METHOD stripIndent(int) String
METHOD stripMargin() String
METHOD stripMargin(CharSequence) String
METHOD stripMargin(char) String
METHOD subSequence(int, int) [PUBLIC] CharSequence
METHOD substring(int) [PUBLIC] String
-METHOD substring(int, int) [PUBLIC] String
+METHOD substring(int, int) [PUBLIC] String
\ No newline at end of file
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator3/SpreadOperator3.groovy.testSpreadOperator3_intArray_all.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator3/SpreadOperator3.groovy.testSpreadOperator3_intArray_all.completion
index a3a8abc..f6a7545 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator3/SpreadOperator3.groovy.testSpreadOperator3_intArray_all.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator3/SpreadOperator3.groovy.testSpreadOperator3_intArray_all.completion
@@ -127,6 +127,7 @@ METHOD split(Closure) Collection
METHOD sprintf(String, Object) String
METHOD sprintf(String, Object) String
METHOD step(Number, Number, Closure) void
+METHOD stream() Stream
METHOD stringSize(int) [STATIC] int
METHOD sum(int, int) [STATIC, int
METHOD tap(Closure) Object
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator4/SpreadOperator4.groovy.testSpreadOperator4_intArray_sPrefix.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator4/SpreadOperator4.groovy.testSpreadOperator4_intArray_sPrefix.completion
index 36108ce..ae8957a 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator4/SpreadOperator4.groovy.testSpreadOperator4_intArray_sPrefix.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/operators/spreadOperator4/SpreadOperator4.groovy.testSpreadOperator4_intArray_sPrefix.completion
@@ -11,5 +11,6 @@ METHOD split(Closure) Collection
METHOD sprintf(String, Object) String
METHOD sprintf(String, Object) String
METHOD step(Number, Number, Closure) void
+METHOD stream() Stream
METHOD stringSize(int) [STATIC] int
-METHOD sum(int, int) [STATIC, int
+METHOD sum(int, int) [STATIC, int
\ No newline at end of file
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/package/afterExtendsTypeCompletion1/AfterExtendsTypeCompletion1.groovy.testAfterExtendsTypeCompletion1.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/package/afterExtendsTypeCompletion1/AfterExtendsTypeCompletion1.groovy.testAfterExtendsTypeCompletion1.completion
index 10147c2..52cdd9d 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/package/afterExtendsTypeCompletion1/AfterExtendsTypeCompletion1.groovy.testAfterExtendsTypeCompletion1.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/package/afterExtendsTypeCompletion1/AfterExtendsTypeCompletion1.groovy.testAfterExtendsTypeCompletion1.completion
@@ -5,8 +5,8 @@ class NoPrefix extends | {
PACKAGE com null
PACKAGE groovy null
PACKAGE groovyjarjarantlr null
+PACKAGE groovyjarjarantlr4 null
PACKAGE groovyjarjarasm null
-PACKAGE groovyjarjarcommonscli null
PACKAGE groovyjarjarpicocli null
PACKAGE java null
PACKAGE javax null
@@ -179,6 +179,7 @@ CLASS GroovyRuntimeException null
CLASS GroovyScriptEngine null
CLASS GroovyShell null
CLASS GroovySystem null
+CLASS Groovydoc null
CLASS HashMap null
CLASS HashSet null
CLASS Hashtable null
@@ -440,7 +441,15 @@ CLASS TracingInterceptor null
CLASS TreeMap null
CLASS TreeSet null
CLASS Tuple null
+CLASS Tuple0 null
CLASS Tuple1 null
+CLASS Tuple10 null
+CLASS Tuple11 null
+CLASS Tuple12 null
+CLASS Tuple13 null
+CLASS Tuple14 null
+CLASS Tuple15 null
+CLASS Tuple16 null
CLASS Tuple2 null
CLASS Tuple3 null
CLASS Tuple4 null
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/delegate1/Delegate1.groovy.testDelegate1_interfaceDelegator_withoutPrefix.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/delegate1/Delegate1.groovy.testDelegate1_interfaceDelegator_withoutPrefix.completion
index baabbcf..304e1c3 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/delegate1/Delegate1.groovy.testDelegate1_interfaceDelegator_withoutPrefix.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/delegate1/Delegate1.groovy.testDelegate1_interfaceDelegator_withoutPrefix.completion
@@ -31,7 +31,7 @@ METHOD findResult(Object, Closure) Object
METHOD getAt(String) Object
METHOD getClass() [PUBLIC] Class<?>
METHOD getDelegation() [PUBLIC] Delegation
-METHOD getMetaClass() MetaClass
+METHOD getMetaClass() [PUBLIC] MetaClass
METHOD getMetaPropertyValues() List
METHOD getProperties() Map
METHOD getProperty(String) [PUBLIC] Object
@@ -62,7 +62,7 @@ METHOD putAt(String, Object) void
METHOD respondsTo(String) List
METHOD respondsTo(String, Object) List
METHOD setDelegation(Delegation) [PUBLIC] void
-METHOD setMetaClass(MetaClass) void
+METHOD setMetaClass(MetaClass) [PUBLIC] void
METHOD setProperty(String, Object) [PUBLIC] void
METHOD showMe() [PROTECTE void
METHOD sleep(long) void
@@ -70,6 +70,7 @@ METHOD sleep(long, Closure) void
METHOD split(Closure) Collection
METHOD sprintf(String, Object) String
METHOD sprintf(String, Object) String
+METHOD stream() Stream
METHOD tap(Closure) Object
METHOD toString() [PUBLIC] String
METHOD use(Class, Closure) Object
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/singleton2/Singleton2.groovy.testSingleton2_withGetPrefix.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/singleton2/Singleton2.groovy.testSingleton2_withGetPrefix.completion
index 36a544f..1002484 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/singleton2/Singleton2.groovy.testSingleton2_withGetPrefix.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/singleton2/Singleton2.groovy.testSingleton2_withGetPrefix.completion
@@ -5,7 +5,7 @@ Singleton2.get|
METHOD getAt(String) Object
METHOD getClass() [PUBLIC] Class<?>
METHOD getInstance() [STATIC] Singleton2
-METHOD getMetaClass() MetaClass
+METHOD getMetaClass() [PUBLIC] MetaClass
METHOD getMetaPropertyValues() List
METHOD getProperties() Map
METHOD getProperty(String) [PUBLIC] Object
diff --git a/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/singleton3/Singleton3.groovy.testSingleton3_withoutPrefix.completion b/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/singleton3/Singleton3.groovy.testSingleton3_withoutPrefix.completion
index bc1dbe8..980762b 100644
--- a/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/singleton3/Singleton3.groovy.testSingleton3_withoutPrefix.completion
+++ b/groovy/groovy.editor/test/unit/data/testfiles/completion/transformations/singleton3/Singleton3.groovy.testSingleton3_withoutPrefix.completion
@@ -33,7 +33,7 @@ METHOD findResult(Object, Closure) Object
METHOD getAt(String) Object
METHOD getClass() [PUBLIC] Class<?>
METHOD getInstance() [STATIC] Singleton3
-METHOD getMetaClass() MetaClass
+METHOD getMetaClass() [PUBLIC] MetaClass
METHOD getMetaPropertyValues() List
METHOD getProperties() Map
METHOD getProperty(String) [PUBLIC] Object
@@ -62,13 +62,14 @@ METHOD println(PrintWriter) void
METHOD putAt(String, Object) void
METHOD respondsTo(String) List
METHOD respondsTo(String, Object) List
-METHOD setMetaClass(MetaClass) void
+METHOD setMetaClass(MetaClass) [PUBLIC] void
METHOD setProperty(String, Object) [PUBLIC] void
METHOD sleep(long) void
METHOD sleep(long, Closure) void
METHOD split(Closure) Collection
METHOD sprintf(String, Object) String
METHOD sprintf(String, Object) String
+METHOD stream() Stream
METHOD tap(Closure) Object
METHOD toString() [PUBLIC] String
METHOD use(Class, Closure) Object
diff --git a/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/GroovyDeclarationFinderTest.java b/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/GroovyDeclarationFinderTest.java
index 7aaba23..29ddabc 100644
--- a/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/GroovyDeclarationFinderTest.java
+++ b/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/GroovyDeclarationFinderTest.java
@@ -130,19 +130,18 @@ public class GroovyDeclarationFinderTest extends GroovyTestBase {
" return Inner^Classes.Type.DUMMY_1;", "InnerClasses.java", 12);
}
- // TESTFAIL wrongly parsed source by groovy
-// public void testInnerClasses2() throws Exception {
-// checkDeclaration(TEST_BASE + "a/Declaration3.groovy",
-// " return InnerClasses.Ty^pe.DUMMY_1;", "InnerClasses.java", 45);
-// }
-//
-// public void testInnerClasses3() throws Exception {
-// checkDeclaration(TEST_BASE + "a/Declaration3.groovy",
-// " InnerClasses.Type.ca^ll()", "InnerClasses.java", 45);
-// }
-//
-// public void testInnerClasses4() throws Exception {
-// checkDeclaration(TEST_BASE + "a/Declaration3.groovy",
-// " return InnerClasses.Type.DU^MMY_1;", "InnerClasses.java", 80);
-// }
+ public void testInnerClasses2() throws Exception {
+ checkDeclaration(TEST_BASE + "a/Declaration3.groovy",
+ " return InnerClasses.Ty^pe.DUMMY_1;", "InnerClasses.java", 45);
+ }
+
+ public void testInnerClasses3() throws Exception {
+ checkDeclaration(TEST_BASE + "a/Declaration3.groovy",
+ " InnerClasses.Type.ca^ll()", "InnerClasses.java", 114);
+ }
+
+ public void testInnerClasses4() throws Exception {
+ checkDeclaration(TEST_BASE + "a/Declaration3.groovy",
+ " return InnerClasses.Type.DU^MMY_1;", "InnerClasses.java", 79);
+ }
}
diff --git a/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/GroovyIndexTest.java b/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/GroovyIndexTest.java
index ee14067..e337a15 100644
--- a/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/GroovyIndexTest.java
+++ b/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/GroovyIndexTest.java
@@ -23,7 +23,6 @@ import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
-import static junit.framework.Assert.assertEquals;
import org.netbeans.modules.groovy.editor.api.elements.index.IndexedClass;
import org.netbeans.modules.groovy.editor.api.elements.index.IndexedMethod;
import org.netbeans.modules.groovy.editor.test.GroovyTestBase;
@@ -48,7 +47,7 @@ public class GroovyIndexTest extends GroovyTestBase {
assertEquals(3, methods.size());
methods = index.getMethods(".*", "demo.GroovyClass1", QuerySupport.Kind.REGEXP);
- assertEquals(4, methods.size());
+ assertEquals(6, methods.size());
}
public void testGetClasses() throws Exception {
diff --git a/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/parser/GroovyVirtualSourceProviderTest.java b/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/parser/GroovyVirtualSourceProviderTest.java
index 419dbec..b175e8e 100644
--- a/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/parser/GroovyVirtualSourceProviderTest.java
+++ b/groovy/groovy.editor/test/unit/src/org/netbeans/modules/groovy/editor/api/parser/GroovyVirtualSourceProviderTest.java
@@ -55,8 +55,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
CharSequence charSequence = generator.generateClass(classNodes.get(0));
assertEquals(
"import groovy.lang.*;" + lineSep +
- "import java.net.*;" + lineSep +
"import java.util.*;" + lineSep +
+ "import java.net.*;" + lineSep +
"import java.lang.*;" + lineSep +
"import groovy.util.*;" + lineSep +
"import java.io.*;" + lineSep +
@@ -66,6 +66,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
" groovy.lang.GroovyObject {" + lineSep +
"public Foo() {}" + lineSep +
"public java.lang.Object method1() { return null;}" + lineSep +
+ "public groovy.lang.MetaClass getMetaClass() { return (groovy.lang.MetaClass)null;}" + lineSep +
+ "public void setMetaClass(groovy.lang.MetaClass mc) { }" + lineSep +
"public java.lang.Object getClosure1() { return null;}" + lineSep +
"public void setClosure1(java.lang.Object value) { }" + lineSep +
"}" + lineSep, charSequence);
@@ -86,8 +88,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
CharSequence charSequence = generator.generateClass(classNodes.get(0));
assertEquals(
"import groovy.lang.*;" + lineSep +
- "import java.net.*;" + lineSep +
"import java.util.*;" + lineSep +
+ "import java.net.*;" + lineSep +
"import java.lang.*;" + lineSep +
"import groovy.util.*;" + lineSep +
"import java.io.*;" + lineSep +
@@ -118,8 +120,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
CharSequence charSequence = generator.generateClass(classNodes.get(0));
assertEquals(
"import groovy.lang.*;" + lineSep +
- "import java.net.*;" + lineSep +
"import java.util.*;" + lineSep +
+ "import java.net.*;" + lineSep +
"import java.lang.*;" + lineSep +
"import groovy.util.*;" + lineSep +
"import java.io.*;" + lineSep +
@@ -129,6 +131,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
" groovy.lang.GroovyObject {" + lineSep +
"public Foo() {}" + lineSep +
"public static java.util.List<java.lang.String> get() { return (java.util.List<java.lang.String>)null;}" + lineSep +
+ "public groovy.lang.MetaClass getMetaClass() { return (groovy.lang.MetaClass)null;}" + lineSep +
+ "public void setMetaClass(groovy.lang.MetaClass mc) { }" + lineSep +
"}" + lineSep, charSequence);
}
@@ -148,8 +152,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
CharSequence charSequence = generator.generateClass(classNodes.get(0));
assertEquals(
"import groovy.lang.*;" + lineSep +
- "import java.net.*;" + lineSep +
"import java.util.*;" + lineSep +
+ "import java.net.*;" + lineSep +
"import java.lang.*;" + lineSep +
"import groovy.util.*;" + lineSep +
"import javax.swing.*;" + lineSep +
@@ -160,6 +164,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
" groovy.lang.GroovyObject {" + lineSep +
"public MyTest() {}" + lineSep +
"public javax.swing.JPanel getPanel() { return (javax.swing.JPanel)null;}" + lineSep +
+ "public groovy.lang.MetaClass getMetaClass() { return (groovy.lang.MetaClass)null;}" + lineSep +
+ "public void setMetaClass(groovy.lang.MetaClass mc) { }" + lineSep +
"}" + lineSep, charSequence);
}
@@ -184,8 +190,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
CharSequence charSequence = generator.generateClass(classNodes.get(0));
assertEquals(
"import groovy.lang.*;" + lineSep +
- "import java.net.*;" + lineSep +
"import java.util.*;" + lineSep +
+ "import java.net.*;" + lineSep +
"import java.lang.*;" + lineSep +
"import groovy.util.*;" + lineSep +
"import java.io.*;" + lineSep +
@@ -195,6 +201,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
" groovy.lang.GroovyObject {" + lineSep +
"public PostService() {}" + lineSep +
"public java.lang.Object serviceMethod() throws PostException { return null;}" + lineSep +
+ "public groovy.lang.MetaClass getMetaClass() { return (groovy.lang.MetaClass)null;}" + lineSep +
+ "public void setMetaClass(groovy.lang.MetaClass mc) { }" + lineSep +
"public boolean getTransactional() { return (boolean)false;}" + lineSep +
"public void setTransactional(boolean value) { }" + lineSep +
"public boolean isTransactional() { return (boolean)false;}" + lineSep +
@@ -203,8 +211,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
charSequence = generator.generateClass(classNodes.get(1));
assertEquals(
"import groovy.lang.*;" + lineSep +
- "import java.net.*;" + lineSep +
"import java.util.*;" + lineSep +
+ "import java.net.*;" + lineSep +
"import java.lang.*;" + lineSep +
"import groovy.util.*;" + lineSep +
"import java.io.*;" + lineSep +
@@ -215,6 +223,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
"public PostException() {" + lineSep +
"super ();" + lineSep +
"}" + lineSep +
+ "public groovy.lang.MetaClass getMetaClass() { return (groovy.lang.MetaClass)null;}" + lineSep +
+ "public void setMetaClass(groovy.lang.MetaClass mc) { }" + lineSep +
"}" + lineSep, charSequence);
}
@@ -239,8 +249,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
CharSequence charSequence = generator.generateClass(classNodes.get(0));
assertEquals(
"import groovy.lang.*;" + lineSep +
- "import java.net.*;" + lineSep +
"import java.util.*;" + lineSep +
+ "import java.net.*;" + lineSep +
"import java.lang.*;" + lineSep +
"import groovy.util.*;" + lineSep +
"import java.io.*;" + lineSep +
@@ -252,6 +262,8 @@ public class GroovyVirtualSourceProviderTest extends GroovyTestBase {
"public void test1() throws java.lang.RuntimeException { }" + lineSep +
"public void test2() throws java.lang.Exception { }" + lineSep +
"public java.lang.Object test3() throws java.lang.RuntimeException { return null;}" + lineSep +
+ "public groovy.lang.MetaClass getMetaClass() { return (groovy.lang.MetaClass)null;}" + lineSep +
+ "public void setMetaClass(groovy.lang.MetaClass mc) { }" + lineSep +
"}" + lineSep, charSequence);
}
}
diff --git a/groovy/groovy.gsp/nbproject/project.xml b/groovy/groovy.gsp/nbproject/project.xml
index a969329..6327c30 100644
--- a/groovy/groovy.gsp/nbproject/project.xml
+++ b/groovy/groovy.gsp/nbproject/project.xml
@@ -154,8 +154,8 @@
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
- <release-version>2</release-version>
- <specification-version>1.10</specification-version>
+ <release-version>3</release-version>
+ <specification-version>1.76</specification-version>
</run-dependency>
</dependency>
<dependency>
@@ -251,7 +251,7 @@
</run-dependency>
</dependency>
<dependency>
- <code-name-base>org.openide.util.ui</code-name-base>
+ <code-name-base>org.openide.util</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
@@ -259,19 +259,19 @@
</run-dependency>
</dependency>
<dependency>
- <code-name-base>org.openide.util</code-name-base>
+ <code-name-base>org.openide.util.lookup</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
- <specification-version>9.3</specification-version>
+ <specification-version>8.0</specification-version>
</run-dependency>
</dependency>
<dependency>
- <code-name-base>org.openide.util.lookup</code-name-base>
+ <code-name-base>org.openide.util.ui</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
- <specification-version>8.0</specification-version>
+ <specification-version>9.3</specification-version>
</run-dependency>
</dependency>
<dependency>
diff --git a/groovy/groovy.kit/nbproject/project.xml b/groovy/groovy.kit/nbproject/project.xml
index 437eeed..88a7269 100644
--- a/groovy/groovy.kit/nbproject/project.xml
+++ b/groovy/groovy.kit/nbproject/project.xml
@@ -34,8 +34,8 @@
<dependency>
<code-name-base>org.netbeans.modules.groovy.editor</code-name-base>
<run-dependency>
- <release-version>2</release-version>
- <specification-version>1.10</specification-version>
+ <release-version>3</release-version>
+ <specification-version>1.76</specification-version>
</run-dependency>
</dependency>
<dependency>
diff --git a/groovy/groovy.refactoring/nbproject/project.xml b/groovy/groovy.refactoring/nbproject/project.xml
index 54e07cf..4c23925 100644
--- a/groovy/groovy.refactoring/nbproject/project.xml
+++ b/groovy/groovy.refactoring/nbproject/project.xml
@@ -70,20 +70,20 @@
</run-dependency>
</dependency>
<dependency>
- <code-name-base>org.netbeans.modules.editor.lib</code-name-base>
+ <code-name-base>org.netbeans.modules.editor.document</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
- <release-version>3</release-version>
- <specification-version>4.0</specification-version>
+ <specification-version>1.0</specification-version>
</run-dependency>
</dependency>
<dependency>
- <code-name-base>org.netbeans.modules.editor.document</code-name-base>
+ <code-name-base>org.netbeans.modules.editor.lib</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
- <specification-version>1.0</specification-version>
+ <release-version>3</release-version>
+ <specification-version>4.0</specification-version>
</run-dependency>
</dependency>
<dependency>
@@ -109,8 +109,8 @@
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
- <release-version>2</release-version>
- <specification-version>1.12</specification-version>
+ <release-version>3</release-version>
+ <specification-version>1.76</specification-version>
</run-dependency>
</dependency>
<dependency>
@@ -138,7 +138,7 @@
<release-version>1</release-version>
<specification-version>1.62</specification-version>
</run-dependency>
- </dependency>
+ </dependency>
<dependency>
<code-name-base>org.netbeans.modules.java.source.base</code-name-base>
<build-prerequisite/>
@@ -292,7 +292,7 @@
</run-dependency>
</dependency>
<dependency>
- <code-name-base>org.openide.util.ui</code-name-base>
+ <code-name-base>org.openide.util</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
@@ -300,19 +300,19 @@
</run-dependency>
</dependency>
<dependency>
- <code-name-base>org.openide.util</code-name-base>
+ <code-name-base>org.openide.util.lookup</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
- <specification-version>9.3</specification-version>
+ <specification-version>8.0</specification-version>
</run-dependency>
</dependency>
<dependency>
- <code-name-base>org.openide.util.lookup</code-name-base>
+ <code-name-base>org.openide.util.ui</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
- <specification-version>8.0</specification-version>
+ <specification-version>9.3</specification-version>
</run-dependency>
</dependency>
<dependency>
diff --git a/groovy/libs.groovy/external/binaries-list b/groovy/libs.groovy/external/binaries-list
index d677d59..9f16028 100644
--- a/groovy/libs.groovy/external/binaries-list
+++ b/groovy/libs.groovy/external/binaries-list
@@ -14,5 +14,5 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-F0A005FB21E7BD9B7EBF04CD2ECDA0FC8F3BE59D org.codehaus.groovy:groovy:2.5.14
-A230C95333F584BF8FE215C608B04AFB3B11A9F9 org.codehaus.groovy:groovy-ant:2.5.14
+43A7ECF3B8A9D7DD9FC8D468AE96B97CFF4616DF org.codehaus.groovy:groovy:3.0.8
+3077166ED6635F777064AD79C8CA080AB8DC3247 org.codehaus.groovy:groovy-ant:3.0.8
diff --git a/groovy/libs.groovy/external/groovy-2.5.14-license.txt b/groovy/libs.groovy/external/groovy-3.0.8-license.txt
similarity index 99%
rename from groovy/libs.groovy/external/groovy-2.5.14-license.txt
rename to groovy/libs.groovy/external/groovy-3.0.8-license.txt
index a8742d7..524bce7 100644
--- a/groovy/libs.groovy/external/groovy-2.5.14-license.txt
+++ b/groovy/libs.groovy/external/groovy-3.0.8-license.txt
@@ -1,6 +1,6 @@
Name: Groovy
-Version: 2.5.14
-Files: groovy-2.5.14.jar groovy-ant-2.5.14.jar
+Version: 3.0.8
+Files: groovy-3.0.8.jar groovy-ant-3.0.8.jar
Description: Groovy Language distribution.
License: Apache-2.0-groovy
Origin: http://groovy-lang.org/
diff --git a/groovy/libs.groovy/external/groovy-2.5.14-notice.txt b/groovy/libs.groovy/external/groovy-3.0.8-notice.txt
similarity index 100%
rename from groovy/libs.groovy/external/groovy-2.5.14-notice.txt
rename to groovy/libs.groovy/external/groovy-3.0.8-notice.txt
diff --git a/groovy/libs.groovy/manifest.mf b/groovy/libs.groovy/manifest.mf
index 63b9831..e28f718 100644
--- a/groovy/libs.groovy/manifest.mf
+++ b/groovy/libs.groovy/manifest.mf
@@ -3,5 +3,5 @@ AutoUpdate-Show-In-Client: false
OpenIDE-Module: org.netbeans.modules.libs.groovy
OpenIDE-Module-Layer: org/netbeans/modules/libs/groovy/layer.xml
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/libs/groovy/Bundle.properties
-OpenIDE-Module-Specification-Version: 2.10
+OpenIDE-Module-Specification-Version: 2.11
diff --git a/groovy/libs.groovy/nbproject/project.properties b/groovy/libs.groovy/nbproject/project.properties
index e4c3909..9978e23 100644
--- a/groovy/libs.groovy/nbproject/project.properties
+++ b/groovy/libs.groovy/nbproject/project.properties
@@ -24,5 +24,5 @@ javac.compilerargs=-Xlint -Xlint:-serial
sigtest.gen.fail.on.error=false
#cp.extra=external/groovy-all-2.1.7.jar
-release.external/groovy-2.5.14.jar=modules/ext/groovy.jar
-release.external/groovy-ant-2.5.14.jar=modules/ext/groovy-ant.jar
+release.external/groovy-3.0.8.jar=modules/ext/groovy.jar
+release.external/groovy-ant-3.0.8.jar=modules/ext/groovy-ant.jar
diff --git a/groovy/libs.groovy/nbproject/project.xml b/groovy/libs.groovy/nbproject/project.xml
index 5fc093e..db18113 100644
--- a/groovy/libs.groovy/nbproject/project.xml
+++ b/groovy/libs.groovy/nbproject/project.xml
@@ -30,6 +30,7 @@
<friend>org.netbeans.modules.groovy.refactoring</friend>
<friend>org.netbeans.modules.groovy.support</friend>
<package>groovy.lang</package>
+ <package>groovy.lang.groovydoc</package>
<package>groovyjarjarantlr</package>
<package>groovyjarjarasm.asm</package>
<package>org.codehaus.groovy</package>
@@ -45,17 +46,19 @@
<package>org.codehaus.groovy.control.customizers.builder</package>
<package>org.codehaus.groovy.control.messages</package>
<package>org.codehaus.groovy.reflection</package>
+ <package>org.codehaus.groovy.runtime</package>
+ <package>org.codehaus.groovy.runtime.callsite</package>
<package>org.codehaus.groovy.syntax</package>
<package>org.codehaus.groovy.transform</package>
<package>org.codehaus.groovy.transform.stc</package>
</friend-packages>
<class-path-extension>
<runtime-relative-path>ext/groovy.jar</runtime-relative-path>
- <binary-origin>external/groovy-2.5.14.jar</binary-origin>
+ <binary-origin>external/groovy-3.0.8.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/groovy-ant.jar</runtime-relative-path>
- <binary-origin>external/groovy-ant-2.5.14.jar</binary-origin>
+ <binary-origin>external/groovy-ant-3.0.8.jar</binary-origin>
</class-path-extension>
</data>
</configuration>
diff --git a/groovy/libs.groovy/src/org/apache/groovy/parser/antlr4/util/PositionConfigureUtils.java b/groovy/libs.groovy/src/org/apache/groovy/parser/antlr4/util/PositionConfigureUtils.java
new file mode 100644
index 0000000..838df3f
--- /dev/null
+++ b/groovy/libs.groovy/src/org/apache/groovy/parser/antlr4/util/PositionConfigureUtils.java
@@ -0,0 +1,150 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.groovy.parser.antlr4.util;
+
+import groovy.lang.Tuple2;
+import groovyjarjarantlr4.v4.runtime.Token;
+import groovyjarjarantlr4.v4.runtime.tree.TerminalNode;
+import org.apache.groovy.parser.antlr4.GroovyParser;
+import org.codehaus.groovy.ast.ASTNode;
+
+import static groovy.lang.Tuple.tuple;
+import org.codehaus.groovy.ast.expr.Expression;
+import org.codehaus.groovy.ast.expr.MethodCallExpression;
+import org.codehaus.groovy.ast.expr.PropertyExpression;
+import static org.codehaus.groovy.runtime.DefaultGroovyMethods.asBoolean;
+
+/**
+ * Utilities for configuring node positions
+ */
+public class PositionConfigureUtils {
+ /**
+ * Sets location(lineNumber, colNumber, lastLineNumber, lastColumnNumber) for node using standard context information.
+ * Note: this method is implemented to be closed over ASTNode. It returns same node as it received in arguments.
+ *
+ * @param astNode Node to be modified.
+ * @param ctx Context from which information is obtained.
+ * @return Modified astNode.
+ */
+ public static <T extends ASTNode> T configureAST(T astNode, GroovyParser.GroovyParserRuleContext ctx) {
+ Token start = ctx.getStart();
+ Token stop = ctx.getStop();
+
+ astNode.setLineNumber(start.getLine());
+ astNode.setColumnNumber(start.getCharPositionInLine() + 1);
+
+ if (astNode instanceof PropertyExpression) {
+ Expression objectExpression = ((PropertyExpression) astNode).getObjectExpression();
+ if (objectExpression.getLineNumber() < astNode.getLineNumber()) {
+ astNode.setLineNumber(objectExpression.getLineNumber());
+ astNode.setColumnNumber(objectExpression.getColumnNumber());
+ } else if (objectExpression.getLineNumber() == astNode.getLineNumber() && objectExpression.getColumnNumber() < astNode.getColumnNumber()) {
+ astNode.setColumnNumber(objectExpression.getColumnNumber());
+ }
+ } else if (astNode instanceof MethodCallExpression) {
+ Expression method = ((MethodCallExpression) astNode).getMethod();
+ if (method.getLineNumber() < astNode.getLineNumber()) {
+ astNode.setLineNumber(method.getLineNumber());
+ astNode.setColumnNumber(method.getColumnNumber());
+ } else if (method.getLineNumber() == astNode.getLineNumber() && method.getColumnNumber() < astNode.getColumnNumber()) {
+ astNode.setColumnNumber(method.getColumnNumber());
+ }
+ }
+
+ configureEndPosition(astNode, stop);
+
+ return astNode;
+ }
+
+ public static Tuple2<Integer, Integer> endPosition(Token token) {
+ String stopText = token.getText();
+ int stopTextLength = 0;
+ int newLineCnt = 0;
+ if (null != stopText) {
+ stopTextLength = stopText.length();
+ newLineCnt = (int) StringUtils.countChar(stopText, '\n');
+ }
+
+ if (0 == newLineCnt) {
+ return tuple(token.getLine(), token.getCharPositionInLine() + 1 + token.getText().length());
+ } else { // e.g. GStringEnd contains newlines, we should fix the location info
+ return tuple(token.getLine() + newLineCnt, stopTextLength - stopText.lastIndexOf('\n'));
+ }
+ }
+
+ public static <T extends ASTNode> T configureAST(T astNode, TerminalNode terminalNode) {
+ return configureAST(astNode, terminalNode.getSymbol());
+ }
+
+ public static <T extends ASTNode> T configureAST(T astNode, Token token) {
+ astNode.setLineNumber(token.getLine());
+ astNode.setColumnNumber(token.getCharPositionInLine() + 1);
+ astNode.setLastLineNumber(token.getLine());
+ astNode.setLastColumnNumber(token.getCharPositionInLine() + 1 + token.getText().length());
+
+ return astNode;
+ }
+
+ public static <T extends ASTNode> T configureAST(T astNode, ASTNode source) {
+ astNode.setLineNumber(source.getLineNumber());
+ astNode.setColumnNumber(source.getColumnNumber());
+ astNode.setLastLineNumber(source.getLastLineNumber());
+ astNode.setLastColumnNumber(source.getLastColumnNumber());
+
+ return astNode;
+ }
+
+ public static <T extends ASTNode> T configureAST(T astNode, GroovyParser.GroovyParserRuleContext ctx, ASTNode initialStop) {
+ Token start = ctx.getStart();
+ Token stop = ctx.getStop();
+
+ astNode.setLineNumber(start.getLine());
+ astNode.setColumnNumber(start.getCharPositionInLine() + 1);
+
+ if (asBoolean(initialStop)) {
+ astNode.setLastLineNumber(initialStop.getLastLineNumber());
+ astNode.setLastColumnNumber(initialStop.getLastColumnNumber());
+ } else {
+ configureEndPosition(astNode, stop);
+ }
+
+ return astNode;
+ }
+
+ public static <T extends ASTNode> void configureEndPosition(T astNode, Token token) {
+ Tuple2<Integer, Integer> endPosition = endPosition(token);
+ astNode.setLastLineNumber(endPosition.getV1());
+ astNode.setLastColumnNumber(endPosition.getV2());
+ }
+
+ public static <T extends ASTNode> T configureAST(T astNode, ASTNode start, ASTNode stop) {
+ astNode.setLineNumber(start.getLineNumber());
+ astNode.setColumnNumber(start.getColumnNumber());
+
+ if (asBoolean(stop)) {
+ astNode.setLastLineNumber(stop.getLastLineNumber());
+ astNode.setLastColumnNumber(stop.getLastColumnNumber());
+ } else {
+ astNode.setLastLineNumber(start.getLastLineNumber());
+ astNode.setLastColumnNumber(start.getLastColumnNumber());
+ }
+
+ return astNode;
+ }
+}
diff --git a/java/java.lsp.server/nbcode/nbproject/platform.properties b/java/java.lsp.server/nbcode/nbproject/platform.properties
index 014b263..4c019cc 100644
--- a/java/java.lsp.server/nbcode/nbproject/platform.properties
+++ b/java/java.lsp.server/nbcode/nbproject/platform.properties
@@ -20,6 +20,7 @@ cluster.path=\
${nbplatform.active.dir}/cpplite:\
${nbplatform.active.dir}/enterprise:\
${nbplatform.active.dir}/extide:\
+ ${nbplatform.active.dir}/groovy:\
${nbplatform.active.dir}/ide:\
${nbplatform.active.dir}/java:\
${nbplatform.active.dir}/nb:\
@@ -453,7 +454,14 @@ disabled.modules=\
org.netbeans.modules.websvc.saas.codegen.j2ee,\
org.netbeans.modules.websvc.utilities,\
org.netbeans.modules.websvc.websvcapi,\
- org.netbeans.modules.websvc.wsstackapi
+ org.netbeans.modules.websvc.wsstackapi,\
+ org.netbeans.modules.gradle.groovy,\
+ org.netbeans.modules.groovy.antproject,\
+ org.netbeans.modules.groovy.gsp,\
+ org.netbeans.modules.groovy.kit,\
+ org.netbeans.modules.groovy.refactoring,\
+ org.netbeans.modules.groovy.samples,\
+ org.netbeans.modules.maven.groovy
nbplatform.active=nball
suite.dir=${basedir}
nbplatform.nball.netbeans.dest.dir=${suite.dir}/../../../nbbuild/netbeans
diff --git a/java/java.lsp.server/script/etc/nbcode.clusters b/java/java.lsp.server/script/etc/nbcode.clusters
index 9a5a263..23990f5 100644
--- a/java/java.lsp.server/script/etc/nbcode.clusters
+++ b/java/java.lsp.server/script/etc/nbcode.clusters
@@ -3,6 +3,7 @@ ide
extide
webcommon
java
+groovy
cpplite
extra
enterprise
diff --git a/java/java.lsp.server/vscode/src/extension.ts b/java/java.lsp.server/vscode/src/extension.ts
index 0dab57c..2c72b7c 100644
--- a/java/java.lsp.server/vscode/src/extension.ts
+++ b/java/java.lsp.server/vscode/src/extension.ts
@@ -490,7 +490,12 @@ function doActivateWithJDK(specifiedJDK: string | null, context: ExtensionContex
// Options to control the language client
let clientOptions: LanguageClientOptions = {
// Register the server for java documents
- documentSelector: [{ language: 'java' }, { language: 'yaml', pattern: '**/{application,bootstrap}*.yml' }, { language: 'properties', pattern: '**/{application,bootstrap}*.properties' }],
+ documentSelector: [
+ { language: 'java' },
+ { language: 'groovy' },
+ { language: 'yaml', pattern: '**/{application,bootstrap}*.yml' },
+ { language: 'properties', pattern: '**/{application,bootstrap}*.properties' }
+ ],
synchronize: {
configurationSection: 'java',
fileEvents: [
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists