fix debugging
This commit is contained in:
parent
d22718bf93
commit
286f7c4f94
3
init.lua
3
init.lua
|
@ -1,6 +1,6 @@
|
||||||
vim.g.mapleader = ' '
|
vim.g.mapleader = ' '
|
||||||
vim.g.maplocalleader = ';'
|
vim.g.maplocalleader = ';'
|
||||||
vim.g.python3_host_prog = '/usr/bin/python3'
|
-- vim.g.python3_host_prog = '/usr/bin/python3'
|
||||||
|
|
||||||
vim.opt.mouse = 'a' -- mouse does annoying things for me if it's not 'a'
|
vim.opt.mouse = 'a' -- mouse does annoying things for me if it's not 'a'
|
||||||
vim.opt.signcolumn = 'yes'
|
vim.opt.signcolumn = 'yes'
|
||||||
|
@ -177,6 +177,7 @@ require 'custom.maps'
|
||||||
require 'custom.autocmds'
|
require 'custom.autocmds'
|
||||||
require('lazy').setup({
|
require('lazy').setup({
|
||||||
{ import = 'custom.plugins' },
|
{ import = 'custom.plugins' },
|
||||||
|
{ import = 'kickstart.plugins.debug' },
|
||||||
}, {
|
}, {
|
||||||
ui = {
|
ui = {
|
||||||
-- If you are using a Nerd Font: set icons to an empty table which will use the
|
-- If you are using a Nerd Font: set icons to an empty table which will use the
|
||||||
|
|
|
@ -142,6 +142,7 @@ local servers = {
|
||||||
html = {},
|
html = {},
|
||||||
cssls = {},
|
cssls = {},
|
||||||
clangd = {},
|
clangd = {},
|
||||||
|
pyright = {},
|
||||||
bashls = {},
|
bashls = {},
|
||||||
yamlls = {},
|
yamlls = {},
|
||||||
texlab = {},
|
texlab = {},
|
||||||
|
|
|
@ -76,10 +76,11 @@ return {
|
||||||
dependencies = { 'hrsh7th/nvim-cmp' },
|
dependencies = { 'hrsh7th/nvim-cmp' },
|
||||||
config = function()
|
config = function()
|
||||||
require('nvim-autopairs').setup {}
|
require('nvim-autopairs').setup {}
|
||||||
-- If you want to automatically add `(` after selecting a function or method
|
-- WARN: this is kind of anoying with rust, so I have disabeld it
|
||||||
local cmp_autopairs = require 'nvim-autopairs.completion.cmp'
|
-- -- If you want to automatically add `(` after selecting a function or method
|
||||||
local cmp = require 'cmp'
|
-- local cmp_autopairs = require 'nvim-autopairs.completion.cmp'
|
||||||
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())
|
-- local cmp = require 'cmp'
|
||||||
|
-- cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -313,177 +313,6 @@ return {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ 'kosayoda/nvim-lightbulb', event = { 'BufReadPre', 'BufNewFile' } },
|
{ 'kosayoda/nvim-lightbulb', event = { 'BufReadPre', 'BufNewFile' } },
|
||||||
{
|
|
||||||
'mfussenegger/nvim-dap',
|
|
||||||
lazy = false,
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
'<leader>db',
|
|
||||||
function()
|
|
||||||
require('dap').toggle_breakpoint()
|
|
||||||
end,
|
|
||||||
desc = 'Set [D]ebug [B]reakpoint',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<leader>dc',
|
|
||||||
function()
|
|
||||||
require('dap').continue()
|
|
||||||
end,
|
|
||||||
desc = '[D]ebug [C]ontinue',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<leader>ds',
|
|
||||||
function()
|
|
||||||
require('dap').step_over()
|
|
||||||
end,
|
|
||||||
desc = 'Set [D]ebug [S]tep over',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<leader>di',
|
|
||||||
function()
|
|
||||||
require('dap').step_into()
|
|
||||||
end,
|
|
||||||
desc = 'Set [D]ebug step [I]nto',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
local dap = require 'dap'
|
|
||||||
local mason_registry = require 'mason-registry'
|
|
||||||
local codelldb_root = mason_registry.get_package('codelldb'):get_install_path() .. '/extension/'
|
|
||||||
local codelldb_path = codelldb_root .. 'adapter/codelldb'
|
|
||||||
local liblldb_path = codelldb_root .. 'lldb/lib/liblldb.so'
|
|
||||||
dap.defaults.fallback.external_terminal = {
|
|
||||||
command = '/home/plex/.local/bin/kitty',
|
|
||||||
args = {},
|
|
||||||
}
|
|
||||||
dap.adapters.gdb = {
|
|
||||||
type = 'executable',
|
|
||||||
command = 'gdb',
|
|
||||||
args = { '-i', 'dap' },
|
|
||||||
}
|
|
||||||
dap.adapters.codelldb = {
|
|
||||||
type = 'server',
|
|
||||||
port = '30333',
|
|
||||||
executable = {
|
|
||||||
command = codelldb_path,
|
|
||||||
args = { '--port', '30333' },
|
|
||||||
detached = false,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
dap.configurations.cpp = {
|
|
||||||
{
|
|
||||||
name = 'Launch file',
|
|
||||||
type = 'codelldb',
|
|
||||||
request = 'launch',
|
|
||||||
program = function()
|
|
||||||
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
|
|
||||||
end,
|
|
||||||
args = function()
|
|
||||||
return require('custom.utils').tokenize_args(vim.fn.input 'args: ')
|
|
||||||
end,
|
|
||||||
cwd = '${workspaceFolder}',
|
|
||||||
-- FIXME: perhaps we can put the stdio somewhere more practical
|
|
||||||
stopOnEntry = false,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
dap.configurations.c = dap.configurations.cpp
|
|
||||||
dap.configurations.rust = dap.configurations.cpp
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'rcarriga/nvim-dap-ui',
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
'<leader>du',
|
|
||||||
function()
|
|
||||||
require('dapui').toggle()
|
|
||||||
end,
|
|
||||||
|
|
||||||
desc = 'Open [D]ebug [U]i',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<leader>dK',
|
|
||||||
function()
|
|
||||||
require('dap.ui.widgets').hover()
|
|
||||||
end,
|
|
||||||
|
|
||||||
desc = 'Open [D]ebug [K] hover',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<leader>du',
|
|
||||||
function()
|
|
||||||
require('dapui').toggle()
|
|
||||||
end,
|
|
||||||
|
|
||||||
desc = 'Open [D]ebug [U]i',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<leader>dws',
|
|
||||||
function()
|
|
||||||
local widgets = require 'dap.ui.widgets'
|
|
||||||
local my_sidebar = widgets.sidebar(widgets.scopes)
|
|
||||||
my_sidebar.open()
|
|
||||||
end,
|
|
||||||
desc = 'Open [D]ebug [W]indow [S]copes',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<leader>dwf',
|
|
||||||
function()
|
|
||||||
local widgets = require 'dap.ui.widgets'
|
|
||||||
local my_sidebar = widgets.sidebar(widgets.frames)
|
|
||||||
my_sidebar.open()
|
|
||||||
end,
|
|
||||||
|
|
||||||
desc = 'Open [D]ebug [W]indow [F]rames',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<leader>dwi',
|
|
||||||
function()
|
|
||||||
local widgets = require 'dap.ui.widgets'
|
|
||||||
local my_sidebar = widgets.sidebar(widgets.sessions)
|
|
||||||
my_sidebar.open()
|
|
||||||
end,
|
|
||||||
desc = 'Open [D]ebug [W]indow sess[I]ons',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<leader>dwt',
|
|
||||||
function()
|
|
||||||
local widgets = require 'dap.ui.widgets'
|
|
||||||
local my_sidebar = widgets.sidebar(widgets.threads)
|
|
||||||
my_sidebar.open()
|
|
||||||
end,
|
|
||||||
desc = 'Open [D]ebug [W]indow [T]hreads',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<leader>dwe',
|
|
||||||
function()
|
|
||||||
local widgets = require 'dap.ui.widgets'
|
|
||||||
local my_sidebar = widgets.sidebar(widgets.expression)
|
|
||||||
my_sidebar.open()
|
|
||||||
end,
|
|
||||||
|
|
||||||
desc = 'Open [D]ebug [W]indow [E]xpression',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
dependencies = {
|
|
||||||
'mfussenegger/nvim-dap',
|
|
||||||
'nvim-neotest/nvim-nio',
|
|
||||||
},
|
|
||||||
config = function(_, opts)
|
|
||||||
local dap = require 'dap'
|
|
||||||
local dapui = require 'dapui'
|
|
||||||
dapui.setup(opts)
|
|
||||||
dap.listeners.after.event_initialized['dapui_config'] = function()
|
|
||||||
dapui.open {}
|
|
||||||
end
|
|
||||||
dap.listeners.before.event_terminated['dapui_config'] = function()
|
|
||||||
-- dapui.close {}
|
|
||||||
end
|
|
||||||
dap.listeners.before.event_exited['dapui_config'] = function()
|
|
||||||
-- dapui.close {}
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
'folke/lazydev.nvim',
|
'folke/lazydev.nvim',
|
||||||
ft = 'lua', -- only load on lua files
|
ft = 'lua', -- only load on lua files
|
||||||
|
@ -496,48 +325,4 @@ return {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ 'Bilal2453/luvit-meta', lazy = true }, -- optional `vim.uv` typings
|
{ 'Bilal2453/luvit-meta', lazy = true }, -- optional `vim.uv` typings
|
||||||
{
|
|
||||||
'mrcjkb/rustaceanvim',
|
|
||||||
enabled = false,
|
|
||||||
version = '^4', -- Recommended
|
|
||||||
ft = { 'rust' },
|
|
||||||
config = function()
|
|
||||||
local dap = require 'dap'
|
|
||||||
vim.g.rustaceanvim = {
|
|
||||||
enable_clippy = true,
|
|
||||||
-- Plugin configuration
|
|
||||||
tools = {
|
|
||||||
enable_clippy = true,
|
|
||||||
},
|
|
||||||
-- LSP configuration
|
|
||||||
server = {
|
|
||||||
on_attach = function(client, bufnr)
|
|
||||||
-- you can also put keymaps in here
|
|
||||||
end,
|
|
||||||
settings = {
|
|
||||||
-- rust-analyzer language server configuration
|
|
||||||
['rust-analyzer'] = {
|
|
||||||
cargo = {
|
|
||||||
features = 'all',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- DAP configuration
|
|
||||||
dap = {
|
|
||||||
-- FIXME: the rustaceanvim debug config does not map the stdout/stderr to the
|
|
||||||
-- opened terminal, effectively rendering debugging with it useless. Luckily,
|
|
||||||
-- we can use the regular nvim-dap and nvim-dap-ui.
|
|
||||||
adapter = dap.adapters.codelldb,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'theHamsta/nvim-dap-virtual-text',
|
|
||||||
lazy = false, -- PERF: this can be done more elegant
|
|
||||||
config = function()
|
|
||||||
require('nvim-dap-virtual-text').setup()
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,12 @@
|
||||||
-- kickstart.nvim and not kitchen-sink.nvim ;)
|
-- kickstart.nvim and not kitchen-sink.nvim ;)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
{
|
||||||
-- NOTE: Yes, you can install new plugins here!
|
-- NOTE: Yes, you can install new plugins here!
|
||||||
'mfussenegger/nvim-dap',
|
'mfussenegger/nvim-dap',
|
||||||
-- NOTE: And you can specify dependencies as well
|
-- NOTE: And you can specify dependencies as well
|
||||||
dependencies = {
|
dependencies = {
|
||||||
-- Creates a beautiful debugger UI
|
-- Creates a beautiful debugger UI
|
||||||
'rcarriga/nvim-dap-ui',
|
|
||||||
|
|
||||||
-- Required dependency for nvim-dap-ui
|
-- Required dependency for nvim-dap-ui
|
||||||
'nvim-neotest/nvim-nio',
|
'nvim-neotest/nvim-nio',
|
||||||
|
@ -21,8 +21,7 @@ return {
|
||||||
'williamboman/mason.nvim',
|
'williamboman/mason.nvim',
|
||||||
'jay-babu/mason-nvim-dap.nvim',
|
'jay-babu/mason-nvim-dap.nvim',
|
||||||
|
|
||||||
-- Add your own debuggers here
|
'theHamsta/nvim-dap-virtual-text',
|
||||||
'leoluz/nvim-dap-go',
|
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
local dap = require 'dap'
|
local dap = require 'dap'
|
||||||
|
@ -41,7 +40,8 @@ return {
|
||||||
-- online, please don't ask me how to install them :)
|
-- online, please don't ask me how to install them :)
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
-- Update this to ensure that you have the debuggers for the langs you want
|
-- Update this to ensure that you have the debuggers for the langs you want
|
||||||
'delve',
|
'codelldb',
|
||||||
|
'debugpy',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,14 +83,132 @@ return {
|
||||||
dap.listeners.after.event_initialized['dapui_config'] = dapui.open
|
dap.listeners.after.event_initialized['dapui_config'] = dapui.open
|
||||||
dap.listeners.before.event_terminated['dapui_config'] = dapui.close
|
dap.listeners.before.event_terminated['dapui_config'] = dapui.close
|
||||||
dap.listeners.before.event_exited['dapui_config'] = dapui.close
|
dap.listeners.before.event_exited['dapui_config'] = dapui.close
|
||||||
|
|
||||||
-- Install golang specific config
|
|
||||||
require('dap-go').setup {
|
|
||||||
delve = {
|
|
||||||
-- On Windows delve must be run attached or it crashes.
|
|
||||||
-- See https://github.com/leoluz/nvim-dap-go/blob/main/README.md#configuring
|
|
||||||
detached = vim.fn.has 'win32' == 0,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end,
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'rcarriga/nvim-dap-ui',
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
'<leader>du',
|
||||||
|
function()
|
||||||
|
require('dapui').toggle()
|
||||||
|
end,
|
||||||
|
|
||||||
|
desc = 'Open [D]ebug [U]i',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>dso',
|
||||||
|
function()
|
||||||
|
require('dap').step_over()
|
||||||
|
end,
|
||||||
|
|
||||||
|
desc = 'Toggle [D]ebug [S]tep [O]ver',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>dsi',
|
||||||
|
function()
|
||||||
|
require('dap').step_into()
|
||||||
|
end,
|
||||||
|
|
||||||
|
desc = 'Toggle [D]ebug [S]tep [I]nto',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>dc',
|
||||||
|
function()
|
||||||
|
require('dap').continue()
|
||||||
|
end,
|
||||||
|
|
||||||
|
desc = 'Toggle [D]ebug [C]ontinue / Start',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>db',
|
||||||
|
function()
|
||||||
|
require('dap').toggle_breakpoint()
|
||||||
|
end,
|
||||||
|
|
||||||
|
desc = 'Toggle [D]ebug [B]reakpoint',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>dK',
|
||||||
|
function()
|
||||||
|
require('dap.ui.widgets').hover()
|
||||||
|
end,
|
||||||
|
|
||||||
|
desc = 'Open [D]ebug [K] hover',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>dws',
|
||||||
|
function()
|
||||||
|
local widgets = require 'dap.ui.widgets'
|
||||||
|
local my_sidebar = widgets.sidebar(widgets.scopes)
|
||||||
|
my_sidebar.open()
|
||||||
|
end,
|
||||||
|
desc = 'Open [D]ebug [W]indow [S]copes',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>dwr',
|
||||||
|
function()
|
||||||
|
require('dap').repl.toggle()
|
||||||
|
end,
|
||||||
|
|
||||||
|
desc = 'Open [D]ebug [W]indow [R]epl',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>dwf',
|
||||||
|
function()
|
||||||
|
local widgets = require 'dap.ui.widgets'
|
||||||
|
local my_sidebar = widgets.sidebar(widgets.frames)
|
||||||
|
my_sidebar.open()
|
||||||
|
end,
|
||||||
|
|
||||||
|
desc = 'Open [D]ebug [W]indow [F]rames',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>dwi',
|
||||||
|
function()
|
||||||
|
local widgets = require 'dap.ui.widgets'
|
||||||
|
local my_sidebar = widgets.sidebar(widgets.sessions)
|
||||||
|
my_sidebar.open()
|
||||||
|
end,
|
||||||
|
desc = 'Open [D]ebug [W]indow sess[I]ons',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>dwt',
|
||||||
|
function()
|
||||||
|
local widgets = require 'dap.ui.widgets'
|
||||||
|
local my_sidebar = widgets.sidebar(widgets.threads)
|
||||||
|
my_sidebar.open()
|
||||||
|
end,
|
||||||
|
desc = 'Open [D]ebug [W]indow [T]hreads',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>dwe',
|
||||||
|
function()
|
||||||
|
local widgets = require 'dap.ui.widgets'
|
||||||
|
local my_sidebar = widgets.sidebar(widgets.expression)
|
||||||
|
my_sidebar.open()
|
||||||
|
end,
|
||||||
|
|
||||||
|
desc = 'Open [D]ebug [W]indow [E]xpression',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dependencies = {
|
||||||
|
'mfussenegger/nvim-dap',
|
||||||
|
'nvim-neotest/nvim-nio',
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
local dap = require 'dap'
|
||||||
|
local dapui = require 'dapui'
|
||||||
|
dapui.setup(opts)
|
||||||
|
dap.listeners.after.event_initialized['dapui_config'] = function()
|
||||||
|
dapui.open {}
|
||||||
|
end
|
||||||
|
dap.listeners.before.event_terminated['dapui_config'] = function()
|
||||||
|
-- dapui.close {}
|
||||||
|
end
|
||||||
|
dap.listeners.before.event_exited['dapui_config'] = function()
|
||||||
|
-- dapui.close {}
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -420,3 +420,17 @@ C3
|
||||||
TOTP
|
TOTP
|
||||||
Panta/!
|
Panta/!
|
||||||
Panta
|
Panta
|
||||||
|
kauma
|
||||||
|
α
|
||||||
|
XEX
|
||||||
|
unintuitively
|
||||||
|
sea128
|
||||||
|
u8
|
||||||
|
Base64
|
||||||
|
ffield
|
||||||
|
α's
|
||||||
|
Vec
|
||||||
|
u128
|
||||||
|
number1
|
||||||
|
number2
|
||||||
|
i64
|
||||||
|
|
Loading…
Reference in New Issue