flagUsage adds the flag usage info for the given fields to the given [strings.Builder].
(fields *fields, b *strings.Builder)
| 181 | // flagUsage adds the flag usage info for the given fields |
| 182 | // to the given [strings.Builder]. |
| 183 | func flagUsage(fields *fields, b *strings.Builder) { |
| 184 | for _, kv := range fields.Order { |
| 185 | f := kv.Value |
| 186 | b.WriteString(indent) |
| 187 | for i, name := range f.Names { |
| 188 | b.WriteString(logx.CmdColor("-" + strcase.ToKebab(name))) |
| 189 | if i != len(f.Names)-1 { |
| 190 | b.WriteString(", ") |
| 191 | } |
| 192 | } |
| 193 | b.WriteString(" " + logx.SuccessColor(f.Field.Type.String())) |
| 194 | b.WriteString("\n") |
| 195 | field := types.GetField(f.Struct, f.Field.Name) |
| 196 | if field != nil { |
| 197 | b.WriteString(indent + indent + strings.ReplaceAll(field.Doc, "\n", "\n"+indent+indent)) // need to put two indents on every newline for formatting |
| 198 | } |
| 199 | def, ok := f.Field.Tag.Lookup("default") |
| 200 | if ok && def != "" { |
| 201 | b.WriteString(fmt.Sprintf(" (default: %s)", def)) |
| 202 | } |
| 203 | b.WriteString("\n") |
| 204 | } |
| 205 | } |
no test coverage detected