fix(java): only setup debug adapter config if mason is installed (for real this time) (#5014)

## Description

This one *actually* fixes the issue, sorry about my previous PR.
This commit is contained in:
iniw 2024-12-12 15:37:08 -03:00 committed by GitHub
parent aad0edbf74
commit 5b1b6b29d7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -146,34 +146,30 @@ return {
config = function(_, opts) config = function(_, opts)
-- Find the extra bundles that should be passed on the jdtls command-line -- Find the extra bundles that should be passed on the jdtls command-line
-- if nvim-dap is enabled with java debug/test. -- if nvim-dap is enabled with java debug/test.
local mason_registry = require("mason-registry")
local bundles = {} ---@type string[] local bundles = {} ---@type string[]
if if LazyVim.has("mason.nvim") then
LazyVim.has("mason.nvim") local mason_registry = require("mason-registry")
and opts.dap if opts.dap and LazyVim.has("nvim-dap") and mason_registry.is_installed("java-debug-adapter") then
and LazyVim.has("nvim-dap") local java_dbg_pkg = mason_registry.get_package("java-debug-adapter")
and mason_registry.is_installed("java-debug-adapter") local java_dbg_path = java_dbg_pkg:get_install_path()
then local jar_patterns = {
local java_dbg_pkg = mason_registry.get_package("java-debug-adapter") java_dbg_path .. "/extension/server/com.microsoft.java.debug.plugin-*.jar",
local java_dbg_path = java_dbg_pkg:get_install_path() }
local jar_patterns = { -- java-test also depends on java-debug-adapter.
java_dbg_path .. "/extension/server/com.microsoft.java.debug.plugin-*.jar", if opts.test and mason_registry.is_installed("java-test") then
} local java_test_pkg = mason_registry.get_package("java-test")
-- java-test also depends on java-debug-adapter. local java_test_path = java_test_pkg:get_install_path()
if opts.test and mason_registry.is_installed("java-test") then vim.list_extend(jar_patterns, {
local java_test_pkg = mason_registry.get_package("java-test") java_test_path .. "/extension/server/*.jar",
local java_test_path = java_test_pkg:get_install_path() })
vim.list_extend(jar_patterns, { end
java_test_path .. "/extension/server/*.jar", for _, jar_pattern in ipairs(jar_patterns) do
}) for _, bundle in ipairs(vim.split(vim.fn.glob(jar_pattern), "\n")) do
end table.insert(bundles, bundle)
for _, jar_pattern in ipairs(jar_patterns) do end
for _, bundle in ipairs(vim.split(vim.fn.glob(jar_pattern), "\n")) do
table.insert(bundles, bundle)
end end
end end
end end
local function attach_jdtls() local function attach_jdtls()
local fname = vim.api.nvim_buf_get_name(0) local fname = vim.api.nvim_buf_get_name(0)
@ -245,45 +241,43 @@ return {
}, },
}) })
if if LazyVim.has("mason.nvim") then
LazyVim.has("mason.nvim") local mason_registry = require("mason-registry")
and opts.dap if opts.dap and LazyVim.has("nvim-dap") and mason_registry.is_installed("java-debug-adapter") then
and LazyVim.has("nvim-dap") -- custom init for Java debugger
and mason_registry.is_installed("java-debug-adapter") require("jdtls").setup_dap(opts.dap)
then require("jdtls.dap").setup_dap_main_class_configs(opts.dap_main)
-- custom init for Java debugger
require("jdtls").setup_dap(opts.dap)
require("jdtls.dap").setup_dap_main_class_configs(opts.dap_main)
-- Java Test require Java debugger to work -- Java Test require Java debugger to work
if opts.test and mason_registry.is_installed("java-test") then if opts.test and mason_registry.is_installed("java-test") then
-- custom keymaps for Java test runner (not yet compatible with neotest) -- custom keymaps for Java test runner (not yet compatible with neotest)
wk.add({ wk.add({
{
mode = "n",
buffer = args.buf,
{ "<leader>t", group = "test" },
{ {
"<leader>tt", mode = "n",
function() buffer = args.buf,
require("jdtls.dap").test_class({ { "<leader>t", group = "test" },
config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil, {
}) "<leader>tt",
end, function()
desc = "Run All Test", require("jdtls.dap").test_class({
config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil,
})
end,
desc = "Run All Test",
},
{
"<leader>tr",
function()
require("jdtls.dap").test_nearest_method({
config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil,
})
end,
desc = "Run Nearest Test",
},
{ "<leader>tT", require("jdtls.dap").pick_test, desc = "Run Test" },
}, },
{ })
"<leader>tr", end
function()
require("jdtls.dap").test_nearest_method({
config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil,
})
end,
desc = "Run Nearest Test",
},
{ "<leader>tT", require("jdtls.dap").pick_test, desc = "Run Test" },
},
})
end end
end end