feat(java): no pattern in LspAttach autocmd

This commit is contained in:
aqav 2023-08-15 11:10:15 +08:00
parent cc3dfa496e
commit 69f5a30af8

View file

@ -110,41 +110,44 @@ return {
-- https://github.com/mfussenegger/nvim-jdtls#nvim-dap-configuration -- https://github.com/mfussenegger/nvim-jdtls#nvim-dap-configuration
-- https://neovim.io/doc/user/lsp.html#LspAttach -- https://neovim.io/doc/user/lsp.html#LspAttach
vim.api.nvim_create_autocmd("LspAttach", { vim.api.nvim_create_autocmd("LspAttach", {
pattern = "*.java",
callback = function(args) callback = function(args)
require("which-key").register({ -- only after the jdtls client is attached
["<leader>cx"] = { name = "+extract" }, local client = vim.lsp.get_client_by_id(args.data.client_id)
["<leader>cxv"] = { require("jdtls").extract_variable_all, "Extract Variable" }, if client.name == "jdtls" then
["<leader>cxc"] = { require("jdtls").extract_constant, "Extract Constant" }, require("which-key").register({
["gs"] = { require("jdtls").super_implementation, "Goto Super" }, ["<leader>cx"] = { name = "+extract" },
["gS"] = { require("jdtls.tests").goto_subjects, "Goto Subjects" }, ["<leader>cxv"] = { require("jdtls").extract_variable_all, "Extract Variable" },
["<leader>co"] = { require("jdtls").organize_imports, "Organize Imports" }, ["<leader>cxc"] = { require("jdtls").extract_constant, "Extract Constant" },
}, { mode = "n", buffer = args.buf }) ["gs"] = { require("jdtls").super_implementation, "Goto Super" },
require("which-key").register({ ["gS"] = { require("jdtls.tests").goto_subjects, "Goto Subjects" },
["<leader>c"] = { name = "+code" }, ["<leader>co"] = { require("jdtls").organize_imports, "Organize Imports" },
["<leader>cx"] = { name = "+extract" }, }, { mode = "n", buffer = args.buf })
["<leader>cxm"] = { [[<ESC><CMD>lua require('jdtls').extract_method(true)<CR>]], "Extract Method" }, require("which-key").register({
["<leader>cxv"] = { ["<leader>c"] = { name = "+code" },
[[<ESC><CMD>lua require('jdtls').extract_variable_all(true)<CR>]], ["<leader>cx"] = { name = "+extract" },
"Extract Variable", ["<leader>cxm"] = { [[<ESC><CMD>lua require('jdtls').extract_method(true)<CR>]], "Extract Method" },
}, ["<leader>cxv"] = {
["<leader>cxc"] = { [[<ESC><CMD>lua require('jdtls').extract_constant(true)<CR>]], "Extract Constant" }, [[<ESC><CMD>lua require('jdtls').extract_variable_all(true)<CR>]],
}, { mode = "v", buffer = args.buf }) "Extract Variable",
},
["<leader>cxc"] = { [[<ESC><CMD>lua require('jdtls').extract_constant(true)<CR>]], "Extract Constant" },
}, { mode = "v", buffer = args.buf })
if mason_registry.has_package("java-debug-adapter") then if mason_registry.has_package("java-debug-adapter") then
-- custom init for Java debugger -- custom init for Java debugger
require("jdtls").setup_dap({ hotcodereplace = "auto", config_overrides = {} }) require("jdtls").setup_dap({ hotcodereplace = "auto", config_overrides = {} })
require("jdtls.dap").setup_dap_main_class_configs() require("jdtls.dap").setup_dap_main_class_configs()
-- Java Test require Java debugger to work -- Java Test require Java debugger to work
if mason_registry.has_package("java-test") then if mason_registry.has_package("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)
require("which-key").register({ require("which-key").register({
["<leader>t"] = { name = "+test" }, ["<leader>t"] = { name = "+test" },
["<leader>tt"] = { require("jdtls.dap").test_class, "Run All Test" }, ["<leader>tt"] = { require("jdtls.dap").test_class, "Run All Test" },
["<leader>tr"] = { require("jdtls.dap").test_nearest_method, "Run Nearest Test" }, ["<leader>tr"] = { require("jdtls.dap").test_nearest_method, "Run Nearest Test" },
["<leader>tT"] = { require("jdtls.dap").pick_test, "Run Test" }, ["<leader>tT"] = { require("jdtls.dap").pick_test, "Run Test" },
}, { mode = "n", buffer = args.buf }) }, { mode = "n", buffer = args.buf })
end
end end
end end
end, end,