docs: write some more

This commit is contained in:
Smirnov Oleksandr 2024-02-28 21:24:07 +02:00
parent 1a5d420162
commit 55a7307b78
2 changed files with 110 additions and 2 deletions

84
doc/gopher.nvim.txt Normal file
View file

@ -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:

View file

@ -1,6 +1,13 @@
---@type gopher.Config ---@toc_entry Configuration
local config = {} ---@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 ---@alias gopher.ConfigGoTagTransform
---| "snakecase" "GopherUser" -> "gopher_user" ---| "snakecase" "GopherUser" -> "gopher_user"
---| "camelcase" "GopherUser" -> "gopherUser" ---| "camelcase" "GopherUser" -> "gopherUser"
@ -9,8 +16,15 @@ local config = {}
---| "titlecase" "GopherUser" -> "Gopher User" ---| "titlecase" "GopherUser" -> "Gopher User"
---| "keep" keeps the original field name ---| "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 ---@class gopher.Config
--minidoc_replace_start {
local default_config = { local default_config = {
--minidoc_replace_end
-- user specified paths to binaries
---@class gopher.ConfigCommand ---@class gopher.ConfigCommand
commands = { commands = {
go = "go", go = "go",
@ -38,10 +52,20 @@ local default_config = {
transform = "snakecase", transform = "snakecase",
}, },
} }
--minidoc_afterlines_end
---@type gopher.Config ---@type gopher.Config
---@private
local _config = default_config 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 ---@param user_config? gopher.Config
function config.setup(user_config) function config.setup(user_config)
_config = vim.tbl_deep_extend("force", default_config, user_config or {}) _config = vim.tbl_deep_extend("force", default_config, user_config or {})