mirror of
https://github.com/LazyVim/LazyVim.git
synced 2025-06-21 16:39:06 +02:00
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:
parent
aad0edbf74
commit
5b1b6b29d7
1 changed files with 54 additions and 60 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue