mirror of
https://github.com/robbyrussell/oh-my-zsh.git
synced 2026-09-23 11:36:07 +02:00
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>
23 lines
718 B
Plaintext
23 lines
718 B
Plaintext
#
|
|
# Completion
|
|
#
|
|
# %command% generates its own zsh completion, so we cache it instead of
|
|
# maintaining a `_%command%` file by hand.
|
|
#
|
|
# On the first shell after installing this plugin the cache file doesn't exist
|
|
# yet, so compinit hasn't bound it. Do that manually here.
|
|
if [[ ! -f "$ZSH_CACHE_DIR/completions/_%command%" ]]; then
|
|
typeset -g -A _comps
|
|
autoload -Uz _%command%
|
|
_comps[%command%]=_%command%
|
|
fi
|
|
|
|
# Regenerate the cache in the background so it never blocks shell startup.
|
|
# TMPPREFIX puts the temp file next to the destination, which keeps the move
|
|
# atomic.
|
|
zmodload -F zsh/files b:zf_mv
|
|
() {
|
|
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_%command%"
|
|
zf_mv -f -- =( %compgen% ) "$TMPPREFIX"
|
|
} &|
|