Public Access
added better jdtls config
This commit is contained in:
@@ -63,8 +63,9 @@ require("autoclose").setup()
|
|||||||
|
|
||||||
-- LSP START --
|
-- LSP START --
|
||||||
|
|
||||||
vim.lsp.enable({ "lua_ls", "ts_ls", "svelte", "tailwindcss", "cssls", "bashls", "rust_analyzer", "clangd", "clang-format", "taplo",
|
vim.lsp.enable({ "lua_ls", "ts_ls", "svelte", "tailwindcss", "cssls", "bashls", "rust_analyzer", "clangd", "clang-format",
|
||||||
"sourcekit", "lemminx", "tinymist", "jdtls", "jsonls" })
|
"taplo",
|
||||||
|
"sourcekit", "lemminx", "tinymist", "jsonls" })
|
||||||
|
|
||||||
vim.lsp.config["tinymist"] = {
|
vim.lsp.config["tinymist"] = {
|
||||||
cmd = { "tinymist" },
|
cmd = { "tinymist" },
|
||||||
@@ -78,11 +79,100 @@ vim.lsp.config("jdtls", {
|
|||||||
root_dir = vim.fn.getcwd(),
|
root_dir = vim.fn.getcwd(),
|
||||||
settings = {
|
settings = {
|
||||||
java = {
|
java = {
|
||||||
-- Custom eclipse.jdt.ls options go here
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
|
pattern = 'java',
|
||||||
|
callback = function(args)
|
||||||
|
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")
|
||||||
|
local workspace_dir = vim.fn.stdpath("data") ..
|
||||||
|
package.config:sub(1, 1) .. "jdtls-workspace" .. package.config:sub(1, 1) .. project_name
|
||||||
|
local os_name = vim.loop.os_uname().sysname
|
||||||
|
local config = {
|
||||||
|
-- The command that starts the language server
|
||||||
|
-- See: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line
|
||||||
|
cmd = {
|
||||||
|
|
||||||
|
-- 💀
|
||||||
|
"java", -- or '/path/to/java17_or_newer/bin/java'
|
||||||
|
-- depends on if `java` is in your $PATH env variable and if it points to the right version.
|
||||||
|
|
||||||
|
"-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",
|
||||||
|
"-Xmx1g",
|
||||||
|
"--add-modules=ALL-SYSTEM",
|
||||||
|
"--add-opens",
|
||||||
|
"java.base/java.util=ALL-UNNAMED",
|
||||||
|
"--add-opens",
|
||||||
|
"java.base/java.lang=ALL-UNNAMED",
|
||||||
|
|
||||||
|
-- 💀
|
||||||
|
"-jar",
|
||||||
|
vim.fn.stdpath("data") ..
|
||||||
|
package.config:sub(1, 1) ..
|
||||||
|
"mason" ..
|
||||||
|
package.config:sub(1, 1) ..
|
||||||
|
"packages" ..
|
||||||
|
package.config:sub(1, 1) ..
|
||||||
|
"jdtls" ..
|
||||||
|
package.config:sub(1, 1) ..
|
||||||
|
"plugins" .. package.config:sub(1, 1) .. "org.eclipse.equinox.launcher_1.7.100.v20251014-1222.jar",
|
||||||
|
-- Must point to the Change this to
|
||||||
|
-- eclipse.jdt.ls installation the actual version
|
||||||
|
|
||||||
|
-- 💀
|
||||||
|
"-configuration",
|
||||||
|
vim.fn.stdpath("data") ..
|
||||||
|
package.config:sub(1, 1) ..
|
||||||
|
"mason" ..
|
||||||
|
package.config:sub(1, 1) ..
|
||||||
|
"packages" ..
|
||||||
|
package.config:sub(1, 1) ..
|
||||||
|
"jdtls" ..
|
||||||
|
package.config:sub(1, 1) ..
|
||||||
|
"config_" .. (os_name == "Windows_NT" and "win" or os_name == "Linux" and "linux" or "mac"),
|
||||||
|
-- eclipse.jdt.ls installation Depending on your system.
|
||||||
|
|
||||||
|
-- 💀
|
||||||
|
-- See `data directory configuration` section in the README
|
||||||
|
"-data",
|
||||||
|
workspace_dir,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- 💀
|
||||||
|
-- This is the default if not provided, you can remove it. Or adjust as needed.
|
||||||
|
-- One dedicated LSP server & client will be started per unique root_dir
|
||||||
|
root_dir = require("jdtls.setup").find_root({ ".git", "mvnw", "gradlew" }),
|
||||||
|
|
||||||
|
-- Here you can configure eclipse.jdt.ls specific settings
|
||||||
|
-- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request
|
||||||
|
-- for a list of options
|
||||||
|
settings = {
|
||||||
|
java = {},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Language server `initializationOptions`
|
||||||
|
-- You need to extend the `bundles` with paths to jar files
|
||||||
|
-- if you want to use additional eclipse.jdt.ls plugins.
|
||||||
|
--
|
||||||
|
-- See https://github.com/mfussenegger/nvim-jdtls#java-debug-installation
|
||||||
|
--
|
||||||
|
-- If you don't plan on using the debugger or other eclipse.jdt.ls plugins you can remove this
|
||||||
|
init_options = {
|
||||||
|
bundles = {},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
-- This starts a new client & server,
|
||||||
|
-- or attaches to an existing client & server depending on the `root_dir`.
|
||||||
|
require("jdtls").start_or_attach(config)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
-- LSP END --
|
-- LSP END --
|
||||||
|
|
||||||
-- KEYMAP START --
|
-- KEYMAP START --
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"plugins": {
|
"plugins": {
|
||||||
|
"autoclose.nvim": {
|
||||||
|
"rev": "3f86702",
|
||||||
|
"src": "https://github.com/m4xshen/autoclose.nvim"
|
||||||
|
},
|
||||||
"blink.cmp": {
|
"blink.cmp": {
|
||||||
"version": "'v1.6.0'"
|
"version": "'v1.6.0'"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user