584392bd92
There was a edge case with the declaration of the `lsp` layer in `layers.el` files. The `hy` layer depends on the `python` layer which in turn depends on the `lsp` layer if and only if the `python-backend` layer variable is set to `lsp`. When the `hy` layer was declared first then it declares the `python` layer without its layer variables, thus the `lsp` layer was not declared because the `python-backend` variable was not set. The fix is to gather all the layer dependencies and resolve them only after all the used layers have been declared. * new function `configuration-layer/declare-layer-dependencies` * replace all calls to `configuration-layer/declare-layer` by the new function except for distribution layers (we declare layer dependencies right away in distribution layers) |
||
---|---|---|
.. | ||
config.el | ||
layers.el | ||
packages.el | ||
README.org |
DAP layer
Description
Experimental integrated visual debugger using Debug Adapter Protocol.
Debug Adapter Protocol is a wire protocol for communication between client and Debug Server. It similar to the LSP but providers integration with debug server.
Features:
Fully featured IDE-like debugger providing:
- Launch/Attach
- Breakpoints
- Exceptions
- Pause & Continue
- Step In/Out/Over
- Callstacks
- Threads
- Multiple simultaneous debug sessions
- Evaluating statements
- Debug/Run configurations
- Debug REPL
Layer installation
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add dap
to the existing dotspacemacs-configuration-layers
list in this
file.
Configuration
DAP configuration in supported layers
To register dap-mode
key bindings in a supported layer, the layer must
register itself using the variable spacemacs--dap-supported-modes
.
For instance the java
layer:
(defun java/pre-init-dap-mode ()
(add-to-list 'spacemacs--dap-supported-modes 'java-mode))
See the java
layer for further example on how to setup correctly dap-mode
.
Variables
Variable name | Default | Description |
---|---|---|
dap-enable-mouse-support |
t | Enable/disable mouse support |
Key bindings
Declared prefixes
The following prefixes have been declared:
prefix | name |
---|---|
SPC m d |
debug |
SPC m d d |
launching |
SPC m d b |
breakpoints |
SPC m d l |
debug windows |
SPC m d S |
context switching |
SPC m d e |
eval |
SPC m d I |
inspect |
Transient state
Most of the DAP functions can be easily repeated using the built-in DAP
transient state which can be initiate with SPC m d .
.
Key binding | Description |
---|---|
SPC m d . |
debug transient state |
Start/Stop
Key binding | Description |
---|---|
SPC m d A |
abandon all process |
SPC m d a |
abandon current session |
SPC m d d d |
start debugging |
SPC m d d e |
edit debug template |
SPC m d d l |
debug last configuration |
SPC m d d r |
debug recent configuration |
Breakpoints
Key binding | Description |
---|---|
SPC m d b b |
toggle a breakpoint |
SPC m d b c |
change breakpoint condition |
SPC m d b l |
change breakpoint log condition |
SPC m d b h |
change breakpoint hit count |
SPC m d b a |
add a breakpoint |
SPC m d b d |
delete a breakpoint |
SPC m d b D |
clear all breakpoints |
SPC m d w b |
list breakpoints |
Navigation
Key binding | Description |
---|---|
SPC m d c |
continue |
SPC m d i |
step in |
SPC m d o |
step out |
SPC m d s |
next step |
SPC m d r |
restart frame |
SPC m d S f |
switch frame |
SPC m d S s |
switch session |
SPC m d S t |
switch thread |
SPC m d w o |
goto output buffer if present |
SPC m d w s |
list sessions |
Evaluation and REPL
Key binding | Description |
---|---|
SPC m d '_ |
Run debug REPL |
SPC m d e e |
eval |
SPC m d e r |
eval region |
SPC m d e t |
eval value at point |
Inspection
Key binding | Description |
---|---|
SPC m d I i |
inspect |
SPC m d I r |
inspect region |
SPC m d I t |
inspect value at point |
SPC m d v |
inspect value at point |
SPC m d w l |
list local variables |
SPC m d T m |
toggle mouse support for value inspection |