Skip to content

Commit

Permalink
Add iferr integration (#15)
Browse files Browse the repository at this point in the history
* feat(iferr): add to installer & config

* feat(iferr): add first implementation

* docs(iferr): add
  • Loading branch information
olexsmir authored Jul 7, 2022
1 parent 4b83da6 commit eb19ecd
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 2 deletions.
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,12 +130,20 @@ Generate tests only for exported functions/methods in current file:

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)
1 change: 1 addition & 0 deletions lua/gopher/config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ local M = {
gomodifytags = "gomodifytags",
gotests = "gotests",
impl = "impl",
iferr = "iferr",
},
},
}
Expand Down
21 changes: 21 additions & 0 deletions lua/gopher/iferr.lua
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions lua/gopher/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions lua/gopher/installer.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions plugin/gopher.vim
Original file line number Diff line number Diff line change
Expand Up @@ -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()

0 comments on commit eb19ecd

Please sign in to comment.