refactor/comamnds dont require .setup (#101)
* refactor(commands)!: change the way of disabling commands BREAKING CHANGE: not it does not require calling .setup() * docs: update docs
This commit is contained in:
parent
ab68a58b34
commit
7ebe190c96
6 changed files with 101 additions and 103 deletions
|
|
@ -11,6 +11,7 @@ Table of Contents
|
||||||
Setup....................................................|gopher.nvim-setup|
|
Setup....................................................|gopher.nvim-setup|
|
||||||
Install dependencies..............................|gopher.nvim-install-deps|
|
Install dependencies..............................|gopher.nvim-install-deps|
|
||||||
Configuration...........................................|gopher.nvim-config|
|
Configuration...........................................|gopher.nvim-config|
|
||||||
|
Commands..............................................|gopher.nvim-commands|
|
||||||
Modify struct tags.................................|gopher.nvim-struct-tags|
|
Modify struct tags.................................|gopher.nvim-struct-tags|
|
||||||
Auto implementation of interface methods..................|gopher.nvim-impl|
|
Auto implementation of interface methods..................|gopher.nvim-impl|
|
||||||
Generating unit tests boilerplate......................|gopher.nvim-gotests|
|
Generating unit tests boilerplate......................|gopher.nvim-gotests|
|
||||||
|
|
@ -36,7 +37,8 @@ Parameters ~
|
||||||
Gopher.nvim implements most of its features using third-party tools.
|
Gopher.nvim implements most of its features using third-party tools.
|
||||||
To install these tools, you can run `:GoInstallDeps` command
|
To install these tools, you can run `:GoInstallDeps` command
|
||||||
or call `require("gopher").install_deps()` if you want to use lua api.
|
or call `require("gopher").install_deps()` if you want to use lua api.
|
||||||
By default dependencies will be installed asynchronously, to install them synchronously pass `{sync = true}` as an argument.
|
By default dependencies will be installed asynchronously,
|
||||||
|
to install them synchronously pass `{sync = true}` as an argument.
|
||||||
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
@ -61,10 +63,6 @@ You can look at default options |gopher.nvim-config-defaults|
|
||||||
---@type number
|
---@type number
|
||||||
timeout = 2000,
|
timeout = 2000,
|
||||||
|
|
||||||
--- whether to setup plugin commands or not
|
|
||||||
---@type boolean
|
|
||||||
setup_commands = true,
|
|
||||||
|
|
||||||
-- user specified paths to binaries
|
-- user specified paths to binaries
|
||||||
---@class gopher.ConfigCommand
|
---@class gopher.ConfigCommand
|
||||||
commands = {
|
commands = {
|
||||||
|
|
@ -103,6 +101,14 @@ Class ~
|
||||||
{gopher.Config}
|
{gopher.Config}
|
||||||
|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
*gopher.nvim-commands*
|
||||||
|
|
||||||
|
If don't want to automatically register plugins' commands,
|
||||||
|
you can set `vim.g.gopher_register_commands` to `false`, before loading the plugin.
|
||||||
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
*gopher.nvim-struct-tags*
|
*gopher.nvim-struct-tags*
|
||||||
|
|
|
||||||
|
|
@ -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
|
---@type number
|
||||||
timeout = 2000,
|
timeout = 2000,
|
||||||
|
|
||||||
--- whether to setup plugin commands or not
|
|
||||||
---@type boolean
|
|
||||||
setup_commands = true,
|
|
||||||
|
|
||||||
-- user specified paths to binaries
|
-- user specified paths to binaries
|
||||||
---@class gopher.ConfigCommand
|
---@class gopher.ConfigCommand
|
||||||
commands = {
|
commands = {
|
||||||
|
|
@ -97,7 +93,6 @@ function config.setup(user_config)
|
||||||
vim.validate {
|
vim.validate {
|
||||||
log_level = { _config.log_level, "number" },
|
log_level = { _config.log_level, "number" },
|
||||||
timeout = { _config.timeout, "number" },
|
timeout = { _config.timeout, "number" },
|
||||||
setup_commands = { _config.setup_commands, "boolean" },
|
|
||||||
["commands"] = { _config.commands, "table" },
|
["commands"] = { _config.commands, "table" },
|
||||||
["commands.go"] = { _config.commands.go, "string" },
|
["commands.go"] = { _config.commands.go, "string" },
|
||||||
["commands.gomodifytags"] = { _config.commands.gomodifytags, "string" },
|
["commands.gomodifytags"] = { _config.commands.gomodifytags, "string" },
|
||||||
|
|
@ -114,16 +109,6 @@ function config.setup(user_config)
|
||||||
["iferr"] = { _config.iferr, "table" },
|
["iferr"] = { _config.iferr, "table" },
|
||||||
["iferr.message"] = { _config.iferr.message, "string", true },
|
["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
|
end
|
||||||
|
|
||||||
setmetatable(config, {
|
setmetatable(config, {
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,8 @@ end
|
||||||
---@text Gopher.nvim implements most of its features using third-party tools.
|
---@text Gopher.nvim implements most of its features using third-party tools.
|
||||||
--- To install these tools, you can run `:GoInstallDeps` command
|
--- To install these tools, you can run `:GoInstallDeps` command
|
||||||
--- or call `require("gopher").install_deps()` if you want to use lua api.
|
--- or call `require("gopher").install_deps()` if you want to use lua api.
|
||||||
--- By default dependencies will be installed asynchronously, to install them synchronously pass `{sync = true}` as an argument.
|
--- By default dependencies will be installed asynchronously,
|
||||||
|
--- to install them synchronously pass `{sync = true}` as an argument.
|
||||||
gopher.install_deps = require("gopher.installer").install_deps
|
gopher.install_deps = require("gopher.installer").install_deps
|
||||||
|
|
||||||
gopher.impl = require("gopher.impl").impl
|
gopher.impl = require("gopher.impl").impl
|
||||||
|
|
|
||||||
87
plugin/gopher.lua
Normal file
87
plugin/gopher.lua
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
---@toc_entry Commands
|
||||||
|
---@tag gopher.nvim-commands
|
||||||
|
---@text
|
||||||
|
--- If don't want to automatically register plugins' commands,
|
||||||
|
--- you can set `vim.g.gopher_register_commands` to `false`, before loading the plugin.
|
||||||
|
|
||||||
|
if vim.g.gopher_register_commands == false then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param name string
|
||||||
|
---@param fn fun(args: table)
|
||||||
|
---@param nargs? number|"*"|"?"
|
||||||
|
---@private
|
||||||
|
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, "?")
|
||||||
|
|
@ -10,6 +10,7 @@ end
|
||||||
local files = {
|
local files = {
|
||||||
"lua/gopher/init.lua",
|
"lua/gopher/init.lua",
|
||||||
"lua/gopher/config.lua",
|
"lua/gopher/config.lua",
|
||||||
|
"plugin/gopher.lua",
|
||||||
"lua/gopher/struct_tags.lua",
|
"lua/gopher/struct_tags.lua",
|
||||||
"lua/gopher/impl.lua",
|
"lua/gopher/impl.lua",
|
||||||
"lua/gopher/gotests.lua",
|
"lua/gopher/gotests.lua",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue