| name | nvim-doc |
| description | Write, update, and improve love2d.nvim help documentation (vimdoc) in doc/love2d.txt. Use when the user asks to write docs, update docs, generate the help file, add documentation for a function, or mentions vimdoc, help tags, or plugin documentation. Reads the plugin source code to extract API, commands, configuration, and other info from LuaCATS annotations and code structure, then writes a properly formatted doc/love2d.txt following vimdoc conventions. Do not use for general Neovim :help lookups (use nvim-help skill) or for writing README.md, CHANGELOG.md, or other non-vimdoc documentation.
|
| allowed-tools | Bash read edit write |
love2d.nvim Documentation (vimdoc)
This skill writes and updates love2d.nvim help documentation. The output is
doc/love2d.txt — a plain text file that integrates with Neovim's :help
system using the vimdoc format.
Vimdoc format rules
General
- Text width: 78 characters (set by modeline
tw=78)
- Section separators: exactly 80
= characters
- Tags:
*like-this* — lowercase, hyphens for sections
- Cross-references:
|like-this|
- Indentation within sections and code blocks: 2 spaces
- File must end with:
vim:tw=78:ts=8:et:ft=help:norl:
Section headers
Title in UPPERCASE left-aligned, tag right-aligned, total width 80 chars:
INTRODUCTION *love2d*
SETUP *love2d-setup*
COMMANDS *love2d-commands*
Tags
- Sections:
*love2d-section-name* (lowercase, hyphens)
- Functions:
*love2d.function()* (includes parens)
Function tags on a separate line ABOVE the signature, right-aligned:
*love2d.setup()*
love2d.setup({opts}) ~
Configure the plugin.
Code blocks
Delimited by > (with filetype) and <:
>lua
require("love2d").setup({
path_to_love_bin = "love",
})
<
Configuration docs
Show setup() signature, then code block with ALL default options:
>lua
{
path_to_love_bin = "love", -- Path to LÖVE binary (string, default: "love")
output = nil, -- Output panel: nil (default), false (disable), or table (window config)
}
<
Read the actual config module (lua/love2d/config.lua) to get real defaults.
Command docs
:Love run ~
Run the detected LÖVE project once.
:Love watch ~
Run with auto-restart on save (debounced 300ms).
:Love stop ~
Stop the running LÖVE project and/or watch mode.
:Love info ~
Show info about the current LÖVE project and job state.
:Love output ~
Toggle the floating output panel.
Workflow
Step 1 — Read the source code
Read plugin source to extract everything needing documentation. Priority order:
lua/love2d/init.lua — Main module, setup() dispatcher
lua/love2d/config.lua — Default options
lua/love2d/job.lua — Job lifecycle (run/watch/stop/info)
lua/love2d/output.lua — Output panel
lua/love2d/lsp.lua — Dynamic LSP integration
lua/love2d/events.lua — Project detection events
lua/love2d/autocmd.lua — Enter/leave handlers
lua/love2d/health.lua — Health checks
lua/love2d/types.lua — LuaCATS type definitions
plugin/love2d.lua — :Love user command
compiler/love.lua — Compiler plugin (makeprg + errorformat)
README.md — Description (don't copy verbatim)
What to extract:
- setup() and config defaults: options, types, defaults, descriptions
- Exported functions: name, params, return type, behavior
- User commands: name, arguments, completion
- Autocmds: events listened to or fired
Step 2 — Read existing docs (if updating)
Read doc/love2d.txt fully before editing. When updating, the goal is
minimal changes — only touch what's stale or missing.
- Preserve existing tag names — renaming breaks bookmarks
- Preserve section structure — never remove sections
- Preserve narrative text — explanatory paragraphs help readers
- Update stale descriptions — match current code behavior
- Add missing docs — new functions, options, commands
Step 3 — Write the help file
Follow the format rules above. Canonical section order for love2d.nvim:
- INTRODUCTION —
*love2d* — Description, table of contents
- SETUP —
*love2d-setup* — Installation and setup()
- COMMANDS —
*love2d-commands* — :Love subcommands (run, watch, stop, info, output)
- LSP —
*love2d-lsp* — LSP integration details
- GLSL —
*love2d-glsl* — Treesitter injection support
- TROUBLESHOOTING —
*love2d-troubleshooting* — Common issues (optional)
Step 4 — Validate
grep -oP '\|[^|]+\|' doc/love2d.txt | tr -d '|' | sort -u | while read tag; do
if ! grep -q "\*${tag}\*" doc/love2d.txt; then
echo "BROKEN REFERENCE: |$tag|"
fi
done
awk 'length > 78 && !/^\s*$/ { print NR": "length" chars: "$0 }' doc/love2d.txt
echo "Open: $(grep -c '^>' doc/love2d.txt) Close: $(grep -c '^<' doc/love2d.txt)"