@@ -23,6 +23,7 @@ import com.intellij.openapi.util.Ref
2323import com.jetbrains.rd.util.reactive.Signal
2424import com.jetbrains.rd.util.reactive.adviseEternal
2525import dev.robotcode.robotcode4ij.buildRobotCodeCommandLine
26+ import dev.robotcode.robotcode4ij.debugging.IRobotCodeDebugProtocolServer
2627import dev.robotcode.robotcode4ij.debugging.RobotCodeDebugProgramRunner
2728import dev.robotcode.robotcode4ij.debugging.RobotCodeDebugProtocolClient
2829import dev.robotcode.robotcode4ij.utils.NetUtils.findFreePort
@@ -35,9 +36,7 @@ import kotlinx.coroutines.withContext
3536import kotlinx.coroutines.withTimeout
3637import org.eclipse.lsp4j.debug.ConfigurationDoneArguments
3738import org.eclipse.lsp4j.debug.InitializeRequestArguments
38- import org.eclipse.lsp4j.debug.launch.DSPLauncher
39- import org.eclipse.lsp4j.debug.services.IDebugProtocolServer
40- import org.eclipse.lsp4j.jsonrpc.Launcher
39+ import org.eclipse.lsp4j.jsonrpc.debug.DebugLauncher
4140import java.net.Socket
4241import java.net.SocketTimeoutException
4342import kotlin.uuid.ExperimentalUuidApi
@@ -54,7 +53,7 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en
5453 }
5554
5655 val debugClient = RobotCodeDebugProtocolClient ()
57- lateinit var debugServer: IDebugProtocolServer
56+ lateinit var debugServer: IRobotCodeDebugProtocolServer
5857 var isInitialized = false
5958 private set
6059 var isConfigurationDone = false
@@ -63,7 +62,6 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en
6362 val afterInitialize = Signal <Unit >()
6463 val afterConfigurationDone = Signal <Unit >()
6564
66-
6765 init {
6866 debugClient.onTerminated.adviseEternal {
6967 if (socket.isConnected) socket.close()
@@ -142,8 +140,8 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en
142140 consoleProperties.state = this
143141 }
144142
145- var splitterPropertyName = SMTestRunnerConnectionUtil .getSplitterPropertyName(TESTFRAMEWORK_NAME )
146- var consoleView = RobotCodeRunnerConsoleView (consoleProperties, splitterPropertyName)
143+ val splitterPropertyName = SMTestRunnerConnectionUtil .getSplitterPropertyName(TESTFRAMEWORK_NAME )
144+ val consoleView = RobotCodeRunnerConsoleView (consoleProperties, splitterPropertyName)
147145 SMTestRunnerConnectionUtil .initConsoleView(consoleView, TESTFRAMEWORK_NAME )
148146 consoleView.attachToProcess(processHandler)
149147 consoleRef.set(consoleView)
@@ -192,17 +190,22 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en
192190 @OptIn(ExperimentalUuidApi ::class ) override fun startNotified (event : ProcessEvent ) {
193191 runBlocking(Dispatchers .IO ) {
194192
195- var port = event.processHandler.getUserData(DEBUG_PORT ) ? : throw CantRunException (" No debug port found." )
193+ val port = event.processHandler.getUserData(DEBUG_PORT ) ? : throw CantRunException (" No debug port found." )
196194
197195 socket = tryConnectToServerWithTimeout(" 127.0.0.1" , port, 10000 , retryIntervalMillis = 100 )
198196 ? : throw CantRunException (" Unable to establish connection to debug server." )
199197
200- val launcher: Launcher <IDebugProtocolServer > =
201- DSPLauncher .createClientLauncher(debugClient, socket.getInputStream(), socket.getOutputStream())
198+ val launcher = DebugLauncher .createLauncher(
199+ debugClient,
200+ IRobotCodeDebugProtocolServer ::class .java,
201+ socket.getInputStream(),
202+ socket.getOutputStream()
203+ );
202204
203205 launcher.startListening()
204206
205207 debugServer = launcher.remoteProxy
208+ debugClient.server = debugServer
206209
207210 val arguments = InitializeRequestArguments ().apply {
208211 clientID = Uuid .random().toString()
0 commit comments