diff options
| author | William Boman <william@redwill.se> | 2021-10-06 15:19:22 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-06 15:19:22 +0200 |
| commit | a0d10185427cce89f9eee6a9c0efbb23746f1149 (patch) | |
| tree | da807db1960b1a48b384006e5ef0dfc26fca6c23 /lua | |
| parent | windows: attempt all common archiver programs (#136) (diff) | |
| download | mason-a0d10185427cce89f9eee6a9c0efbb23746f1149.tar mason-a0d10185427cce89f9eee6a9c0efbb23746f1149.tar.gz mason-a0d10185427cce89f9eee6a9c0efbb23746f1149.tar.bz2 mason-a0d10185427cce89f9eee6a9c0efbb23746f1149.tar.lz mason-a0d10185427cce89f9eee6a9c0efbb23746f1149.tar.xz mason-a0d10185427cce89f9eee6a9c0efbb23746f1149.tar.zst mason-a0d10185427cce89f9eee6a9c0efbb23746f1149.zip | |
add zls (#121)
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/nvim-lsp-installer/data.lua | 11 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/init.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/zls/init.lua | 38 |
3 files changed, 50 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/data.lua b/lua/nvim-lsp-installer/data.lua index 948c53de..901c293a 100644 --- a/lua/nvim-lsp-installer/data.lua +++ b/lua/nvim-lsp-installer/data.lua @@ -59,6 +59,17 @@ function Data.list_copy(list) return result end +function Data.list_find_first(list, predicate) + local result + for i = 1, #list do + local entry = list[i] + if predicate(entry) then + return entry + end + end + return result +end + function Data.list_any(list, predicate) for i = 1, #list do if predicate(list[i]) then diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua index 2e0c518c..80f82e70 100644 --- a/lua/nvim-lsp-installer/servers/init.lua +++ b/lua/nvim-lsp-installer/servers/init.lua @@ -96,6 +96,7 @@ local CORE_SERVERS = Data.set_of { "volar", "vuels", "yamlls", + "zls", } local INITIALIZED_SERVERS = {} diff --git a/lua/nvim-lsp-installer/servers/zls/init.lua b/lua/nvim-lsp-installer/servers/zls/init.lua new file mode 100644 index 00000000..a8f3c6ff --- /dev/null +++ b/lua/nvim-lsp-installer/servers/zls/init.lua @@ -0,0 +1,38 @@ +local path = require "nvim-lsp-installer.path" +local server = require "nvim-lsp-installer.server" +local platform = require "nvim-lsp-installer.platform" +local Data = require "nvim-lsp-installer.data" +local context = require "nvim-lsp-installer.installers.context" +local std = require "nvim-lsp-installer.installers.std" + +local coalesce, when = Data.coalesce, Data.when + +return function(name, root_dir) + return server.Server:new { + name = name, + root_dir = root_dir, + installer = { + context.github_release_file( + "zigtools/zls", + coalesce( + when(platform.is_mac and platform.arch == "x64", "x86_64-macos.tar.xz"), + when( + platform.is_linux, + coalesce( + when(platform.arch == "x64", "x86_64-linux.tar.xz"), + when(platform.arch == "x86", "i386-linux.tar.zx") + ) + ), + when(platform.is_win and platform.arch == "x64", "x86_64-windows.tar.xz") + ) + ), + context.capture(function(ctx) + return std.untarxz_remote(ctx.github_release_file) + end), + std.rename("x86_64-windows", "package"), + }, + default_options = { + cmd = { path.concat { root_dir, "package", "zls" } }, + }, + } +end |
