diff --git a/lua/my_plugins.lua b/lua/my_plugins.lua index 4e477ca..015e5c9 100644 --- a/lua/my_plugins.lua +++ b/lua/my_plugins.lua @@ -211,6 +211,11 @@ return require('packer').startup(function() requires = {'tpope/vim-repeat'}, config = get_setup('my_leap') } + use { + 'mfussenegger/nvim-dap', + requires = {'mfussenegger/nvim-dap-python'}, + config = get_setup('my_dap') + } if packer_bootstrap then require('packer').sync() end diff --git a/lua/setup/my_dap.lua b/lua/setup/my_dap.lua new file mode 100644 index 0000000..a969c1e --- /dev/null +++ b/lua/setup/my_dap.lua @@ -0,0 +1,44 @@ +dap = require('dap') +local opts = { noremap = true, silent = false } +-- vim.keymap.set('n', '', dap.continue(), opts) +vim.keymap.set('n', '', ":lua require('dap').continue()", opts) +vim.keymap.set('n', '', ":lua require('dap').toggle_breakpoint()", opts) +vim.keymap.set('n', '', ":lua require('dap').step_over()", opts) +vim.keymap.set('n', '', ":lua require('dap').step_into()", opts) +vim.keymap.set('n', '', ":lua require('dap').step_out()", opts) +-- vim.keymap.set('n', '', dap.step_over(), opts) +-- vim.keymap.set('n', '', dap.step_into(), opts) +-- vim.keymap.set('n', '', dap.step_out(), opts) + +dap.adapters.python = { + type = 'executable'; + command = 'C:/Users/oli/AppData/Local/nvim-data/mason/packages/debugpy/venv/Scripts/python.exe'; + args = { '-m', 'debugpy.adapter' }; +} +dap.configurations.python = { + { + -- The first three options are required by nvim-dap + type = 'python'; -- the type here established the link to the adapter definition: `dap.adapters.python` + request = 'launch'; + name = "Launch file"; + + -- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options + + program = "${file}"; -- This configuration will launch the current file if used. + pythonPath = function() + -- debugpy supports launching an application with a different interpreter then the one used to launch debugpy itself. + -- The code below looks for a `venv` or `.venv` folder in the current directly and uses the python within. + -- You could adapt this - to for example use the `VIRTUAL_ENV` environment variable. + local cwd = vim.fn.getcwd() + if vim.fn.executable(cwd .. '/venv/bin/python') == 1 then + return cwd .. '/venv/bin/python' + elseif vim.fn.executable(cwd .. '/.venv/bin/python') == 1 then + return cwd .. '/.venv/bin/python' + else + return '/usr/bin/python' + end + end; + }, +} + +-- require('dap-python').setup('C:/Users/oli/AppData/Local/nvim-data/mason/packages/debugpy/venv/Scripts/python.exe')