mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
[rd debugger] IDEA-377734 Move Renderer selection to frontend
GitOrigin-RevId: f05083198ecc50792add12302e51072c3c5ae31a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
02dd01217a
commit
c87beccab7
+24
-4
@@ -2,10 +2,7 @@
|
||||
package com.intellij.java.debugger.impl.backend
|
||||
|
||||
import com.intellij.debugger.actions.*
|
||||
import com.intellij.debugger.engine.AsyncStacksUtils
|
||||
import com.intellij.debugger.engine.JavaDebugProcess
|
||||
import com.intellij.debugger.engine.JavaExecutionStack
|
||||
import com.intellij.debugger.engine.executeOnDMT
|
||||
import com.intellij.debugger.engine.*
|
||||
import com.intellij.execution.filters.ExceptionFilters
|
||||
import com.intellij.ide.ui.icons.rpcId
|
||||
import com.intellij.java.debugger.impl.shared.rpc.*
|
||||
@@ -15,6 +12,8 @@ import com.intellij.unscramble.CompoundDumpItem
|
||||
import com.intellij.unscramble.DumpItem
|
||||
import com.intellij.xdebugger.impl.rpc.XDebugSessionId
|
||||
import com.intellij.xdebugger.impl.rpc.XExecutionStackId
|
||||
import com.intellij.xdebugger.impl.rpc.XValueId
|
||||
import com.intellij.xdebugger.impl.rpc.models.BackendXValueModel
|
||||
import com.intellij.xdebugger.impl.rpc.models.findValue
|
||||
import fleet.util.channels.use
|
||||
import kotlinx.coroutines.*
|
||||
@@ -66,6 +65,27 @@ internal class BackendJavaDebuggerSessionApi : JavaDebuggerSessionApi {
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun setRenderer(rendererName: String?, xValueIds: List<XValueId>) {
|
||||
val xValueModels = xValueIds.mapNotNull { BackendXValueModel.findById(it) }
|
||||
val javaValues = xValueModels.mapNotNull { it.xValue as? JavaValue }
|
||||
if (javaValues.isEmpty()) return
|
||||
val renderer = if (rendererName != null) {
|
||||
javaValues[0].evaluationContext.debugProcess.getRendererByName(rendererName) ?: return
|
||||
}
|
||||
else {
|
||||
null
|
||||
}
|
||||
|
||||
for (javaValue in javaValues) {
|
||||
withDebugContext(javaValue.evaluationContext.suspendContext) {
|
||||
javaValue.setRenderer(renderer, null)
|
||||
}
|
||||
}
|
||||
for (xValueModel in xValueModels) {
|
||||
xValueModel.computeValuePresentation()
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun resumeThread(executionStackId: XExecutionStackId) {
|
||||
invokeThreadCommand(executionStackId, ThreadCommand.RESUME)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user