chore(python-debugging): refactor python debugging setup
This commit is contained in:
parent
63d6426b87
commit
2f0d12ffe8
|
@ -2,27 +2,86 @@
|
||||||
--
|
--
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'mfussenegger/nvim-dap-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 = {
|
keys = {
|
||||||
{
|
{
|
||||||
'<leader>dPt',
|
'<leader>dc',
|
||||||
function()
|
function()
|
||||||
require('dap-python').test_method()
|
require('dap').continue()
|
||||||
end,
|
end,
|
||||||
desc = 'Debug Method',
|
desc = 'Start/Continue Debugger',
|
||||||
ft = 'python',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'<leader>dPc',
|
'<leader>db',
|
||||||
function()
|
function()
|
||||||
require('dap-python').test_class()
|
require('dap').toggle_breakpoint()
|
||||||
end,
|
end,
|
||||||
desc = 'Debug Class',
|
desc = 'Add Breakpoint',
|
||||||
ft = 'python',
|
},
|
||||||
|
{
|
||||||
|
'<leader>dt',
|
||||||
|
function()
|
||||||
|
require('dap').terminate()
|
||||||
|
end,
|
||||||
|
desc = 'Terminate Debugger',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- 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()
|
config = function()
|
||||||
local path = require('mason-registry').get_package('debugpy'):get_install_path()
|
local listener = require('dap').listeners
|
||||||
require('dap-python').setup(os.getenv 'PYENV_ROOT' .. '/versions/3.11.9/bin/python')
|
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,
|
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