chore(python-debugging): refactor python debugging setup
This commit is contained in:
parent
63d6426b87
commit
2f0d12ffe8
|
@ -2,27 +2,86 @@
|
|||
--
|
||||
|
||||
return {
|
||||
'mfussenegger/nvim-dap-python',
|
||||
keys = {
|
||||
{
|
||||
'<leader>dPt',
|
||||
function()
|
||||
require('dap-python').test_method()
|
||||
end,
|
||||
desc = 'Debug Method',
|
||||
ft = 'python',
|
||||
},
|
||||
{
|
||||
'<leader>dPc',
|
||||
function()
|
||||
require('dap-python').test_class()
|
||||
end,
|
||||
desc = 'Debug Class',
|
||||
ft = 'python',
|
||||
-- DEBUGGING
|
||||
|
||||
-- DAP Client for nvim
|
||||
-- - start the debugger with `<leader>dc`
|
||||
-- - add breakpoints with `<leader>db`
|
||||
-- - terminate the debugger `<leader>dt`
|
||||
{
|
||||
'mfussenegger/nvim-dap',
|
||||
keys = {
|
||||
{
|
||||
'<leader>dc',
|
||||
function()
|
||||
require('dap').continue()
|
||||
end,
|
||||
desc = 'Start/Continue Debugger',
|
||||
},
|
||||
{
|
||||
'<leader>db',
|
||||
function()
|
||||
require('dap').toggle_breakpoint()
|
||||
end,
|
||||
desc = 'Add Breakpoint',
|
||||
},
|
||||
{
|
||||
'<leader>dt',
|
||||
function()
|
||||
require('dap').terminate()
|
||||
end,
|
||||
desc = 'Terminate Debugger',
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local path = require('mason-registry').get_package('debugpy'):get_install_path()
|
||||
require('dap-python').setup(os.getenv 'PYENV_ROOT' .. '/versions/3.11.9/bin/python')
|
||||
end,
|
||||
|
||||
-- UI for the debugger
|
||||
-- - the debugger UI is also automatically opened when starting/stopping the debugger
|
||||
-- - toggle debugger UI manually with `<leader>du`
|
||||
{
|
||||
'rcarriga/nvim-dap-ui',
|
||||
dependencies = { 'mfussenegger/nvim-dap', 'nvim-neotest/nvim-nio' },
|
||||
keys = {
|
||||
{
|
||||
'<leader>du',
|
||||
function()
|
||||
require('dapui').toggle()
|
||||
end,
|
||||
desc = 'Toggle Debugger UI',
|
||||
},
|
||||
},
|
||||
-- automatically open/close the DAP UI when starting/stopping the debugger
|
||||
config = function()
|
||||
local listener = require('dap').listeners
|
||||
listener.after.event_initialized['dapui_config'] = function()
|
||||
require('dapui').open()
|
||||
end
|
||||
listener.before.event_terminated['dapui_config'] = function()
|
||||
require('dapui').close()
|
||||
end
|
||||
listener.before.event_exited['dapui_config'] = function()
|
||||
require('dapui').close()
|
||||
end
|
||||
end,
|
||||
},
|
||||
|
||||
-- Configuration for the python debugger
|
||||
-- - configures debugpy for us
|
||||
-- - uses the debugpy installation from mason
|
||||
{
|
||||
'mfussenegger/nvim-dap-python',
|
||||
dependencies = 'mfussenegger/nvim-dap',
|
||||
config = function()
|
||||
-- fix: E5108: Error executing lua .../Local/nvim-data/lazy/nvim-dap-ui/lua/dapui/controls.lua:14: attempt to index local 'element' (a nil value)
|
||||
-- see: https://github.com/rcarriga/nvim-dap-ui/issues/279#issuecomment-1596258077
|
||||
local dap, dapui = require 'dap', require 'dapui'
|
||||
dapui.setup()
|
||||
-- uses the debugypy installation by mason
|
||||
local debugpyPythonPath = require('mason-registry').get_package('debugpy'):get_install_path() .. '/venv/bin/python3'
|
||||
require('dap-python').setup(debugpyPythonPath, {}) ---@diagnostic disable-line: missing-fields
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
|
|
Loading…
Reference in New Issue