all repos

gopher.nvim @ eb19ecdc05bdd5231a010a2452b7bde261b31f99

Minimalistic plugin for Go development
6 files changed, 35 insertions(+), 2 deletions(-)
Add `iferr` integration (#15)

* feat(iferr): add to installer & config

* feat(iferr): add first implementation

* docs(iferr): add
Author: Smirnov Oleksandr ss2316544@gmail.com
Committed by: GitHub noreply@github.com
Committed at: 2022-07-07 14:19:07 +0300
Parent: 4b83da6
M README.md

@@ -130,12 +130,20 @@ ```

8. Generate doc comment -First set a cursor on **public** package/function/interface/struct and execure: +First set a cursor on **public** package/function/interface/struct and execute: ```vim :GoCmt ``` -## Thanks: +9. Generate `if err` + +Set cursor on the line with **err** and execute: + +```vim +:GoIfErr +``` + +## Thanks - [go.nvim](https://github.com/ray-x/go.nvim)
M lua/gopher/config.lua

@@ -6,6 +6,7 @@ go = "go",

gomodifytags = "gomodifytags", gotests = "gotests", impl = "impl", + iferr = "iferr", }, }, }
A lua/gopher/iferr.lua

@@ -0,0 +1,21 @@

+local c = require("gopher.config").config.commands +local u = require "gopher._utils" + +---Add iferr declaration +---That's Lua of vimscript implementation of: +---github.com/koron/iferr +return function() + local boff = vim.fn.wordcount().cursor_bytes + local cmd = (c.iferr .. " -pos " .. boff) + local data = vim.fn.systemlist(cmd, vim.fn.bufnr "%") + + if vim.v.shell_error ~= 0 then + u.notify("command " .. cmd .. " exited with code " .. vim.v.shell_error, "error") + return + end + + local pos = vim.fn.getcurpos()[2] + vim.fn.append(pos, data) + vim.cmd [[silent normal! j=2j]] + vim.fn.setpos(".", pos) +end
M lua/gopher/init.lua

@@ -9,6 +9,7 @@ gopher.mod = require "gopher.gomod"

gopher.get = require "gopher.goget" gopher.impl = require "gopher.impl" gopher.generate = require "gopher.gogenerate" +gopher.iferr = require "gopher.iferr" gopher.comment = require "gopher.comment" gopher.test_add = gotests.func_test gopher.test_exported = gotests.all_exported_tests
M lua/gopher/installer.lua

@@ -4,6 +4,7 @@ local urls = {

gomodifytags = "github.com/fatih/gomodifytags", impl = "github.com/josharian/impl", gotests = "github.com/cweill/gotests/...", + iferr = "github.com/koron/iferr", } ---@param pkg string
M plugin/gopher.vim

@@ -8,4 +8,5 @@ command! -nargs=* GoGet :lua require"gopher".get(<f-args>)

command! -nargs=* GoImpl :lua require"gopher".impl(<f-args>) command! -nargs=* GoGenerate :lua require"gopher".generate(<f-args>) command! GoCmt :lua require"gopher".comment() +command! GoIfErr :lua require"gopher".iferr() command! GoInstallDeps :lua require"gopher".install_deps()