mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[rd debugger] IJPL-219714 Prepare for classes move: minimize dependencies on xdebugger-impl in UI components
GitOrigin-RevId: 2d6b1349f634604298617ff0fa3290329f03eb7c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
901001078b
commit
32af6cf348
+4
@@ -3,6 +3,7 @@ package com.intellij.xdebugger.settings;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public abstract class XDebuggerSettingsManager implements Disposable {
|
||||
@@ -13,6 +14,9 @@ public abstract class XDebuggerSettingsManager implements Disposable {
|
||||
public interface DataViewSettings {
|
||||
boolean isSortValues();
|
||||
|
||||
@ApiStatus.Internal
|
||||
void setSortValues(boolean sortValues);
|
||||
|
||||
boolean isAutoExpressions();
|
||||
|
||||
int getValueLookupDelay();
|
||||
|
||||
@@ -490,7 +490,7 @@
|
||||
<projectListeners>
|
||||
<listener class="com.intellij.xdebugger.impl.dashboard.XDebuggerRunDashboardUpdater"
|
||||
topic="com.intellij.execution.ExecutionListener"/>
|
||||
<listener class="com.intellij.xdebugger.impl.MonolithListenerAdapter"
|
||||
<listener class="com.intellij.xdebugger.impl.proxy.MonolithListenerAdapter"
|
||||
topic="com.intellij.xdebugger.XDebuggerManagerListener"/>
|
||||
<listener class="com.intellij.xdebugger.impl.ExecutionPointManagerChangeListener"
|
||||
topic="com.intellij.xdebugger.impl.XDebuggerManagerProxyListener"/>
|
||||
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.xdebugger.impl
|
||||
|
||||
import com.intellij.util.messages.Topic
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XDebugSessionProxy
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
|
||||
/**
|
||||
* [XDebugSessionProxy] analogue of [com.intellij.xdebugger.XDebuggerManagerListener]
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
interface XDebuggerManagerProxyListener {
|
||||
fun sessionStarted(session: XDebugSessionProxy) {}
|
||||
fun sessionStopped(session: XDebugSessionProxy) {}
|
||||
fun activeSessionChanged(previousSession: XDebugSessionProxy?, currentSession: XDebugSessionProxy?) {}
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
@Topic.ProjectLevel
|
||||
val TOPIC: Topic<XDebuggerManagerProxyListener> =
|
||||
Topic("XDebuggerManagerListener proxy events", XDebuggerManagerProxyListener::class.java)
|
||||
}
|
||||
}
|
||||
@@ -920,17 +920,11 @@ public class XDebuggerUtilImpl extends XDebuggerUtil {
|
||||
}
|
||||
|
||||
public static void rebuildAllSessionsViews(@Nullable Project project) {
|
||||
if (project == null) return;
|
||||
XDebugManagerProxy.getInstance().getSessions(project).stream()
|
||||
.filter(XDebugSessionProxy::isSuspended)
|
||||
.forEach(XDebugSessionProxy::rebuildViews);
|
||||
DebuggerUIUtil.rebuildAllSessionsViews(project);
|
||||
}
|
||||
|
||||
public static void rebuildTreeAndViews(XDebuggerTree tree) {
|
||||
if (tree.isDetached()) {
|
||||
tree.rebuild();
|
||||
}
|
||||
rebuildAllSessionsViews(tree.getProject());
|
||||
DebuggerUIUtil.rebuildTreeAndViews(tree);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.NotNullLazyValue;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.impl.http.HttpVirtualFile;
|
||||
import com.intellij.platform.debugger.impl.shared.XDebuggerUtilImplShared;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import com.intellij.pom.NonNavigatable;
|
||||
import com.intellij.psi.PsiElement;
|
||||
@@ -161,7 +162,7 @@ public abstract class XSourcePositionImpl implements XSourcePosition {
|
||||
|
||||
@Override
|
||||
public @NotNull Navigatable createNavigatable(@NotNull Project project) {
|
||||
return XDebuggerUtilImpl.createNavigatable(project, this);
|
||||
return XDebuggerUtilImplShared.createNavigatable(project, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -32,7 +32,7 @@ import com.intellij.xdebugger.evaluation.XDebuggerEvaluator;
|
||||
import com.intellij.xdebugger.impl.XDebuggerUtilImpl;
|
||||
import com.intellij.xdebugger.impl.actions.XDebuggerActions;
|
||||
import com.intellij.xdebugger.impl.breakpoints.XExpressionImpl;
|
||||
import com.intellij.xdebugger.impl.proxy.MonolithSessionProxyKt;
|
||||
import com.intellij.platform.debugger.impl.ui.XDebuggerEntityConverter;
|
||||
import com.intellij.xdebugger.impl.settings.XDebuggerSettingManagerImpl;
|
||||
import com.intellij.xdebugger.impl.ui.XDebugSessionTab;
|
||||
import com.intellij.xdebugger.impl.ui.XDebuggerEditorBase;
|
||||
@@ -83,7 +83,7 @@ public class XDebuggerEvaluationDialog extends DialogWrapper {
|
||||
@NotNull XExpression text,
|
||||
@Nullable XSourcePosition sourcePosition,
|
||||
boolean isCodeFragmentEvaluationSupported) {
|
||||
this(MonolithSessionProxyKt.asProxy(session),
|
||||
this(XDebuggerEntityConverter.asProxy(session),
|
||||
editorsProvider, text, sourcePosition, isCodeFragmentEvaluationSupported);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ package com.intellij.xdebugger.impl.frame;
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XDebugSessionProxy;
|
||||
import com.intellij.xdebugger.XDebugSession;
|
||||
import com.intellij.xdebugger.XDebugSessionListener;
|
||||
import com.intellij.xdebugger.impl.proxy.MonolithSessionProxyKt;
|
||||
import com.intellij.platform.debugger.impl.ui.XDebuggerEntityConverter;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -23,7 +23,7 @@ public final class XDebugViewSessionListener implements XDebugSessionListener {
|
||||
*/
|
||||
@ApiStatus.Obsolete
|
||||
public static void attach(@NotNull XDebugView debugView, @NotNull XDebugSession session) {
|
||||
XDebugSessionProxy proxy = MonolithSessionProxyKt.asProxy(session);
|
||||
XDebugSessionProxy proxy = XDebuggerEntityConverter.asProxy(session);
|
||||
attach(debugView, proxy);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.intellij.openapi.util.NlsSafe
|
||||
import com.intellij.platform.debugger.impl.rpc.XDebugSessionApi
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XDebugSessionProxy
|
||||
import com.intellij.platform.debugger.impl.ui.DebuggerUIUtilShared
|
||||
import com.intellij.platform.debugger.impl.ui.XDebuggerEntityConverter
|
||||
import com.intellij.ui.AutoScrollToSourceHandler
|
||||
import com.intellij.ui.SimpleTextAttributes
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
@@ -16,7 +17,6 @@ import com.intellij.xdebugger.frame.*
|
||||
import com.intellij.xdebugger.frame.presentation.XRegularValuePresentation
|
||||
import com.intellij.xdebugger.frame.presentation.XValuePresentation
|
||||
import com.intellij.xdebugger.impl.actions.XDebuggerActions.THREADS_VIEW_POPUP_GROUP
|
||||
import com.intellij.xdebugger.impl.proxy.asProxy
|
||||
import com.intellij.xdebugger.impl.ui.DebuggerUIUtil
|
||||
import com.intellij.xdebugger.impl.ui.tree.XDebuggerTree
|
||||
import com.intellij.xdebugger.impl.ui.tree.XDebuggerTreePanel
|
||||
@@ -45,7 +45,7 @@ class XThreadsView(project: Project, session: XDebugSessionProxy) : XDebugView()
|
||||
private var wasShowing = false
|
||||
|
||||
@ApiStatus.Obsolete
|
||||
constructor(project: Project, session: XDebugSession) : this(project, session.asProxy())
|
||||
constructor(project: Project, session: XDebugSession) : this(project, XDebuggerEntityConverter.asProxy(session))
|
||||
|
||||
private val treePanel = XDebuggerTreePanel(project, session.editorsProvider, this, null, THREADS_VIEW_POPUP_GROUP, null)
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ import com.intellij.xdebugger.XSourcePosition;
|
||||
import com.intellij.xdebugger.frame.XStackFrame;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl;
|
||||
import com.intellij.xdebugger.impl.inline.InlineDebugRenderer;
|
||||
import com.intellij.xdebugger.impl.proxy.MonolithSessionProxyKt;
|
||||
|
||||
import com.intellij.xdebugger.impl.ui.tree.XDebuggerTree;
|
||||
import com.intellij.xdebugger.impl.ui.tree.nodes.XValueContainerNode;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
@@ -40,7 +40,7 @@ public class XVariablesView extends XVariablesViewBase {
|
||||
*/
|
||||
@Deprecated
|
||||
public XVariablesView(@NotNull XDebugSessionImpl session) {
|
||||
this(MonolithSessionProxyKt.asProxy(session));
|
||||
this(XDebuggerEntityConverter.asProxy(session));
|
||||
}
|
||||
|
||||
public XVariablesView(@NotNull XDebugSessionProxy proxy) {
|
||||
@@ -170,7 +170,7 @@ public class XVariablesView extends XVariablesViewBase {
|
||||
@ApiStatus.Obsolete
|
||||
public static @Nullable InlineVariablesInfo get(@Nullable XDebugSession session) {
|
||||
if (session == null) return null;
|
||||
return get(MonolithSessionProxyKt.asProxy(session));
|
||||
return get(XDebuggerEntityConverter.asProxy(session));
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
@@ -187,7 +187,7 @@ public class XVariablesView extends XVariablesViewBase {
|
||||
@ApiStatus.Obsolete
|
||||
public static void set(@Nullable XDebugSession session, InlineVariablesInfo info) {
|
||||
if (session != null) {
|
||||
set(MonolithSessionProxyKt.asProxy(session), info);
|
||||
set(XDebuggerEntityConverter.asProxy(session), info);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.platform.debugger.impl.shared.XDebuggerWatchesManager;
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XDebugManagerProxy;
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XDebugSessionProxy;
|
||||
import com.intellij.platform.debugger.impl.ui.XDebuggerEntityConverter;
|
||||
import com.intellij.toolWindow.InternalDecoratorImpl;
|
||||
import com.intellij.ui.ClickListener;
|
||||
import com.intellij.ui.CollectionComboBoxModel;
|
||||
@@ -73,12 +74,7 @@ import com.intellij.xdebugger.impl.inline.InlineWatchNode;
|
||||
import com.intellij.xdebugger.impl.inline.InlineWatchesRootNode;
|
||||
import com.intellij.xdebugger.impl.inline.XInlineWatchesView;
|
||||
import com.intellij.xdebugger.impl.messages.XDebuggerImplBundle;
|
||||
import com.intellij.xdebugger.impl.proxy.MonolithSessionProxyKt;
|
||||
import com.intellij.xdebugger.impl.ui.DebuggerSessionTabBase;
|
||||
import com.intellij.xdebugger.impl.ui.DebuggerUIUtil;
|
||||
import com.intellij.xdebugger.impl.ui.XDebugSessionTab;
|
||||
import com.intellij.xdebugger.impl.ui.XDebuggerEmbeddedComboBox;
|
||||
import com.intellij.xdebugger.impl.ui.XDebuggerExpressionComboBox;
|
||||
import com.intellij.xdebugger.impl.ui.*;
|
||||
import com.intellij.xdebugger.impl.ui.tree.XDebuggerTree;
|
||||
import com.intellij.xdebugger.impl.ui.tree.XDebuggerTreeState;
|
||||
import com.intellij.xdebugger.impl.ui.tree.actions.XWatchTransferable;
|
||||
@@ -133,7 +129,7 @@ public class XWatchesViewImpl extends XVariablesView implements DnDNativeTarget,
|
||||
*/
|
||||
@Deprecated
|
||||
public XWatchesViewImpl(@NotNull XDebugSessionImpl session, boolean watchesInVariables) {
|
||||
this(MonolithSessionProxyKt.asProxy(session), watchesInVariables);
|
||||
this(XDebuggerEntityConverter.asProxy(session), watchesInVariables);
|
||||
}
|
||||
|
||||
public XWatchesViewImpl(@NotNull XDebugSessionProxy session, boolean watchesInVariables) {
|
||||
@@ -145,7 +141,7 @@ public class XWatchesViewImpl extends XVariablesView implements DnDNativeTarget,
|
||||
*/
|
||||
@Deprecated
|
||||
protected XWatchesViewImpl(@NotNull XDebugSessionImpl session, boolean watchesInVariables, boolean vertical) {
|
||||
this(MonolithSessionProxyKt.asProxy(session), watchesInVariables, vertical);
|
||||
this(XDebuggerEntityConverter.asProxy(session), watchesInVariables, vertical);
|
||||
}
|
||||
|
||||
protected XWatchesViewImpl(@NotNull XDebugSessionProxy session, boolean watchesInVariables, boolean vertical) {
|
||||
@@ -157,7 +153,7 @@ public class XWatchesViewImpl extends XVariablesView implements DnDNativeTarget,
|
||||
*/
|
||||
@Deprecated
|
||||
public XWatchesViewImpl(@NotNull XDebugSessionImpl session, boolean watchesInVariables, boolean vertical, boolean withToolbar) {
|
||||
this(MonolithSessionProxyKt.asProxy(session), watchesInVariables, vertical, withToolbar);
|
||||
this(XDebuggerEntityConverter.asProxy(session), watchesInVariables, vertical, withToolbar);
|
||||
}
|
||||
|
||||
public XWatchesViewImpl(@NotNull XDebugSessionProxy session, boolean watchesInVariables, boolean vertical, boolean withToolbar) {
|
||||
|
||||
+2
-2
@@ -19,7 +19,7 @@ import com.intellij.xdebugger.XDebuggerBundle;
|
||||
import com.intellij.xdebugger.XSourcePosition;
|
||||
import com.intellij.xdebugger.impl.evaluate.quick.common.DebuggerTreeCreator;
|
||||
import com.intellij.xdebugger.impl.evaluate.quick.common.XDebuggerTreePopup;
|
||||
import com.intellij.xdebugger.impl.proxy.MonolithSessionProxyKt;
|
||||
import com.intellij.platform.debugger.impl.ui.XDebuggerEntityConverter;
|
||||
import com.intellij.xdebugger.impl.ui.DebuggerUIUtil;
|
||||
import com.intellij.xdebugger.impl.ui.tree.actions.XDebuggerTreeActionBase;
|
||||
import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl;
|
||||
@@ -132,7 +132,7 @@ public class XDebuggerTreeInlayPopup<D> extends XDebuggerTreePopup<D> {
|
||||
@NotNull XSourcePosition position,
|
||||
@NotNull XDebugSession session,
|
||||
Runnable hideRunnable) {
|
||||
XDebugSessionProxy proxy = MonolithSessionProxyKt.asProxy(session);
|
||||
XDebugSessionProxy proxy = XDebuggerEntityConverter.asProxy(session);
|
||||
new XDebuggerTreeInlayPopup<>(creator, editor, point, position, proxy, hideRunnable, valueNode).show(initialItem);
|
||||
}
|
||||
|
||||
|
||||
+3
-23
@@ -1,33 +1,13 @@
|
||||
// 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.xdebugger.impl
|
||||
// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.xdebugger.impl.proxy
|
||||
|
||||
import com.intellij.frontend.FrontendApplicationInfo
|
||||
import com.intellij.frontend.FrontendType
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XDebugSessionProxy
|
||||
import com.intellij.util.messages.Topic
|
||||
import com.intellij.xdebugger.SplitDebuggerMode
|
||||
import com.intellij.xdebugger.XDebugProcess
|
||||
import com.intellij.xdebugger.XDebugSession
|
||||
import com.intellij.xdebugger.XDebuggerManagerListener
|
||||
import com.intellij.xdebugger.impl.proxy.asProxy
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
|
||||
/**
|
||||
* [XDebugSessionProxy] analogue of [com.intellij.xdebugger.XDebuggerManagerListener]
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
interface XDebuggerManagerProxyListener {
|
||||
fun sessionStarted(session: XDebugSessionProxy) {}
|
||||
fun sessionStopped(session: XDebugSessionProxy) {}
|
||||
fun activeSessionChanged(previousSession: XDebugSessionProxy?, currentSession: XDebugSessionProxy?) {}
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
@Topic.ProjectLevel
|
||||
val TOPIC: Topic<XDebuggerManagerProxyListener> =
|
||||
Topic("XDebuggerManagerListener proxy events", XDebuggerManagerProxyListener::class.java)
|
||||
}
|
||||
}
|
||||
import com.intellij.xdebugger.impl.XDebuggerManagerProxyListener
|
||||
|
||||
private class MonolithListenerAdapter : XDebuggerManagerListener {
|
||||
private val shouldTriggerListener: Boolean
|
||||
+19
-3
@@ -15,6 +15,7 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.openapi.util.getOrCreateUserData
|
||||
import com.intellij.platform.debugger.impl.rpc.XDebugSessionId
|
||||
import com.intellij.platform.debugger.impl.shared.XDebuggerMonolithAccessPoint
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XBreakpointProxy
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XDebugSessionProxy
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XSmartStepIntoHandlerEntry
|
||||
@@ -32,12 +33,13 @@ import com.intellij.xdebugger.frame.XStackFrame
|
||||
import com.intellij.xdebugger.frame.XSuspendContext
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl
|
||||
import com.intellij.xdebugger.impl.XSourceKind
|
||||
import com.intellij.xdebugger.impl.updateExecutionPosition
|
||||
import com.intellij.xdebugger.impl.XSteppingSuspendContext
|
||||
import com.intellij.xdebugger.impl.breakpoints.XBreakpointBase
|
||||
import com.intellij.xdebugger.impl.frame.XValueMarkers
|
||||
import com.intellij.xdebugger.impl.rpc.models.findValue
|
||||
import com.intellij.xdebugger.impl.ui.XDebugSessionData
|
||||
import com.intellij.xdebugger.impl.ui.XDebugSessionTab
|
||||
import com.intellij.xdebugger.impl.updateExecutionPosition
|
||||
import com.intellij.xdebugger.ui.XDebugTabLayouter
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -48,7 +50,7 @@ import kotlinx.coroutines.withContext
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
import javax.swing.event.HyperlinkListener
|
||||
|
||||
internal class MonolithSessionProxy(val session: XDebugSession) : XDebugSessionProxy {
|
||||
private class MonolithSessionProxy(val session: XDebugSession) : XDebugSessionProxy {
|
||||
|
||||
val sessionImpl: XDebugSessionImpl get() = session as XDebugSessionImpl
|
||||
private val sessionImplIfAvailable get() = session as? XDebugSessionImpl
|
||||
@@ -315,4 +317,18 @@ private class XDebugSessionProxyKeeper {
|
||||
}
|
||||
|
||||
internal fun XDebugSession.asProxy(): XDebugSessionProxy =
|
||||
project.service<XDebugSessionProxyKeeper>().getOrCreateProxy(this)
|
||||
project.service<XDebugSessionProxyKeeper>().getOrCreateProxy(this)
|
||||
|
||||
internal class XDebuggerMonolithAccessPointImpl : XDebuggerMonolithAccessPoint {
|
||||
override fun getSession(proxy: XDebugSessionProxy): XDebugSession? {
|
||||
return proxy.id.findValue()
|
||||
}
|
||||
|
||||
override fun getSessionNonSplitOnly(proxy: XDebugSessionProxy): XDebugSession? {
|
||||
return (proxy as? MonolithSessionProxy)?.session
|
||||
}
|
||||
|
||||
override fun asProxy(session: XDebugSession): XDebugSessionProxy {
|
||||
return session.asProxy()
|
||||
}
|
||||
}
|
||||
+10
-2
@@ -11,6 +11,7 @@ import com.intellij.platform.debugger.impl.shared.XDebuggerWatchesManager
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XBreakpointManagerProxy
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XDebugManagerProxy
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XDebugSessionProxy
|
||||
import com.intellij.platform.debugger.impl.ui.XDebuggerEntityConverter
|
||||
import com.intellij.xdebugger.SplitDebuggerMode
|
||||
import com.intellij.xdebugger.XDebuggerManager
|
||||
import com.intellij.xdebugger.frame.XExecutionStack
|
||||
@@ -42,7 +43,7 @@ internal class MonolithXDebugManagerProxy : XDebugManagerProxy {
|
||||
}
|
||||
|
||||
override suspend fun <T> withId(value: XValue, session: XDebugSessionProxy, block: suspend (XValueId) -> T): T {
|
||||
val sessionImpl = (session as MonolithSessionProxy).sessionImpl
|
||||
val sessionImpl = findSessionImpl(session)
|
||||
return withTemporaryXValueId(value, sessionImpl, block)
|
||||
}
|
||||
|
||||
@@ -57,7 +58,7 @@ internal class MonolithXDebugManagerProxy : XDebugManagerProxy {
|
||||
}
|
||||
|
||||
override suspend fun <T> withId(stack: XExecutionStack, session: XDebugSessionProxy, block: suspend (XExecutionStackId) -> T): T {
|
||||
val sessionImpl = (session as MonolithSessionProxy).sessionImpl
|
||||
val sessionImpl = findSessionImpl(session)
|
||||
return withCoroutineScopeForId(block) { scope ->
|
||||
val (_, id) = stack.getOrStoreGlobally(scope, sessionImpl)
|
||||
id
|
||||
@@ -89,6 +90,13 @@ internal class MonolithXDebugManagerProxy : XDebugManagerProxy {
|
||||
override fun hasBackendCounterpart(xValue: XValue): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
private fun findSessionImpl(session: XDebugSessionProxy): XDebugSessionImpl {
|
||||
val monolithSession = XDebuggerEntityConverter.getSessionNonSplitOnly(session) ?: error("Expected to have monolith session: $session")
|
||||
val sessionImpl = monolithSession as XDebugSessionImpl
|
||||
return sessionImpl
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
|
||||
-21
@@ -1,21 +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.xdebugger.impl.proxy
|
||||
|
||||
import com.intellij.platform.debugger.impl.shared.XDebuggerMonolithAccessPoint
|
||||
import com.intellij.platform.debugger.impl.shared.proxy.XDebugSessionProxy
|
||||
import com.intellij.xdebugger.XDebugSession
|
||||
import com.intellij.xdebugger.impl.rpc.models.findValue
|
||||
|
||||
internal class XDebuggerMonolithAccessPointImpl : XDebuggerMonolithAccessPoint {
|
||||
override fun getSession(proxy: XDebugSessionProxy): XDebugSession? {
|
||||
return proxy.id.findValue()
|
||||
}
|
||||
|
||||
override fun getSessionNonSplitOnly(proxy: XDebugSessionProxy): XDebugSession? {
|
||||
return (proxy as? MonolithSessionProxy)?.session
|
||||
}
|
||||
|
||||
override fun asProxy(session: XDebugSession): XDebugSessionProxy {
|
||||
return session.asProxy()
|
||||
}
|
||||
}
|
||||
@@ -65,7 +65,6 @@ import com.intellij.xdebugger.breakpoints.XBreakpointListener;
|
||||
import com.intellij.xdebugger.frame.XFullValueEvaluator;
|
||||
import com.intellij.xdebugger.frame.XValue;
|
||||
import com.intellij.xdebugger.frame.XValueModifier;
|
||||
import com.intellij.xdebugger.impl.XDebuggerUtilImpl;
|
||||
import com.intellij.xdebugger.impl.breakpoints.XBreakpointBase;
|
||||
import com.intellij.xdebugger.impl.breakpoints.ui.BreakpointsDialogFactory;
|
||||
import com.intellij.xdebugger.impl.breakpoints.ui.XLightBreakpointPropertiesPanel;
|
||||
@@ -554,7 +553,7 @@ public final class DebuggerUIUtil {
|
||||
tree.rebuildAndRestore(treeState);
|
||||
}
|
||||
});
|
||||
XDebuggerUtilImpl.rebuildAllSessionsViews(project);
|
||||
rebuildAllSessionsViews(project);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -563,7 +562,7 @@ public final class DebuggerUIUtil {
|
||||
tree.rebuildAndRestore(treeState);
|
||||
errorConsumer.consume(errorMessage);
|
||||
});
|
||||
XDebuggerUtilImpl.rebuildAllSessionsViews(project);
|
||||
rebuildAllSessionsViews(project);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -626,4 +625,20 @@ public final class DebuggerUIUtil {
|
||||
e.getPresentation().setVisible(enable);
|
||||
}
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
public static void rebuildAllSessionsViews(@Nullable Project project) {
|
||||
if (project == null) return;
|
||||
XDebugManagerProxy.getInstance().getSessions(project).stream()
|
||||
.filter(XDebugSessionProxy::isSuspended)
|
||||
.forEach(XDebugSessionProxy::rebuildViews);
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
public static void rebuildTreeAndViews(XDebuggerTree tree) {
|
||||
if (tree.isDetached()) {
|
||||
tree.rebuild();
|
||||
}
|
||||
rebuildAllSessionsViews(tree.getProject());
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -26,13 +26,13 @@ import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.platform.debugger.impl.shared.XDebuggerUtilImplShared;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import com.intellij.ui.AppUIUtil;
|
||||
import com.intellij.util.concurrency.ThreadingAssertions;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
import com.intellij.xdebugger.XDebuggerUtil;
|
||||
import com.intellij.xdebugger.XSourcePosition;
|
||||
import com.intellij.xdebugger.impl.XDebuggerUtilImpl;
|
||||
import com.intellij.xdebugger.impl.settings.DataViewsConfigurableUi;
|
||||
import com.intellij.xdebugger.impl.settings.XDebuggerSettingManagerImpl;
|
||||
import com.intellij.xdebugger.ui.DebuggerColors;
|
||||
@@ -241,7 +241,7 @@ public class ExecutionPointHighlighter {
|
||||
return (OpenFileDescriptor)navigatable;
|
||||
}
|
||||
else {
|
||||
return XDebuggerUtilImpl.createOpenFileDescriptor(project, position);
|
||||
return XDebuggerUtilImplShared.createOpenFileDescriptor(project, position);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.xdebugger.impl.ui;
|
||||
|
||||
import com.intellij.openapi.editor.Document;
|
||||
|
||||
@@ -53,16 +53,9 @@ import com.intellij.xdebugger.XDebuggerBundle;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionSelectionService;
|
||||
import com.intellij.xdebugger.impl.actions.XDebuggerActions;
|
||||
import com.intellij.xdebugger.impl.frame.XDebugView;
|
||||
import com.intellij.xdebugger.impl.frame.XDebugViewSessionListener;
|
||||
import com.intellij.xdebugger.impl.frame.XFramesView;
|
||||
import com.intellij.xdebugger.impl.frame.XThreadsView;
|
||||
import com.intellij.xdebugger.impl.frame.XVariablesView;
|
||||
import com.intellij.xdebugger.impl.frame.XVariablesViewBase;
|
||||
import com.intellij.xdebugger.impl.frame.XWatchesView;
|
||||
import com.intellij.xdebugger.impl.frame.XWatchesViewImpl;
|
||||
import com.intellij.xdebugger.impl.frame.*;
|
||||
import com.intellij.platform.debugger.impl.ui.XDebuggerEntityConverter;
|
||||
import com.intellij.xdebugger.impl.messages.XDebuggerImplBundle;
|
||||
import com.intellij.xdebugger.impl.proxy.MonolithSessionProxyKt;
|
||||
import com.intellij.xdebugger.impl.settings.XDebuggerSettingManagerImpl;
|
||||
import com.intellij.xdebugger.ui.XDebugTabLayouter;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
@@ -100,7 +93,7 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
|
||||
@Nullable Icon icon,
|
||||
@Nullable ExecutionEnvironment environment,
|
||||
@Nullable RunContentDescriptor contentToReuse) {
|
||||
XDebugSessionProxy proxy = MonolithSessionProxyKt.asProxy(session);
|
||||
XDebugSessionProxy proxy = XDebuggerEntityConverter.asProxy(session);
|
||||
boolean forceNewDebuggerUi = XDebugSessionTabCustomizerKt.forceShowNewDebuggerUi(session.getDebugProcess());
|
||||
boolean withFramesCustomization = XDebugSessionTabCustomizerKt.allowFramesViewCustomization(session.getDebugProcess());
|
||||
@Nullable String defaultFramesViewKey = XDebugSessionTabCustomizerKt.getDefaultFramesViewKey(session.getDebugProcess());
|
||||
@@ -552,7 +545,7 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
|
||||
*/
|
||||
@Deprecated
|
||||
public static void showWatchesView(@NotNull XDebugSessionImpl session) {
|
||||
showWatchesView(MonolithSessionProxyKt.asProxy(session));
|
||||
showWatchesView(XDebuggerEntityConverter.asProxy(session));
|
||||
}
|
||||
|
||||
public static void showWatchesView(@NotNull XDebugSessionProxy session) {
|
||||
@@ -567,7 +560,7 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
|
||||
@Deprecated
|
||||
public static void showFramesView(@Nullable XDebugSessionImpl session) {
|
||||
if (session == null) return;
|
||||
showFramesView(MonolithSessionProxyKt.asProxy(session));
|
||||
showFramesView(XDebuggerEntityConverter.asProxy(session));
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
|
||||
+4
-5
@@ -8,9 +8,8 @@ import com.intellij.openapi.actionSystem.ToggleAction
|
||||
import com.intellij.openapi.project.DumbAware
|
||||
import com.intellij.platform.debugger.impl.shared.SplitDebuggerAction
|
||||
import com.intellij.util.application
|
||||
import com.intellij.xdebugger.impl.XDebuggerUtilImpl
|
||||
import com.intellij.xdebugger.impl.settings.XDebuggerSettingManagerImpl
|
||||
import com.intellij.xdebugger.impl.ui.DebuggerUIUtil
|
||||
import com.intellij.xdebugger.settings.XDebuggerSettingsManager
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
|
||||
@ApiStatus.Internal
|
||||
@@ -27,12 +26,12 @@ class SortValuesToggleAction : ToggleAction(), DumbAware, SplitDebuggerAction {
|
||||
}
|
||||
|
||||
override fun isSelected(e: AnActionEvent): Boolean {
|
||||
return XDebuggerSettingManagerImpl.getInstanceImpl().dataViewSettings.isSortValues
|
||||
return XDebuggerSettingsManager.getInstance().dataViewSettings.isSortValues
|
||||
}
|
||||
|
||||
override fun setSelected(e: AnActionEvent, state: Boolean) {
|
||||
XDebuggerSettingManagerImpl.getInstanceImpl().dataViewSettings.isSortValues = state
|
||||
XDebuggerSettingsManager.getInstance().dataViewSettings.isSortValues = state
|
||||
saveSettingsForRemoteDevelopment(e.coroutineScope, application)
|
||||
XDebuggerUtilImpl.rebuildAllSessionsViews(e.project)
|
||||
DebuggerUIUtil.rebuildAllSessionsViews(e.project)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user