diff options
| author | Raymaekers Luca <raymaekers.luca@gmail.com> | 2023-09-28 15:28:22 +0200 | 
|---|---|---|
| committer | Raymaekers Luca <raymaekers.luca@gmail.com> | 2023-09-28 15:28:22 +0200 | 
| commit | a20229a39ebea62fa40ced9762162554c79b06fd (patch) | |
| tree | ba165dc78d8d3818f869abfc4276eaeb0cca6709 /config/essentials/nvim | |
| parent | b9f24fc2b9bea23daa9990004195bc6ccac7773f (diff) | |
added dap en dap-ui configuration
Diffstat (limited to 'config/essentials/nvim')
| -rw-r--r-- | config/essentials/nvim/after/plugin/dap.lua | 39 | ||||
| -rw-r--r-- | config/essentials/nvim/after/plugin/dapui.lua | 94 | 
2 files changed, 133 insertions, 0 deletions
diff --git a/config/essentials/nvim/after/plugin/dap.lua b/config/essentials/nvim/after/plugin/dap.lua new file mode 100644 index 0000000..8c0a739 --- /dev/null +++ b/config/essentials/nvim/after/plugin/dap.lua @@ -0,0 +1,39 @@ +local dap = require('dap') + +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, +  }, +} + +local function nnoremap(rhs, lhs, bufopts, desc) +  bufopts.desc = desc +  vim.keymap.set("n", rhs, lhs, bufopts) +end +local bufopts = { noremap=true, silent=true } + + +nnoremap('<F5>' , dap.continue, bufopts, "Continue") +nnoremap('<F10>' , dap.step_over, bufopts, "Step over") +nnoremap('<F11>' , dap.step_into, bufopts, "Step into") +nnoremap('<F12>' , dap.step_out, bufopts, "Step out") +nnoremap('<Leader>b' , dap.toggle_breakpoint, bufopts, "Toggle breakpoint") + +nnoremap('<Leader>B' , function() dap.set_breakpoint(vim.fn.input('Breakpoint condition: ')) +	end, bufopts, "Set breakpoint") +nnoremap('<Leader>lp' , function() dap.set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) +	end, bufopts, "set breakpoint with log point message") + +nnoremap('<Leader>dr' , dap.repl.open, bufopts, "Reply open") +nnoremap('<Leader>dl' , dap.run_last, bufopts, "Run las") diff --git a/config/essentials/nvim/after/plugin/dapui.lua b/config/essentials/nvim/after/plugin/dapui.lua new file mode 100644 index 0000000..faec590 --- /dev/null +++ b/config/essentials/nvim/after/plugin/dapui.lua @@ -0,0 +1,94 @@ +local dap, dapui = require("dap"), require("dapui") + +dapui.setup({ +  icons = { expanded = "▾", collapsed = "▸", current_frame = "▸" }, +  mappings = { +    -- Use a table to apply multiple mappings +    expand = { "<CR>", "<2-LeftMouse>" }, +    open = "o", +    remove = "d", +    edit = "e", +    repl = "r", +    toggle = "t", +  }, +  -- Use this to override mappings for specific elements +  element_mappings = { +    -- Example: +    -- stacks = { +    --   open = "<CR>", +    --   expand = "o", +    -- } +  }, +  -- Expand lines larger than the window +  -- Requires >= 0.7 +  expand_lines = vim.fn.has("nvim-0.7") == 1, +  -- 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 = "left", +    }, +    { +      elements = { +        "repl", +        "console", +      }, +      size = 0.25, -- 25% of total lines +      position = "bottom", +    }, +  }, +  controls = { +    -- Requires Neovim nightly (or 0.8 when released) +    enabled = true, +    -- Display controls in this element +    element = "repl", +    icons = { +      pause = "", +      play = "", +      step_into = "", +      step_over = "", +      step_out = "", +      step_back = "", +      run_last = "↻", +      terminate = "□", +    }, +  }, +  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", "<Esc>" }, +    }, +  }, +  windows = { indent = 1 }, +  render = { +    max_type_length = nil, -- Can be integer or nil. +    max_value_lines = 100, -- Can be integer or nil. +  } +}) + + +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 +  | 
