mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-11-09 08:06:33 +00:00
Update dedent to latest release
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
This commit is contained in:
49
vendor/github.com/lithammer/dedent/dedent.go
generated
vendored
Normal file
49
vendor/github.com/lithammer/dedent/dedent.go
generated
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
package dedent
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
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 Dedent(text string) string {
|
||||
var margin string
|
||||
|
||||
text = whitespaceOnly.ReplaceAllString(text, "")
|
||||
indents := leadingWhitespace.FindAllStringSubmatch(text, -1)
|
||||
|
||||
// Look for the longest leading string of spaces and tabs common to all
|
||||
// lines.
|
||||
for i, indent := range indents {
|
||||
if i == 0 {
|
||||
margin = indent[1]
|
||||
} else if strings.HasPrefix(indent[1], margin) {
|
||||
// Current line more deeply indented than previous winner:
|
||||
// no change (previous winner is still on top).
|
||||
continue
|
||||
} else if strings.HasPrefix(margin, indent[1]) {
|
||||
// Current line consistent with and no deeper than previous winner:
|
||||
// it's the new winner.
|
||||
margin = indent[1]
|
||||
} else {
|
||||
// Current line and previous winner have no common whitespace:
|
||||
// there is no margin.
|
||||
margin = ""
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if margin != "" {
|
||||
text = regexp.MustCompile("(?m)^"+margin).ReplaceAllString(text, "")
|
||||
}
|
||||
return text
|
||||
}
|
||||
Reference in New Issue
Block a user