Skip to content

Commit 329c715

Browse files
authored
Merge pull request #18 from indika-dev/main
fix: works with mason 1.11 and mason 2.0
2 parents fc474df + ed72d86 commit 329c715

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

lua/spring_boot.lua

+10-20
Original file line numberDiff line numberDiff line change
@@ -51,33 +51,24 @@ M.init_lsp_commands = function()
5151
end
5252

5353
M.get_ls_from_mason = function()
54-
local result = M.get_from_mason_registry("vscode-spring-boot-tools", "vscode-spring-boot-tools/language-server.jar")
54+
local result = M.get_from_mason_registry("vscode-spring-boot-tools", "language-server.jar")
5555
if #result > 0 then
5656
return result[1]
5757
end
5858
return nil
5959
end
6060

61-
M.get_from_mason_registry = function(package_name, key_prefix)
61+
M.get_from_mason_registry = function(package_name, filter)
6262
local success, mason_registry = pcall(require, "mason-registry")
6363
local result = {}
6464
if success then
65-
mason_registry.refresh()
66-
local mason_package
67-
if mason_registry.has_package(package_name) then
68-
mason_package = mason_registry.get_package(package_name)
69-
else
70-
return result
71-
end
72-
if mason_package:is_installed() then
73-
local install_path = mason_package:get_install_path()
74-
mason_package:get_receipt():if_present(function(recipe)
75-
for key, value in pairs(recipe.links.share) do
76-
if key:sub(1, #key_prefix) == key_prefix then
77-
table.insert(result, install_path .. "/" .. value)
78-
end
65+
local has_package, mason_package = pcall(mason_registry.get_package, package_name)
66+
if has_package then
67+
if mason_package:is_installed() then
68+
for key, value in pairs(vim.fn.globpath("$MASON/share/" .. package_name, filter or "*", true, true)) do
69+
table.insert(result, value)
7970
end
80-
end)
71+
end
8172
end
8273
end
8374
return result
@@ -95,8 +86,7 @@ M.setup = function(opts)
9586
if not opts.ls_path then
9687
opts.ls_path = M.get_ls_from_mason() -- get ls from mason-registry
9788
if opts.ls_path then
98-
spring_boot.jdt_expanded_extensions_jars =
99-
M.get_from_mason_registry("vscode-spring-boot-tools", "vscode-spring-boot-tools/jdtls/")
89+
spring_boot.jdt_expanded_extensions_jars = M.get_from_mason_registry("vscode-spring-boot-tools", "jdtls/*.jar")
10090
end
10191
end
10292
if not opts.ls_path then
@@ -137,7 +127,7 @@ M.java_extensions = function()
137127
if spring_boot.jdt_expanded_extensions_jars and #spring_boot.jdt_expanded_extensions_jars > 0 then
138128
return spring_boot.jdt_expanded_extensions_jars
139129
end
140-
local bundles = M.get_from_mason_registry("vscode-spring-boot-tools", "vscode-spring-boot-tools/jdtls/")
130+
local bundles = M.get_from_mason_registry("vscode-spring-boot-tools", "jdtls/*.jar")
141131
if #bundles > 0 then
142132
for _, v in pairs(bundles) do
143133
table.insert(spring_boot.jdt_expanded_extensions_jars, v)

0 commit comments

Comments
 (0)