feat(go): add gofumpt formatter with conform/none-ls (#1683)

* feat(go): only install required packages

* fix: add gofumpt formatter using conform/none-ls

* fix: add mason.nvim as dependency of none-ls
This commit is contained in:
Juan Cruz De La Torre 2023-10-13 07:43:51 -03:00 committed by GitHub
parent c7244d9d47
commit 385c99dbb7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -82,15 +82,32 @@ return {
}, },
}, },
-- Ensure Go tools are installed -- Ensure Go tools are installed
{
"williamboman/mason.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "goimports", "gofumpt" })
end,
},
{ {
"nvimtools/none-ls.nvim", "nvimtools/none-ls.nvim",
optional = true, optional = true,
dependencies = {
{
"williamboman/mason.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "gomodifytags", "impl" })
end,
},
},
opts = function(_, opts) opts = function(_, opts)
local nls = require("null-ls") local nls = require("null-ls")
opts.sources = vim.list_extend(opts.sources or {}, { opts.sources = vim.list_extend(opts.sources or {}, {
nls.builtins.code_actions.gomodifytags, nls.builtins.code_actions.gomodifytags,
nls.builtins.code_actions.impl, nls.builtins.code_actions.impl,
nls.builtins.formatting.goimports, nls.builtins.formatting.goimports,
nls.builtins.formatting.gofumpt,
}) })
end, end,
}, },
@ -99,7 +116,7 @@ return {
optional = true, optional = true,
opts = { opts = {
formatters_by_ft = { formatters_by_ft = {
go = { "goimports" }, go = { "goimports", "gofumpt" },
}, },
}, },
}, },
@ -108,10 +125,10 @@ return {
optional = true, optional = true,
dependencies = { dependencies = {
{ {
"mason.nvim", "williamboman/mason.nvim",
opts = function(_, opts) opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {} opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "gomodifytags", "impl", "goimports", "delve" }) vim.list_extend(opts.ensure_installed, { "delve" })
end, end,
}, },
{ {