diff --git a/lua/plugins.lua b/lua/plugins.lua index 0df15e0..b9fd0f9 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -209,5 +209,18 @@ return require("packer").startup( "monokai.nvim" } } + use { + "andweeb/presence.nvim", + config = function() + require("presence"):setup() + end + } + use { + "rcarriga/nvim-dap-ui", + config = function() + require("plugins/dap") + end, + requires = {"mfussenegger/nvim-dap"} + } end ) diff --git a/lua/plugins/dap.lua b/lua/plugins/dap.lua new file mode 100644 index 0000000..42e2bef --- /dev/null +++ b/lua/plugins/dap.lua @@ -0,0 +1,40 @@ +-- dapui +require("dapui").setup() +local dap, dapui = require("dap"), require("dapui") +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# +dap.adapters.coreclr = { + type = "executable", + command = "netcoredbg", + args = {"--interpreter=vscode"} +} + +dap.configurations.cs = { + { + type = "coreclr", + name = "launch - netcoredbg", + request = "launch", + program = function() + local cwd = vim.fn.getcwd() + local solution = vim.fn.glob(cwd .. "/*.csproj") + local projectName = vim.fn.fnamemodify(solution, ":t:r") + local proj = cwd .. "/bin/Debug/net6.0/" .. projectName .. ".dll" + print(proj) + return proj + -- return vim.fn.input("Path to dll", vim.fn.getcwd() .. "/bin/Debug/", "file") + end + } +} + +-- keybindings +vim.api.nvim_set_keymap("n", "db", ":lua require'dap'.toggle_breakpoint()", {noremap = true, silent = true}) +vim.api.nvim_set_keymap("n", "dc", ":lua require'dap'.continue()", {noremap = true, silent = true}) diff --git a/lua/plugins/formatter.lua b/lua/plugins/formatter.lua index 4c162ab..73c3f0c 100644 --- a/lua/plugins/formatter.lua +++ b/lua/plugins/formatter.lua @@ -68,3 +68,12 @@ augroup END ]], true ) +local formatGrp = vim.api.nvim_create_augroup("Format", {clear = true}) +vim.api.nvim_create_autocmd( + "BufWritePre", + { + pattern = "*.cs", + command = "lua vim.lsp.buf.format { async = false }", + group = formatGrp + } +) diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 5c33ecd..78620a1 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -63,7 +63,7 @@ local on_attach = function(client, bufnr) vim.api.nvim_buf_set_option(bufnr, ...) end end -local capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities()) +local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()) require "lspconfig".jsonls.setup { on_attach = on_attach, @@ -119,7 +119,7 @@ require "lspconfig".eslint.setup { on_attach = on_attach, cmd = {"java-language-server"} } ]] -local servers = {"pyright", "bashls", "clangd", "cssls", "texlab", "prismals"} +local servers = {"pyright", "bashls", "clangd", "cssls", "texlab", "prismals", "csharp_ls"} for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup { on_attach = on_attach, diff --git a/setup.sh b/setup.sh index b91ad29..356da4a 100755 --- a/setup.sh +++ b/setup.sh @@ -16,3 +16,4 @@ cspell \ @cspell/dict-de-de cspell link add @cspell/dict-de-de +dotnet tool install --global csharp-ls