LSP4IJ provides Debug Adapter Protocol support. You can read the DAP Support overview, describing which DAP features are implemented, and how.
The DAP support is available with the Debug Adapter Protocol
run/debug configuration type:
After configuring the DAP configuration type, you can debug your file.
Here is an example with JavaScript debugging
, which uses the VSCode JS Debug DAP server:
To configure debugging with DAP, you need to fill in:
-
The
Server
tab to specify the DAP server: -
The
Mappings
tab to specify the files which can be debugged to allow adding/removing breakpoints:
The values of the variables are displayed inline, but this is not perfect because a DAP server generally cannot handle variable positions (only their values). To retrieve the variable positions, LSP4IJ uses the syntax highlighting information from the editor (TextMate or others).
Here a de demo with JavaScript:
Theoretically, inline values should be handled by a language server via textDocument/inlineValue but as no language servers seems implement this LSP request for the moment LSP4IJ doesn't use this strategy.
Evaluate expression is available by consuming the Evaluate request
If debug adapter supports the completions
request,
completion should be available in the expression editor by consuming the
Completion request:
If debug adapter supports setting a variable to a value,
the Set Value...
contextual menu should be available:
You should edit the variable:
the edit apply will consume the SetVariable request:
Click on right button open existing / new DAP run configuration:
If you wish to show DAP request/response traces when you will debug:
you need to select Trace
with verbose
.
LSP4IJ provides DAP templates that allow to initialize a given DAP server very quickly:
- Go Delve DAP server which allows you to debug
Go
files. - Julia DAP server which allows you to debug
Julia
files. - Swift DAP Server which allows you to debug
Swift
files. - VSCode JS Debug DAP Server which allows you to debug
JavaScript/TypeScript
files.