2022-03-20 10:22:32 +08:00
local util = require ' lspconfig.util '
2021-10-05 15:13:10 +08:00
2022-03-20 10:22:32 +08:00
return {
2021-10-05 15:13:10 +08:00
default_config = {
filetypes = { ' cs ' , ' vb ' } ,
root_dir = function ( fname )
return util.root_pattern ' *.sln ' ( fname ) or util.root_pattern ' *.csproj ' ( fname )
end ,
on_new_config = function ( new_config , new_root_dir )
2024-06-13 08:44:55 +08:00
if new_root_dir then
table.insert ( new_config.cmd , ' -s ' )
table.insert ( new_config.cmd , new_root_dir )
2021-10-05 15:13:10 +08:00
end
end ,
init_options = { } ,
} ,
2024-06-13 08:44:55 +08:00
-- on_new_config = function(new_config) end;
-- on_attach = function(client, bufnr) end;
2021-10-05 15:13:10 +08:00
docs = {
description = [ [
https : // github.com / omnisharp / omnisharp - roslyn
OmniSharp server based on Roslyn workspaces
` omnisharp - roslyn ` can be installed by downloading and extracting a release from [ here ] ( https : // github.com / OmniSharp / omnisharp - roslyn / releases ) .
2024-06-13 08:44:55 +08:00
Omnisharp can also be built from source by following the instructions [ here ] ( https : // github.com / omnisharp / omnisharp - roslyn # downloading - omnisharp ) .
2021-10-05 15:13:10 +08:00
2024-06-13 08:44:55 +08:00
Omnisharp requires the [ dotnet - sdk ] ( https : // dotnet.microsoft . com / download ) to be installed .
2021-10-05 15:13:10 +08:00
** By default , omnisharp - roslyn doesn ' t have a `cmd` set.** This is because nvim-lspconfig does not make assumptions about your path. You must add the following to your init.vim or init.lua to set `cmd` to the absolute path ($HOME and ~ are not expanded) of the unzipped run script or binary.
` ` ` lua
2024-06-13 08:44:55 +08:00
local pid = vim.fn . getpid ( )
-- On linux/darwin if using a release build, otherwise under scripts/OmniSharp(.Core)(.cmd)
local omnisharp_bin = " /path/to/omnisharp-repo/run "
-- on Windows
-- local omnisharp_bin = "/path/to/omnisharp/OmniSharp.exe"
require ' lspconfig ' . omnisharp.setup {
cmd = { omnisharp_bin , " --languageserver " , " --hostPID " , tostring ( pid ) } ;
...
2022-07-24 16:14:35 +08:00
}
2021-10-05 15:13:10 +08:00
` ` `
2024-06-13 08:44:55 +08:00
Note , if you download the executable for darwin you will need to strip the quarantine label to run :
` ` ` bash
find / path / to / omnisharp - osx | xargs xattr - r - d com.apple . quarantine
` ` `
2021-10-05 15:13:10 +08:00
] ] ,
default_config = {
root_dir = [[root_pattern(".sln") or root_pattern(".csproj")]] ,
} ,
} ,
}