From f4d982d6ba173d7c55b98ec141ddb297c1ef4eb1 Mon Sep 17 00:00:00 2001 From: "m.kindritskiy" Date: Fri, 9 Jan 2026 20:04:27 +0200 Subject: [PATCH 1/2] Use slices to find max command name len --- cmd/root.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index 7fa55de..17dd9c2 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -1,7 +1,9 @@ package cmd import ( + "cmp" "fmt" + "slices" "sort" "strings" @@ -61,15 +63,10 @@ func PrintHelpMessage(cmd *cobra.Command) error { } func maxCommandNameLen(cmd *cobra.Command) int { - maxLen := 0 - - for _, c := range cmd.Commands() { - if l := len(c.Name()); l > maxLen { - maxLen = l - } - } - - return maxLen + maxCmd := slices.MaxFunc(cmd.Commands(), func(a, b *cobra.Command) int { + return cmp.Compare(len(a.Name()), len(b.Name())) + }) + return len(maxCmd.Name()) } func rpad(s string, padding int) string { From 25ad348d1a0a9101c789d2c89eb5942062572b4f Mon Sep 17 00:00:00 2001 From: "m.kindritskiy" Date: Fri, 9 Jan 2026 20:06:02 +0200 Subject: [PATCH 2/2] Add changelog entry for slices for max cmd name --- cmd/root.go | 6 +++++- docs/docs/changelog.md | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/root.go b/cmd/root.go index 17dd9c2..97f9062 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -63,7 +63,11 @@ func PrintHelpMessage(cmd *cobra.Command) error { } func maxCommandNameLen(cmd *cobra.Command) int { - maxCmd := slices.MaxFunc(cmd.Commands(), func(a, b *cobra.Command) int { + commands := cmd.Commands() + if len(commands) == 0 { + return 0 + } + maxCmd := slices.MaxFunc(commands, func(a, b *cobra.Command) int { return cmp.Compare(len(a.Name()), len(b.Name())) }) return len(maxCmd.Name()) diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md index 4b2b163..46e81b8 100644 --- a/docs/docs/changelog.md +++ b/docs/docs/changelog.md @@ -5,6 +5,8 @@ title: Changelog ## [Unreleased](https://github.com/lets-cli/lets/releases/tag/v0.0.X) +* `[Fixed]` Fixed indentation issues for long commands in help output. Command names are now properly padded for consistent alignment. + ## [0.0.58](https://github.com/lets-cli/lets/releases/tag/v0.0.58) * `[Added]` `group` directive for commands. Organize commands into groups for better readability in help output. See [config reference for group](/docs/config#group).