update nvim

This commit is contained in:
2023-02-03 16:08:09 +01:00
parent c5d8b5ef2b
commit 057b357f05
19 changed files with 218 additions and 16 deletions

6
lsp/config/denols.lua Normal file
View File

@@ -0,0 +1,6 @@
return {
denols = function(opts)
opts.root_dir = require("lspconfig.util").root_pattern("deno.json", "deno.jsonc")
return opts
end,
}

6
lsp/config/eslint.lua Normal file
View File

@@ -0,0 +1,6 @@
return {
eslint = function(opts)
opts.root_dir = require("lspconfig.util").root_pattern("package.json", ".eslintrc.json", ".eslintrc.js")
return opts
end,
}

53
lsp/config/jdtls.lua Normal file
View File

@@ -0,0 +1,53 @@
return {
jdtls = function(opts)
-- use this function notation to build some variables
local root_markers = { ".git", "mvnw", "gradlew", "pom.xml", "build.gradle" }
local root_dir = require("jdtls.setup").find_root(root_markers)
-- calculate workspace dir
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")
local workspace_dir = vim.fn.stdpath "data" .. "/site/java/workspace-root/" .. project_name
os.execute("mkdir " .. workspace_dir)
-- get the mason install path
local install_path = require("mason-registry").get_package("jdtls"):get_install_path()
-- get the current OS
local os
print(os)
if vim.fn.has "macunix" then
os = "mac"
elseif vim.fn.has "win32" then
os = "win"
else
os = "linux"
end
-- return the server config
return {
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",
"-javaagent:" .. install_path .. "/lombok.jar",
"-Xms1g",
"--add-modules=ALL-SYSTEM",
"--add-opens",
"java.base/java.util=ALL-UNNAMED",
"--add-opens",
"java.base/java.lang=ALL-UNNAMED",
"-jar",
vim.fn.glob(install_path .. "/plugins/org.eclipse.equinox.launcher_*.jar"),
"-configuration",
install_path .. "/config_" .. os,
"-data",
workspace_dir,
},
root_dir = root_dir,
}
end,
}

6
lsp/config/tsserver.lua Normal file
View File

@@ -0,0 +1,6 @@
return {
tsserver = function(opts)
opts.root_dir = require("lspconfig.util").root_pattern "package.json"
return opts
end,
}

17
lsp/setup_handlers.lua Normal file
View File

@@ -0,0 +1,17 @@
return {
-- keys for a specific server name will be used for that LSP
--jdtls = function(server, opts)
-- -- custom sumneko_lua setup handler
-- require("lspconfig")["sumneko_lua"].setup(opts)
--end,
rust_analyzer = function(_, opts) require("rust-tools").setup { server = opts } end,
jdtls = function(_, opts)
vim.api.nvim_create_autocmd("Filetype", {
pattern = "java", -- autocmd to start jdtls
callback = function()
if opts.root_dir and opts.root_dir ~= "" then require("jdtls").start_or_attach(opts) end
end,
})
end,
}