diff options
Diffstat (limited to 'vendor/github.com/renstrom/dedent/dedent.go')
-rw-r--r-- | vendor/github.com/renstrom/dedent/dedent.go | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/vendor/github.com/renstrom/dedent/dedent.go b/vendor/github.com/renstrom/dedent/dedent.go deleted file mode 100644 index f58dc47d5..000000000 --- a/vendor/github.com/renstrom/dedent/dedent.go +++ /dev/null @@ -1,56 +0,0 @@ -package dedent - -import ( - "regexp" - "strings" -) - -var whitespaceOnly = regexp.MustCompile("(?m)^[ \t]+$") -var leadingWhitespace = regexp.MustCompile("(?m)(^[ \t]*)") - -// Dedent removes any common leading whitespace from every line in s. -// -// 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 Dedent(s string) string { - s = whitespaceOnly.ReplaceAllString(s, "") - margin := findMargin(s) - if len(margin) == 0 { - return s - } - return regexp.MustCompile("(?m)^"+margin).ReplaceAllString(s, "") -} - -// Look for the longest leading string of spaces and tabs common to all lines. -func findMargin(s string) string { - var margin string - - indents := leadingWhitespace.FindAllString(s, -1) - numIndents := len(indents) - for i, indent := range indents { - // Don't use last row if it is empty - if i == numIndents-1 && indent == "" { - break - } - - if margin == "" { - margin = indent - } else if strings.HasPrefix(indent, margin) { - // Current line more deeply indented than previous winner: - // no change (previous winner is still on top). - continue - } else if strings.HasPrefix(margin, indent) { - // Current line consistent with and no deeper than previous winner: - // it's the new winner. - margin = indent - } else { - // Current line and previous winner have no common whitespace: - // there is no margin. - margin = "" - break - } - } - - return margin -} |