Enable “tsserver” as language server for both JavaScript and TypeScript. Additionally, enable SonarLint for JavaScript files and disable it for Python and PHP.
77 lines
2.3 KiB
Lua
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,
|
|
})
|