Add debugging and test runners

This commit is contained in:
Warren Hood 2022-11-15 01:36:57 +02:00
parent ed32743a88
commit 78eb9262ec
3 changed files with 127 additions and 4 deletions

View file

@ -45,6 +45,42 @@ map('n', '<leader>sv', ':vsplit<CR>', { desc = 'Split Vertical' })
map('n', '<leader>sh', ':split<CR>', { desc = 'Split Horizontal' }) map('n', '<leader>sh', ':split<CR>', { desc = 'Split Horizontal' })
-- Debugging
map("n", "<F4>", ":lua require('dapui').toggle()<CR>")
map("n", "<F5>", ":lua require('dap').toggle_breakpoint()<CR>")
map("n", "<F9>", ":lua require('dap').continue()<CR>")
map("n", "<F1>", ":lua require('dap').step_over()<CR>")
map("n", "<F2>", ":lua require('dap').step_into()<CR>")
map("n", "<F3>", ":lua require('dap').step_out()<CR>")
map("n", "<Leader>dsc", ":lua require('dap').continue()<CR>")
map("n", "<Leader>dsv", ":lua require('dap').step_over()<CR>")
map("n", "<Leader>dsi", ":lua require('dap').step_into()<CR>")
map("n", "<Leader>dso", ":lua require('dap').step_out()<CR>")
map("n", "<Leader>dhh", ":lua require('dap.ui.variables').hover()<CR>")
map("v", "<Leader>dhv", ":lua require('dap.ui.variables').visual_hover()<CR>")
map("n", "<Leader>duh", ":lua require('dap.ui.widgets').hover()<CR>")
map("n", "<Leader>duf", ":lua local widgets=require('dap.ui.widgets');widgets.centered_float(widgets.scopes)<CR>")
map("n", "<Leader>dro", ":lua require('dap').repl.open()<CR>")
map("n", "<Leader>drl", ":lua require('dap').repl.run_last()<CR>")
map("n", "<Leader>dbc", ":lua require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>")
map("n", "<Leader>dbm", ":lua require('dap').set_breakpoint({ nil, nil, vim.fn.input('Log point message: '))<CR>")
map("n", "<Leader>dbt", ":lua require('dap').toggle_breakpoint()<CR>")
map("n", "<Leader>dc", ":lua require('dap.ui.variables').scopes()<CR>")
map("n", "<Leader>di", ":lua require('dapui').toggle()<CR>")
-- luasnip -- luasnip
vim.cmd[[ vim.cmd[[
" Use Tab to expand and jump through snippets " Use Tab to expand and jump through snippets

View file

@ -35,3 +35,53 @@ require("luasnip").config.set_config({ -- Setting LuaSnip config
}) })
require("luasnip.loaders.from_lua").load({paths = "~/.config/nvim/LuaSnip/"}) require("luasnip.loaders.from_lua").load({paths = "~/.config/nvim/LuaSnip/"})
-- Which-key config
require('which-key').setup()
require('which-key').register({
d = {
name = "Debug",
s = {
name = "Step",
c = { "<cmd>lua require('dap').continue()<CR>", "Continue" },
v = { "<cmd>lua require('dap').step_over()<CR>", "Step Over" },
i = { "<cmd>lua require('dap').step_into()<CR>", "Step Into" },
o = { "<cmd>lua require('dap').step_out()<CR>", "Step Out" },
},
h = {
name = "Hover",
h = { "<cmd>lua require('dap.ui.variables').hover()<CR>", "Hover" },
v = { "<cmd>lua require('dap.ui.variables').visual_hover()<CR>", "Visual Hover" },
},
u = {
name = "UI",
h = { "<cmd>lua require('dap.ui.widgets').hover()<CR>", "Hover" },
f = { "local widgets=require('dap.ui.widgets');widgets.centered_float(widgets.scopes)<CR>", "Float" },
},
r = {
name = "Repl",
o = { "<cmd>lua require('dap').repl.open()<CR>", "Open" },
l = { "<cmd>lua require('dap').repl.run_last()<CR>", "Run Last" },
},
b = {
name = "Breakpoints",
c = {
"<cmd>lua require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>",
"Breakpoint Condition",
},
m = {
"<cmd>lua require('dap').set_breakpoint({ nil, nil, vim.fn.input('Log point message: ') })<CR>",
"Log Point Message",
},
t = { "<cmd>lua require('dap').toggle_breakpoint()<CR>", "Create" },
},
c = { "<cmd>lua require('dap').scopes()<CR>", "Scopes" },
i = { "<cmd>lua require('dap').toggle()<CR>", "Toggle" },
},
}, { prefix = "<leader>" })

View file

@ -66,9 +66,6 @@ require("packer").startup(function()
-- Which key for command suggestions -- Which key for command suggestions
use { use {
"folke/which-key.nvim", "folke/which-key.nvim",
config = function()
require("which-key").setup()
end
} }
-- Comments -- Comments
@ -109,6 +106,46 @@ require("packer").startup(function()
end end
} }
-- Test runner Stuff
use {
"nvim-neotest/neotest",
requires = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
"nvim-neotest/neotest-python",
},
config = function()
require('neotest').setup {
adapters = {
require("neotest-python")({
dap = { justMyCode = false },
}),
},
}
end
}
-- Debugging
use('mfussenegger/nvim-dap') -- Main debugging plugin
use {
'rcarriga/nvim-dap-ui',
requires = { "mfussenegger/nvim-dap" },
config = function()
require('dapui').setup()
end
} -- Better debugging UI
use {
'theHamsta/nvim-dap-virtual-text',
config = function()
require("nvim-dap-virtual-text").setup()
end
} -- Virtual text for nvim-dap
-- Automatically set up configuration after cloning packer.nvim -- Automatically set up configuration after cloning packer.nvim
if packer_bootstrap then if packer_bootstrap then
require("packer").sync() require("packer").sync()