[rd debugger] IJPL-217871 Remove unnecessary RPC call: trigger settings changed on frontend

GitOrigin-RevId: 4bc1c5cee5f7532d98b7c5f3ae08ac1d912ae12a
This commit is contained in:
Maksim Zuev
2025-11-17 17:46:28 +00:00
committed by intellij-monorepo-bot
parent cd42f126f7
commit f81c68d681
5 changed files with 17 additions and 2 deletions
@@ -32,6 +32,11 @@ public interface XDebugSessionListener extends EventListener {
default void settingsChanged() {
}
@ApiStatus.Internal
default void settingsChangedFromFrontend() {
settingsChanged();
}
default void breakpointsMuted(boolean muted) {
}
@@ -176,7 +176,7 @@ internal class BackendXDebugSessionApi : XDebugSessionApi {
override suspend fun triggerUpdate(sessionId: XDebugSessionId) {
val session = sessionId.findValue() ?: return
withContext(Dispatchers.EDT) {
session.rebuildViews()
session.frontendUpdate()
}
}
@@ -155,6 +155,10 @@ internal class BackendXDebuggerManagerApi : XDebuggerManagerApi {
rawEvents.trySend { XDebuggerSessionEvent.SettingsChanged }
}
override fun settingsChangedFromFrontend() {
// Ignore changes from the frontend side, they're already handled in FrontendXDebuggerSession
}
override fun breakpointsMuted(muted: Boolean) {
rawEvents.trySend { XDebuggerSessionEvent.BreakpointsMuted(muted) }
}
@@ -447,7 +447,9 @@ class FrontendXDebuggerSession private constructor(
}
override fun rebuildViews() {
cs.launch {
cs.launch(Dispatchers.EDT) {
// trigger optimistically
eventsDispatcher.multicaster.settingsChanged()
XDebugSessionApi.getInstance().triggerUpdate(id)
}
}
@@ -304,6 +304,10 @@ class XDebugSessionImpl @JvmOverloads constructor(
myDispatcher.getMulticaster().settingsChanged()
}
fun frontendUpdate() {
myDispatcher.getMulticaster().settingsChangedFromFrontend()
}
override fun getRunProfile(): RunProfile? {
return if (this.executionEnvironment != null) executionEnvironment.runProfile else null
}