7df7d5b4f1961083c425c4bfcacc4cf995e6bfb0

Author
CGenie <cgenie@pm.me>
Committer
GitHub <noreply@github.com>
Date

Message

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

Co-authored-by: Marc Cornellà <hello@mcornella.com>

Diff

 1diff --git a/plugins/fossil/_fossil b/plugins/fossil/_fossil
 2new file mode 100644
 3index 0000000000000000000000000000000000000000..d2d48bdec82e25a848383f761f6a03f8ffe67549
 4--- /dev/null
 5+++ b/plugins/fossil/_fossil
 6@@ -0,0 +1,32 @@
 7+#compdef fossil
 8+
 9+function _fossil_get_command_list () {
10+  fossil help -a | grep -v "Usage|Common|This is"
11+}
12+
13+function _fossil () {
14+  local context state state_descr line
15+  typeset -A opt_args
16+
17+  _arguments \
18+    '1: :->command'\
19+    '2: :->subcommand'
20+
21+  case $state in
22+    command)
23+      local _OUTPUT=$(fossil branch 2>&1 | grep "use --repo")
24+      if [[ -z "$_OUTPUT" ]]; then
25+        compadd "$(_fossil_get_command_list)"
26+      else
27+        compadd clone init import help version
28+      fi ;;
29+    subcommand)
30+      case "$words[2]" in
31+      help) compadd "$(_fossil_get_command_list)" ;;
32+      add) compadd "$(fossil extra)" ;;
33+      *) compcall -D ;;
34+      esac ;;
35+  esac
36+}
37+
38+_fossil "$@"
39diff --git a/plugins/fossil/fossil.plugin.zsh b/plugins/fossil/fossil.plugin.zsh
40index 25a8d121da17cf03bfabcb5c8ae2fb47c697e977..dfad73d36e74258cf4dd2d6661420d667416da18 100644
41--- a/plugins/fossil/fossil.plugin.zsh
42+++ b/plugins/fossil/fossil.plugin.zsh
43@@ -12,7 +12,7 @@ ZSH_THEME_FOSSIL_PROMPT_DIRTY=" %{$fg_bold[red]%}✖"
44 # Text to display if the branch is clean
45 ZSH_THEME_FOSSIL_PROMPT_CLEAN=" %{$fg_bold[green]%}✔"
46 
47-function fossil_prompt_info () {
48+function fossil_prompt_info() {
49   local _OUTPUT=`fossil branch 2>&1`
50   local _STATUS=`echo $_OUTPUT | grep "use --repo"`
51   if [ "$_STATUS" = "" ]; then
52@@ -32,37 +32,6 @@ function fossil_prompt_info () {
53   fi
54 }
55 
56-function _fossil_get_command_list () {
57-  fossil help -a | grep -v "Usage|Common|This is"
58-}
59-
60-function _fossil () {
61-  local context state state_descr line
62-  typeset -A opt_args
63-
64-  _arguments \
65-    '1: :->command'\
66-    '2: :->subcommand'
67-
68-  case $state in
69-    command)
70-      local _OUTPUT=`fossil branch 2>&1 | grep "use --repo"`
71-      if [ "$_OUTPUT" = "" ]; then
72-        compadd `_fossil_get_command_list`
73-      else
74-        compadd clone init import help version
75-      fi
76-      ;;
77-    subcommand)
78-      if [ "$words[2]" = "help" ]; then
79-        compadd `_fossil_get_command_list`
80-      else
81-        compcall -D
82-      fi
83-    ;;
84-  esac
85-}
86-
87 function _fossil_prompt () {
88   local current=`echo $PROMPT $RPROMPT | grep fossil`
89 
90@@ -82,8 +51,5 @@ function _fossil_prompt () {
91   fi
92 }
93 
94-compdef _fossil fossil
95-
96 autoload -U add-zsh-hook
97-
98 add-zsh-hook precmd _fossil_prompt