diff options
| author | William Boman <william@redwill.se> | 2021-09-10 13:38:39 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-10 13:38:39 +0200 |
| commit | d2ec0c0070c01ba0e3e8926031cfe848a016df44 (patch) | |
| tree | bf57f20725e11125ed51caac547c483d4e642831 /lua/nvim-lsp-installer/servers/rust_analyzer/init.lua | |
| parent | CUSTOM_SERVERS.md: update docs (diff) | |
| download | mason-d2ec0c0070c01ba0e3e8926031cfe848a016df44.tar mason-d2ec0c0070c01ba0e3e8926031cfe848a016df44.tar.gz mason-d2ec0c0070c01ba0e3e8926031cfe848a016df44.tar.bz2 mason-d2ec0c0070c01ba0e3e8926031cfe848a016df44.tar.lz mason-d2ec0c0070c01ba0e3e8926031cfe848a016df44.tar.xz mason-d2ec0c0070c01ba0e3e8926031cfe848a016df44.tar.zst mason-d2ec0c0070c01ba0e3e8926031cfe848a016df44.zip | |
rewrite some installers for broader cross-platform support (#85)
- Remove all usage of zx in favour of native Lua (via libuv)
- Introduce new set of `std` installers
The following servers will have to be reinstalled due to this change:
1. clangd
2. solargraph
3. sumneko_lua
4. tailwindcss
Diffstat (limited to 'lua/nvim-lsp-installer/servers/rust_analyzer/init.lua')
| -rw-r--r-- | lua/nvim-lsp-installer/servers/rust_analyzer/init.lua | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/lua/nvim-lsp-installer/servers/rust_analyzer/init.lua b/lua/nvim-lsp-installer/servers/rust_analyzer/init.lua index 58cb53e2..c5592be8 100644 --- a/lua/nvim-lsp-installer/servers/rust_analyzer/init.lua +++ b/lua/nvim-lsp-installer/servers/rust_analyzer/init.lua @@ -1,16 +1,46 @@ local server = require "nvim-lsp-installer.server" -local installers = require "nvim-lsp-installer.installers" local path = require "nvim-lsp-installer.path" -local zx = require "nvim-lsp-installer.installers.zx" +local platform = require "nvim-lsp-installer.platform" +local std = require "nvim-lsp-installer.installers.std" +local Data = require "nvim-lsp-installer.data" local root_dir = server.get_server_root_path "rust" +local VERSION = "2021-06-28" + +local target = Data.coalesce( + Data.when( + platform.is_mac, + Data.coalesce( + Data.when(platform.arch == "arm64", "rust-analyzer-aarch64-apple-darwin.gz"), + Data.when(platform.arch == "x64", "rust-analyzer-x86_64-apple-darwin.gz") + ) + ), + Data.when( + platform.is_unix, + Data.coalesce( + Data.when(platform.arch == "arm64", "rust-analyzer-aarch64-unknown-linux-gnu.gz"), + Data.when(platform.arch == "x64", "rust-analyzer-x86_64-unknown-linux-gnu.gz") + ) + ), + Data.when( + platform.is_win, + Data.coalesce( + Data.when(platform.arch == "arm64", "rust-analyzer-aarch64-pc-windows-msvc.gz"), + Data.when(platform.arch == "x64", "rust-analyzer-x86_64-pc-windows-msvc.gz") + ) + ) +) + return server.Server:new { name = "rust_analyzer", root_dir = root_dir, - installer = installers.when { - unix = zx.file "./install.mjs", - win = zx.file "./install.win.mjs", + installer = { + std.gunzip_remote( + ("https://github.com/rust-analyzer/rust-analyzer/releases/download/%s/%s"):format(VERSION, target), + platform.is_win and "rust-analyzer.exe" or "rust-analyzer" + ), + std.chmod("+x", { "rust-analyzer" }), }, default_options = { cmd = { path.concat { root_dir, "rust-analyzer" } }, |
