diff --git a/.config/nvim/lazyvim.json b/.config/nvim/lazyvim.json index 22a73d7a..aa302293 100644 --- a/.config/nvim/lazyvim.json +++ b/.config/nvim/lazyvim.json @@ -87,5 +87,4 @@ "NEWS.md": "2123" }, "version": 2 -} - +} \ No newline at end of file diff --git a/.config/nvim/lua/plugins/extras/lang/java-extended.lua b/.config/nvim/lua/plugins/extras/lang/java-extended.lua new file mode 100644 index 00000000..8ebd14f5 --- /dev/null +++ b/.config/nvim/lua/plugins/extras/lang/java-extended.lua @@ -0,0 +1,91 @@ +local Util = require("lazyvim.util") + +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "java" }) + end, + }, + { + "mfussenegger/nvim-dap", + optional = true, + dependencies = { + { + "williamboman/mason.nvim", + opts = function(_, opts) + opts.registries = { + "github:nvim-java/mason-registry", + "github:mason-org/mason-registry", + } + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "java-test", "java-debug-adapter" }) + end, + }, + }, + }, + { + "nvim-java/nvim-java", + lazy = true, + ft = "java", + dependencies = { + { "nvim-java/lua-async-await" }, + { "nvim-java/nvim-java-core" }, + { "nvim-java/nvim-java-test" }, + { "nvim-java/nvim-java-dap" }, + { + "neovim/nvim-lspconfig", + opts = { + servers = { + jdtls = { + keys = { + -- Workaround for the lack of a DAP strategy in neotest-java + { + "td", + function() + require("java").dap.config_dap() + require("java").test.debug_current_method() + end, + desc = "Debug Nearest (Java)", + }, + }, + }, + }, + }, + }, + { + "williamboman/mason-lspconfig.nvim", + opts = { + handlers = { + ["jdtls"] = function() + require("java").setup({ + java_test = { + enable = Util.has("nvim-dap"), + }, + java_debug_adapter = { + enable = Util.has("nvim-dap"), + }, + jdk = { + auto_install = false, + }, + }) + end, + }, + }, + }, + }, + }, + { + "nvim-neotest/neotest", + optional = true, + dependencies = { + "rcasia/neotest-java", + }, + opts = { + adapters = { + ["neotest-java"] = {}, + }, + }, + }, +}