aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-07-20 04:20:33 +0200
committerGitHub <noreply@github.com>2022-07-20 04:20:33 +0200
commit18ba6237b5a9ed38ad82d8427c4d0d41fccdf205 (patch)
treebd064d0c720acc50701a1cb0f644c005c53e3c71 /lua
parentfix(mason-lspconfig): patch some server's cmd on Windows (#100) (diff)
downloadmason-18ba6237b5a9ed38ad82d8427c4d0d41fccdf205.tar
mason-18ba6237b5a9ed38ad82d8427c4d0d41fccdf205.tar.gz
mason-18ba6237b5a9ed38ad82d8427c4d0d41fccdf205.tar.bz2
mason-18ba6237b5a9ed38ad82d8427c4d0d41fccdf205.tar.lz
mason-18ba6237b5a9ed38ad82d8427c4d0d41fccdf205.tar.xz
mason-18ba6237b5a9ed38ad82d8427c4d0d41fccdf205.tar.zst
mason-18ba6237b5a9ed38ad82d8427c4d0d41fccdf205.zip
refactor(omnisharp)!: separate mono into its own package (#101)
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-lspconfig/mappings/server.lua2
-rw-r--r--lua/mason-lspconfig/server_configurations/omnisharp/README.md6
-rw-r--r--lua/mason-lspconfig/server_configurations/omnisharp/init.lua31
-rw-r--r--lua/mason-lspconfig/win-exepath-compat.lua1
-rw-r--r--lua/mason-registry/index.lua3
-rw-r--r--lua/mason-registry/omnisharp-mono/init.lua45
-rw-r--r--lua/mason-registry/omnisharp/init.lua (renamed from lua/mason-registry/omnisharp-roslyn/init.lua)31
-rw-r--r--lua/mason-registry/r-languageserver/init.lua2
-rw-r--r--lua/mason-schemas/lsp/omnisharp.lua (renamed from lua/mason-schemas/lsp/omnisharp-roslyn.lua)0
-rw-r--r--lua/mason/mappings/language.lua2
10 files changed, 73 insertions, 50 deletions
diff --git a/lua/mason-lspconfig/mappings/server.lua b/lua/mason-lspconfig/mappings/server.lua
index f8d389e0..939042c9 100644
--- a/lua/mason-lspconfig/mappings/server.lua
+++ b/lua/mason-lspconfig/mappings/server.lua
@@ -66,7 +66,7 @@ M.lspconfig_to_package = {
["nickel_ls"] = "nickel-lang-lsp",
["nimls"] = "nimlsp",
["ocamllsp"] = "ocaml-lsp",
- ["omnisharp"] = "omnisharp-roslyn",
+ ["omnisharp"] = "omnisharp",
["opencl_ls"] = "opencl-language-server",
["perlnavigator"] = "perlnavigator",
["phpactor"] = "phpactor",
diff --git a/lua/mason-lspconfig/server_configurations/omnisharp/README.md b/lua/mason-lspconfig/server_configurations/omnisharp/README.md
index 3aec548b..78255785 100644
--- a/lua/mason-lspconfig/server_configurations/omnisharp/README.md
+++ b/lua/mason-lspconfig/server_configurations/omnisharp/README.md
@@ -3,12 +3,14 @@
## How to enable Omnisharp Mono
By default, the `omnisharp` server will use the `dotnet` (NET6) runtime to run the server.
-To run the server using the Mono runtime, set the `use_mono` setting like so:
+To run the server using the Mono runtime, set the `use_modern_net` setting to `false`, like so:
+
+__This requires the `omnisharp-mono` package to be installed.__
```lua
local lspconfig = require("lspconfig")
lspconfig.omnisharp.setup {
- use_mono = true
+ use_modern_net = false
}
```
diff --git a/lua/mason-lspconfig/server_configurations/omnisharp/init.lua b/lua/mason-lspconfig/server_configurations/omnisharp/init.lua
index cb925b3f..274ff182 100644
--- a/lua/mason-lspconfig/server_configurations/omnisharp/init.lua
+++ b/lua/mason-lspconfig/server_configurations/omnisharp/init.lua
@@ -1,32 +1,5 @@
-local path = require "mason-core.path"
-
----@param install_dir string
----@param use_mono boolean
-local function generate_cmd(install_dir, use_mono)
- if use_mono then
- return {
- "mono",
- path.concat { install_dir, "omnisharp-mono", "OmniSharp.exe" },
- "--languageserver",
- "--hostPID",
- tostring(vim.fn.getpid()),
- }
- else
- return {
- "dotnet",
- path.concat { install_dir, "omnisharp", "OmniSharp.dll" },
- "--languageserver",
- "--hostPID",
- tostring(vim.fn.getpid()),
- }
- end
-end
-
----@param install_dir string
-return function(install_dir)
+return function(install_dir, config)
return {
- on_new_config = function(config)
- config.cmd = generate_cmd(install_dir, config.use_mono)
- end,
+ cmd = { config.use_modern_net == false and "omnisharp-mono" or "omnisharp" },
}
end
diff --git a/lua/mason-lspconfig/win-exepath-compat.lua b/lua/mason-lspconfig/win-exepath-compat.lua
index c8743d62..995bb6db 100644
--- a/lua/mason-lspconfig/win-exepath-compat.lua
+++ b/lua/mason-lspconfig/win-exepath-compat.lua
@@ -43,6 +43,7 @@ return {
["nickel_ls"] = true,
["nimls"] = true,
["ocamllsp"] = true,
+ ["omnisharp"] = true,
["perlnavigator"] = true,
["phpactor"] = true,
["prosemd_lsp"] = true,
diff --git a/lua/mason-registry/index.lua b/lua/mason-registry/index.lua
index 21fb2514..ccc054d9 100644
--- a/lua/mason-registry/index.lua
+++ b/lua/mason-registry/index.lua
@@ -93,7 +93,8 @@ return {
nimlsp = "mason-registry.nimlsp",
["node-debug2-adapter"] = "mason-registry.node-debug2-adapter",
["ocaml-lsp"] = "mason-registry.ocaml-lsp",
- ["omnisharp-roslyn"] = "mason-registry.omnisharp-roslyn",
+ omnisharp = "mason-registry.omnisharp",
+ ["omnisharp-mono"] = "mason-registry.omnisharp-mono",
["opencl-language-server"] = "mason-registry.opencl-language-server",
perlnavigator = "mason-registry.perlnavigator",
["php-debug-adapter"] = "mason-registry.php-debug-adapter",
diff --git a/lua/mason-registry/omnisharp-mono/init.lua b/lua/mason-registry/omnisharp-mono/init.lua
new file mode 100644
index 00000000..53dd8e4c
--- /dev/null
+++ b/lua/mason-registry/omnisharp-mono/init.lua
@@ -0,0 +1,45 @@
+local Pkg = require "mason-core.package"
+local platform = require "mason-core.platform"
+local _ = require "mason-core.functional"
+local github = require "mason-core.managers.github"
+
+local coalesce, when = _.coalesce, _.when
+
+return Pkg.new {
+ name = "omnisharp-mono",
+ desc = [[OmniSharp language server based on Roslyn workspaces. This version of Omnisharp requires Mono to be installed on Linux & macOS.]],
+ homepage = "https://github.com/OmniSharp/omnisharp-roslyn",
+ languages = { Pkg.Lang["C#"] },
+ categories = { Pkg.Cat.LSP },
+ ---@async
+ ---@param ctx InstallContext
+ install = function(ctx)
+ platform.when {
+ unix = function()
+ github
+ .untargz_release_file({
+ repo = "OmniSharp/omnisharp-roslyn",
+ asset_file = coalesce(
+ when(platform.is.mac, "omnisharp-osx.tar.gz"),
+ when(platform.is.linux_x64, "omnisharp-linux-x64.tar.gz"),
+ when(platform.is.linux_x86, "omnisharp-linux-x86.tar.gz")
+ ),
+ })
+ .with_receipt()
+ ctx:link_bin("omnisharp-mono", "run")
+ end,
+ win = function()
+ github
+ .unzip_release_file({
+ repo = "OmniSharp/omnisharp-roslyn",
+ asset_file = coalesce(
+ when(platform.is.win_x64, "omnisharp-win-x64.zip"),
+ when(platform.is.win_x86, "omnisharp-win-x86.zip")
+ ),
+ })
+ .with_receipt()
+ ctx:link_bin("omnisharp-mono", "OmniSharp.exe")
+ end,
+ }
+ end,
+}
diff --git a/lua/mason-registry/omnisharp-roslyn/init.lua b/lua/mason-registry/omnisharp/init.lua
index 1f349eac..73c52d58 100644
--- a/lua/mason-registry/omnisharp-roslyn/init.lua
+++ b/lua/mason-registry/omnisharp/init.lua
@@ -2,21 +2,21 @@ local Pkg = require "mason-core.package"
local platform = require "mason-core.platform"
local _ = require "mason-core.functional"
local github = require "mason-core.managers.github"
+local path = require "mason-core.path"
local coalesce, when = _.coalesce, _.when
return Pkg.new {
- name = "omnisharp-roslyn",
- desc = [[OmniSharp server (HTTP, STDIO) based on Roslyn workspaces]],
+ name = "omnisharp",
+ desc = [[OmniSharp language server based on Roslyn workspaces. This version of Omnisharp requires dotnet (.NET 6.0) to be installed.]],
homepage = "https://github.com/OmniSharp/omnisharp-roslyn",
languages = { Pkg.Lang["C#"] },
categories = { Pkg.Cat.LSP },
---@async
---@param ctx InstallContext
install = function(ctx)
- ctx.fs:mkdir "omnisharp"
- ctx:chdir("omnisharp", function()
- github.unzip_release_file {
+ github
+ .unzip_release_file({
repo = "OmniSharp/omnisharp-roslyn",
asset_file = coalesce(
when(platform.is.mac_x64, "omnisharp-osx-x64-net6.0.zip"),
@@ -26,17 +26,18 @@ return Pkg.new {
when(platform.is.win_x64, "omnisharp-win-x64-net6.0.zip"),
when(platform.is.win_arm64, "omnisharp-win-arm64-net6.0.zip")
),
- }
- end)
+ })
+ .with_receipt()
- ctx.fs:mkdir "omnisharp-mono"
- ctx:chdir("omnisharp-mono", function()
- github
- .unzip_release_file({
- repo = "OmniSharp/omnisharp-roslyn",
- asset_file = "omnisharp-mono.zip",
+ ctx:link_bin(
+ "omnisharp",
+ ctx:write_shell_exec_wrapper(
+ "omnisharp",
+ ("dotnet %q"):format(path.concat {
+ ctx.package:get_install_path(),
+ "OmniSharp.dll",
})
- .with_receipt()
- end)
+ )
+ )
end,
}
diff --git a/lua/mason-registry/r-languageserver/init.lua b/lua/mason-registry/r-languageserver/init.lua
index 77cc4c77..10d576b8 100644
--- a/lua/mason-registry/r-languageserver/init.lua
+++ b/lua/mason-registry/r-languageserver/init.lua
@@ -66,7 +66,7 @@ return Pkg.new {
stdin:close()
end,
}
- ctx.fs:write_file("server.R", create_server_script(ctx.handle.package:get_install_path()))
+ ctx.fs:write_file("server.R", create_server_script(ctx.package:get_install_path()))
ctx.receipt:with_primary_source(ctx.receipt.r_package "languageserver")
ctx:link_bin(
diff --git a/lua/mason-schemas/lsp/omnisharp-roslyn.lua b/lua/mason-schemas/lsp/omnisharp.lua
index 7adac3a5..7adac3a5 100644
--- a/lua/mason-schemas/lsp/omnisharp-roslyn.lua
+++ b/lua/mason-schemas/lsp/omnisharp.lua
diff --git a/lua/mason/mappings/language.lua b/lua/mason/mappings/language.lua
index 4ab3babd..6dd8b337 100644
--- a/lua/mason/mappings/language.lua
+++ b/lua/mason/mappings/language.lua
@@ -14,7 +14,7 @@ return {
beancount = { "beancount-language-server" },
bicep = { "bicep-lsp" },
c = { "clangd", "codelldb", "cpplint", "cpptools" },
- ["c#"] = { "csharp-language-server", "netcoredbg", "omnisharp-roslyn" },
+ ["c#"] = { "csharp-language-server", "netcoredbg", "omnisharp", "omnisharp-mono" },
["c++"] = { "clangd", "codelldb", "cpplint", "cpptools" },
clarity = { "clarity-lsp" },
clojure = { "clojure-lsp" },