Watch
1
0
Fork
You've already forked dotfiles
0
dotfiles/nvim/lua/user/lsp.lua

128 lines
3.7 KiB
Lua

--vim.lsp.inlay_hint.enable()
vim.diagnostic.config({
virtual_text = true,
--virtual_lines = true,
--virtual_lines = {
-- current_line = true,
--},
severity_sort = true,
})
vim.opt.completeopt = { "menuone", "noselect", "popup", "fuzzy" }
vim.lsp.enable('html')
vim.lsp.enable('cssls')
vim.lsp.enable('tsserver')
vim.lsp.enable('jsonls')
vim.lsp.enable('typos_lsp')
-- Go
vim.lsp.config("gopls", {
settings = {
gopls = {
gofumpt = true,
staticcheck = true,
analyses = {
unusedparams = true,
unusedresult = true,
unusedwrite = true,
unusedvariable = true,
useany = true,
fieldalignment = false,
nilness = true,
shadow = true,
},
hints = {
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
constantValues = true,
functionTypeParameters = true,
parameterNames = true,
rangeVariableTypes = true,
},
codelenses = {
gc_details = true,
generate = true,
regenerate_cgo = true,
tidy = true,
upgrade_dependency = true,
vendor = true,
},
},
},
})
vim.api.nvim_create_autocmd({"BufWritePre"}, {
pattern = "*.go",
callback = function()
local params = vim.lsp.util.make_range_params()
params.context = {only = {"source.organizeImports"}}
local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params)
for cid, res in pairs(result or {}) do
for _, r in pairs(res.result or {}) do
if r.edit then
local enc = (vim.lsp.get_client_by_id(cid) or {}).offset_encoding or "utf-16"
vim.lsp.util.apply_workspace_edit(r.edit, enc)
end
end
end
vim.lsp.buf.format({async = false})
end
})
vim.lsp.enable('gopls')
-- JavaScript
vim.lsp.config('tsserver', {
cmd = {'typescript-language-server', '--stdio'},
filetypes = {'typescript', 'javascript'},
root_dir = vim.fs.root(0, {'.git', 'package.json'}),
capabilities = capabilities,
})
-- Java
require("jdtls").setup_dap({
hotcodereplace = "auto",
})
local jdtlsCapabilities = vim.lsp.protocol.make_client_capabilities()
jdtlsCapabilities.workspace = jdtlsCapabilities.workspace or {}
jdtlsCapabilities.workspace.didChangeWatchedFiles = {
dynamicRegistration = true,
relativePatternSupport = true,
}
vim.lsp.config("jdtls", {
init_options = {
bundles = vim.fn.glob("/usr/share/java-debug/*.jar", 1, 1),
},
capabilities = jdtlsCapabilities,
settings = {
java = {
autobuild = {
enabled = true,
},
saveActions = {
organizeImports = true,
},
signatureHelp = {
enabled = true,
description = {
enabled = true,
},
},
format = {
enable = true,
settings = {
url = "/home/oliver/Dokumente/Gallery Systems/Products/GS Eclipse Formatter Java.xml",
tabSize = 4,
indentSize = 4,
},
},
codeGeneration = {
insertionLocation = 'lastMember',
hashCodeEquals = {
useInstanceof = true,
useJava7Objects = true,
},
},
telemetry = {
enabled = false,
},
},
},
})
vim.lsp.enable("jdtls")