- Turn %placeholders% into private markers when a template is read and
strip the marker from every value, so text inserted from user input
(e.g. -d '%name%') is never rescanned as a placeholder.
- When --enable is used for a name already in $plugins (a custom
override of an enabled built-in), report it and reload instead of
failing in _omz::plugin::enable.
- Make the completion note accurate whether or not a _<cmd> file was
generated.
- Test the write-phase cleanup with a template set missing a later
template, and test that placeholder-looking values come out literally.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Adds a rails-style generator that creates a custom plugin in
$ZSH_CUSTOM/plugins/<name> from commented templates: the plugin file,
a README in the usual shape and, for plugins that wrap a command-line
tool, a completion skeleton (or the cached-completion block when the
tool generates its own). Anything not passed as an option is asked
for interactively; non-interactive shells use defaults.
`omz generate` is a new top-level command so that other generators
(e.g. `omz generate theme`) can follow the same shape.
Templates live in templates/generators/plugin and are syntax-checked
by CI. lib/tests/generate-plugin.test.zsh covers the non-interactive
path, name validation and the prompt helper.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>