diff --git a/lua/java-core/ls/servers/jdtls/init.lua b/lua/java-core/ls/servers/jdtls/init.lua index c864e9c..708f51d 100644 --- a/lua/java-core/ls/servers/jdtls/init.lua +++ b/lua/java-core/ls/servers/jdtls/init.lua @@ -69,8 +69,7 @@ function M.get_config(opts) local jdk = mason_reg.get_package('openjdk-17') if jdk:is_installed() then - local java_home = - vim.fn.glob(path.join(jdk:get_install_path(), '/jdk-17*')) + local java_home = vim.fn.glob('$MASON/packages/jdk-17*') local java_bin = path.join(java_home, '/bin') base_config.cmd_env = { diff --git a/lua/java-core/utils/mason.lua b/lua/java-core/utils/mason.lua index c910aec..c1c6560 100644 --- a/lua/java-core/utils/mason.lua +++ b/lua/java-core/utils/mason.lua @@ -6,14 +6,19 @@ local M = {} ---@param pkg_name string ---@return string | nil function M.get_pkg_path(pkg_name) - return mason_registry.get_package(pkg_name):get_install_path() + local found, pkg = pcall(mason_registry.get_package, pkg_name) + if not found or not pkg:is_installed() then + return nil + end + return vim.fn.expand('$MASON/packages/' .. pkg_name) end ----Returns true if the package in installed in mason +---Returns true if the package is installed in mason ---@param pkg_name string ---@return boolean function M.is_pkg_installed(pkg_name) - return mason_registry.get_package(pkg_name):is_installed() + local found, pkg = pcall(mason_registry.get_package, pkg_name) + return found and pkg:is_installed() end ---Returns the shared artifact path for a given package diff --git a/tests/prepare-config.lua b/tests/prepare-config.lua index daa5280..5aa3751 100644 --- a/tests/prepare-config.lua +++ b/tests/prepare-config.lua @@ -25,7 +25,7 @@ require('lazy').setup({ lazy = false, }, { - 'williamboman/mason.nvim', + 'mason-org/mason.nvim', lazy = false, }, }, {