vim.opt.tabstop = 4 vim.opt.expandtab = false -- Solr vim.opt.shiftwidth = 4 vim.opt.tabstop = 8 vim.opt.softtabstop = 4 vim.opt.expandtab = false local config = { 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", -- increase lombok Plug in support ,getter setter good bye "-javaagent:/home/jakob/.config/nvim/lsp/jdt-language-server/lombok.jar", "-Xbootclasspath/a:/home/jakob/.config/nvim/lsp/jdt-language-server/lombok.jar", "-jar", "/home/jakob/.config/nvim/lsp/jdt-language-server/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar", "-configuration", "/home/jakob/.config/nvim/lsp/jdt-language-server/config_linux", "-data", "/home/jakob/.config/nvim/lsp/jdt-language-server/workspace/folder" }, root_dir = require("jdtls.setup").find_root({ ".git", "mvnw", "gradlew" }), settings = { java = { } }, init_options = { bundles = { } } } require("jdtls").start_or_attach(config) local current_buff = vim.api.nvim_get_current_buf -- After the language server attaches to the current buffer -- Use on_attach The function maps only the following keys local java_on_attach = function(client, bufnr) --local function buf_set_keymap(...) -- vim.api.nvim_buf_set_keymap(bufnr, ...) --end -- Mappings. local opts = { noremap = true, silent = true } -- See `:help vim.lsp.*` for documentation on any of the below functions --buf_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) --buf_set_keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) --buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) --buf_set_keymap("n", "gi", "lua vim.lsp.buf.implementation()", opts) --buf_set_keymap('i', '', 'lua vim.lsp.buf.signature_help()', opts) --buf_set_keymap("n", "wa", "lua vim.lsp.buf.add_workspace_folder()", opts) --buf_set_keymap("n", "wr", "lua vim.lsp.buf.remove_workspace_folder()", opts) --buf_set_keymap("n", "wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", opts) --buf_set_keymap("n", "D", "lua vim.lsp.buf.type_definition()", opts) -- rename --buf_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", opts) -- Intelligent reminders , such as : Automatic guiding package Has been used lspsaga The function in is replaced by --buf_set_keymap("n", "ca", "lua vim.lsp.buf.code_action()", opts) --buf_set_keymap("n", "gr", "lua vim.lsp.buf.references()", opts) --buf_set_keymap("n", "e", "lua vim.lsp.diagnostic.show_line_diagnostics()", opts) --buf_set_keymap('n', '', 'lua vim.lsp.diagnostic.goto_prev()', opts) --buf_set_keymap("n", "", "lua vim.lsp.diagnostic.goto_next()", opts) --buf_set_keymap("n", "q", "lua vim.lsp.diagnostic.set_loclist()", opts) -- Code formatting --buf_set_keymap("n", "f", "lua vim.lsp.buf.formatting()", opts) --buf_set_keymap("n", "l", "lua vim.lsp.buf.formatting()", opts) --buf_set_keymap("n", "l", "lua vim.lsp.buf.formatting()", opts) -- Automatically import all missing packages , Automatically delete redundant and unused packages --buf_set_keymap("n", "", "lua require'jdtls'.organize_imports()", opts) -- Functions that introduce local variables function to introduce a local variable --buf_set_keymap("n", "crv", "lua require('jdtls').extract_variable()", opts) --buf_set_keymap("v", "crv", "lua require('jdtls').extract_variable(true)", opts) --function to extract a constant --buf_set_keymap("n", "crc", "lua require('jdtls').extract_constant()", opts) --buf_set_keymap("v", "crc", "lua require('jdtls').extract_constant(true)", opts) -- Extract a piece of code into an additional function function to extract a block of code into a method --buf_set_keymap("v", "crm", "lua require('jdtls').extract_method(true)", opts) -- Code saving and automatic formatting formatting --vim.api.nvim_command [[autocmd BufWritePre lua vim.lsp.buf.formatting_seq_sync()]] end java_on_attach(nil, current_buff)