diff options
| author | Robert Günzler <r@gnzler.io> | 2022-10-14 20:57:03 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2022-10-14 21:01:15 +0200 |
| commit | 2d2009413f8be624a7cca95cf702e32d9315cbef (patch) | |
| tree | f024c1b5b27b886530e86221593e3cfdc3672d7e /.vim/lua/debugger.lua | |
| parent | 6d7e524d3d7a71da2cea61b335a59e9544e2a6f7 (diff) | |
vim: move custom modules under internal/
Diffstat (limited to '.vim/lua/debugger.lua')
| -rw-r--r-- | .vim/lua/debugger.lua | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/.vim/lua/debugger.lua b/.vim/lua/debugger.lua deleted file mode 100644 index 1f03434..0000000 --- a/.vim/lua/debugger.lua +++ /dev/null @@ -1,164 +0,0 @@ --- vim: fdm=marker - -require('telescope').load_extension('dap') - -local dap = require('dap') -dap.defaults.fallback.terminal_win_cmd = 'belowright 10new' -dap.defaults.fallback.terminal_win_cmd = 'belowright 10new' - --- open repl when session starts -dap.listeners.after['event_initialized']['me'] = function() - dap.repl.toggle() -end - --- signs -vim.fn.sign_define({{name='DapBreakpoint', text='🞱', texthl='DapBreakpoint', linehl='DapBreakpointLn'}}) -vim.fn.sign_define({{name='DapStopped', text='→', texthl='DapStopped', linehl='DapStoppedLn'}}) - --- keymaps -vim.keymap.set('n', '<leader>dd', dap.toggle_breakpoint, {desc='toggle breakpoint'}) -- convenience -vim.keymap.set('n', '<leader>db', dap.toggle_breakpoint, {desc='toggle breakpoint'}) -vim.keymap.set('n', '<leader>dc', dap.continue, {desc='continue'}) -vim.keymap.set('n', '<leader>do', dap.step_over, {desc='step over'}) -vim.keymap.set('n', '<leader>di', dap.step_into, {desc='step into'}) -vim.keymap.set('n', '<leader>dO', dap.step_out, {desc='step out'}) -vim.keymap.set('n', '<leader>dR', dap.repl.toggle, {desc='toggle REPL'}) -vim.keymap.set('n', '<leader>dL', dap.run_last, {desc='run last'}) -vim.keymap.set('n', '<leader>dt', dap.terminate, {desc='terminate'}) - -local widgets = require('dap.ui.widgets') -vim.keymap.set('n', '<leader>dh', widgets.hover, {desc='hover'}) -vim.keymap.set('n', '<leader>dB', require('telescope').extensions.dap.list_breakpoints, {desc='list breakpoints'}) - --- Common -local bin_from_var_or_pick = function() - local ok, retval = pcall(vim.api.nvim_buf_get_var, 0, 'dap_bin') - if ok then return retval end - local bin = nil - vim.ui.input({prompt = 'DAP Binary: '}, function(choice) bin = choice end) - return bin -end - --- Go {{{ -dap.adapters.go_dlv_local = function(callback, config) -- {{{ - local stdout = vim.loop.new_pipe() - local handle - local pid_or_err - local port = 38697 - local opts = { - stdio = {nil, stdout}, - args = {'dap', '-l', '127.0.0.1:' .. port}, - detached = true, - } - handle, pid_or_err = vim.loop.spawn("dlv", opts, function(exit) - stdout:close() - handle:close() - if exit ~= 0 then vim.notify('dlv exited with exit code ' .. exit) end - end) - assert(handle, 'Error running dlv: ' .. tostring(pid_or_err)) - stdout:read_start(function(err, chunk) - assert(not err, err) - if chunk then vim.schedule(function() require('dap.repl').append(chunk) end) end - end) - vim.defer_fn(function() callback({type = 'server', host = '127.0.0.1', port = port}) end, 100) -end -- }}} - -dap.adapters.go_dlv_remote = { - type = 'server', - host = '127.0.0.1', - port = 38697, -} - -dap.configurations.go = { - { - name = 'Debug (local)', - type = 'go_dlv_local', - request = 'launch', - program = '${file}', - }, - { - name = 'Debug (remote)', - type = 'go_dlv_remote', - request = 'launch', - mode = 'exec', - program = bin_from_var_or_pick, - }, -} --- end of Go }}} - --- C/C++/Rust {{{ --- dap.adapters.cppdbg = { --- id = 'cppdbg', --- type = 'executable', --- command = vim.env.HOME .. '/.local/share/nvim/dap/ms-vscode.cpptools/extension/debugAdapters/bin/OpenDebugAD7', --- } -dap.adapters.lldb = { - type = 'executable', - command = vim.trim(vim.fn.system('command -v lldb-vscode')), - name = 'lldb', -} - --- dap.configurations.c = { --- { --- name = 'Launch binary', --- type = 'cppdbg', --- request = 'launch', --- program = function() --- local file = vim.g.dapbin --- if file then return file end --- -- TODO: assuming meson --- file = vim.trim(vim.fn.system( --- [[jq -r '..|select(.type?=="executable")|.filename|.[0]' ]] .. --- vim.lsp.buf.list_workspace_folders()[1] .. --- [[/build/meson-info/intro-targets.json]] --- )) --- local fd = vim.loop.fs_open(file, "r", 438) --- if file and fd then --- vim.loop.fs_close(fd) --- return file --- end --- vim.ui.input('binary: ', function(result) file = result end) --- return file --- end, --- cwd = '${workspaceFolder}', --- stopOnEntry = true, --- }, --- { --- name = 'Attach to gdbserver', --- type = 'cppdbg', --- request = 'launch', --- MIMode = 'gdb', --- miDebuggerServerAddress = 'localhost:1234', --- miDebuggerPath = '/usr/bin/gdb', --- cwd = '${workspaceFolder}', --- program = function() --- local file = vim.g.dapbin --- if file then return file end --- vim.ui.input('binary: ', function(result) file = result end) --- return file --- end, --- }, --- } - -dap.configurations.c = { - { - name = 'Launch', - type = 'lldb', - request = 'launch', - program = bin_from_var_or_pick, - args = {}, - cwd = '${workspaceFolder}', - stopOnEntry = false, - }, - { - name = 'Attach', - type = 'lldb', - request = 'attach', - pid = require('dap.utils').pick_process, - args = {}, - }, -} -dap.configurations.cpp = dap.configurations.c -dap.configurations.rust = dap.configurations.c - --- end of C/C++/Rust }}} |