@@ -23,6 +23,7 @@ import com.intellij.openapi.util.Ref
23
23
import com.jetbrains.rd.util.reactive.Signal
24
24
import com.jetbrains.rd.util.reactive.adviseEternal
25
25
import dev.robotcode.robotcode4ij.buildRobotCodeCommandLine
26
+ import dev.robotcode.robotcode4ij.debugging.IRobotCodeDebugProtocolServer
26
27
import dev.robotcode.robotcode4ij.debugging.RobotCodeDebugProgramRunner
27
28
import dev.robotcode.robotcode4ij.debugging.RobotCodeDebugProtocolClient
28
29
import dev.robotcode.robotcode4ij.utils.NetUtils.findFreePort
@@ -35,9 +36,7 @@ import kotlinx.coroutines.withContext
35
36
import kotlinx.coroutines.withTimeout
36
37
import org.eclipse.lsp4j.debug.ConfigurationDoneArguments
37
38
import 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
41
40
import java.net.Socket
42
41
import java.net.SocketTimeoutException
43
42
import kotlin.uuid.ExperimentalUuidApi
@@ -54,7 +53,7 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en
54
53
}
55
54
56
55
val debugClient = RobotCodeDebugProtocolClient ()
57
- lateinit var debugServer: IDebugProtocolServer
56
+ lateinit var debugServer: IRobotCodeDebugProtocolServer
58
57
var isInitialized = false
59
58
private set
60
59
var isConfigurationDone = false
@@ -63,7 +62,6 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en
63
62
val afterInitialize = Signal <Unit >()
64
63
val afterConfigurationDone = Signal <Unit >()
65
64
66
-
67
65
init {
68
66
debugClient.onTerminated.adviseEternal {
69
67
if (socket.isConnected) socket.close()
@@ -142,8 +140,8 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en
142
140
consoleProperties.state = this
143
141
}
144
142
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)
147
145
SMTestRunnerConnectionUtil .initConsoleView(consoleView, TESTFRAMEWORK_NAME )
148
146
consoleView.attachToProcess(processHandler)
149
147
consoleRef.set(consoleView)
@@ -192,17 +190,22 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en
192
190
@OptIn(ExperimentalUuidApi ::class ) override fun startNotified (event : ProcessEvent ) {
193
191
runBlocking(Dispatchers .IO ) {
194
192
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." )
196
194
197
195
socket = tryConnectToServerWithTimeout(" 127.0.0.1" , port, 10000 , retryIntervalMillis = 100 )
198
196
? : throw CantRunException (" Unable to establish connection to debug server." )
199
197
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
+ );
202
204
203
205
launcher.startListening()
204
206
205
207
debugServer = launcher.remoteProxy
208
+ debugClient.server = debugServer
206
209
207
210
val arguments = InitializeRequestArguments ().apply {
208
211
clientID = Uuid .random().toString()
0 commit comments