-- nvim/.config/nvim/lua/plugins/lsp/go.lua
return {
"neovim/nvim-lspconfig",
opts = {
servers = {
gopls = {
cmd = { "gopls", "-remote=auto" },
filetypes = { "go", "gomod", "gowork", "gotmpl" },
settings = {
gopls = {
gofumpt = true,
staticcheck = true,
usePlaceholders = false,
completeUnimported = true,
directoryFilters = { "-**/node_modules", "-**/vendor" },
semanticTokens = true,
codelenses = {
gc_details = false,
generate = true,
regenerate_cgo = true,
test = true,
tidy = true,
upgrade_dependency = true,
vendor = true,
},
analyses = {
fieldalignment = false,
nilness = true,
shadow = true,
unusedparams = true,
unusedwrite = true,
unusedvariable = true,
useany = true,
},
hints = {
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = false,
constantValues = true,
functionTypeParameters = true,
parameterNames = false,
rangeVariableTypes = true,
},
},
},
},
},
},
}