From 69f5a30af82d95f775409439e0665020b24f7cee Mon Sep 17 00:00:00 2001 From: aqav <66734646+aqav@users.noreply.github.com> Date: Tue, 15 Aug 2023 11:10:15 +0800 Subject: [PATCH] feat(java): no pattern in LspAttach autocmd --- lua/lazyvim/plugins/extras/lang/java.lua | 67 +++++++++++++----------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/lua/lazyvim/plugins/extras/lang/java.lua b/lua/lazyvim/plugins/extras/lang/java.lua index cb61dea7..530c6b2b 100644 --- a/lua/lazyvim/plugins/extras/lang/java.lua +++ b/lua/lazyvim/plugins/extras/lang/java.lua @@ -110,41 +110,44 @@ return { -- https://github.com/mfussenegger/nvim-jdtls#nvim-dap-configuration -- https://neovim.io/doc/user/lsp.html#LspAttach vim.api.nvim_create_autocmd("LspAttach", { - pattern = "*.java", callback = function(args) - require("which-key").register({ - ["cx"] = { name = "+extract" }, - ["cxv"] = { require("jdtls").extract_variable_all, "Extract Variable" }, - ["cxc"] = { require("jdtls").extract_constant, "Extract Constant" }, - ["gs"] = { require("jdtls").super_implementation, "Goto Super" }, - ["gS"] = { require("jdtls.tests").goto_subjects, "Goto Subjects" }, - ["co"] = { require("jdtls").organize_imports, "Organize Imports" }, - }, { mode = "n", buffer = args.buf }) - require("which-key").register({ - ["c"] = { name = "+code" }, - ["cx"] = { name = "+extract" }, - ["cxm"] = { [[lua require('jdtls').extract_method(true)]], "Extract Method" }, - ["cxv"] = { - [[lua require('jdtls').extract_variable_all(true)]], - "Extract Variable", - }, - ["cxc"] = { [[lua require('jdtls').extract_constant(true)]], "Extract Constant" }, - }, { mode = "v", buffer = args.buf }) + -- only after the jdtls client is attached + local client = vim.lsp.get_client_by_id(args.data.client_id) + if client.name == "jdtls" then + require("which-key").register({ + ["cx"] = { name = "+extract" }, + ["cxv"] = { require("jdtls").extract_variable_all, "Extract Variable" }, + ["cxc"] = { require("jdtls").extract_constant, "Extract Constant" }, + ["gs"] = { require("jdtls").super_implementation, "Goto Super" }, + ["gS"] = { require("jdtls.tests").goto_subjects, "Goto Subjects" }, + ["co"] = { require("jdtls").organize_imports, "Organize Imports" }, + }, { mode = "n", buffer = args.buf }) + require("which-key").register({ + ["c"] = { name = "+code" }, + ["cx"] = { name = "+extract" }, + ["cxm"] = { [[lua require('jdtls').extract_method(true)]], "Extract Method" }, + ["cxv"] = { + [[lua require('jdtls').extract_variable_all(true)]], + "Extract Variable", + }, + ["cxc"] = { [[lua require('jdtls').extract_constant(true)]], "Extract Constant" }, + }, { mode = "v", buffer = args.buf }) - if mason_registry.has_package("java-debug-adapter") then - -- custom init for Java debugger - require("jdtls").setup_dap({ hotcodereplace = "auto", config_overrides = {} }) - require("jdtls.dap").setup_dap_main_class_configs() + if mason_registry.has_package("java-debug-adapter") then + -- custom init for Java debugger + require("jdtls").setup_dap({ hotcodereplace = "auto", config_overrides = {} }) + require("jdtls.dap").setup_dap_main_class_configs() - -- Java Test require Java debugger to work - if mason_registry.has_package("java-test") then - -- custom keymaps for Java test runner (not yet compatible with neotest) - require("which-key").register({ - ["t"] = { name = "+test" }, - ["tt"] = { require("jdtls.dap").test_class, "Run All Test" }, - ["tr"] = { require("jdtls.dap").test_nearest_method, "Run Nearest Test" }, - ["tT"] = { require("jdtls.dap").pick_test, "Run Test" }, - }, { mode = "n", buffer = args.buf }) + -- Java Test require Java debugger to work + if mason_registry.has_package("java-test") then + -- custom keymaps for Java test runner (not yet compatible with neotest) + require("which-key").register({ + ["t"] = { name = "+test" }, + ["tt"] = { require("jdtls.dap").test_class, "Run All Test" }, + ["tr"] = { require("jdtls.dap").test_nearest_method, "Run Nearest Test" }, + ["tT"] = { require("jdtls.dap").pick_test, "Run Test" }, + }, { mode = "n", buffer = args.buf }) + end end end end,