updated jdtls
This commit is contained in:
parent
949a17f6e2
commit
3b332b462a
4 changed files with 89 additions and 65 deletions
5
init.lua
5
init.lua
|
|
@ -1,4 +1,4 @@
|
|||
-- -- Load user configuration files
|
||||
-- Load user configuration files
|
||||
require("user.options")
|
||||
require("user.keymaps")
|
||||
require("user.cmp")
|
||||
|
|
@ -7,7 +7,6 @@
|
|||
require("user.telescope")
|
||||
require("user.gruvbox")
|
||||
require("user.lsp")
|
||||
require("user.java")
|
||||
require("user.treesitter")
|
||||
require("user.null-ls") -- Load null-ls configuration
|
||||
require("user.terminal")
|
||||
|
|
@ -34,7 +33,7 @@
|
|||
require("user.test")(use)
|
||||
|
||||
-- NERDTree plugin
|
||||
use("preservim/nerdtree")
|
||||
use("preservim/nerdtree")
|
||||
|
||||
-- Plugin for integrating formatters/linters
|
||||
use("jose-elias-alvarez/null-ls.nvim")
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ require("user.lsp_servers.ts_ls")
|
|||
require("user.lsp_servers.jdtls")
|
||||
require("user.lsp_servers.marksman")
|
||||
require("user.lsp_servers.kotlin_ls")
|
||||
require("user.lsp_servers.graphql")
|
||||
|
||||
-- Mason setup
|
||||
require("mason").setup()
|
||||
|
|
|
|||
6
lua/user/lsp_servers/graphql.lua
Normal file
6
lua/user/lsp_servers/graphql.lua
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
local lspconfig = require("lspconfig")
|
||||
|
||||
lspconfig.graphql.setup({
|
||||
capabilities = require("cmp_nvim_lsp").default_capabilities(),
|
||||
filetypes = { "graphql", "gql", "javascript", "typescript" },
|
||||
})
|
||||
|
|
@ -1,67 +1,85 @@
|
|||
local lspconfig = require("lspconfig")
|
||||
local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||
|
||||
-- Java binary (ensure it's Java 21)
|
||||
local java_bin = "/usr/lib/jvm/java-21-openjdk/bin/java"
|
||||
|
||||
-- Find JDTLS and Lombok paths dynamically
|
||||
local jdtls_path = "/home/prabhat/.local/share/nvim/mason/packages/jdtls"
|
||||
local jdtls_launcher_jar = vim.fn.glob(jdtls_path .. "/plugins/org.eclipse.equinox.launcher_*.jar")
|
||||
local lombok_jar = vim.fn.glob(jdtls_path .. "/lombok.jar")
|
||||
|
||||
lspconfig.jdtls.setup({
|
||||
cmd = {
|
||||
"/home/prabhat/.local/share/nvim/mason/packages/jdtls/bin/jdtls",
|
||||
"-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=INFO",
|
||||
"-Xmx2G",
|
||||
"-Xms100m",
|
||||
"--add-modules=ALL-SYSTEM",
|
||||
"--add-opens", "java.base/java.util=ALL-UNNAMED",
|
||||
"--add-opens", "java.base/java.lang=ALL-UNNAMED",
|
||||
"-jar", "/home/prabhat/.local/share/nvim/mason/packages/jdtls/plugins/org.eclipse.equinox.launcher_1.6.900.v20240613-2009.jar",
|
||||
"-configuration", "/home/prabhat/.local/share/nvim/mason/packages/jdtls/config_linux",
|
||||
"-data", vim.fn.stdpath("data") .. "/jdtls-workspace/" .. vim.fn.fnamemodify(vim.loop.cwd(), ":p:h:t"),
|
||||
},
|
||||
capabilities = capabilities,
|
||||
root_dir = function()
|
||||
return vim.fs.dirname(
|
||||
vim.fs.find({ ".git", "mvnw", "gradlew", "pom.xml", "build.gradle" }, { upward = true })[1]
|
||||
)
|
||||
end,
|
||||
settings = {
|
||||
java = {
|
||||
completion = {
|
||||
favoriteStaticMembers = {
|
||||
"org.junit.jupiter.api.Assertions.*",
|
||||
"org.mockito.Mockito.*",
|
||||
"java.util.Objects.requireNonNull",
|
||||
"java.util.Objects.requireNonNullElse",
|
||||
},
|
||||
filteredTypes = {
|
||||
"com.sun.*",
|
||||
"io.micrometer.shaded.*",
|
||||
"java.awt.*",
|
||||
"jdk.*",
|
||||
"sun.*",
|
||||
},
|
||||
},
|
||||
import = {
|
||||
exclusions = {
|
||||
"**/internal/**",
|
||||
},
|
||||
maven = {
|
||||
enabled = true,
|
||||
downloadSources = true,
|
||||
},
|
||||
gradle = {
|
||||
enabled = true,
|
||||
},
|
||||
settings = {
|
||||
-- Customize import order
|
||||
importOrder = {
|
||||
"java",
|
||||
"javax",
|
||||
"org",
|
||||
"com",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
cmd = {
|
||||
java_bin,
|
||||
"-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=INFO",
|
||||
"-Xmx2G", -- Max heap size
|
||||
"-Xms256m", -- Min heap size
|
||||
"--add-modules=ALL-SYSTEM",
|
||||
"--add-opens", "java.base/java.util=ALL-UNNAMED",
|
||||
"--add-opens", "java.base/java.lang=ALL-UNNAMED",
|
||||
"-javaagent:" .. lombok_jar, -- Lombok support
|
||||
"-jar", jdtls_launcher_jar, -- JDTLS launcher
|
||||
"-configuration", jdtls_path .. "/config_linux",
|
||||
"-data", vim.fn.stdpath("data") .. "/jdtls-workspace/" .. vim.fn.fnamemodify(vim.loop.cwd(), ":p:h:t"),
|
||||
},
|
||||
capabilities = capabilities,
|
||||
root_dir = function()
|
||||
return vim.fs.dirname(
|
||||
vim.fs.find({ ".git", "mvnw", "gradlew", "pom.xml", "build.gradle" }, { upward = true })[1]
|
||||
)
|
||||
end,
|
||||
settings = {
|
||||
java = {
|
||||
completion = {
|
||||
favoriteStaticMembers = {
|
||||
"org.junit.jupiter.api.Assertions.*",
|
||||
"org.mockito.Mockito.*",
|
||||
"java.util.Objects.requireNonNull",
|
||||
"java.util.Objects.requireNonNullElse",
|
||||
},
|
||||
filteredTypes = {
|
||||
"com.sun.*",
|
||||
"io.micrometer.shaded.*",
|
||||
"java.awt.*",
|
||||
"jdk.*",
|
||||
"sun.*",
|
||||
},
|
||||
},
|
||||
import = {
|
||||
exclusions = {
|
||||
"**/internal/**",
|
||||
},
|
||||
maven = {
|
||||
enabled = true,
|
||||
downloadSources = true,
|
||||
},
|
||||
gradle = {
|
||||
enabled = true,
|
||||
},
|
||||
settings = {
|
||||
importOrder = {
|
||||
"java",
|
||||
"javax",
|
||||
"org",
|
||||
"com",
|
||||
},
|
||||
},
|
||||
},
|
||||
inlayHints = {
|
||||
parameterNames = { enabled = "all" },
|
||||
},
|
||||
format = {
|
||||
enabled = true,
|
||||
settings = {
|
||||
url = jdtls_path .. "/eclipse-formatter.xml",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue