Browse Source

feat(fossil): add completion for `fossil add` (#8564)

Co-authored-by: Marc Cornellà <hello@mcornella.com>
CGenie 2 years ago
parent
commit
7df7d5b4f1
2 changed files with 33 additions and 35 deletions
  1. 32 0
      plugins/fossil/_fossil
  2. 1 35
      plugins/fossil/fossil.plugin.zsh

+ 32 - 0
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 "$@"

+ 1 - 35
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