diff --git a/ftplugin/java.lua b/ftplugin/java.lua new file mode 100644 index 0000000..63b59f6 --- /dev/null +++ b/ftplugin/java.lua @@ -0,0 +1,5 @@ +local config = { + cmd = { '/path/to/jdt-language-server/bin/jdtls' }, + root_dir = vim.fs.dirname(vim.fs.find({ 'gradlew', '.git', 'mvnw' }, { upward = true })[1]), +} +require('jdtls').start_or_attach(config) diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 14cf84b..6a8c64d 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -1,10 +1,11 @@ return { - {"nvim-treesitter/nvim-treesitter", build = ":TSUpdate"}, + { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" }, + { "mfussenegger/nvim-jdtls" }, { "neovim/nvim-lspconfig", config = function() local lspconfig = require("lspconfig") - lspconfig.lua_ls.setup{} + lspconfig.lua_ls.setup {} end, }, { @@ -26,7 +27,7 @@ return { vim.api.nvim_create_autocmd('LspAttach', { desc = 'LSP actions', callback = function(event) - local opts = {buffer = event.buf} + local opts = { buffer = event.buf } vim.keymap.set('n', 'K', 'lua vim.lsp.buf.hover()', opts) vim.keymap.set('n', 'gd', 'lua vim.lsp.buf.definition()', opts) vim.keymap.set('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) @@ -35,10 +36,10 @@ return { vim.keymap.set('n', 'gr', 'lua vim.lsp.buf.references()', opts) vim.keymap.set('n', 'gs', 'lua vim.lsp.buf.signature_help()', opts) vim.keymap.set('n', '', 'lua vim.lsp.buf.rename()', opts) - vim.keymap.set({'n', 'x'}, '', 'lua vim.lsp.buf.format({async = true})', opts) + vim.keymap.set({ 'n', 'x' }, '', 'lua vim.lsp.buf.format({async = true})', opts) vim.keymap.set('n', '', 'lua vim.lsp.buf.code_action()', opts) end, }) - end, + end, } }