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