mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
[lombok] IDEA-322276 Replace all field-annotations by one class-annotation
GitOrigin-RevId: 53da3fce87d68c26f248a9a61e59be9fc68885d9
This commit is contained in:
committed by
intellij-monorepo-bot
parent
9c70a0f57e
commit
0f73b3d3d4
@@ -59,12 +59,12 @@ public abstract class LombokGetterOrSetterMayBeUsedInspection extends LombokJava
|
|||||||
if (annotation != null) {
|
if (annotation != null) {
|
||||||
if (!annotation.getAttributes().isEmpty()) {
|
if (!annotation.getAttributes().isEmpty()) {
|
||||||
isLombokAnnotationAtClassLevel = false;
|
isLombokAnnotationAtClassLevel = false;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
annotatedFields.add(field);
|
annotatedFields.add(field);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
if (!field.hasModifierProperty(PsiModifier.STATIC)) {
|
else if (!field.hasModifierProperty(PsiModifier.STATIC)) {
|
||||||
boolean found = false;
|
boolean found = false;
|
||||||
for (Pair<PsiField, PsiMethod> instanceCandidate : instanceCandidates) {
|
for (Pair<PsiField, PsiMethod> instanceCandidate : instanceCandidates) {
|
||||||
if (field.equals(instanceCandidate.getFirst())) {
|
if (field.equals(instanceCandidate.getFirst())) {
|
||||||
@@ -72,13 +72,18 @@ public abstract class LombokGetterOrSetterMayBeUsedInspection extends LombokJava
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
isLombokAnnotationAtClassLevel &= found;
|
isLombokAnnotationAtClassLevel = found;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isLombokAnnotationAtClassLevel) {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<Pair<PsiField, PsiMethod>> allCandidates = new ArrayList<>(staticCandidates);
|
List<Pair<PsiField, PsiMethod>> allCandidates = new ArrayList<>(staticCandidates);
|
||||||
if (isLombokAnnotationAtClassLevel && (!instanceCandidates.isEmpty() || !annotatedFields.isEmpty()) ) {
|
if (isLombokAnnotationAtClassLevel && (!instanceCandidates.isEmpty() || !annotatedFields.isEmpty())) {
|
||||||
warnOrFix(psiClass, instanceCandidates, annotatedFields);
|
warnOrFix(psiClass, instanceCandidates, annotatedFields);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
allCandidates.addAll(instanceCandidates);
|
allCandidates.addAll(instanceCandidates);
|
||||||
}
|
}
|
||||||
for (Pair<PsiField, PsiMethod> candidate : allCandidates) {
|
for (Pair<PsiField, PsiMethod> candidate : allCandidates) {
|
||||||
@@ -109,7 +114,8 @@ public abstract class LombokGetterOrSetterMayBeUsedInspection extends LombokJava
|
|||||||
ProblemHighlightType.GENERIC_ERROR_OR_WARNING,
|
ProblemHighlightType.GENERIC_ERROR_OR_WARNING,
|
||||||
psiClassNameIdentifier != null ? psiClassNameIdentifier.getTextRangeInParent() : psiClass.getTextRange(),
|
psiClassNameIdentifier != null ? psiClassNameIdentifier.getTextRangeInParent() : psiClass.getTextRange(),
|
||||||
fix);
|
fix);
|
||||||
} else if (myLombokGetterOrSetterMayBeUsedFix != null) {
|
}
|
||||||
|
else if (myLombokGetterOrSetterMayBeUsedFix != null) {
|
||||||
myLombokGetterOrSetterMayBeUsedFix.effectivelyDoFix(psiClass, fieldsAndMethods, annotatedFields);
|
myLombokGetterOrSetterMayBeUsedFix.effectivelyDoFix(psiClass, fieldsAndMethods, annotatedFields);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -120,7 +126,8 @@ public abstract class LombokGetterOrSetterMayBeUsedInspection extends LombokJava
|
|||||||
final LocalQuickFix fix = new LombokGetterOrSetterMayBeUsedFix(fieldName);
|
final LocalQuickFix fix = new LombokGetterOrSetterMayBeUsedFix(fieldName);
|
||||||
myHolder.registerProblem(method,
|
myHolder.registerProblem(method,
|
||||||
getFieldErrorMessage(fieldName), fix);
|
getFieldErrorMessage(fieldName), fix);
|
||||||
} else if (myLombokGetterOrSetterMayBeUsedFix != null) {
|
}
|
||||||
|
else if (myLombokGetterOrSetterMayBeUsedFix != null) {
|
||||||
myLombokGetterOrSetterMayBeUsedFix.effectivelyDoFix(field, method);
|
myLombokGetterOrSetterMayBeUsedFix.effectivelyDoFix(field, method);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -154,7 +161,8 @@ public abstract class LombokGetterOrSetterMayBeUsedInspection extends LombokJava
|
|||||||
final PsiElement element = descriptor.getPsiElement();
|
final PsiElement element = descriptor.getPsiElement();
|
||||||
if (element instanceof PsiMethod) {
|
if (element instanceof PsiMethod) {
|
||||||
new LombokGetterOrSetterMayBeUsedVisitor(null, this).visitMethodForFix((PsiMethod)element);
|
new LombokGetterOrSetterMayBeUsedVisitor(null, this).visitMethodForFix((PsiMethod)element);
|
||||||
} else if (element instanceof PsiClass) {
|
}
|
||||||
|
else if (element instanceof PsiClass) {
|
||||||
new LombokGetterOrSetterMayBeUsedVisitor(null, this).visitClass((PsiClass)element);
|
new LombokGetterOrSetterMayBeUsedVisitor(null, this).visitClass((PsiClass)element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -186,7 +194,7 @@ public abstract class LombokGetterOrSetterMayBeUsedInspection extends LombokJava
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final PsiElementFactory factory = JavaPsiFacade.getElementFactory(project);
|
final PsiElementFactory factory = JavaPsiFacade.getElementFactory(project);
|
||||||
final PsiAnnotation annotation = factory.createAnnotationFromText("@"+getAnnotationName(), fieldOrClass);
|
final PsiAnnotation annotation = factory.createAnnotationFromText("@" + getAnnotationName(), fieldOrClass);
|
||||||
JavaCodeStyleManager.getInstance(project).shortenClassReferences(annotation);
|
JavaCodeStyleManager.getInstance(project).shortenClassReferences(annotation);
|
||||||
modifierList.addAfter(annotation, null);
|
modifierList.addAfter(annotation, null);
|
||||||
return true;
|
return true;
|
||||||
@@ -210,19 +218,23 @@ public abstract class LombokGetterOrSetterMayBeUsedInspection extends LombokJava
|
|||||||
if (fieldJavaDoc == null) {
|
if (fieldJavaDoc == null) {
|
||||||
if (javaDocMethodText.isEmpty()) {
|
if (javaDocMethodText.isEmpty()) {
|
||||||
fieldJavaDoc = factory.createDocCommentFromText("/**\n*/");
|
fieldJavaDoc = factory.createDocCommentFromText("/**\n*/");
|
||||||
} else {
|
}
|
||||||
fieldJavaDoc = factory.createDocCommentFromText("/**\n* -- " + getJavaDocMethodMarkup() + " --\n* " + javaDocMethodText + "\n*/");
|
else {
|
||||||
|
fieldJavaDoc =
|
||||||
|
factory.createDocCommentFromText("/**\n* -- " + getJavaDocMethodMarkup() + " --\n* " + javaDocMethodText + "\n*/");
|
||||||
}
|
}
|
||||||
for (PsiDocTag methodTag : methodTags) {
|
for (PsiDocTag methodTag : methodTags) {
|
||||||
fieldJavaDoc.add(methodTag);
|
fieldJavaDoc.add(methodTag);
|
||||||
}
|
}
|
||||||
field.getParent().addBefore(fieldJavaDoc, field);
|
field.getParent().addBefore(fieldJavaDoc, field);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
@NotNull PsiElement @NotNull [] fieldJavaDocChildren = Arrays.stream(fieldJavaDoc.getChildren())
|
@NotNull PsiElement @NotNull [] fieldJavaDocChildren = Arrays.stream(fieldJavaDoc.getChildren())
|
||||||
.filter(e -> e instanceof PsiDocToken)
|
.filter(e -> e instanceof PsiDocToken)
|
||||||
.toArray(PsiElement[]::new);
|
.toArray(PsiElement[]::new);
|
||||||
@NotNull PsiElement fieldJavaDocChild = fieldJavaDocChildren[fieldJavaDocChildren.length - 2];
|
@NotNull PsiElement fieldJavaDocChild = fieldJavaDocChildren[fieldJavaDocChildren.length - 2];
|
||||||
PsiDocComment newMethodJavaDoc = factory.createDocCommentFromText("/**\n* -- " + getJavaDocMethodMarkup() + " --\n* " + javaDocMethodText + "\n*/");
|
PsiDocComment newMethodJavaDoc =
|
||||||
|
factory.createDocCommentFromText("/**\n* -- " + getJavaDocMethodMarkup() + " --\n* " + javaDocMethodText + "\n*/");
|
||||||
PsiElement[] tokens = newMethodJavaDoc.getChildren();
|
PsiElement[] tokens = newMethodJavaDoc.getChildren();
|
||||||
for (int i = tokens.length - 2; 0 < i; i--) {
|
for (int i = tokens.length - 2; 0 < i; i--) {
|
||||||
fieldJavaDoc.addAfter(tokens[i], fieldJavaDocChild);
|
fieldJavaDoc.addAfter(tokens[i], fieldJavaDocChild);
|
||||||
|
|||||||
Reference in New Issue
Block a user