diff --git a/plugins/fossil/_fossil b/plugins/fossil/_fossil new file mode 100644 index 000000000..d2d48bdec --- /dev/null +++ b/plugins/fossil/_fossil @@ -0,0 +1,32 @@ +#compdef fossil + +function _fossil_get_command_list () { + fossil help -a | grep -v "Usage|Common|This is" +} + +function _fossil () { + local context state state_descr line + typeset -A opt_args + + _arguments \ + '1: :->command'\ + '2: :->subcommand' + + case $state in + command) + local _OUTPUT=$(fossil branch 2>&1 | grep "use --repo") + if [[ -z "$_OUTPUT" ]]; then + compadd "$(_fossil_get_command_list)" + else + compadd clone init import help version + fi ;; + subcommand) + case "$words[2]" in + help) compadd "$(_fossil_get_command_list)" ;; + add) compadd "$(fossil extra)" ;; + *) compcall -D ;; + esac ;; + esac +} + +_fossil "$@" diff --git a/plugins/fossil/fossil.plugin.zsh b/plugins/fossil/fossil.plugin.zsh index 25a8d121d..dfad73d36 100644 --- a/plugins/fossil/fossil.plugin.zsh +++ b/plugins/fossil/fossil.plugin.zsh @@ -12,7 +12,7 @@ ZSH_THEME_FOSSIL_PROMPT_DIRTY=" %{$fg_bold[red]%}✖" # Text to display if the branch is clean ZSH_THEME_FOSSIL_PROMPT_CLEAN=" %{$fg_bold[green]%}✔" -function fossil_prompt_info () { +function fossil_prompt_info() { local _OUTPUT=`fossil branch 2>&1` local _STATUS=`echo $_OUTPUT | grep "use --repo"` if [ "$_STATUS" = "" ]; then @@ -32,37 +32,6 @@ function fossil_prompt_info () { fi } -function _fossil_get_command_list () { - fossil help -a | grep -v "Usage|Common|This is" -} - -function _fossil () { - local context state state_descr line - typeset -A opt_args - - _arguments \ - '1: :->command'\ - '2: :->subcommand' - - case $state in - command) - local _OUTPUT=`fossil branch 2>&1 | grep "use --repo"` - if [ "$_OUTPUT" = "" ]; then - compadd `_fossil_get_command_list` - else - compadd clone init import help version - fi - ;; - subcommand) - if [ "$words[2]" = "help" ]; then - compadd `_fossil_get_command_list` - else - compcall -D - fi - ;; - esac -} - function _fossil_prompt () { local current=`echo $PROMPT $RPROMPT | grep fossil` @@ -82,8 +51,5 @@ function _fossil_prompt () { fi } -compdef _fossil fossil - autoload -U add-zsh-hook - add-zsh-hook precmd _fossil_prompt