mirror of
https://github.com/neovim/nvim-lspconfig.git
synced 2025-12-24 23:11:00 +01:00
33 lines
1.0 KiB
Lua
33 lines
1.0 KiB
Lua
---@brief
|
|
---
|
|
--- https://github.com/razzmatazz/csharp-language-server
|
|
---
|
|
--- Language Server for C#.
|
|
---
|
|
--- csharp-ls requires the [dotnet-sdk](https://dotnet.microsoft.com/download) to be installed.
|
|
---
|
|
--- The preferred way to install csharp-ls is with `dotnet tool install --global csharp-ls`.
|
|
|
|
local util = require 'lspconfig.util'
|
|
|
|
---@type vim.lsp.Config
|
|
return {
|
|
cmd = function(dispatchers, config)
|
|
return vim.lsp.rpc.start({ 'csharp-ls' }, dispatchers, {
|
|
-- csharp-ls attempt to locate sln, slnx or csproj files from cwd, so set cwd to root directory.
|
|
-- If cmd_cwd is provided, use it instead.
|
|
cwd = config.cmd_cwd or config.root_dir,
|
|
env = config.cmd_env,
|
|
detached = config.detached,
|
|
})
|
|
end,
|
|
root_dir = function(bufnr, on_dir)
|
|
local fname = vim.api.nvim_buf_get_name(bufnr)
|
|
on_dir(util.root_pattern '*.sln'(fname) or util.root_pattern '*.slnx'(fname) or util.root_pattern '*.csproj'(fname))
|
|
end,
|
|
filetypes = { 'cs' },
|
|
init_options = {
|
|
AutomaticWorkspaceInit = true,
|
|
},
|
|
}
|