feat: adding dap
This commit is contained in:
85
ftplugin/java.lua
Normal file
85
ftplugin/java.lua
Normal file
@@ -0,0 +1,85 @@
|
||||
local home = os.getenv("HOME")
|
||||
local workspace_path = home .. "/.local/share/nvim/jdtls-workspace/"
|
||||
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")
|
||||
local workspace_dir = workspace_path .. project_name
|
||||
local keymap = vim.keymap.set
|
||||
|
||||
local status, jdtls = pcall(require, "jdtls")
|
||||
local dap = require("dap")
|
||||
|
||||
if not status then
|
||||
return
|
||||
end
|
||||
local extendedClientCapabilities = jdtls.extendedClientCapabilities
|
||||
|
||||
local bundles = {
|
||||
vim.fn.glob(
|
||||
home
|
||||
.. "/.local/share/nvim/mason/packages/java-debug/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-*.jar"
|
||||
),
|
||||
}
|
||||
vim.list_extend(
|
||||
bundles,
|
||||
vim.split(vim.fn.glob(home .. "/.local/share/nvim/mason/packages/vscode-java-test/server/*.jar", true), "\n")
|
||||
)
|
||||
|
||||
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",
|
||||
"-Xmx1g",
|
||||
"--add-modules=ALL-SYSTEM",
|
||||
"--add-opens",
|
||||
"java.base/java.util=ALL-UNNAMED",
|
||||
"--add-opens",
|
||||
"java.base/java.lang=ALL-UNNAMED",
|
||||
"-javaagent:" .. home .. "/.local/share/nvim/mason/packages/jdtls/lombok.jar",
|
||||
"-jar",
|
||||
vim.fn.glob(home .. "/.local/share/nvim/mason/packages/jdtls/plugins/org.eclipse.equinox.launcher_*.jar"),
|
||||
"-configuration",
|
||||
home .. "/.local/share/nvim/mason/packages/jdtls/config_mac",
|
||||
"-data",
|
||||
workspace_dir,
|
||||
},
|
||||
root_dir = require("jdtls.setup").find_root({ ".git", "mvnw", "gradlew", "pom.xml", "build.gradle" }),
|
||||
|
||||
settings = {
|
||||
java = {
|
||||
signatureHelp = { enabled = true },
|
||||
extendedClientCapabilities = extendedClientCapabilities,
|
||||
maven = {
|
||||
downloadSources = true,
|
||||
},
|
||||
referencesCodeLens = {
|
||||
enabled = true,
|
||||
},
|
||||
references = {
|
||||
includeDecompiledSources = true,
|
||||
},
|
||||
inlayHints = {
|
||||
parameterNames = {
|
||||
enabled = "all", -- literals, all, none
|
||||
},
|
||||
},
|
||||
format = {
|
||||
enabled = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
init_options = {
|
||||
bundles = {},
|
||||
},
|
||||
}
|
||||
require("jdtls").start_or_attach(config)
|
||||
|
||||
keymap("n", "<leader>co", "<Cmd>lua require'jdtls'.organize_imports()<CR>", { desc = "Organize Imports" })
|
||||
keymap("n", "<leader>crv", "<Cmd>lua require('jdtls').extract_variable()<CR>", { desc = "Extract Variable" })
|
||||
keymap("v", "<leader>crv", "<Esc><Cmd>lua require('jdtls').extract_variable(true)<CR>", { desc = "Extract Variable" })
|
||||
keymap("n", "<leader>crc", "<Cmd>lua require('jdtls').extract_constant()<CR>", { desc = "Extract Constant" })
|
||||
keymap("v", "<leader>crc", "<Esc><Cmd>lua require('jdtls').extract_constant(true)<CR>", { desc = "Extract Constant" })
|
||||
keymap("v", "<leader>crm", "<Esc><Cmd>lua require('jdtls').extract_method(true)<CR>", { desc = "Extract Method" })
|
||||
Reference in New Issue
Block a user