mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
PsiUtil.isAnnotationMethod
This commit is contained in:
+1
-1
@@ -154,7 +154,7 @@ class JavaClassNameInsertHandler implements InsertHandler<JavaPsiClassReferenceE
|
||||
final PsiModifierListOwner parent = PsiTreeUtil.getParentOfType(elementAt, PsiModifierListOwner.class, false, PsiCodeBlock.class);
|
||||
if (parent != null) {
|
||||
for (PsiMethod m : ((PsiClass)item.getObject()).getMethods()) {
|
||||
if (!(m instanceof PsiAnnotationMethod)) continue;
|
||||
if (!PsiUtil.isAnnotationMethod(m)) continue;
|
||||
final PsiAnnotationMemberValue defaultValue = ((PsiAnnotationMethod)m).getDefaultValue();
|
||||
if (defaultValue == null) return true;
|
||||
}
|
||||
|
||||
+13
-4
@@ -145,10 +145,19 @@ public class JavaCompletionContributor extends CompletionContributor {
|
||||
}
|
||||
|
||||
if (psiElement().inside(PsiAnnotationParameterList.class).accepts(position)) {
|
||||
return new OrFilter(new ClassFilter(PsiAnnotationMethod.class),
|
||||
ElementClassFilter.CLASS,
|
||||
ElementClassFilter.PACKAGE_FILTER,
|
||||
new AndFilter(new ClassFilter(PsiField.class), new ModifierFilter(PsiModifier.STATIC, PsiModifier.FINAL)));
|
||||
OrFilter orFilter = new OrFilter(ElementClassFilter.CLASS,
|
||||
ElementClassFilter.PACKAGE_FILTER,
|
||||
new AndFilter(new ClassFilter(PsiField.class),
|
||||
new ModifierFilter(PsiModifier.STATIC, PsiModifier.FINAL)));
|
||||
if (psiElement().insideStarting(psiNameValuePair()).accepts(position)) {
|
||||
orFilter.addFilter(new ClassFilter(PsiAnnotationMethod.class) {
|
||||
@Override
|
||||
public boolean isAcceptable(Object element, PsiElement context) {
|
||||
return element instanceof PsiAnnotationMethod && PsiUtil.isAnnotationMethod((PsiElement)element);
|
||||
}
|
||||
});
|
||||
}
|
||||
return orFilter;
|
||||
}
|
||||
|
||||
if (psiElement().afterLeaf("=").inside(PsiVariable.class).accepts(position)) {
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.intellij.psi.impl.source.tree.JavaElementType;
|
||||
import com.intellij.psi.util.InheritanceUtil;
|
||||
import com.intellij.psi.util.PropertyUtil;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -150,7 +151,7 @@ public class PreferByKindWeigher extends LookupElementWeigher {
|
||||
return MyResult.classLiteral;
|
||||
}
|
||||
|
||||
if (object instanceof PsiAnnotationMethod && ((PsiAnnotationMethod)object).getContainingClass().isAnnotationType()) {
|
||||
if (object instanceof PsiMethod && PsiUtil.isAnnotationMethod((PsiElement)object)) {
|
||||
return MyResult.annoMethod;
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -188,7 +188,7 @@ public class AnnotationsHighlightUtil {
|
||||
PsiMethod[] annotationMethods = aClass.getMethods();
|
||||
List<String> missed = new ArrayList<String>();
|
||||
for (PsiMethod method : annotationMethods) {
|
||||
if (method instanceof PsiAnnotationMethod) {
|
||||
if (PsiUtil.isAnnotationMethod(method)) {
|
||||
PsiAnnotationMethod annotationMethod = (PsiAnnotationMethod)method;
|
||||
if (annotationMethod.getDefaultValue() == null) {
|
||||
if (!names.contains(annotationMethod.getName())) {
|
||||
@@ -216,7 +216,7 @@ public class AnnotationsHighlightUtil {
|
||||
@Nullable
|
||||
public static HighlightInfo checkConstantExpression(PsiExpression expression) {
|
||||
final PsiElement parent = expression.getParent();
|
||||
if (parent instanceof PsiAnnotationMethod || parent instanceof PsiNameValuePair || parent instanceof PsiArrayInitializerMemberValue) {
|
||||
if (PsiUtil.isAnnotationMethod(parent) || parent instanceof PsiNameValuePair || parent instanceof PsiArrayInitializerMemberValue) {
|
||||
if (!PsiUtil.isConstantExpression(expression)) {
|
||||
return HighlightInfo.createHighlightInfo(HighlightInfoType.ERROR, expression, JavaErrorMessages.message("annotation.nonconstant.attribute.value"));
|
||||
}
|
||||
@@ -312,7 +312,7 @@ public class AnnotationsHighlightUtil {
|
||||
}
|
||||
|
||||
public static HighlightInfo checkAnnotationDeclaration(final PsiElement parent, final PsiReferenceList list) {
|
||||
if (parent instanceof PsiAnnotationMethod) {
|
||||
if (PsiUtil.isAnnotationMethod(parent)) {
|
||||
PsiAnnotationMethod method = (PsiAnnotationMethod)parent;
|
||||
if (list == method.getThrowsList()) {
|
||||
return HighlightInfo.createHighlightInfo(HighlightInfoType.ERROR, list, JavaErrorMessages.message("annotation.members.may.not.have.throws.list"));
|
||||
|
||||
+1
-1
@@ -925,7 +925,7 @@ public class GenericsHighlightUtil {
|
||||
parameterList,
|
||||
JavaErrorMessages.message("generics.enum.may.not.have.type.parameters"));
|
||||
}
|
||||
if (parent instanceof PsiAnnotationMethod) {
|
||||
if (PsiUtil.isAnnotationMethod(parent)) {
|
||||
return HighlightInfo.createHighlightInfo(HighlightInfoType.ERROR, parameterList, JavaErrorMessages.message("generics.annotation.members.may.not.have.type.parameters"));
|
||||
}
|
||||
else if (parent instanceof PsiClass && ((PsiClass)parent).isAnnotationType()) {
|
||||
|
||||
@@ -2537,7 +2537,7 @@ public class HighlightUtil {
|
||||
|
||||
@Nullable
|
||||
static HighlightInfo checkAnnotationMethodParameters(@NotNull PsiParameterList list) {
|
||||
if (list.getParent() instanceof PsiAnnotationMethod && list.getParametersCount() > 0) {
|
||||
if (PsiUtil.isAnnotationMethod(list.getParent()) && list.getParametersCount() > 0) {
|
||||
final String message = JavaErrorMessages.message("annotation.interface.members.may.not.have.parameters");
|
||||
return HighlightInfo.createHighlightInfo(HighlightInfoType.ERROR, list, message);
|
||||
}
|
||||
|
||||
+1
-1
@@ -190,7 +190,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
|
||||
if (parent instanceof PsiNameValuePair) {
|
||||
method = (PsiMethod)parent.getReference().resolve();
|
||||
}
|
||||
else if (parent instanceof PsiAnnotationMethod) {
|
||||
else if (PsiUtil.isAnnotationMethod(parent)) {
|
||||
method = (PsiMethod)parent;
|
||||
}
|
||||
if (method != null) {
|
||||
|
||||
+808
-808
File diff suppressed because it is too large
Load Diff
+2
-1
@@ -19,6 +19,7 @@ import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.lang.parameterInfo.*;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.util.text.CharArrayUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -122,6 +123,6 @@ public class AnnotationParameterInfoHandler implements ParameterInfoHandler<PsiA
|
||||
if (pair == null) return null;
|
||||
final PsiReference reference = pair.getReference();
|
||||
final PsiElement resolved = reference != null ? reference.resolve():null;
|
||||
return resolved instanceof PsiAnnotationMethod ? (PsiAnnotationMethod)resolved : null;
|
||||
return PsiUtil.isAnnotationMethod(resolved) ? (PsiAnnotationMethod)resolved : null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.intellij.psi.search.SearchScope;
|
||||
import com.intellij.psi.search.UsageSearchContext;
|
||||
import com.intellij.psi.search.searches.MethodReferencesSearch;
|
||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.util.Processor;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -37,7 +38,7 @@ public class MethodUsagesSearcher extends QueryExecutorBase<PsiReference, Method
|
||||
processConstructorReferences(consumer, method, searchScope, !strictSignatureSearch, strictSignatureSearch, collector);
|
||||
}
|
||||
|
||||
if (method instanceof PsiAnnotationMethod &&
|
||||
if (PsiUtil.isAnnotationMethod(method) &&
|
||||
PsiAnnotation.DEFAULT_REFERENCED_METHOD_NAME.equals(method.getName()) &&
|
||||
method.getParameterList().getParametersCount() == 0) {
|
||||
ReferencesSearch.search(method.getContainingClass(), p.getScope()).forEach(PsiAnnotationMethodReferencesSearcher.createImplicitDefaultAnnotationMethodConsumer(
|
||||
|
||||
Reference in New Issue
Block a user