1
0
Fork 0
mirror of https://github.com/pnx/dotfiles synced 2026-06-16 11:24:55 +02:00
dotfiles/nvim/lua/user/plugins/lang/go.lua

43 lines
1.2 KiB
Lua

local lspservers = {
gopls = {
settings = {
gopls = {
analyses = {
unusedvariable = true,
unusedwrite = true,
useany = true,
},
gofumpt = true,
},
},
on_save = 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, 1000)
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,
},
}
return {
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = { "go", "gomod", "gowork", "gosum" }
}
},
{
"neovim/nvim-lspconfig",
opts = {
servers = lspservers
},
}
}