From a0cc2c16219c3f7d53e39ae740b42e7e53bf6ff2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20La=C3=ADn?= Date: Wed, 3 Jan 2024 16:12:17 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(nvim):=20add=20java-extended?= =?UTF-8?q?=20extra?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config/nvim/lazyvim.json | 3 +- .../lua/plugins/extras/lang/java-extended.lua | 91 +++++++++++++++++++ 2 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 .config/nvim/lua/plugins/extras/lang/java-extended.lua 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"] = {}, + }, + }, + }, +}