mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[javadoc] CR-21150 IDEA-128817: introduce parameter object for override options
GitOrigin-RevId: 27d2c5876408943bbdaefce3f22630f0e6d00de4
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d9e1738299
commit
4f23bad2fe
+1
-2
@@ -100,8 +100,7 @@ public class ImplementAbstractClassMethodsFix extends ImplementMethodsFix {
|
||||
selectedElement.setSubstitutor(substitutor);
|
||||
}
|
||||
}
|
||||
OverrideImplementUtil.overrideOrImplementMethodsInRightPlace(editor, psiAnonClass, selectedElements, chooser.isCopyJavadoc(),
|
||||
chooser.isInsertOverrideAnnotation(), chooser.isGenerateJavadoc());
|
||||
OverrideImplementUtil.overrideOrImplementMethodsInRightPlace(editor, psiAnonClass, selectedElements, chooser.getOptions());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -72,8 +72,7 @@ public class ImplementMethodsFix extends LocalQuickFixAndIntentionActionOnPsiEle
|
||||
|
||||
WriteCommandAction.writeCommandAction(project, file).run(() -> {
|
||||
final PsiClass psiClass = ((PsiEnumConstant)myPsiElement).getOrCreateInitializingClass();
|
||||
OverrideImplementUtil.overrideOrImplementMethodsInRightPlace(editor, psiClass, selectedElements, chooser.isCopyJavadoc(),
|
||||
chooser.isInsertOverrideAnnotation(), chooser.isGenerateJavadoc());
|
||||
OverrideImplementUtil.overrideOrImplementMethodsInRightPlace(editor, psiClass, selectedElements, chooser.getOptions());
|
||||
});
|
||||
}
|
||||
else {
|
||||
|
||||
+6
@@ -274,4 +274,10 @@ public final class JavaOverrideImplementMemberChooser extends MemberChooser<PsiM
|
||||
}
|
||||
}
|
||||
|
||||
public OverrideOrImplementOptions getOptions(){
|
||||
return new OverrideOrImplementOptions()
|
||||
.copyJavadoc(isCopyJavadoc())
|
||||
.generateJavadoc(isGenerateJavadoc())
|
||||
.insertOverrideWherePossible(isInsertOverrideAnnotation());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -457,8 +457,7 @@ public final class OverrideImplementUtil extends OverrideImplementExploreUtil {
|
||||
|
||||
PsiUtilCore.ensureValid(aClass);
|
||||
final ThrowableRunnable<RuntimeException> performImplementOverrideRunnable =
|
||||
() -> overrideOrImplementMethodsInRightPlace(editor, aClass, selectedElements, chooser.isCopyJavadoc(),
|
||||
chooser.isInsertOverrideAnnotation(), chooser.isGenerateJavadoc());
|
||||
() -> overrideOrImplementMethodsInRightPlace(editor, aClass, selectedElements, chooser.getOptions());
|
||||
if(Registry.is("run.refactorings.under.progress")) {
|
||||
if (!FileModificationService.getInstance().preparePsiElementsForWrite(aClass)) {
|
||||
return;
|
||||
@@ -573,15 +572,16 @@ public final class OverrideImplementUtil extends OverrideImplementExploreUtil {
|
||||
@NotNull Collection<? extends PsiMethodMember> candidates,
|
||||
boolean copyJavadoc,
|
||||
boolean insertOverrideWherePossible) {
|
||||
overrideOrImplementMethodsInRightPlace(editor, aClass, candidates, copyJavadoc, insertOverrideWherePossible, false);
|
||||
OverrideOrImplementOptions options = new OverrideOrImplementOptions()
|
||||
.copyJavadoc(copyJavadoc)
|
||||
.insertOverrideWherePossible(insertOverrideWherePossible);
|
||||
overrideOrImplementMethodsInRightPlace(editor, aClass, candidates, options);
|
||||
}
|
||||
|
||||
public static void overrideOrImplementMethodsInRightPlace(@NotNull Editor editor,
|
||||
@NotNull PsiClass aClass,
|
||||
@NotNull Collection<? extends PsiMethodMember> candidates,
|
||||
boolean copyJavadoc,
|
||||
boolean insertOverrideWherePossible,
|
||||
boolean generateJavadoc) {
|
||||
OverrideOrImplementOptions options) {
|
||||
try {
|
||||
int offset = editor.getCaretModel().getOffset();
|
||||
PsiElement brace = aClass.getLBrace();
|
||||
@@ -597,8 +597,8 @@ public final class OverrideImplementUtil extends OverrideImplementExploreUtil {
|
||||
resultMembers = new ArrayList<>();
|
||||
for (PsiMethodMember candidate : candidates) {
|
||||
ProgressManager.progress(candidate.getElement().getName());
|
||||
Collection<PsiMethod> prototypes =
|
||||
overrideOrImplementMethod(aClass, candidate.getElement(), candidate.getSubstitutor(), copyJavadoc, insertOverrideWherePossible);
|
||||
Collection<PsiMethod> prototypes = overrideOrImplementMethod(aClass, candidate.getElement(), candidate.getSubstitutor(),
|
||||
options.isCopyJavaDoc(), options.isInsertOverrideWherePossible());
|
||||
List<PsiGenerationInfo<PsiMethod>> infos = convert2GenerationInfos(prototypes);
|
||||
for (PsiGenerationInfo<PsiMethod> info : infos) {
|
||||
PsiElement anchor = getDefaultAnchorToOverrideOrImplement(aClass, candidate.getElement(), candidate.getSubstitutor());
|
||||
@@ -608,14 +608,15 @@ public final class OverrideImplementUtil extends OverrideImplementExploreUtil {
|
||||
}
|
||||
}
|
||||
else {
|
||||
List<PsiGenerationInfo<PsiMethod>> prototypes = overrideOrImplementMethods(aClass, candidates, copyJavadoc, insertOverrideWherePossible);
|
||||
List<PsiGenerationInfo<PsiMethod>> prototypes = overrideOrImplementMethods(aClass, candidates, options.isCopyJavaDoc(),
|
||||
options.isInsertOverrideWherePossible());
|
||||
resultMembers = GenerateMembersUtil.insertMembersAtOffset(aClass, offset, prototypes);
|
||||
}
|
||||
|
||||
if (!resultMembers.isEmpty()) {
|
||||
for (PsiGenerationInfo<PsiMethod> info : resultMembers) {
|
||||
PsiMethod method = info.getPsiMember();
|
||||
if (generateJavadoc && method != null && method.getDocComment() == null) {
|
||||
if (options.isGenerateJavaDoc() && method != null && method.getDocComment() == null) {
|
||||
method = CodeInsightUtilCore.forcePsiPostprocessAndRestoreElement(method);
|
||||
if (method != null) {
|
||||
FixDocCommentAction.generateOrFixComment(method, method.getProject(), editor);
|
||||
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInsight.generation;
|
||||
|
||||
public class OverrideOrImplementOptions {
|
||||
private boolean copyJavadoc = false;
|
||||
private boolean generateJavadoc = false;
|
||||
private boolean insertOverrideWherePossible = false;
|
||||
|
||||
public boolean isInsertOverrideWherePossible() {
|
||||
return insertOverrideWherePossible;
|
||||
}
|
||||
|
||||
public boolean isGenerateJavaDoc() {
|
||||
return generateJavadoc;
|
||||
}
|
||||
|
||||
public boolean isCopyJavaDoc() {
|
||||
return copyJavadoc;
|
||||
}
|
||||
|
||||
public OverrideOrImplementOptions copyJavadoc(boolean value){
|
||||
copyJavadoc = value;
|
||||
return this;
|
||||
}
|
||||
|
||||
public OverrideOrImplementOptions generateJavadoc(boolean value){
|
||||
generateJavadoc = value;
|
||||
return this;
|
||||
}
|
||||
|
||||
public OverrideOrImplementOptions insertOverrideWherePossible(boolean value){
|
||||
insertOverrideWherePossible = value;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user