diff options
author | David Luevano Alvarado <david@luevano.xyz> | 2023-12-26 21:59:20 -0600 |
---|---|---|
committer | David Luevano Alvarado <david@luevano.xyz> | 2023-12-26 21:59:20 -0600 |
commit | 29f31de8d3879383ce45dbe4598feca0792b86cf (patch) | |
tree | 75abb6176c327f664a78db1b49090adf7b0586fc /lua | |
parent | 6be7eadac14b7366b45cc9cec4d322e9205477f7 (diff) |
feat: add go support
Diffstat (limited to 'lua')
-rw-r--r-- | lua/plugins/gopher.lua | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lua/plugins/gopher.lua b/lua/plugins/gopher.lua new file mode 100644 index 0000000..ade6eaf --- /dev/null +++ b/lua/plugins/gopher.lua @@ -0,0 +1,38 @@ +return { + 'olexsmir/gopher.nvim', + enabled = true, + ft = "go", + dependencies = { + 'nvim-lua/plenary.nvim', + 'nvim-treesitter/nvim-treesitter', + -- DAP capabilities + 'mfussenegger/nvim-dap', + }, + config = function(_, opts) + -- Some dependencies need to be installed with GoInstallDeps: + -- gomodifytags + -- impl + -- gotests + -- iferr + -- I just installed them with mason, it would be easier to install + -- them here with mason, but my config is already a mess + + require('gopher').setup(opts) + require('gopher.dap').setup() + + local nmap = function(keys, func, desc) + if desc then + desc = 'GO: ' .. desc + end + vim.keymap.set('n', keys, func, { desc = desc }) + end + + nmap('<leader>gsa', ':GoTagAdd<Space>', '[s]truct tag [a]dd') + nmap('<leader>gsr', ':GoTagRm<Space>', '[s]truct tag [r]m') + nmap('<leader>gii', ':GoImpl<Space>', '[i]mplement [i]nterface') + nmap('<leader>gie', '<CMD>GoIfErr<CR>', 'generate [i]f [e]rr') + nmap('<leader>gta', ':GoTestAdd<Space>', '[t]est [a]dd') + nmap('<leader>gts', '<CMD>GoTestsAll<CR>', '[t]est[s] add all') + nmap('<leader>gte', '<CMD>GoTestsExp<CR>', '[t]ests add [e]xported') + end, +} |