Files
oh-my-zsh/templates/generators/plugin/plugin-generic.zsh-template
T
Robby RussellandClaude Fable 5.1 46aee25f27 feat(cli): add omz generate plugin to scaffold custom plugins
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>
2026-09-05 14:28:32 -07:00

49 lines
1.2 KiB
Plaintext

# %name% plugin
#
# %description%
#
# This file is sourced by Oh My Zsh in every new shell, so keep it fast.
# Avoid running external commands at the top level unless you really need to.
#
# Wrapping a command-line tool? Guard everything so people who don't have it
# installed don't end up with broken aliases:
#
# if (( ! $+commands[sometool] )); then
# return
# fi
#
# Aliases
#
# Document every alias in README.md. Short, obvious, and few beats many.
#
# alias %name%='echo "hello from %name%"'
#
# Functions
#
# Anything that needs arguments in the middle, or more than one command,
# belongs here rather than in an alias.
#
# function %name%_hello() {
# echo "hello, ${1:-world}"
# }
#
# Completion
#
# Oh My Zsh adds this directory to $fpath, so a file named `_sometool` next to
# this one is picked up automatically as the completion for `sometool`.
#
#
# Need the path to this plugin's own directory (for data files, a lib/ dir...)?
# This is the standard way to get it, since $0 is not reliable on its own:
# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html
#
# 0="${ZERO:-${${0:#$ZSH_ARGZERO}:-${(%):-%N}}}"
# 0="${${(M)0:#/*}:-$PWD/$0}"
# source "${0:A:h}/lib/helpers.zsh"