mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-02-13 03:01:32 +01:00
added completion to omz function
This commit is contained in:
parent
1cbc4949ac
commit
3ba05d9c35
2 changed files with 147 additions and 0 deletions
146
plugins/oh-my-zsh-bootstrap/_omz
Normal file
146
plugins/oh-my-zsh-bootstrap/_omz
Normal file
|
|
@ -0,0 +1,146 @@
|
||||||
|
#compdef omz
|
||||||
|
|
||||||
|
# Completion for the omz-plugin command
|
||||||
|
# Author: github.com/ncanceill
|
||||||
|
|
||||||
|
_omz () {
|
||||||
|
local curcontext=$curcontext state line
|
||||||
|
declare -A opt_args
|
||||||
|
_arguments -C \
|
||||||
|
':command:->command' \
|
||||||
|
'*::options:->options' && ret=0
|
||||||
|
case $state in
|
||||||
|
(command)
|
||||||
|
declare -a commands
|
||||||
|
commands=(
|
||||||
|
'plugin:manage plugins'
|
||||||
|
'theme:manage themes'
|
||||||
|
)
|
||||||
|
_describe -t commands 'command' commands && ret=0
|
||||||
|
;;
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
(plugin)
|
||||||
|
_omz-plugin && ret=0
|
||||||
|
;;
|
||||||
|
(theme)
|
||||||
|
_omz-theme && ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
_omz-plugin () {
|
||||||
|
local curcontext=$curcontext state line
|
||||||
|
declare -A opt_args
|
||||||
|
_arguments -C \
|
||||||
|
':command:->command' \
|
||||||
|
'*::options:->options' && ret=0
|
||||||
|
case $state in
|
||||||
|
(command)
|
||||||
|
declare -a commands
|
||||||
|
commands=(
|
||||||
|
'ls:list available plugins'
|
||||||
|
'on:enable a plugin'
|
||||||
|
'off:disable a plugin'
|
||||||
|
'up:update a plugin'
|
||||||
|
'get:download and enable a plugin'
|
||||||
|
)
|
||||||
|
_describe -t commands 'sub-command' commands && ret=0
|
||||||
|
;;
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
(on)
|
||||||
|
_plugins_off && ret=0
|
||||||
|
;;
|
||||||
|
(off)
|
||||||
|
_plugins_on && ret=0
|
||||||
|
;;
|
||||||
|
(up)
|
||||||
|
_plugins && ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
_plugins () {
|
||||||
|
declare -a plugins
|
||||||
|
plugins=()
|
||||||
|
for plugin ($ZSH/plugins/* $ZSH_CUSTOM/plugins/*(N)); do
|
||||||
|
plugins+=$plugin:t:r
|
||||||
|
done
|
||||||
|
_describe -t plugins 'plugin' plugins && return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
_plugins_on () {
|
||||||
|
declare -a plugins_on
|
||||||
|
plugins_on=()
|
||||||
|
for plugin ($ZSH/plugins/* $ZSH_CUSTOM/plugins/*(N)); do
|
||||||
|
local plugin_name=$plugin:t:r
|
||||||
|
_map_exists plugins $plugin_name
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
plugins_on+=$plugin_name
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
_describe -t plugins_on 'plugin' plugins_on && return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
_plugins_off () {
|
||||||
|
declare -a plugins_off
|
||||||
|
plugins_off=()
|
||||||
|
for plugin ($ZSH/plugins/* $ZSH_CUSTOM/plugins/*(N)); do
|
||||||
|
local plugin_name=$plugin:t:r
|
||||||
|
_map_exists plugins $plugin_name
|
||||||
|
if [[ $? -ne 0 ]]; then
|
||||||
|
plugins_off+=$plugin_name
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
_describe -t plugins_off 'plugin' plugins_off && return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
_omz-theme () {
|
||||||
|
local curcontext=$curcontext state line
|
||||||
|
declare -A opt_args
|
||||||
|
_arguments -C \
|
||||||
|
':command:->command' \
|
||||||
|
'*::options:->options' && ret=0
|
||||||
|
case $state in
|
||||||
|
(command)
|
||||||
|
declare -a commands
|
||||||
|
commands=(
|
||||||
|
'ls:list available themes'
|
||||||
|
'set:set a theme'
|
||||||
|
'up:update a theme'
|
||||||
|
'get:download and enable a theme'
|
||||||
|
)
|
||||||
|
_describe -t commands 'sub-command' commands && ret=0
|
||||||
|
;;
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
(set)
|
||||||
|
_arguments \
|
||||||
|
':theme:_themes' && ret=0
|
||||||
|
;;
|
||||||
|
(up)
|
||||||
|
_arguments \
|
||||||
|
':theme:_themes' && ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
_themes () {
|
||||||
|
declare -a themes
|
||||||
|
themes=()
|
||||||
|
for theme ($ZSH/themes/*zsh-theme $ZSH_CUSTOM/*zsh-theme(N)); do
|
||||||
|
themes+=$theme:t:r
|
||||||
|
done
|
||||||
|
_describe -t themes 'theme' themes && return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -84,3 +84,4 @@ omz () {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
compdef _omz omz
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue