1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
return {
"ray-x/go.nvim",
-- Only load if go is installed
cond = function()
return vim.fn.executable("go")
end,
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", "<Space>gb", "<cmd>GoBuild<cr>", { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<Space>gr", "<cmd>GoRun<cr>", { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<Space>gd", "<cmd>GoDoc<cr>", { 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
}
|