summaryrefslogtreecommitdiff
path: root/config/essentials/nvim/after/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'config/essentials/nvim/after/plugin')
-rw-r--r--config/essentials/nvim/after/plugin/dap.lua39
-rw-r--r--config/essentials/nvim/after/plugin/dapui.lua94
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
+