return { -- Debug Adapter Protocol { 'mfussenegger/nvim-dap', dependencies = { 'rcarriga/nvim-dap-ui', 'theHamsta/nvim-dap-virtual-text', 'nvim-telescope/telescope-dap.nvim', }, config = function() local dap = require 'dap' local dapui = require 'dapui' require('nvim-dap-virtual-text').setup() dapui.setup() dap.listeners.before.attach.dapui_config = function() dapui.open() end dap.listeners.before.launch.dapui_config = function() dapui.open() end 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 -- C++ Debug Adapter (lldb) dap.adapters.lldb = { type = 'executable', command = '/usr/bin/lldb-dap', -- or 'lldb-dap' if available name = 'lldb', } dap.configurations.cpp = { { name = 'Launch file', type = 'lldb', request = 'launch', program = function() return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') end, cwd = '${workspaceFolder}', stopOnEntry = false, args = {}, }, } dap.configurations.c = dap.configurations.cpp dap.configurations.rust = dap.configurations.cpp end, }, }