mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[groovy] update named argument provider API
This commit is contained in:
+17
-3
@@ -41,6 +41,8 @@ public abstract class GroovyNamedArgumentProvider {
|
||||
public static final ExtensionPointName<GroovyNamedArgumentProvider> 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<String, NamedArgumentDescriptor> 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<String, NamedArgumentDescriptor> result) {
|
||||
//noinspection deprecation
|
||||
getNamedArguments(call, resolveResult.getElement(), resolveResult, argumentName, forCompletion, result);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Map<String, NamedArgumentDescriptor> 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 &&
|
||||
|
||||
+4
-3
@@ -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<String, NamedArgumentDescriptor> 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;
|
||||
|
||||
+3
-1
@@ -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<String, NamedArgumentDescriptor> result) {
|
||||
PsiElement resolve = resolveResult.getElement();
|
||||
if (!forCompletion || !(resolve instanceof PsiMethod)) return;
|
||||
|
||||
PsiType returnType = ((PsiMethod)resolve).getReturnType();
|
||||
|
||||
+3
-1
@@ -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<String, NamedArgumentDescriptor> result) {
|
||||
PsiElement resolve = resolveResult.getElement();
|
||||
if (resolve instanceof GrMethod) {
|
||||
result.putAll(((GrMethod)resolve).getNamedParameters());
|
||||
}
|
||||
|
||||
+3
-1
@@ -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<String, NamedArgumentDescriptor> result) {
|
||||
PsiElement resolve = resolveResult.getElement();
|
||||
PsiType returnType = resolve == null ? null : ((PsiMethod)resolve).getReturnType();
|
||||
PsiClass aClass = PsiTypesUtil.getPsiClass(returnType);
|
||||
if (aClass == null) return;
|
||||
|
||||
Reference in New Issue
Block a user