DAP (Debug Adapter Protocol)
nvim-dap is a Debug Adapter Protocol client implementation for Neovim
nvim-dap allows you to:
- Launch an application to debug
- Attach to running applications and debug them
- Set breakpoints and step through code
- Inspect the state of the application
- Requires Neovim (>= 0.5)
- nvim-dap is a plugin. Install it like any other Neovim plugin.
- Generate the documentation for nvim-dap using
You'll need to install and configure a debug adapter per language. See
A typical debug flow consists of:
- Setting breakpoints via
- Launching debug sessions and resuming execution via
- Stepping through code via
- Inspecting the state via the built-in REPL:
:lua require'dap'.repl.open()or using the widget UI (
See :help dap.txt,
:help dap-mapping and
In theory all of the languages for which a debug adapter exists should be supported.
The Wiki is community maintained. If you got an adapter working that isn't listed yet, please extend the Wiki. If you struggle getting an adapter working, please create an issue.
Have a basic debugger in Neovim.
Extensibility and double as a DAP client library. This allows other plugins to extend the debugging experience. Either by improving the UI or by making it easier to debug parts of an application.
All known extensions are listed in the Wiki. The wiki is community maintained. Please add new extensions if you built one or if you discovered one that's not listed.
Debug adapter installations are out of scope. It's not the business of an editor plugin to re-invent a package manager. Use your system package manager. Use Nix. Use Ansible. If you disagree, check out DAPInstall.
Vim support. It's not going to happen. Use vimspector instead.
- launch debug adapter
- attach to debug adapter
- toggle breakpoints
- breakpoints with conditions
- set exception breakpoints
- step over, step into, step out
- step back, reverse continue
- evaluate expressions
- REPL (incl. commands to show threads, frames and scopes)