diff --git a/lua/plugins.lua b/lua/plugins.lua index d3de1a5..e92765f 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -76,7 +76,8 @@ return require("packer").startup( "RishabhRD/popfix", "onsails/lspkind-nvim", "ray-x/lsp_signature.nvim", - "jose-elias-alvarez/nvim-lsp-ts-utils" + "jose-elias-alvarez/nvim-lsp-ts-utils", + "hood/popui.nvim" } } use { diff --git a/lua/plugins/formatter.lua b/lua/plugins/formatter.lua index 0a118c4..3651d2f 100644 --- a/lua/plugins/formatter.lua +++ b/lua/plugins/formatter.lua @@ -54,16 +54,16 @@ require("formatter").setup( stdin = false } end - }, - cs = { - function() - return { - exe = "dotnet", - args = {"csharpier", "--write-stdout"}, - stdin = true - } - end } + -- cs = { + -- function() + -- return { + -- exe = "dotnet", + -- args = {"csharpier", "--write-stdout"}, + -- stdin = true + -- } + -- end + -- } } } ) @@ -72,17 +72,17 @@ vim.api.nvim_exec( [[ augroup FormatAutogroup autocmd! - autocmd BufWritePost *.h,*.cpp,*.rs,*.lua,*.tsx,*.ts,*.js,*.jsx,*.json,*.cs FormatWrite + autocmd BufWritePost *.h,*.cpp,*.rs,*.lua,*.tsx,*.ts,*.js,*.jsx,*.json FormatWrite 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 --- } --- ) +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 1df4247..e36c7cf 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -7,6 +7,9 @@ vim.fn.sign_define("DiagnosticSignHint", {text = "", texthl = "DiagnosticSign vim.fn.sign_define("DapBreakpoint", {text = " ", texthl = "DiagnosticSignError"}) vim.fn.sign_define("DapStopped", {text = " ", texthl = "DiagnosticSignInfo"}) +vim.ui.select = require "popui.ui-overrider" +vim.ui.input = require "popui.input-overrider" + --- Completion Icons require("lspkind").init({}) @@ -33,6 +36,14 @@ require "lspconfig".yamlls.setup {} local nvim_lsp = require("lspconfig") +local function codeAction() + if vim.bo.filetype == "cs" then + vim.lsp.buf.code_action() + else + vim.cmd [[CodeActionMenu]] + end +end + -- Mappings. local opts = {noremap = true, silent = true} vim.api.nvim_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) @@ -43,7 +54,8 @@ vim.api.nvim_set_keymap("n", "wr", "lua vim.lsp.buf.remove_workspace vim.api.nvim_set_keymap("n", "wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", opts) -- buf_set_keymap("n", "t", "lua vim.lsp.buf.type_definition()", opts) vim.api.nvim_set_keymap("n", "", "lua vim.lsp.buf.rename()", opts) -vim.api.nvim_set_keymap("n", "a", "CodeActionMenu", opts) +-- vim.api.nvim_set_keymap("n", "a", "CodeActionMenu", opts) +vim.keymap.set("n", "a", codeAction, opts) vim.api.nvim_set_keymap("n", "d", "lua vim.diagnostic.open_float()", opts) vim.api.nvim_set_keymap("n", "[d", "lua vim.diagnostic.goto_prev()", opts) vim.api.nvim_set_keymap("n", "]d", "lua vim.diagnostic.goto_next()", opts) @@ -112,7 +124,7 @@ require "lspconfig".eslint.setup { on_attach = on_attach, cmd = {"java-language-server"} } ]] -local servers = {"pyright", "bashls", "clangd", "cssls", "texlab", "prismals", "csharp_ls"} +local servers = {"pyright", "bashls", "clangd", "cssls", "texlab", "prismals"} for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup { on_attach = on_attach, @@ -122,6 +134,17 @@ for _, lsp in ipairs(servers) do capabilities = capabilities } end +nvim_lsp.omnisharp.setup { + cmd = {"OmniSharp"}, + enable_editorconfig_support = true, + enable_roslyn_analyzers = true, + enable_import_completion = true, + on_attach = on_attach, + flags = { + debounce_text_changes = 150 + }, + capabilities = capabilities +} nvim_lsp.rust_analyzer.setup { on_attach = on_attach,