Support java debugging

The java architecture is a little different:

- the debugger is a jdt.ls extension bundle.
- to start the server, you send a startDebugSession command to jdt.ls
- this returns a tcl port to connect to for DAP

Loading of jdt.ls and the extension are out of scope for vimspector
currently and instead you can tell it to ask you for a port to connect
to.

After connexting to that port, vimspector works as normal.

To support TCP/IP was pretty simple: we provide the same API from
vimscript as the job-based (stdin/out) comms layer, but instead just
directly use a channel.

The only wrinkle was that the java debug adapter broke the protocol on
runInTerminal and didn't return a 'cwd', so we make one up.
This commit is contained in:
Ben Jackson 2018-12-20 00:26:23 +00:00
commit 14603ae72f
6 changed files with 173 additions and 7 deletions

View file

@ -0,0 +1,22 @@
{
"adapters": {
"java-debug-server": {
"name": "vscode-java",
"port": "ask"
}
},
"configurations": {
"Java Launch": {
"adapter": "java-debug-server",
"configuration": {
"request": "launch",
"mainClass": "com.vimspector.test.TestApplication",
"sourcePaths": [ "${workspaceRoot}/src/main/java" ],
"classPaths": [ "${workspaceRoot}/target/classes" ],
"args": "hello world!",
"stopOnEntry": true,
"console": "integratedTerminal"
}
}
}
}