MCPcopy Create free account
hub / github.com/PerpetualSoftware/pad / FormatFieldSummary

Function FormatFieldSummary

internal/cli/format.go:373–417  ·  view source on GitHub ↗

FormatFieldSummary returns a formatted summary of item fields. Example output: "status: open | priority: high | category: platform"

(fieldsJSON string)

Source from the content-addressed store, hash-verified

371// FormatFieldSummary returns a formatted summary of item fields.
372// Example output: "status: open | priority: high | category: platform"
373func FormatFieldSummary(fieldsJSON string) string {
374 if fieldsJSON == "" || fieldsJSON == "{}" || fieldsJSON == "null" {
375 return ""
376 }
377
378 var fields map[string]any
379 if err := json.Unmarshal([]byte(fieldsJSON), &fields); err != nil {
380 return ""
381 }
382
383 if len(fields) == 0 {
384 return ""
385 }
386
387 // Sort keys for consistent output
388 keys := make([]string, 0, len(fields))
389 for k := range fields {
390 keys = append(keys, k)
391 }
392 sort.Strings(keys)
393
394 var parts []string
395 for _, k := range keys {
396 v := fields[k]
397 str := fmt.Sprintf("%v", v)
398 if str == "" || str == "<nil>" {
399 continue
400 }
401 // Colorize well-known fields
402 switch k {
403 case "status":
404 parts = append(parts, fmt.Sprintf("%s: %s", k, StatusColor(str).Sprint(str)))
405 case "priority":
406 parts = append(parts, fmt.Sprintf("%s: %s", k, PriorityColor(str).Sprint(str)))
407 default:
408 parts = append(parts, fmt.Sprintf("%s: %s", k, str))
409 }
410 }
411
412 if len(parts) == 0 {
413 return ""
414 }
415
416 return strings.Join(parts, " | ")
417}
418
419// PrintJSON prints any value as indented (human-readable) JSON.
420func PrintJSON(v interface{}) error {

Callers 2

createCmdFunction · 0.92
updateCmdFunction · 0.92

Calls 3

StatusColorFunction · 0.85
PriorityColorFunction · 0.85
JoinMethod · 0.80

Tested by

no test coverage detected