refactor(commands)!: change the way of disabling commands
BREAKING CHANGE: not it does not require calling .setup()
This commit is contained in:
parent
7ab717e981
commit
62989c535e
4 changed files with 80 additions and 101 deletions
|
|
@ -61,10 +61,6 @@ You can look at default options |gopher.nvim-config-defaults|
|
|||
---@type number
|
||||
timeout = 2000,
|
||||
|
||||
--- whether to setup plugin commands or not
|
||||
---@type boolean
|
||||
setup_commands = true,
|
||||
|
||||
-- user specified paths to binaries
|
||||
---@class gopher.ConfigCommand
|
||||
commands = {
|
||||
|
|
|
|||
|
|
@ -1,82 +0,0 @@
|
|||
local commands = {}
|
||||
|
||||
---@param name string
|
||||
---@param fn fun(args: table)
|
||||
---@param nargs? number|"*"|"?"
|
||||
local function cmd(name, fn, nargs)
|
||||
nargs = nargs or 0
|
||||
vim.api.nvim_create_user_command(name, fn, { nargs = nargs })
|
||||
end
|
||||
|
||||
function commands.register()
|
||||
cmd("GopherLog", function()
|
||||
vim.cmd("tabnew " .. require("gopher._utils.log").get_outfile())
|
||||
end)
|
||||
|
||||
cmd("GoIfErr", function()
|
||||
require("gopher").iferr()
|
||||
end)
|
||||
|
||||
cmd("GoCmt", function()
|
||||
require("gopher").comment()
|
||||
end)
|
||||
|
||||
cmd("GoImpl", function(args)
|
||||
require("gopher").impl(unpack(args.fargs))
|
||||
end, "*")
|
||||
|
||||
-- :GoInstall
|
||||
cmd("GoInstallDeps", function()
|
||||
require("gopher").install_deps()
|
||||
end)
|
||||
|
||||
cmd("GoInstallDepsSync", function()
|
||||
require("gopher").install_deps { sync = true }
|
||||
end)
|
||||
|
||||
--- :GoTag
|
||||
cmd("GoTagAdd", function(opts)
|
||||
require("gopher").tags.add(unpack(opts.fargs))
|
||||
end, "*")
|
||||
|
||||
cmd("GoTagRm", function(opts)
|
||||
require("gopher").tags.rm(unpack(opts.fargs))
|
||||
end, "*")
|
||||
|
||||
cmd("GoTagClear", function()
|
||||
require("gopher").tags.clear()
|
||||
end)
|
||||
|
||||
--- :GoTest
|
||||
cmd("GoTestAdd", function()
|
||||
require("gopher").test.add()
|
||||
end)
|
||||
|
||||
cmd("GoTestsAll", function()
|
||||
require("gopher").test.all()
|
||||
end)
|
||||
|
||||
cmd("GoTestsExp", function()
|
||||
require("gopher").test.exported()
|
||||
end)
|
||||
|
||||
-- :Go
|
||||
cmd("GoMod", function(opts)
|
||||
require("gopher").mod(opts.fargs)
|
||||
end, "*")
|
||||
|
||||
cmd("GoGet", function(opts)
|
||||
vim.print(opts)
|
||||
require("gopher").get(opts.fargs)
|
||||
end, "*")
|
||||
|
||||
cmd("GoWork", function(opts)
|
||||
require("gopher").get(opts.fargs)
|
||||
end, "*")
|
||||
|
||||
cmd("GoGenerate", function(opts)
|
||||
require("gopher").generate(opts.fargs or "")
|
||||
end, "?")
|
||||
end
|
||||
|
||||
return commands
|
||||
|
|
@ -37,10 +37,6 @@ local default_config = {
|
|||
---@type number
|
||||
timeout = 2000,
|
||||
|
||||
--- whether to setup plugin commands or not
|
||||
---@type boolean
|
||||
setup_commands = true,
|
||||
|
||||
-- user specified paths to binaries
|
||||
---@class gopher.ConfigCommand
|
||||
commands = {
|
||||
|
|
@ -97,7 +93,6 @@ function config.setup(user_config)
|
|||
vim.validate {
|
||||
log_level = { _config.log_level, "number" },
|
||||
timeout = { _config.timeout, "number" },
|
||||
setup_commands = { _config.setup_commands, "boolean" },
|
||||
["commands"] = { _config.commands, "table" },
|
||||
["commands.go"] = { _config.commands.go, "string" },
|
||||
["commands.gomodifytags"] = { _config.commands.gomodifytags, "string" },
|
||||
|
|
@ -114,16 +109,6 @@ function config.setup(user_config)
|
|||
["iferr"] = { _config.iferr, "table" },
|
||||
["iferr.message"] = { _config.iferr.message, "string", true },
|
||||
}
|
||||
|
||||
if _config.setup_commands then
|
||||
require("gopher.commands").register()
|
||||
end
|
||||
end
|
||||
|
||||
---@return boolean
|
||||
---@private
|
||||
function config.should_setup_commands()
|
||||
return config.setup_commands
|
||||
end
|
||||
|
||||
setmetatable(config, {
|
||||
|
|
|
|||
80
plugin/gopher.lua
Normal file
80
plugin/gopher.lua
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
if vim.g.gopher_register_commands == false then
|
||||
return
|
||||
end
|
||||
|
||||
---@param name string
|
||||
---@param fn fun(args: table)
|
||||
---@param nargs? number|"*"|"?"
|
||||
local function cmd(name, fn, nargs)
|
||||
nargs = nargs or 0
|
||||
vim.api.nvim_create_user_command(name, fn, { nargs = nargs })
|
||||
end
|
||||
|
||||
cmd("GopherLog", function()
|
||||
vim.cmd("tabnew " .. require("gopher._utils.log").get_outfile())
|
||||
end)
|
||||
|
||||
cmd("GoIfErr", function()
|
||||
require("gopher").iferr()
|
||||
end)
|
||||
|
||||
cmd("GoCmt", function()
|
||||
require("gopher").comment()
|
||||
end)
|
||||
|
||||
cmd("GoImpl", function(args)
|
||||
require("gopher").impl(unpack(args.fargs))
|
||||
end, "*")
|
||||
|
||||
-- :GoInstall
|
||||
cmd("GoInstallDeps", function()
|
||||
require("gopher").install_deps()
|
||||
end)
|
||||
|
||||
cmd("GoInstallDepsSync", function()
|
||||
require("gopher").install_deps { sync = true }
|
||||
end)
|
||||
|
||||
--- :GoTag
|
||||
cmd("GoTagAdd", function(opts)
|
||||
require("gopher").tags.add(unpack(opts.fargs))
|
||||
end, "*")
|
||||
|
||||
cmd("GoTagRm", function(opts)
|
||||
require("gopher").tags.rm(unpack(opts.fargs))
|
||||
end, "*")
|
||||
|
||||
cmd("GoTagClear", function()
|
||||
require("gopher").tags.clear()
|
||||
end)
|
||||
|
||||
--- :GoTest
|
||||
cmd("GoTestAdd", function()
|
||||
require("gopher").test.add()
|
||||
end)
|
||||
|
||||
cmd("GoTestsAll", function()
|
||||
require("gopher").test.all()
|
||||
end)
|
||||
|
||||
cmd("GoTestsExp", function()
|
||||
require("gopher").test.exported()
|
||||
end)
|
||||
|
||||
-- :Go
|
||||
cmd("GoMod", function(opts)
|
||||
require("gopher").mod(opts.fargs)
|
||||
end, "*")
|
||||
|
||||
cmd("GoGet", function(opts)
|
||||
vim.print(opts)
|
||||
require("gopher").get(opts.fargs)
|
||||
end, "*")
|
||||
|
||||
cmd("GoWork", function(opts)
|
||||
require("gopher").get(opts.fargs)
|
||||
end, "*")
|
||||
|
||||
cmd("GoGenerate", function(opts)
|
||||
require("gopher").generate(opts.fargs or "")
|
||||
end, "?")
|
||||
Loading…
Add table
Add a link
Reference in a new issue