nvim/ftplugin/java.lua

58 lines
1.4 KiB
Lua
Raw Normal View History

2023-02-26 21:07:32 +00:00
local path = require("mason-core.path")
local function mason_package(...)
2023-10-27 09:15:33 +00:00
return path.concat { vim.fn.stdpath("data"), "mason", "packages", ... }
2023-02-26 21:07:32 +00:00
end
2023-10-27 09:15:33 +00:00
local bundles = vim.fn.glob(
mason_package("java-debug-adapter", "extension", "server", "com.microsoft.java.debug.plugin-*.jar"), true, true)
2023-02-26 21:07:32 +00:00
local extra_bundles = vim.fn.glob(mason_package("java-test", "extension", "server", "*.jar"), true, true)
vim.list_extend(bundles, extra_bundles)
require('jdtls').start_or_attach({
2023-10-27 09:15:33 +00:00
cmd = { mason_package("jdtls", "bin", "jdtls") },
2023-02-26 21:07:32 +00:00
on_attach = function(client, bufnr)
2023-10-27 09:15:33 +00:00
require 'jdtls'.setup_dap()
2023-02-26 21:07:32 +00:00
end,
init_options = {
bundles = extra_bundles
2023-10-27 09:15:33 +00:00
},
settings = {
java = {
completion = {
favoriteStaticMembers = {
"org.hamcrest.MatcherAssert.assertThat",
"org.hamcrest.Matchers.*",
"org.hamcrest.CoreMatchers.*",
"org.junit.jupiter.api.Assertions.*",
"java.util.Objects.requireNonNull",
"java.util.Objects.requireNonNullElse",
"org.mockito.Mockito.*"
},
filteredTypes = {
"com.sun.*",
"io.micrometer.shaded.*",
"java.awt.*",
"jdk.*",
"sun.*",
},
},
codeGeneration = {
toString = {
template = "${object.className}{${member.name()}=${member.value}, ${otherMembers}}"
},
hashCodeEquals = {
useJava7Objects = true,
},
useBlocks = true,
},
sources = {
organizeImports = {
starThreshold = 3,
staticStarThreshold = 5,
},
},
}
2023-02-26 21:07:32 +00:00
}
})