mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
injection in enum constants (IDEA-169875)
This commit is contained in:
+5
-1
@@ -140,7 +140,7 @@ public class ConcatenationInjector implements ConcatenationAwareInjector {
|
||||
final LinkedList<PsiElement> places = new LinkedList<>();
|
||||
places.add(firstOperand);
|
||||
class MyAnnoVisitor implements AnnotationUtilEx.AnnotatedElementVisitor {
|
||||
public boolean visitMethodParameter(PsiExpression expression, PsiCallExpression psiCallExpression) {
|
||||
public boolean visitMethodParameter(PsiExpression expression, PsiCall psiCallExpression) {
|
||||
final PsiExpressionList list = psiCallExpression.getArgumentList();
|
||||
assert list != null;
|
||||
final int index = ArrayUtil.indexOf(list.getExpressions(), expression);
|
||||
@@ -160,6 +160,10 @@ public class ConcatenationInjector implements ConcatenationAwareInjector {
|
||||
final PsiJavaCodeReferenceElement classRef = ((PsiNewExpression)psiCallExpression).getClassOrAnonymousClassReference();
|
||||
methodName = classRef == null ? null : classRef.getReferenceName();
|
||||
}
|
||||
else if (psiCallExpression instanceof PsiEnumConstant) {
|
||||
PsiMethod method = psiCallExpression.resolveMethod();
|
||||
methodName = method != null ? method.getName() : null;
|
||||
}
|
||||
else {
|
||||
methodName = null;
|
||||
}
|
||||
|
||||
+3
-4
@@ -18,7 +18,6 @@ package org.intellij.plugins.intelliLang.inject.java;
|
||||
|
||||
import com.intellij.codeInsight.AnnotationUtil;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.lang.injection.MultiHostRegistrar;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.application.Result;
|
||||
@@ -194,7 +193,7 @@ public class JavaLanguageInjectionSupport extends AbstractLanguageInjectionSuppo
|
||||
parent instanceof PsiNameValuePair) {
|
||||
return doInjectInJavaMethod(project, findPsiMethod(parent), -1, host, languageId);
|
||||
}
|
||||
else if (parent instanceof PsiExpressionList && parent.getParent() instanceof PsiCallExpression) {
|
||||
else if (parent instanceof PsiExpressionList && parent.getParent() instanceof PsiCall) {
|
||||
return doInjectInJavaMethod(project, findPsiMethod(parent), findParameterIndex(target, (PsiExpressionList)parent), host, languageId);
|
||||
}
|
||||
else if (parent instanceof PsiAssignmentExpression) {
|
||||
@@ -341,8 +340,8 @@ public class JavaLanguageInjectionSupport extends AbstractLanguageInjectionSuppo
|
||||
}
|
||||
}
|
||||
final PsiMethod first;
|
||||
if (parent.getParent() instanceof PsiCallExpression) {
|
||||
first = ((PsiCallExpression)parent.getParent()).resolveMethod();
|
||||
if (parent.getParent() instanceof PsiCall) {
|
||||
first = ((PsiCall)parent.getParent()).resolveMethod();
|
||||
}
|
||||
else {
|
||||
first = PsiTreeUtil.getParentOfType(parent, PsiMethod.class, false);
|
||||
|
||||
+3
-3
@@ -119,7 +119,7 @@ public class AnnotationUtilEx {
|
||||
}
|
||||
|
||||
public interface AnnotatedElementVisitor {
|
||||
boolean visitMethodParameter(PsiExpression expression, PsiCallExpression psiCallExpression);
|
||||
boolean visitMethodParameter(PsiExpression expression, PsiCall psiCallExpression);
|
||||
boolean visitMethodReturnStatement(PsiElement source, PsiMethod method);
|
||||
boolean visitVariable(PsiVariable variable);
|
||||
boolean visitAnnotationParameter(PsiNameValuePair nameValuePair, PsiAnnotation psiAnnotation);
|
||||
@@ -178,8 +178,8 @@ public class AnnotationUtilEx {
|
||||
else if (parent instanceof PsiArrayInitializerMemberValue || parent instanceof PsiNameValuePair) {
|
||||
return true;
|
||||
}
|
||||
else if (parent instanceof PsiExpressionList && parent.getParent() instanceof PsiCallExpression) {
|
||||
return visitor.visitMethodParameter((PsiExpression)element, (PsiCallExpression)parent.getParent());
|
||||
else if (parent instanceof PsiExpressionList && parent.getParent() instanceof PsiCall) {
|
||||
return visitor.visitMethodParameter((PsiExpression)element, (PsiCall)parent.getParent());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user