return { "ray-x/go.nvim", dependencies = { -- optional packages "ray-x/guihua.lua", "neovim/nvim-lspconfig", "nvim-treesitter/nvim-treesitter", }, config = function() require("go").setup() -- Go keymaps vim.api.nvim_set_keymap("n", "gb", "GoBuild", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "gr", "GoRun", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "gd", "GoDoc", { noremap = true, silent = true }) -- Commands to run on save: -- local format_sync_grp = vim.api.nvim_create_augroup("GoFormat", {}) -- vim.api.nvim_create_autocmd("BufWritePre", { -- pattern = "*.go", -- callback = function() -- -- Go format: -- require("go.format").gofmt() -- -- Goimports: -- require("go.format").goimport() -- end, -- group = format_sync_grp, -- }) end, ft = { "go", "gomod", "gowork", "gosum" }, build = ':lua require("go.install").update_all_sync()', -- if you need to install/update all binaries }