@@ -282,8 +282,13 @@ func (cmd *Command) setupDefaults(osArgs []string) {
282282 tracef ("sorting command categories (cmd=%[1]q)" , cmd .Name )
283283 sort .Sort (cmd .categories .(* commandCategories ))
284284
285+ tracef ("setting category on mutually exclusive flags (cmd=%[1]q)" , cmd .Name )
286+ for _ , grp := range cmd .MutuallyExclusiveFlags {
287+ grp .propagateCategory ()
288+ }
289+
285290 tracef ("setting flag categories (cmd=%[1]q)" , cmd .Name )
286- cmd .flagCategories = newFlagCategoriesFromFlags (cmd .Flags )
291+ cmd .flagCategories = newFlagCategoriesFromFlags (cmd .allFlags () )
287292
288293 if cmd .Metadata == nil {
289294 tracef ("setting default Metadata (cmd=%[1]q)" , cmd .Name )
@@ -324,8 +329,13 @@ func (cmd *Command) setupSubcommand() {
324329 tracef ("sorting command categories (cmd=%[1]q)" , cmd .Name )
325330 sort .Sort (cmd .categories .(* commandCategories ))
326331
332+ tracef ("setting category on mutually exclusive flags (cmd=%[1]q)" , cmd .Name )
333+ for _ , grp := range cmd .MutuallyExclusiveFlags {
334+ grp .propagateCategory ()
335+ }
336+
327337 tracef ("setting flag categories (cmd=%[1]q)" , cmd .Name )
328- cmd .flagCategories = newFlagCategoriesFromFlags (cmd .Flags )
338+ cmd .flagCategories = newFlagCategoriesFromFlags (cmd .allFlags () )
329339}
330340
331341func (cmd * Command ) ensureHelp () {
@@ -848,14 +858,14 @@ func (cmd *Command) VisibleCommands() []*Command {
848858// VisibleFlagCategories returns a slice containing all the visible flag categories with the flags they contain
849859func (cmd * Command ) VisibleFlagCategories () []VisibleFlagCategory {
850860 if cmd .flagCategories == nil {
851- cmd .flagCategories = newFlagCategoriesFromFlags (cmd .Flags )
861+ cmd .flagCategories = newFlagCategoriesFromFlags (cmd .allFlags () )
852862 }
853863 return cmd .flagCategories .VisibleCategories ()
854864}
855865
856866// VisibleFlags returns a slice of the Flags with Hidden=false
857867func (cmd * Command ) VisibleFlags () []Flag {
858- return visibleFlags (cmd .Flags )
868+ return visibleFlags (cmd .allFlags () )
859869}
860870
861871func (cmd * Command ) appendFlag (fl Flag ) {
0 commit comments