diff --git a/category.go b/category.go index b1847eca18..0986fffca7 100644 --- a/category.go +++ b/category.go @@ -104,7 +104,7 @@ func newFlagCategoriesFromFlags(fs []Flag) FlagCategories { var categorized bool for _, fl := range fs { if cf, ok := fl.(CategorizableFlag); ok { - if cat := cf.GetCategory(); cat != "" { + if cat := cf.GetCategory(); cat != "" && cf.IsVisible() { fc.AddFlag(cat, cf) categorized = true } @@ -114,7 +114,7 @@ func newFlagCategoriesFromFlags(fs []Flag) FlagCategories { if categorized { for _, fl := range fs { if cf, ok := fl.(CategorizableFlag); ok { - if cf.GetCategory() == "" { + if cf.GetCategory() == "" && cf.IsVisible() { fc.AddFlag("", fl) } } diff --git a/command_test.go b/command_test.go index b3bcf8c562..3f89208a19 100644 --- a/command_test.go +++ b/command_test.go @@ -461,11 +461,20 @@ func TestCommand_VisibleFlagCategories(t *testing.T) { &StringFlag{ Name: "strd", // no category set }, + &StringFlag{ + Name: "strd1", // no category set and also hidden + Hidden: true, + }, &Int64Flag{ Name: "intd", Aliases: []string{"altd1", "altd2"}, Category: "cat1", }, + &StringFlag{ + Name: "sfd", + Category: "cat2", + Hidden: true, + }, }, }