diff --git a/lua/gopher/config.lua b/lua/gopher/config.lua index 74cbff3..1b8f91c 100644 --- a/lua/gopher/config.lua +++ b/lua/gopher/config.lua @@ -37,6 +37,9 @@ local default_config = { ---@type number timeout = 2000, + ---@type boolean + setup_commands = true, + -- user specified paths to binaries ---@class gopher.ConfigCommand commands = { diff --git a/plugin/gopher.lua b/plugin/gopher.lua new file mode 100644 index 0000000..165e7d6 --- /dev/null +++ b/plugin/gopher.lua @@ -0,0 +1,77 @@ +if vim.g.gopher_loaded == 1 then + return +end +vim.g.gopher_loaded = 1 + +local c = require "gopher.config" +if c.setup_commands then + vim.api.nvim_create_user_command("GopherLog", function() + vim.cmd("tabnew " .. require("gopher._utils.log").get_outfile()) + end, { nargs = 0 }) + + vim.api.nvim_create_user_command("GoIferr", function() + require("gopher").iferr() + end, { nargs = 0 }) + + vim.api.nvim_create_user_command("GoCmt", function() + require("gopher").comment() + end, { nargs = 0 }) + + vim.api.nvim_create_user_command("GoImpl", function(args) + require("gopher").impl(unpack(args.fargs)) + end, { nargs = "*" }) + + -- :GoInstall + vim.api.nvim_create_user_command("GoInstallDeps", function() + require("gopher").install_deps() + end, { nargs = 0 }) + + vim.api.nvim_create_user_command("GoInstallDepsSync", function() + require("gopher").install_deps { sync = true } + end, { nargs = 0 }) + + --- :GoTag + vim.api.nvim_create_user_command("GoTagAdd", function(opts) + require("gopher").tags.add(unpack(opts.fargs)) + end, { nargs = "*" }) + + vim.api.nvim_create_user_command("GoTagRm", function(opts) + require("gopher").tags.rm(unpack(opts.fargs)) + end, { nargs = "*" }) + + vim.api.nvim_create_user_command("GoTagClear", function() + require("gopher").tags.clear() + end, { nargs = 0 }) + + --- :GoTest + vim.api.nvim_create_user_command("GoTestAdd", function() + require("gopher").test.add() + end, { nargs = 0 }) + + vim.api.nvim_create_user_command("GoTestsAll", function() + require("gopher").test.all() + end, { nargs = 0 }) + + vim.api.nvim_create_user_command("GoTestsExp", function() + require("gopher").test.exported() + end, { nargs = 0 }) + + -- :Go + vim.api.nvim_create_user_command("GoMod", function(opts) + require("gopher").mod(unpack(opts.fargs)) + end, { nargs = "*" }) + + vim.api.nvim_create_user_command("GoGet", function(opts) + vim.print(opts) + require("gopher").get(opts.fargs) + end, { nargs = "*" }) + + vim.api.nvim_create_user_command("GoWork", function(opts) + vim.print(opts) + require("gopher").get(unpack(opts.fargs)) + end, { nargs = "*" }) + + vim.api.nvim_create_user_command("GoGenerate", function(opts) + require("gopher").generate(unpack(opts.fargs)) + end, { nargs = 1 }) +end diff --git a/plugin/gopher.vim b/plugin/gopher.vim deleted file mode 100644 index dc924b9..0000000 --- a/plugin/gopher.vim +++ /dev/null @@ -1,16 +0,0 @@ -command! -nargs=* GoTagAdd :lua require"gopher".tags.add() -command! -nargs=* GoTagRm :lua require"gopher".tags.rm() -command! GoTagClear :lua require"gopher".tags.clear() -command! GoTestAdd :lua require"gopher".test.add() -command! GoTestsAll :lua require"gopher".test.all() -command! GoTestsExp :lua require"gopher".test.exported() -command! -nargs=* GoMod :lua require"gopher".mod() -command! -nargs=* GoGet :lua require"gopher".get() -command! -nargs=* GoWork :lua require"gopher".work() -command! -nargs=* GoImpl :lua require"gopher".impl() -command! -nargs=* GoGenerate :lua require"gopher".generate() -command! GoCmt :lua require"gopher".comment() -command! GoIfErr :lua require"gopher".iferr() -command! GoInstallDeps :lua require"gopher".install_deps() -command! GoInstallDepsSync :lua require"gopher".install_deps({ sync = true }) -command! GopherLog :lua vim.cmd("tabnew " .. require("gopher._utils.log").get_outfile())