From 04e1af228be0691727beb6f68cf3b8782fe467d7 Mon Sep 17 00:00:00 2001 From: Smirnov Olexander Date: Tue, 7 Jun 2022 01:17:51 +0300 Subject: [PATCH] feat: add goget support feat(goget): remove http or https from provided url --- README.md | 9 +++++++++ lua/gopher/goget.lua | 27 +++++++++++++++++++++++++++ lua/gopher/init.lua | 1 + plugin/gopher.vim | 1 + 4 files changed, 38 insertions(+) create mode 100644 lua/gopher/goget.lua diff --git a/README.md b/README.md index 9b65747..c1c9da5 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,15 @@ By default be added/removed `json` tag, if not set. :GoMod init asdf " Runs `go mod init asdf` ``` +1. Run `go get` command +Link can has a `http` or `https` prefix. + +You can provide more that one package url. + +```viml +:GoGet github.com/gorilla/mux +``` + ## Thanks - [go.nvim](https://github.com/ray-x/go.nvim) diff --git a/lua/gopher/goget.lua b/lua/gopher/goget.lua new file mode 100644 index 0000000..5807e2f --- /dev/null +++ b/lua/gopher/goget.lua @@ -0,0 +1,27 @@ +local Job = require "plenary.job" + +return function(...) + local args = { ... } + for i, arg in ipairs(args) do + local m = string.match(arg, "^https://(.*)$") or string.match(arg, "^http://(.*)$") or arg + table.remove(args, i) + table.insert(args, i, m) + end + + local cmd_args = vim.list_extend({ "get" }, args) + + Job + :new({ + command = "go", + args = cmd_args, + on_exit = function(_, retval) + if retval ~= 0 then + print("command exited with code " .. retval) + return + else + print "command runs successfully" + end + end, + }) + :start() +end diff --git a/lua/gopher/init.lua b/lua/gopher/init.lua index e580f8a..c01abc4 100644 --- a/lua/gopher/init.lua +++ b/lua/gopher/init.lua @@ -5,5 +5,6 @@ gopher.install_deps = require("gopher.installer").install_all gopher.tags_add = tags.add gopher.tags_rm = tags.remove gopher.mod = require "gopher.gomod" +gopher.get = require "gopher.goget" return gopher diff --git a/plugin/gopher.vim b/plugin/gopher.vim index 29f9a60..1e68e0a 100644 --- a/plugin/gopher.vim +++ b/plugin/gopher.vim @@ -1,4 +1,5 @@ command! -nargs=* GoTagAdd :lua require"gopher".tags_add() command! -nargs=* GoTagRm :lua require"gopher".tags_rm() command! -nargs=* GoMod :lua require"gopher".mod() +command! -nargs=* GoGet :lua require"gopher".get() command! GoInstallDeps :lua require"gopher".install_deps()