func()

in format.go [767:826]


func (un *formatter) visitStructMap(expr ast.Expr) error {
	m := expr.AsMap()
	entries := m.Entries()
	un.WriteString("{")
	if un.isMultiline(expr) {
		un.indent++
		for i, e := range entries {
			entry := e.AsMapEntry()
			k := entry.Key()
			un.WriteNewLine()
			if entry.IsOptional() {
				for _, c := range un.CommentBlock(e.ID()) {
					un.WriteString(c)
					un.WriteNewLine()
				}
				un.WriteString("?")
			}
			err := un.visit(k, false)
			if err != nil {
				return err
			}
			un.WriteString(": ")
			v := entry.Value()
			err = un.visit(v, false)
			if err != nil {
				return err
			}
			if un.options.alwaysComma || i < len(entries)-1 {
				un.WriteString(",")
			}
			un.WriteString(un.Comment(un.lastChild(entry.Value()).ID()))
		}
		un.indent--
		un.WriteNewLine()
		un.WriteString("}")
	} else {
		for i, e := range entries {
			entry := e.AsMapEntry()
			k := entry.Key()
			if entry.IsOptional() {
				un.WriteString("?")
			}
			err := un.visit(k, false)
			if err != nil {
				return err
			}
			un.WriteString(": ")
			v := entry.Value()
			err = un.visit(v, false)
			if err != nil {
				return err
			}
			if i < len(entries)-1 {
				un.WriteString(", ")
			}
		}
		un.WriteString("}")
	}
	return nil
}