func()

in format.go [631:678]


func (un *formatter) visitList(expr ast.Expr) error {
	l := expr.AsList()
	elems := l.Elements()
	optIndices := make(map[int]bool, len(elems))
	for _, idx := range l.OptionalIndices() {
		optIndices[int(idx)] = true
	}
	un.WriteString("[")
	if un.isMultiline(expr) {
		un.indent++
		for i, elem := range elems {
			un.WriteNewLine()
			if optIndices[i] {
				for _, c := range un.CommentBlock(elem.ID()) {
					un.WriteString(c)
					un.WriteNewLine()
				}
				un.WriteString("?")
			}
			err := un.visit(elem, false)
			if err != nil {
				return err
			}
			if un.options.alwaysComma || i < len(elems)-1 {
				un.WriteString(",")
			}
			un.WriteString(un.Comment(un.lastChild(elem).ID()))
		}
		un.indent--
		un.WriteNewLine()
		un.WriteString("]")
	} else {
		for i, elem := range elems {
			if optIndices[i] {
				un.WriteString("?")
			}
			err := un.visit(elem, false)
			if err != nil {
				return err
			}
			if i < len(elems)-1 {
				un.WriteString(", ")
			}
		}
		un.WriteString("]")
	}
	return nil
}