diff options
| -rw-r--r-- | lua/nvim-lsp-installer/servers/ltex/init.lua | 70 |
1 files changed, 49 insertions, 21 deletions
diff --git a/lua/nvim-lsp-installer/servers/ltex/init.lua b/lua/nvim-lsp-installer/servers/ltex/init.lua index d5cd79d6..d1380eb9 100644 --- a/lua/nvim-lsp-installer/servers/ltex/init.lua +++ b/lua/nvim-lsp-installer/servers/ltex/init.lua @@ -1,4 +1,7 @@ local server = require "nvim-lsp-installer.server" +local a = require "nvim-lsp-installer.core.async" +local _ = require "nvim-lsp-installer.core.functional" +local installer = require "nvim-lsp-installer.core.installer" local path = require "nvim-lsp-installer.core.path" local functional = require "nvim-lsp-installer.core.functional" local platform = require "nvim-lsp-installer.core.platform" @@ -8,25 +11,14 @@ local github = require "nvim-lsp-installer.core.managers.github" local coalesce, when = functional.coalesce, functional.when return function(name, root_dir) - return server.Server:new { - name = name, - root_dir = root_dir, - homepage = "https://valentjn.github.io/vscode-ltex", - languages = { "latex" }, - ---@param ctx InstallContext - installer = function(ctx) - if platform.is_win then - local release_source = github.unzip_release_file { - repo = "valentjn/ltex-ls", - asset_file = function(version) - return ("ltex-ls-%s-windows-x64.zip"):format(version) - end, - } - release_source.with_receipt() - ctx.fs:rename(("ltex-ls-%s"):format(release_source.release), "ltex-ls") - else - local release_source = github.untargz_release_file { - repo = "valentjn/ltex-ls", + local repo = "valentjn/ltex-ls" + ---@async + local function download_platform_dependent() + local ctx = installer.context() + local source = platform.when { + unix = function() + return github.untargz_release_file { + repo = repo, asset_file = function(version) local target = coalesce( when(platform.is_mac, "ltex-ls-%s-mac-x64.tar.gz"), @@ -36,8 +28,44 @@ return function(name, root_dir) return target:format(version) end, } - release_source.with_receipt() - ctx.fs:rename(("ltex-ls-%s"):format(release_source.release), "ltex-ls") + end, + win = function() + return github.unzip_release_file { + repo = repo, + asset_file = function(version) + return ("ltex-ls-%s-windows-x64.zip"):format(version) + end, + } + end, + } + source.with_receipt() + ctx.fs:rename(("ltex-ls-%s"):format(source.release), "ltex-ls") + end + + local function download_platform_independent() + local ctx = installer.context() + local source = github.untargz_release_file { + repo = repo, + asset_file = _.format "ltex-ls-%s.tar.gz", + } + source.with_receipt() + ctx.fs:rename(("ltex-ls-%s"):format(source.release), "ltex-ls") + end + + return server.Server:new { + name = name, + root_dir = root_dir, + homepage = "https://valentjn.github.io/vscode-ltex", + languages = { "latex" }, + ---@async + installer = function() + if vim.in_fast_event() then + a.scheduler() + end + if vim.fn.executable "java" == 1 then + download_platform_independent() + else + download_platform_dependent() end end, default_options = { |
