local dap_status_ok, dap = pcall(require, "dap") if not dap_status_ok then print("error requiring dap") return end local dap_ui_status_ok, dapui = pcall(require, "dapui") if not dap_ui_status_ok then print("error requiring dapui") return end -- dapui.setup() dapui.setup({ icons = { expanded = "▾", collapsed = "▸" }, mappings = { -- Use a table to apply multiple mappings expand = { "", "<2-LeftMouse>" }, open = "o", remove = "d", edit = "e", repl = "r", toggle = "t", }, -- Expand lines larger than the window -- Requires >= 0.7 expand_lines = vim.fn.has("nvim-0.7"), -- Layouts define sections of the screen to place windows. -- The position can be "left", "right", "top" or "bottom". -- The size specifies the height/width depending on position. It can be an Int -- or a Float. Integer specifies height/width directly (i.e. 20 lines/columns) while -- Float value specifies percentage (i.e. 0.3 - 30% of available lines/columns) -- Elements are the elements shown in the layout (in order). -- Layouts are opened in order so that earlier layouts take priority in window sizing. layouts = { { elements = { -- Elements can be strings or table with id and size keys. { id = "scopes", size = 0.25 }, "breakpoints", -- "stacks", -- "watches", }, size = 40, -- 40 columns position = "right", }, { elements = { "repl", "console", }, size = 0.25, -- 25% of total lines position = "bottom", }, }, floating = { max_height = nil, -- These can be integers or a float between 0 and 1. max_width = nil, -- Floats will be treated as percentage of your screen. border = "single", -- Border style. Can be "single", "double" or "rounded" mappings = { close = { "q", "" }, }, }, windows = { indent = 1 }, render = { max_type_length = nil, -- Can be integer or nil. }, }) local icons = require("chris.icons") vim.fn.sign_define("DapBreakpoint", { text = icons.ui.Bug, texthl = "DiagnosticSignError", linehl = "", numhl = "" }) 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 -- https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation#Dotnet dap.adapters.coreclr = { type = 'executable', command = 'netcoredbg', args = {'--interpreter=vscode'} } dap.configurations.cs = { { type = "coreclr", name = "launch - netcoredbg", request = "launch", program = function() return vim.fn.input('Path to dll', vim.fn.getcwd() .. '/bin/Debug/', 'file') end, }, } -- https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation#Javascript-chrome dap.adapters.chrome = { type = "executable", command = "node", args = {"/home/solomon/repos/vscode-chrome-debug/out/src/chromeDebug.js"} } dap.configurations.javascript = { -- change this to javascriptreact if needed { type = "chrome", request = "attach", program = "${file}", cwd = vim.fn.getcwd(), sourceMaps = true, protocol = "inspector", port = 9222, webRoot = "${workspaceFolder}" } } dap.configurations.typescript = { -- change to typescriptreact if needed { type = "chrome", request = "attach", program = "${file}", cwd = vim.fn.getcwd(), sourceMaps = true, protocol = "inspector", port = 9222, webRoot = "${workspaceFolder}" } }