aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2021-07-04 20:26:13 +0200
committerGitHub <noreply@github.com>2021-07-04 20:26:13 +0200
commit0c6fb8ea626c6f09ab8871aa57951af41523fe65 (patch)
tree047caef6d3db768b506b1a5e1bd7c6dc17c83124 /lua
parentadd cmake (#29) (diff)
downloadmason-0c6fb8ea626c6f09ab8871aa57951af41523fe65.tar
mason-0c6fb8ea626c6f09ab8871aa57951af41523fe65.tar.gz
mason-0c6fb8ea626c6f09ab8871aa57951af41523fe65.tar.bz2
mason-0c6fb8ea626c6f09ab8871aa57951af41523fe65.tar.lz
mason-0c6fb8ea626c6f09ab8871aa57951af41523fe65.tar.xz
mason-0c6fb8ea626c6f09ab8871aa57951af41523fe65.tar.zst
mason-0c6fb8ea626c6f09ab8871aa57951af41523fe65.zip
add omnisharp (csharp) (#30)
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-lsp-installer/server.lua1
-rw-r--r--lua/nvim-lsp-installer/servers/omnisharp/init.lua19
-rw-r--r--lua/nvim-lsp-installer/servers/omnisharp/install.mjs28
3 files changed, 48 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/server.lua b/lua/nvim-lsp-installer/server.lua
index 5c8ee499..a857073d 100644
--- a/lua/nvim-lsp-installer/server.lua
+++ b/lua/nvim-lsp-installer/server.lua
@@ -19,6 +19,7 @@ local _SERVERS = {
"graphql",
"html",
"jsonls",
+ "omnisharp",
"pyright",
"rust_analyzer",
"solargraph",
diff --git a/lua/nvim-lsp-installer/servers/omnisharp/init.lua b/lua/nvim-lsp-installer/servers/omnisharp/init.lua
new file mode 100644
index 00000000..970b38b1
--- /dev/null
+++ b/lua/nvim-lsp-installer/servers/omnisharp/init.lua
@@ -0,0 +1,19 @@
+local server = require("nvim-lsp-installer.server")
+local path = require("nvim-lsp-installer.path")
+local zx = require("nvim-lsp-installer.installers.zx")
+
+local root_dir = server.get_server_root_path("omnisharp")
+
+return server.Server:new {
+ name = "omnisharp",
+ root_dir = root_dir,
+ installer = zx.file("./install.mjs"),
+ default_options = {
+ cmd = {
+ path.concat { root_dir, "omnisharp", "run" },
+ "--languageserver",
+ "--hostPID",
+ tostring(vim.fn.getpid()),
+ },
+ },
+}
diff --git a/lua/nvim-lsp-installer/servers/omnisharp/install.mjs b/lua/nvim-lsp-installer/servers/omnisharp/install.mjs
new file mode 100644
index 00000000..eba881f0
--- /dev/null
+++ b/lua/nvim-lsp-installer/servers/omnisharp/install.mjs
@@ -0,0 +1,28 @@
+const VERSION = "v1.37.11";
+
+const exitNotSupported = () => {
+ console.error(
+ chalk.red(`${os.platform()} ${os.arch()} is currently not supported.`)
+ );
+ process.exit(1);
+};
+
+const target = (() => {
+ switch (os.platform()) {
+ case "win32": {
+ exitNotSupported();
+ break;
+ }
+ case "darwin":
+ return "omnisharp-osx.zip";
+ default:
+ return "omnisharp-linux-x64.zip";
+ }
+})();
+
+const downloadUrl = `https://github.com/OmniSharp/omnisharp-roslyn/releases/download/${VERSION}/${target}`;
+
+await $`wget -O omnisharp.zip ${downloadUrl}`;
+await $`unzip omnisharp.zip -d omnisharp`;
+await $`chmod +x omnisharp/run`;
+await $`rm omnisharp.zip`;