[rd debugger] Move ViewTextAction to the shared module

GitOrigin-RevId: ff0e0ce6d0ab45bceb7c3604a9ef0099353594b0
This commit is contained in:
Maksim Zuev
2025-07-17 13:16:26 +00:00
committed by intellij-monorepo-bot
parent e4b9c31304
commit 178a2f7f3a
6 changed files with 11 additions and 56 deletions
@@ -4,8 +4,5 @@
<module name="intellij.platform.debugger.impl.frontend"/>
</dependencies>
<actions resource-bundle="messages.JavaDebuggerImplFrontendBundle">
<action id="Debugger.ViewText.Frontend" class="com.intellij.java.debugger.impl.frontend.actions.FrontendViewTextAction">
<add-to-group group-id="XDebugger.Inspect.Tree.Popup.Bottom.Section.Frontend" anchor="last"/>
</action>
</actions>
</idea-plugin>
@@ -1,2 +0,0 @@
action.Debugger.ViewText.Frontend.text=View Text
action.Debugger.ViewText.Frontend.description=View text value of selected node in a separate pane
@@ -244,9 +244,7 @@
<add-to-group group-id="XDebugger.Variables.Tree.Popup" anchor="first"/>
<add-to-group group-id="XDebugger.Watches.Tree.Popup" anchor="after" relative-to-action="XDebugger.RemoveWatch"/>
</action>
<action id="Debugger.ViewText" class="com.intellij.debugger.actions.ViewTextAction">
<add-to-group group-id="XDebugger.ValueGroup" anchor="last"/>
</action>
<action id="Debugger.CustomizeThreadsView" class="com.intellij.debugger.actions.CustomizeThreadsViewAction">
<add-to-group group-id="XDebugger.Frames.Tree.Popup" anchor="last"/>
<add-to-group group-id="XDebugger.Frames.Tree.Popup.Frontend" anchor="last"/>
@@ -1,33 +0,0 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.debugger.actions;
import com.intellij.debugger.engine.JavaValue;
import com.intellij.java.debugger.impl.shared.actions.ViewTextActionBase;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.xdebugger.frame.XValue;
import com.intellij.xdebugger.impl.ui.tree.actions.XDebuggerTreeActionBase;
import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import java.util.List;
/*
* @author Jeka
* @see com.intellij.java.debugger.impl.frontend.actions.FrontendViewTextAction
*/
public class ViewTextAction extends ViewTextActionBase {
@ApiStatus.Internal
@Override
protected XValueNodeImpl getStringNode(@NotNull AnActionEvent e) {
List<XValueNodeImpl> selectedNodes = XDebuggerTreeActionBase.getSelectedNodes(e.getDataContext());
if (selectedNodes.size() == 1) {
XValueNodeImpl node = selectedNodes.get(0);
XValue container = node.getValueContainer();
if (container instanceof JavaValue && container.getModifier() != null && ((JavaValue)container).getDescriptor().isString()) {
return node;
}
}
return null;
}
}
@@ -27,4 +27,10 @@
<add-to-group group-id="XDebugger.Inspect.Tree.Popup.Middle.Section.Frontend" anchor="last"/>
</action>
</actions>
<actions resource-bundle="messages.ActionsBundle">
<action id="Debugger.ViewText" class="com.intellij.debugger.actions.ViewTextAction">
<add-to-group group-id="XDebugger.ValueGroup" anchor="last"/>
<add-to-group group-id="XDebugger.Inspect.Tree.Popup.Bottom.Section.Frontend" anchor="last"/>
</action>
</actions>
</idea-plugin>
@@ -1,27 +1,16 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.debugger.impl.frontend.actions
package com.intellij.debugger.actions
import com.intellij.java.debugger.impl.shared.actions.ViewTextActionBase
import com.intellij.java.debugger.impl.shared.engine.JavaValueDescriptor
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehaviorSpecification
import com.intellij.xdebugger.impl.actions.areFrontendDebuggerActionsEnabled
import com.intellij.xdebugger.impl.ui.tree.actions.XDebuggerTreeActionBase
import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl
import org.jetbrains.annotations.ApiStatus
/**
* Frontend version of [ViewTextAction]
*/
private class FrontendViewTextAction : ViewTextActionBase(), ActionRemoteBehaviorSpecification.Frontend {
override fun update(e: AnActionEvent) {
if (!areFrontendDebuggerActionsEnabled()) {
e.presentation.isEnabledAndVisible = false
return
}
super.update(e)
}
class ViewTextAction : ViewTextActionBase(), ActionRemoteBehaviorSpecification.FrontendOtherwiseBackend {
@ApiStatus.Internal
override fun getStringNode(e: AnActionEvent): XValueNodeImpl? {
val node = XDebuggerTreeActionBase.getSelectedNodes(e.dataContext).singleOrNull() ?: return null
val xValue = node.valueContainer