Skip to content

Commit

Permalink
fix ref action value
Browse files Browse the repository at this point in the history
  • Loading branch information
VISTALL committed Sep 7, 2024
1 parent 2552544 commit 0db73b2
Showing 1 changed file with 40 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,47 +28,54 @@
import consulo.language.psi.PsiElement;
import consulo.language.psi.PsiFile;
import consulo.language.psi.PsiReference;
import consulo.localize.LocalizeValue;
import consulo.project.Project;
import consulo.ui.annotation.RequiredUIAccess;
import jakarta.annotation.Nonnull;

@ExtensionImpl
public class RenameWrongRefHandler implements RenameHandler {
@Override
@RequiredReadAction
public final boolean isAvailableOnDataContext(final DataContext dataContext) {
final Editor editor = dataContext.getData(Editor.KEY);
final PsiFile file = dataContext.getData(PsiFile.KEY);
final Project project = dataContext.getData(Project.KEY);
return !(editor == null || file == null || project == null) && isAvailable(project, editor, file);
}
@Override
@RequiredReadAction
public final boolean isAvailableOnDataContext(final DataContext dataContext) {
final Editor editor = dataContext.getData(Editor.KEY);
final PsiFile file = dataContext.getData(PsiFile.KEY);
final Project project = dataContext.getData(Project.KEY);
return !(editor == null || file == null || project == null) && isAvailable(project, editor, file);
}

@RequiredReadAction
public static boolean isAvailable(Project project, Editor editor, PsiFile file) {
final PsiReference reference = file.findReferenceAt(editor.getCaretModel().getOffset());
return reference instanceof PsiReferenceExpression referenceExpression
&& new RenameWrongRefFix(referenceExpression, true).isAvailable(project, editor, file);
}
@Nonnull
@Override
public LocalizeValue getActionTitleValue() {
return LocalizeValue.localizeTODO("Rename Wrong Reference...");
}

@Override
@RequiredReadAction
public final boolean isRenaming(final DataContext dataContext) {
return isAvailableOnDataContext(dataContext);
}
@RequiredReadAction
public static boolean isAvailable(Project project, Editor editor, PsiFile file) {
final PsiReference reference = file.findReferenceAt(editor.getCaretModel().getOffset());
return reference instanceof PsiReferenceExpression referenceExpression
&& new RenameWrongRefFix(referenceExpression, true).isAvailable(project, editor, file);
}

@Override
@RequiredUIAccess
public void invoke(@Nonnull final Project project, final Editor editor, final PsiFile file, final DataContext dataContext) {
final PsiReferenceExpression reference = (PsiReferenceExpression) file.findReferenceAt(editor.getCaretModel().getOffset());
new WriteCommandAction(project) {
@Override
protected void run(Result result) throws Throwable {
new RenameWrongRefFix(reference).invoke(project, editor, file);
}
}.execute();
}
@Override
@RequiredReadAction
public final boolean isRenaming(final DataContext dataContext) {
return isAvailableOnDataContext(dataContext);
}

@Override
public void invoke(@Nonnull final Project project, @Nonnull final PsiElement[] elements, final DataContext dataContext) {
}
@Override
@RequiredUIAccess
public void invoke(@Nonnull final Project project, final Editor editor, final PsiFile file, final DataContext dataContext) {
final PsiReferenceExpression reference = (PsiReferenceExpression) file.findReferenceAt(editor.getCaretModel().getOffset());
new WriteCommandAction(project) {
@Override
protected void run(Result result) throws Throwable {
new RenameWrongRefFix(reference).invoke(project, editor, file);
}
}.execute();
}

@Override
public void invoke(@Nonnull final Project project, @Nonnull final PsiElement[] elements, final DataContext dataContext) {
}
}

0 comments on commit 0db73b2

Please sign in to comment.