diff --git a/doc/gopher.nvim.txt b/doc/gopher.nvim.txt new file mode 100644 index 0000000..74a1b0b --- /dev/null +++ b/doc/gopher.nvim.txt @@ -0,0 +1,84 @@ +*gopher.nvim* + +============================================================================== + +gopher.nvim is a minimalistic plugin for Go development in Neovim written in Lua. +It's not an LSP tool, the main goal of this plugin is add go tooling support in Neovim. + +------------------------------------------------------------------------------ + *gopher.nvim-table-of-contents* +Table of Contents + Configuration...........................................|gopher.nvim-config| + Setup....................................................|gopher.nvim-setup| + + +============================================================================== +------------------------------------------------------------------------------ + *gopher.nvim-config* + +------------------------------------------------------------------------------ +Type ~ +gopher.Config + +------------------------------------------------------------------------------ + *gopher.nvim-config.ConfigGoTagTransform* +Possible values for |gopher.Config|.gotag.transform: +"snakecase" "GopherUser" -> "gopher_user" +"camelcase" "GopherUser" -> "gopherUser" +"lispcase" "GopherUser" -> "gopher-user" +"pascalcase" "GopherUser" -> "GopherUser" +"titlecase" "GopherUser" -> "Gopher User" +"keep" keeps the original field name + +------------------------------------------------------------------------------ + *gopher.nvim-config-defaults* +Default values: +>lua + { + -- user specified paths to binaries + ---@class gopher.ConfigCommand + commands = { + go = "go", + gomodifytags = "gomodifytags", + gotests = "gotests", + impl = "impl", + iferr = "iferr", + dlv = "dlv", + }, + ---@class gopher.ConfigGotests + gotests = { + -- gotests doesn't have template named "default" so this plugin uses "default" to set the default template + template = "default", + -- path to a directory containing custom test code templates + ---@type string|nil + template_dir = nil, + -- switch table tests from using slice to map (with test name for the key) + -- works only with gotests installed from develop branch + ---@type boolean + named = false, + }, + ---@class gopher.ConfigGoTag + gotag = { + ---@type gopher.ConfigGoTagTransform + transform = "snakecase", + }, + } +< +Class ~ +{gopher.Config} + +------------------------------------------------------------------------------ + *gopher.nvim-setup* + `config.setup`({user_config}) +Setup function. This method simply merges default configs with opts table. +You can read more about configuration at |gopher.nvim-config| +Calling this function is optional, if you ok with default settings. Look |gopher.nvim.config-defaults| + +Usage ~ +`require("gopher").setup {}` (replace `{}` with your `config` table) + +Parameters ~ +{user_config} `(optional)` gopher.Config + + + vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/lua/gopher/config.lua b/lua/gopher/config.lua index fca13a7..e6e25b7 100644 --- a/lua/gopher/config.lua +++ b/lua/gopher/config.lua @@ -1,6 +1,13 @@ ----@type gopher.Config -local config = {} +---@toc_entry Configuration +---@tag gopher.nvim-config +---@type gopher.Config +--minidoc_replace_start +local config = {} +--minidoc_replace_end + +---@tag gopher.nvim-config.ConfigGoTagTransform +---@text Possible values for |gopher.Config|.gotag.transform: ---@alias gopher.ConfigGoTagTransform ---| "snakecase" "GopherUser" -> "gopher_user" ---| "camelcase" "GopherUser" -> "gopherUser" @@ -9,8 +16,15 @@ local config = {} ---| "titlecase" "GopherUser" -> "Gopher User" ---| "keep" keeps the original field name +---@tag gopher.nvim-config-defaults +---@text Default values: +---@eval return MiniDoc.afterlines_to_code(MiniDoc.current.eval_section):gsub(">", ">lua") +--- ---@class gopher.Config +--minidoc_replace_start { local default_config = { + --minidoc_replace_end + -- user specified paths to binaries ---@class gopher.ConfigCommand commands = { go = "go", @@ -38,10 +52,20 @@ local default_config = { transform = "snakecase", }, } +--minidoc_afterlines_end ---@type gopher.Config +---@private local _config = default_config +---@toc_entry Setup +---@tag gopher.nvim-setup +---@text Setup function. This method simply merges default configs with opts table. +--- You can read more about configuration at |gopher.nvim-config| +--- Calling this function is optional, if you ok with default settings. Look |gopher.nvim.config-defaults| +--- +---@usage `require("gopher").setup {}` (replace `{}` with your `config` table) +--- ---@param user_config? gopher.Config function config.setup(user_config) _config = vim.tbl_deep_extend("force", default_config, user_config or {})