Nvim: add jdtls 🚀

main
Marko Korhonen 3 years ago
parent b3f20969a7
commit 58f9847e78

@ -33,6 +33,9 @@ dotfiles:
- nvim-packer-sync
dst: ~/.config/nvim/lua
src: .config/nvim/lua
d_nvim_ftplugin:
dst: ~/.config/nvim/ftplugin
src: .config/nvim/ftplugin
d_sway:
dst: ~/.config/sway
src: .config/sway
@ -193,8 +196,9 @@ profiles:
- f_ranger.conf
- f_ssh.conf
- f_authorized_keys
- d_nvim_lua
- f_nvim_init
- d_nvim_lua
- d_nvim_ftplugin
- f_gitconfig
- f_alacritty.yml
email:

@ -0,0 +1,19 @@
local nvim_local_dir = vim.fn.expand('~/.local/share/nvim')
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t')
local workspace_dir = nvim_local_dir .. '/jdtls-workspaces/' .. project_name
require('jdtls').start_or_attach({
cmd = {
'java', '-Declipse.application=org.eclipse.jdt.ls.core.id1',
'-Dosgi.bundles.defaultStartLevel=4',
'-Declipse.product=org.eclipse.jdt.ls.core.product',
'-Dlog.protocol=true', '-Dlog.level=ALL', '-Xms1g',
'--add-modules=ALL-SYSTEM', '--add-opens',
'java.base/java.util=ALL-UNNAMED', '--add-opens',
'java.base/java.lang=ALL-UNNAMED', -- 💀
'-jar', nvim_local_dir ..
'/lsp_servers/jdtls/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar',
'-configuration', nvim_local_dir .. '/lsp_servers/jdtls/config_linux',
'-data', workspace_dir
}
})

@ -49,8 +49,10 @@ local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
-- Register a handler that will be called for all installed servers.
-- Alternatively, you may also register handlers on specific server instances instead (see example below).
lsp_installer.on_server_ready(function(server)
-- Don't setup jdtls here since it is done by nvim-jdtls
if server.name == "jdtls" then return end
local opts = {}
-- Lua specific settings
@ -79,6 +81,6 @@ lsp_installer.on_server_ready(function(server)
end
opts.on_attach = buf_map_keys
opts.capabilities = capabilities
opts.capabilities = capabilities
server:setup(opts)
end)

@ -64,6 +64,9 @@ require('packer').startup(function()
-- Install LSP server executables
use 'williamboman/nvim-lsp-installer'
-- Additional LSP features for Java
use 'mfussenegger/nvim-jdtls'
-- Completion
use 'hrsh7th/nvim-cmp' -- Autocompletion plugin
use 'hrsh7th/cmp-nvim-lsp' -- LSP source for nvim-cmp

Loading…
Cancel
Save