[rd-editor] IJPL-183574 Move goto next error actions to the frontend to improve the responsiveness of rd editor

This commit forces invoking of `GotoNextErrorAction` and `GotoPreviousErrorAction` on the frontend side. It improves the UX in rd editor by executing the actions without a roundtrip to the backend. The improvement is under feature flag `ide.popup.async.enabled` disabled by default

GitOrigin-RevId: ef21783d3112e910bd51532b2d35f1a9521db474
This commit is contained in:
Alexandr Trushev
2025-04-22 13:58:10 +00:00
committed by intellij-monorepo-bot
parent 4a01c9aab9
commit c708c87c1f
2 changed files with 21 additions and 2 deletions
@@ -8,13 +8,18 @@ import com.intellij.codeInsight.daemon.impl.GotoNextErrorHandler;
import com.intellij.codeInsight.daemon.impl.GotoNextErrorUtilsKt;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehavior;
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehaviorSpecification;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.ApiStatus.Internal;
import org.jetbrains.annotations.NotNull;
abstract class BaseGotoNextErrorAction extends BaseCodeInsightAction implements DumbAware {
abstract class BaseGotoNextErrorAction extends BaseCodeInsightAction implements ActionRemoteBehaviorSpecification, DumbAware {
private final boolean goForward;
@@ -48,4 +53,13 @@ abstract class BaseGotoNextErrorAction extends BaseCodeInsightAction implements
protected boolean isValidForFile(@NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file) {
return DaemonCodeAnalyzer.getInstance(project).isHighlightingAvailable(file);
}
}
@Internal
@Override
public @NotNull ActionRemoteBehavior getBehavior() {
if (Registry.is("ide.popup.async.enabled", false)) {
return ActionRemoteBehavior.FrontendOnly;
}
return ActionRemoteBehavior.BackendOnly;
}
}
@@ -2500,5 +2500,10 @@ ijpl.rhizome.ad.markup.enabled.description=Use shared markup entity. Currently a
ide.permissions.api.enabled=true
ide.permissions.api.enabled.description=Turns on permission api
ide.popup.async.enabled=false
ide.popup.async.enabled.description=Feature flag for IJPL-183574 improving UX of rd editor by moving some popups and actions on the frontend side. \
The flag should be removed after 252 release
# please leave this note as last line
# TODO please use EP com.intellij.registryKey for plugin/product specific keys