aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lua/nvim-lsp-installer/servers/ltex/init.lua70
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 = {