diff --git a/nvim/lua/configs/lspconfig.lua b/nvim/lua/configs/lspconfig.lua index 5655f84..3508302 100644 --- a/nvim/lua/configs/lspconfig.lua +++ b/nvim/lua/configs/lspconfig.lua @@ -11,7 +11,6 @@ local capabilities = configs.capabilities local servers = { "bashls", "taplo", - "jdtls", "clangd", "pyright", "ruff", @@ -20,7 +19,8 @@ local servers = { "jsonls", "solidity_ls_nomicfoundation", "eslint", - "ts_ls" + "ts_ls", + "gradle_ls", } for _, lsp in ipairs(servers) do @@ -31,5 +31,3 @@ for _, lsp in ipairs(servers) do } end -local lombok = vim.fn.stdpath('data') .. '/mason/packages/jdtls/lombok.jar' -lspconfig.jdtls.setup { cmd = { "jdtls", "--jvm-arg=-javaagent:" .. lombok } } diff --git a/nvim/lua/plugins/jdtls.lua b/nvim/lua/plugins/jdtls.lua new file mode 100644 index 0000000..71690f7 --- /dev/null +++ b/nvim/lua/plugins/jdtls.lua @@ -0,0 +1,22 @@ +return { + "mfussenegger/nvim-jdtls", + ft = { "java" }, + config = function() + local cmd = require('lspconfig').jdtls.document_config.default_config.cmd + + local lombok = vim.fn.stdpath('data') .. '/mason/packages/jdtls/lombok.jar' + + table.insert(cmd, string.format("--jvm-arg=-javaagent:%s", lombok)) + local opts = { + cmd = cmd, + root_dir = require("jdtls.setup").find_root({ ".git", "mvnw", "gradlew" }), + } + + vim.api.nvim_create_autocmd("Filetype", { + pattern = "java", + callback = function() + require("jdtls").start_or_attach(opts) + end, + }) + end, +}