nvim-dap
is a Debug Adapter Protocol client implementation for Neovim.
nvim-dap
allows you to:
git clone https://github.com/mfussenegger/nvim-dap.git ~/.config/nvim/pack/plugins/start/nvim-dap
Plug 'mfussenegger/nvim-dap'
use 'mfussenegger/nvim-dap'
:helptags ALL
or
:helptags <PATH-TO-PLUGIN/doc/>
Supported Neovim versions:
You'll need to install and configure a debug adapter per language. See
:help dap-adapter
:help dap-configuration
A typical debug flow consists of:
:lua require'dap'.toggle_breakpoint()
.:lua require'dap'.continue()
.:lua require'dap'.step_over()
and :lua require'dap'.step_into()
.:lua require'dap'.repl.open()
or using the widget UI (:help dap-widgets
)See :help dap.txt, :help dap-mapping
and :help dap-api
.
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.
Some debug adapters have language specific extensions. Using them over a manual configuration is recommended, as they're usually better maintained.
If the instructions in the wiki for a debug adapter are not working, consider that debug adapters may have made changes since the instructions were written. You may want to read the release notes of the debug adapters or try with an older version. Please update the wiki if you discover outdated examples.
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.
Vim support. It's not going to happen. Use vimspector instead.
Contributions are welcome:
Before making direct code contributions, please create a discussion or issue to clarify whether the change is in scope of the nvim-dap core.
Please keep pull requests focused and don't change multiple things at the same time.