summary refs log tree commit diff
path: root/.vim/lua/debugger.lua
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2022-10-14 20:57:03 +0200
committerRobert Günzler <r@gnzler.io>2022-10-14 21:01:15 +0200
commit2d2009413f8be624a7cca95cf702e32d9315cbef (patch)
treef024c1b5b27b886530e86221593e3cfdc3672d7e /.vim/lua/debugger.lua
parent6d7e524d3d7a71da2cea61b335a59e9544e2a6f7 (diff)
vim: move custom modules under internal/
Diffstat (limited to '.vim/lua/debugger.lua')
-rw-r--r--.vim/lua/debugger.lua164
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 }}}