vim.filetype.add({ extension = { cs = "cs", }, }) vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { pattern = { "*.cs" }, command = "setlocal filetype=cs", }) local lsp = require("lspconfig") local csext = require("csharpls_extended") local config = { handlers = { ["textDocument/definition"] = csext.handler, ["textDocument/typeDefinition"] = csext.handler, }, cmd = { "csharp-ls" }, root_dir = require("lspconfig.util").root_pattern("*.sln", "*.slnx", "*.csproj", ".git"), on_attach = function(client, bufnr) if client.server_capabilities.documentFormattingProvider then vim.api.nvim_create_autocmd("BufWritePre", { buffer = bufnr, callback = function() vim.lsp.buf.format({ async = false }) end, }) end end, } if not lsp.csharp_ls then lsp.csharp_ls = {} end lsp.csharp_ls.setup(config) csext.buf_read_cmd_bind()