feat(gopls): add formatter/linter config

This commit is contained in:
2025-04-12 16:23:27 +02:00
parent 7f918866cd
commit a5567b9b05
+43 -6
View File
@@ -1,10 +1,47 @@
-- spec: https://rust-analyzer.github.io/manual.html#configuration
local utils = require("utils")
---@type ServerConfig
return {
enable = true,
mason = {
name = "gopls",
-- version = "",
mason = { "gopls", dependencies = { "golines", "golangci-lint" } },
keymaps = {
{
mode = "n",
lhs = "<leader>lf",
rhs = function()
utils.format({
cmd = { "golines", "-m", "80", "--shorten-comments" },
output = "stdout",
})
vim.lsp.buf.format({ async = true })
end,
},
},
linters = {
{
cmd = {
"golangci-lint",
"run",
"--output.json.path=stdout",
"--show-stats=false",
"%file%",
},
stdin = true,
stdout = true,
json = {
diagnostics_root = "Issues",
source = "FromLinter",
message = "Text",
lnum = "Pos.Line",
col = "Pos.Column",
callback = function(diag)
if not diag.severity or diag.severity == "" then
diag.severity = vim.diagnostic.severity.WARN
end
utils.debug(vim.inspect(diag))
end,
},
},
},
lspconfig = {
filetypes = {
@@ -13,7 +50,7 @@ return {
"gowork",
"gotmpl",
},
cmd = { "gopls", },
cmd = { "gopls" },
single_file_support = true,
settings = {
gopls = {
@@ -21,7 +58,7 @@ return {
unusedparams = true,
},
staticcheck = true,
gofumpt = true,
gofumpt = false,
},
},
},