[java-intentions] ReplaceAssignmentFromVoidWithStatementIntentionAction: ModCommand

GitOrigin-RevId: 3b6f52eeecdc50d39c5aecb9afa6db08d493c150
This commit is contained in:
Tagir Valeev
2023-10-25 11:35:56 +02:00
committed by intellij-monorepo-bot
parent 114902f128
commit 8876ffa871

View File

@@ -15,36 +15,25 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.intention.FileModifier;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.java.analysis.JavaAnalysisBundle;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.modcommand.ActionContext;
import com.intellij.modcommand.ModPsiUpdater;
import com.intellij.modcommand.Presentation;
import com.intellij.modcommand.PsiUpdateModCommandAction;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiExpression;
import com.intellij.psi.PsiFile;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class ReplaceAssignmentFromVoidWithStatementIntentionAction implements IntentionAction {
private final PsiElement myParent;
private final PsiExpression myLExpr;
public class ReplaceAssignmentFromVoidWithStatementIntentionAction extends PsiUpdateModCommandAction<PsiElement> {
private final @NotNull PsiExpression myLExpr;
public ReplaceAssignmentFromVoidWithStatementIntentionAction(@NotNull PsiElement parent, @NotNull PsiExpression lExpr) {
myParent = parent;
super(parent);
myLExpr = lExpr;
}
@Nls
@NotNull
@Override
public String getText() {
return getFamilyName();
}
@Nls
@NotNull
@Override
@@ -53,23 +42,12 @@ public class ReplaceAssignmentFromVoidWithStatementIntentionAction implements In
}
@Override
public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) {
return myParent.isValid() && myLExpr.isValid();
protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiElement element) {
return myLExpr.isValid() ? Presentation.of(getFamilyName()) : null;
}
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
myParent.replace(myLExpr);
}
@Override
public boolean startInWriteAction() {
return true;
}
@Override
public @Nullable FileModifier getFileModifierForPreview(@NotNull PsiFile target) {
return new ReplaceAssignmentFromVoidWithStatementIntentionAction(PsiTreeUtil.findSameElementInCopy(myParent, target),
PsiTreeUtil.findSameElementInCopy(myLExpr, target));
protected void invoke(@NotNull ActionContext context, @NotNull PsiElement element, @NotNull ModPsiUpdater updater) {
element.replace(myLExpr);
}
}