summaryrefslogtreecommitdiff
path: root/start/lspconfig-0.1.3/lua/lspconfig/server_configurations/omnisharp.lua
diff options
context:
space:
mode:
authorMichael Smith <mikesmiffy128@gmail.com>2022-05-22 22:47:23 +0100
committerMichael Smith <mikesmiffy128@gmail.com>2022-05-22 22:47:23 +0100
commit95aea6b533e71e478d61d18fac71cca116c56a4d (patch)
tree1a1f42f723772258cc54551495826768f374474a /start/lspconfig-0.1.3/lua/lspconfig/server_configurations/omnisharp.lua
Add all the plugins I currently use
Diffstat (limited to 'start/lspconfig-0.1.3/lua/lspconfig/server_configurations/omnisharp.lua')
-rw-r--r--start/lspconfig-0.1.3/lua/lspconfig/server_configurations/omnisharp.lua52
1 files changed, 52 insertions, 0 deletions
diff --git a/start/lspconfig-0.1.3/lua/lspconfig/server_configurations/omnisharp.lua b/start/lspconfig-0.1.3/lua/lspconfig/server_configurations/omnisharp.lua
new file mode 100644
index 0000000..b51d898
--- /dev/null
+++ b/start/lspconfig-0.1.3/lua/lspconfig/server_configurations/omnisharp.lua
@@ -0,0 +1,52 @@
+local util = require 'lspconfig.util'
+
+return {
+ 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)
+ if new_root_dir then
+ table.insert(new_config.cmd, '-s')
+ table.insert(new_config.cmd, new_root_dir)
+ end
+ end,
+ init_options = {},
+ },
+ -- on_new_config = function(new_config) end;
+ -- on_attach = function(client, bufnr) end;
+ 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).
+Omnisharp can also be built from source by following the instructions [here](https://github.com/omnisharp/omnisharp-roslyn#downloading-omnisharp).
+
+Omnisharp requires the [dotnet-sdk](https://dotnet.microsoft.com/download) to be installed.
+
+**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
+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) };
+ ...
+}
+```
+
+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
+```
+]],
+ default_config = {
+ root_dir = [[root_pattern(".sln") or root_pattern(".csproj")]],
+ },
+ },
+}