Source File
dedent.go
Belonging Package
github.com/lithammer/dedent
package dedentimport ()var (whitespaceOnly = regexp.MustCompile("(?m)^[ \t]+$")leadingWhitespace = regexp.MustCompile("(?m)(^[ \t]*)(?:[^ \t\n])"))// Dedent removes any common leading whitespace from every line in text.//// This can be used to make multiline strings to line up with the left edge of// the display, while still presenting them in the source code in indented// form.func ( string) string {var string= whitespaceOnly.ReplaceAllString(, ""):= leadingWhitespace.FindAllStringSubmatch(, -1)// Look for the longest leading string of spaces and tabs common to all// lines.for , := range {if == 0 {= [1]} else if strings.HasPrefix([1], ) {// Current line more deeply indented than previous winner:// no change (previous winner is still on top).continue} else if strings.HasPrefix(, [1]) {// Current line consistent with and no deeper than previous winner:// it's the new winner.= [1]} else {// Current line and previous winner have no common whitespace:// there is no margin.= ""break}}if != "" {= regexp.MustCompile("(?m)^"+).ReplaceAllString(, "")}return}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |