From 23b7c6406383ba11480f49c19ebacd8f4c0326de Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Tue, 14 Feb 2017 19:25:41 +0300 Subject: [PATCH] [groovy] update named argument provider API --- .../GroovyNamedArgumentProvider.java | 20 ++++++++++++++++--- ...roovyConstructorNamedArgumentProvider.java | 7 ++++--- ...oovyMethodReturnNamedArgumentProvider.java | 4 +++- ...GroovySourceCodeNamedArgumentProvider.java | 4 +++- .../SwingBuilderNamedArgumentProvider.java | 4 +++- 5 files changed, 30 insertions(+), 9 deletions(-) diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/extensions/GroovyNamedArgumentProvider.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/extensions/GroovyNamedArgumentProvider.java index 5de93a543bc7..396f0e1ca13c 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/extensions/GroovyNamedArgumentProvider.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/extensions/GroovyNamedArgumentProvider.java @@ -41,6 +41,8 @@ public abstract class GroovyNamedArgumentProvider { public static final ExtensionPointName EP_NAME = ExtensionPointName.create("org.intellij.groovy.namedArgumentProvider"); + @SuppressWarnings("unused") + @Deprecated public void getNamedArguments(@NotNull GrCall call, @Nullable PsiElement resolve, @Nullable String argumentName, @@ -49,15 +51,27 @@ public abstract class GroovyNamedArgumentProvider { // no op } + @SuppressWarnings("unused") + @Deprecated public void getNamedArguments(@NotNull GrCall call, @Nullable PsiElement resolve, @Nullable GroovyResolveResult resolveResult, @Nullable String argumentName, boolean forCompletion, @NotNull Map result) { + //noinspection deprecation getNamedArguments(call, resolve, argumentName, forCompletion, result); } + public void getNamedArguments(@NotNull GrCall call, + @NotNull GroovyResolveResult resolveResult, + @Nullable String argumentName, + boolean forCompletion, + @NotNull Map result) { + //noinspection deprecation + getNamedArguments(call, resolveResult.getElement(), resolveResult, argumentName, forCompletion, result); + } + @NotNull public Map getNamedArguments(@NotNull GrListOrMap literal) { return Collections.emptyMap(); @@ -84,7 +98,7 @@ public abstract class GroovyNamedArgumentProvider { if (callVariants.length == 0 || PsiUtil.isSingleBindingVariant(callVariants)) { for (GroovyNamedArgumentProvider namedArgumentProvider : EP_NAME.getExtensions()) { - namedArgumentProvider.getNamedArguments(call, null, null, argumentName, forCompletion, namedArguments); + namedArgumentProvider.getNamedArguments(call, GroovyResolveResult.EMPTY_RESULT, argumentName, forCompletion, namedArguments); } } else { @@ -105,7 +119,7 @@ public abstract class GroovyNamedArgumentProvider { if (methodInfo.getNamedArguments() != null || methodInfo.isNamedArgumentProviderDefined()) { if (methodInfo.isApplicable(method)) { if (methodInfo.isNamedArgumentProviderDefined()) { - methodInfo.getNamedArgProvider().getNamedArguments(call, element, result, argumentName, forCompletion, namedArguments); + methodInfo.getNamedArgProvider().getNamedArguments(call, result, argumentName, forCompletion, namedArguments); } if (methodInfo.getNamedArguments() != null) { namedArguments.putAll(methodInfo.getNamedArguments()); @@ -116,7 +130,7 @@ public abstract class GroovyNamedArgumentProvider { } for (GroovyNamedArgumentProvider namedArgumentProvider : EP_NAME.getExtensions()) { - namedArgumentProvider.getNamedArguments(call, element, result, argumentName, forCompletion, namedArguments); + namedArgumentProvider.getNamedArguments(call, result, argumentName, forCompletion, namedArguments); } if (element instanceof GrVariable && diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovyConstructorNamedArgumentProvider.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovyConstructorNamedArgumentProvider.java index 63ff008a57c0..e970aafba57e 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovyConstructorNamedArgumentProvider.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovyConstructorNamedArgumentProvider.java @@ -53,11 +53,12 @@ public class GroovyConstructorNamedArgumentProvider extends GroovyNamedArgumentP @Override public void getNamedArguments(@NotNull GrCall call, - @Nullable PsiElement resolve, + @NotNull GroovyResolveResult resolveResult, @Nullable String argumentName, boolean forCompletion, @NotNull Map result) { if (!(call instanceof GrNewExpression)) return; + PsiElement resolve = resolveResult.getElement(); if (resolve != null) { if (!(resolve instanceof PsiMethod)) return; @@ -75,8 +76,8 @@ public class GroovyConstructorNamedArgumentProvider extends GroovyNamedArgumentP return; } - for (GroovyResolveResult resolveResult : newCall.multiResolveClass()) { - PsiElement element = resolveResult.getElement(); + for (GroovyResolveResult newResult : newCall.multiResolveClass()) { + PsiElement element = newResult.getElement(); if (!(element instanceof PsiClass)) continue; PsiClass aClass = (PsiClass)element; diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovyMethodReturnNamedArgumentProvider.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovyMethodReturnNamedArgumentProvider.java index 4ac81a535306..939b38f55ae8 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovyMethodReturnNamedArgumentProvider.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovyMethodReturnNamedArgumentProvider.java @@ -23,6 +23,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.extensions.GroovyNamedArgumentProvider; import org.jetbrains.plugins.groovy.extensions.NamedArgumentDescriptor; +import org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrCall; import java.util.HashMap; @@ -34,10 +35,11 @@ import java.util.Map; public class GroovyMethodReturnNamedArgumentProvider extends GroovyNamedArgumentProvider { @Override public void getNamedArguments(@NotNull GrCall call, - @Nullable PsiElement resolve, + @NotNull GroovyResolveResult resolveResult, @Nullable String argumentName, boolean forCompletion, @NotNull Map result) { + PsiElement resolve = resolveResult.getElement(); if (!forCompletion || !(resolve instanceof PsiMethod)) return; PsiType returnType = ((PsiMethod)resolve).getReturnType(); diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovySourceCodeNamedArgumentProvider.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovySourceCodeNamedArgumentProvider.java index acd27ea278b2..24e01bf0d62a 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovySourceCodeNamedArgumentProvider.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/GroovySourceCodeNamedArgumentProvider.java @@ -20,6 +20,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.extensions.GroovyNamedArgumentProvider; import org.jetbrains.plugins.groovy.extensions.NamedArgumentDescriptor; +import org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult; import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrField; import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrNamedArgumentSearchVisitor; import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrVariable; @@ -34,10 +35,11 @@ import java.util.Map; public class GroovySourceCodeNamedArgumentProvider extends GroovyNamedArgumentProvider { @Override public void getNamedArguments(@NotNull GrCall call, - @Nullable PsiElement resolve, + @NotNull GroovyResolveResult resolveResult, @Nullable String argumentName, boolean forCompletion, @NotNull Map result) { + PsiElement resolve = resolveResult.getElement(); if (resolve instanceof GrMethod) { result.putAll(((GrMethod)resolve).getNamedParameters()); } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/swingBuilder/SwingBuilderNamedArgumentProvider.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/swingBuilder/SwingBuilderNamedArgumentProvider.java index a6a402d99f31..9c7d023251fd 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/swingBuilder/SwingBuilderNamedArgumentProvider.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/swingBuilder/SwingBuilderNamedArgumentProvider.java @@ -24,6 +24,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.extensions.GroovyNamedArgumentProvider; import org.jetbrains.plugins.groovy.extensions.NamedArgumentDescriptor; import org.jetbrains.plugins.groovy.extensions.impl.TypeCondition; +import org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrCall; import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil; import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames; @@ -39,10 +40,11 @@ public class SwingBuilderNamedArgumentProvider extends GroovyNamedArgumentProvid @Override public void getNamedArguments(@NotNull GrCall call, - @Nullable PsiElement resolve, + @NotNull GroovyResolveResult resolveResult, @Nullable String argumentName, boolean forCompletion, @NotNull Map result) { + PsiElement resolve = resolveResult.getElement(); PsiType returnType = resolve == null ? null : ((PsiMethod)resolve).getReturnType(); PsiClass aClass = PsiTypesUtil.getPsiClass(returnType); if (aClass == null) return;