| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | package nginximport (    "bufio"    "github.com/emirpasic/gods/stacks/linkedliststack"    "strings")func fmtCode(content string) (fmtContent string) {    fmtContent = fmtCodeWithIndent(content, 0)    return}func fmtCodeWithIndent(content string, indent int) (fmtContent string) {    /*       Format content       1. TrimSpace for each line       2. use stack to count how many \t should add    */    stack := linkedliststack.New()    scanner := bufio.NewScanner(strings.NewReader(content))    for scanner.Scan() {        text := scanner.Text()        text = strings.TrimSpace(text)        before := stack.Size()        for _, char := range text {            matchParentheses(stack, char)        }        after := stack.Size()        fmtContent += strings.Repeat("\t", indent)        if before == after {            fmtContent += strings.Repeat("\t", stack.Size()) + text + "\n"        } else {            fmtContent += text + "\n"        }    }    fmtContent = strings.Trim(fmtContent, "\n")    return}
 |