diff --git a/nvim/lua/plugins.lua b/nvim/lua/plugins.lua index 617d24e..8ab7534 100644 --- a/nvim/lua/plugins.lua +++ b/nvim/lua/plugins.lua @@ -22,6 +22,9 @@ require('lazy').setup({ require('plugins/mason'), require('plugins/gruvbox'), require('plugins/comment'), + require('plugins/dap'), + require('plugins/dap-python'), + -- require('plugins/inc-rename'), require('plugins/treesitter'), require('plugins/vim-gitgutter'), require('plugins/luasnip'), diff --git a/nvim/lua/plugins/dap-python.lua b/nvim/lua/plugins/dap-python.lua new file mode 100644 index 0000000..69551d3 --- /dev/null +++ b/nvim/lua/plugins/dap-python.lua @@ -0,0 +1,6 @@ +return { + 'mfussenegger/nvim-dap-python', + config = function() + require('dap-python').setup('~/.virtualenvs/debugpy/bin/python') + end, +} diff --git a/nvim/lua/plugins/dap.lua b/nvim/lua/plugins/dap.lua new file mode 100644 index 0000000..32dee04 --- /dev/null +++ b/nvim/lua/plugins/dap.lua @@ -0,0 +1,100 @@ +return { + 'mfussenegger/nvim-dap', + dependencies = { + { + 'rcarriga/nvim-dap-ui', + config = function() + require('dapui').setup({ + -- icons + mappings = { + open = 'o', + remove = 'd', + edit = 'e', + repl = 'r', + toggle = 't', + }, + layouts = { + { + elements = { + 'scopes', + 'watches', + }, + size = 0.33, + position = 'right', + }, + { + elements = { + 'terminal', + 'breakpoints', + }, + size = 0.2, + position = 'bottom', + }, + }, + floating = { + max_height = nil, + max_width = nil, + border = 'single', + mappings = { + close = { 'q', '' }, + }, + }, + windows = { indent = 1 }, + render = { + max_type_length = nil, + }, + }) + end, + }, + { + 'theHamsta/nvim-dap-virtual-text', + config = function() + require('nvim-dap-virtual-text').setup() + end, + }, + }, + config = function() + local dap, dapui = require('dap'), require('dapui') + + dap.listeners.after.event_initialized['dapui_config'] = function() + dapui.open() + end + dap.listeners.after.event_terminated['dapui_config'] = function() + dapui.close() + end + dap.listeners.before.event_exited['dapui_config'] = function() + dapui.close() + end + + vim.fn.sign_define('DapBreakpoint', { text = '🐞', texthl = '', lineh = '', numhl = '' }) + vim.fn.sign_define('DapStopped', { text = '⮞' }) + end, + keys = { + { + 'b', function() require('dap').toggle_breakpoint() end + }, + { + 'B', function() require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: ')) end + }, + { + 'dh', + function() require('dap.ui.widgets').hover() end, + mode = 'n', 'v' + }, + { + '', function() require('dap').continue() end + }, + { + '', function() require('dap').terminate() end + }, + { + '', function() require('dap').step_over() end + }, + { + '', function() require('dap').step_into() end + }, + { + '', function() require('dap').step_out() end + }, + }, +} diff --git a/nvim/lua/plugins/mason.lua b/nvim/lua/plugins/mason.lua index 5dac205..e51e0f7 100644 --- a/nvim/lua/plugins/mason.lua +++ b/nvim/lua/plugins/mason.lua @@ -90,6 +90,7 @@ return { } end, dependencies = { - 'williamboman/mason-lspconfig.nvim' + 'williamboman/mason-lspconfig.nvim', + 'jay-babu/mason-nvim-dap.nvim', }, }