aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-registry/jdtls/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/mason-registry/jdtls/init.lua')
-rw-r--r--lua/mason-registry/jdtls/init.lua22
1 files changed, 11 insertions, 11 deletions
diff --git a/lua/mason-registry/jdtls/init.lua b/lua/mason-registry/jdtls/init.lua
index 55a299a6..b3a5f640 100644
--- a/lua/mason-registry/jdtls/init.lua
+++ b/lua/mason-registry/jdtls/init.lua
@@ -1,27 +1,27 @@
local Pkg = require "mason-core.package"
local installer = require "mason-core.installer"
-local eclipse = require "mason-core.clients.eclipse"
+local _ = require "mason-core.functional"
local std = require "mason-core.managers.std"
+local github = require "mason-core.managers.github"
local path = require "mason-core.path"
local platform = require "mason-core.platform"
+local fetch = require "mason-core.fetch"
---@async
local function download_jdtls()
- local ctx = installer.context()
- local version = ctx.requested_version:or_else_get(function()
- return eclipse.fetch_latest_jdtls_version():get_or_throw()
- end)
+ local source = github.tag { repo = "eclipse/eclipse.jdt.ls" }
+ source.with_receipt()
+
+ local version = _.gsub("^v", "", source.tag)
+ local response =
+ fetch(("https://download.eclipse.org/jdtls/milestones/%s/latest.txt"):format(version)):get_or_throw "Failed to fetch latest release from eclipse.org."
+ local release_file = _.head(_.split("\n", response))
std.download_file(
- ("https://download.eclipse.org/jdtls/snapshots/jdt-language-server-%s.tar.gz"):format(version),
+ ("https://download.eclipse.org/jdtls/milestones/%s/%s"):format(version, release_file),
"archive.tar.gz"
)
std.untar "archive.tar.gz"
-
- ctx.receipt:with_primary_source {
- type = "jdtls",
- version = version,
- }
end
---@async