aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/spf13
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/spf13')
-rw-r--r--vendor/github.com/spf13/cobra/zsh_completions.go17
1 files changed, 13 insertions, 4 deletions
diff --git a/vendor/github.com/spf13/cobra/zsh_completions.go b/vendor/github.com/spf13/cobra/zsh_completions.go
index 889c22e2..e76d6071 100644
--- a/vendor/github.com/spf13/cobra/zsh_completions.go
+++ b/vendor/github.com/spf13/cobra/zsh_completions.go
@@ -5,6 +5,7 @@ import (
"fmt"
"io"
"os"
+ "sort"
"strings"
)
@@ -81,16 +82,24 @@ func writeLevel(w io.Writer, root *Command, i int) {
commands := filterByLevel(root, i)
byParent := groupByParent(commands)
- for p, c := range byParent {
- names := names(c)
- fmt.Fprintf(w, " %s)\n", p)
+ // sort the parents to keep a determinist order
+ parents := make([]string, len(byParent))
+ j := 0
+ for parent := range byParent {
+ parents[j] = parent
+ j++
+ }
+ sort.StringSlice(parents).Sort()
+
+ for _, parent := range parents {
+ names := names(byParent[parent])
+ fmt.Fprintf(w, " %s)\n", parent)
fmt.Fprintf(w, " _arguments '%d: :(%s)'\n", i, strings.Join(names, " "))
fmt.Fprintln(w, " ;;")
}
fmt.Fprintln(w, " *)")
fmt.Fprintln(w, " _arguments '*: :_files'")
fmt.Fprintln(w, " ;;")
-
}
func filterByLevel(c *Command, l int) []*Command {