An extension for nvim-dap providing configurations for launching go debugger (delve) and debugging individual tests.
- Auto launch Delve. No configuration needed. You just have to have
dlv
in your path. - Run just the closest test from the cursor in debug mode (uses treesitter). See debugging individual tests section bellow for more details.
- Configuration to attach nvim-dap and Delve into a running process and start a debug session.
- Configuration to start a debug session in the main function.
- Configuration to run tests in a debug session.
This plugin extension make usage of treesitter to find the nearest test to debug.
Make sure you have the Go treesitter parser installed.
If using nvim-treesitter plugin you can install with :TSInstall go
.
- Install like any other neovim plugin:
- If using vim-plug:
Plug 'leoluz/nvim-dap-go'
- If using packer.nvim:
use 'leoluz/nvim-dap-go'
- If using vim-plug:
Call the setup function in your init.vim
to register the go adapter and the configurations to debug go tests:
lua require('dap-go').setup()
- Call
:lua require('dap').continue()
to start debugging. - All pre-configured debuggers will be displayed for you to choose from.
- See
:help dap-mappings
and:help dap-api
.
To debug the closest method above the cursor use you can run:
:lua require('dap-go').debug_test()
It is better to define a mapping to invoke this command. See the mapping section bellow.
nmap <silent> <leader>td :lua require('dap-go').debug_test()<CR>
Thanks to the nvim-dap-python for the inspiration.