aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2021-05-17 14:40:26 +0200
committerGitHub <noreply@github.com>2021-05-17 14:40:26 +0200
commitec358406bca148d48dc83195565a75d5f5ba3bee (patch)
treee312e1e0e54e1eec24515571af5272461b0a3979 /lua
parentadd support for zx install scripts (#13) (diff)
downloadmason-ec358406bca148d48dc83195565a75d5f5ba3bee.tar
mason-ec358406bca148d48dc83195565a75d5f5ba3bee.tar.gz
mason-ec358406bca148d48dc83195565a75d5f5ba3bee.tar.bz2
mason-ec358406bca148d48dc83195565a75d5f5ba3bee.tar.lz
mason-ec358406bca148d48dc83195565a75d5f5ba3bee.tar.xz
mason-ec358406bca148d48dc83195565a75d5f5ba3bee.tar.zst
mason-ec358406bca148d48dc83195565a75d5f5ba3bee.zip
add rust_analyzer (#14)
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-lsp-installer/server.lua1
-rw-r--r--lua/nvim-lsp-installer/servers/rust_analyzer/init.lua14
-rw-r--r--lua/nvim-lsp-installer/servers/rust_analyzer/install.mjs24
3 files changed, 39 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/server.lua b/lua/nvim-lsp-installer/server.lua
index a500441f..847e54e1 100644
--- a/lua/nvim-lsp-installer/server.lua
+++ b/lua/nvim-lsp-installer/server.lua
@@ -15,6 +15,7 @@ local _SERVERS = {
"graphql",
"html",
"jsonls",
+ "rust_analyzer",
"solargraph",
"sumneko_lua",
"texlab",
diff --git a/lua/nvim-lsp-installer/servers/rust_analyzer/init.lua b/lua/nvim-lsp-installer/servers/rust_analyzer/init.lua
new file mode 100644
index 00000000..99b0c54c
--- /dev/null
+++ b/lua/nvim-lsp-installer/servers/rust_analyzer/init.lua
@@ -0,0 +1,14 @@
+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("rust")
+
+return server.Server:new {
+ name = "rust_analyzer",
+ root_dir = root_dir,
+ install_cmd = zx.file("./install.mjs"),
+ default_options = {
+ cmd = { path.concat { root_dir, "rust-analyzer" } },
+ },
+}
diff --git a/lua/nvim-lsp-installer/servers/rust_analyzer/install.mjs b/lua/nvim-lsp-installer/servers/rust_analyzer/install.mjs
new file mode 100644
index 00000000..d6a9c218
--- /dev/null
+++ b/lua/nvim-lsp-installer/servers/rust_analyzer/install.mjs
@@ -0,0 +1,24 @@
+const VERSION = "2021-05-10";
+
+const target = (() => {
+ switch (os.platform()) {
+ case "darwin":
+ return "rust-analyzer-mac.gz";
+ case "win32": {
+ console.error(chalk.red("Windows not currently supported."));
+ process.exit(1);
+ break;
+ }
+ default:
+ return "rust-analyzer-linux.gz";
+ }
+})();
+
+const unpackedTarget = target.replace(/\.gz$/, "");
+
+const downloadUrl = `https://github.com/rust-analyzer/rust-analyzer/releases/download/${VERSION}/${target}`;
+
+await $`wget ${downloadUrl}`;
+await $`gunzip ${target}`;
+await $`chmod +x ${unpackedTarget}`;
+await $`mv ${unpackedTarget} rust-analyzer`;