1
0
Fork 0
dotfiles/nvim/lua/user/lsp.lua
Olli 589872bd37 nvim: Enable JavaScript language server
Enable “tsserver” as language server for both JavaScript and TypeScript.
Additionally, enable SonarLint for JavaScript files and disable it for Python
and PHP.
2026-04-28 08:49:47 +02:00

77 lines
2.3 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,
})