diff --git a/help.go b/help.go index 62c4496..cfc5129 100644 --- a/help.go +++ b/help.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "strings" "go.fifitido.net/cmd/opt" ) @@ -43,8 +44,10 @@ func (c *Command) ShowHelp() { fmt.Println("Available subcommands:") } + paddedWidth := c.Subcommands.MaxWidth() for _, s := range c.Subcommands { - fmt.Println(" " + s.Name + " " + s.ShortDescription) + spaceSize := 2 + paddedWidth - len(s.Name) + fmt.Println(" " + s.Name + strings.Repeat(" ", spaceSize) + s.ShortDescription) } } diff --git a/set.go b/set.go index 8e756ea..e3e9557 100644 --- a/set.go +++ b/set.go @@ -25,7 +25,7 @@ func (s Set) Get(name string) (*Command, bool) { return nil, false } -func (s Set) MaxNameWidth() int { +func (s Set) MaxWidth() int { max := 0 for _, f := range s { if w := len(f.Name); w > max {