From 948f51d2a75df6812401429d00994aa3be72fc7f Mon Sep 17 00:00:00 2001 From: Amy Boyd Date: Thu, 22 Dec 2016 13:53:37 +0000 Subject: [PATCH] Add line fixer: FixTraimTrailingWhitespaceRule. --- editorconfig/line_fixers.go | 8 ++++++++ editorconfig/line_fixers_test.go | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/editorconfig/line_fixers.go b/editorconfig/line_fixers.go index 9351e37..ec53308 100644 --- a/editorconfig/line_fixers.go +++ b/editorconfig/line_fixers.go @@ -53,3 +53,11 @@ func FixUndividableIndentationToNearestSpacesAmount(ruleValueNumberOfSpaces stri return line } + +func FixTrimTrailingWhitespaceRule(ruleValue string, line string) string { + if strings.ToLower(ruleValue) != "true" { + return line + } + + return endsWithTabsAndSpacesRegexp.ReplaceAllString(line, "") +} diff --git a/editorconfig/line_fixers_test.go b/editorconfig/line_fixers_test.go index ba7e569..46b61cd 100644 --- a/editorconfig/line_fixers_test.go +++ b/editorconfig/line_fixers_test.go @@ -70,3 +70,21 @@ func TestFixUndividableIndentationToNearestSpacesAmount(t *testing.T) { t.Error("Unexpected result: " + result) } } + +func TestFixTrimTrailingWhitespaceRule(t *testing.T) { + if FixTrimTrailingWhitespaceRule("true", "") != "" { + t.Error() + } + + if FixTrimTrailingWhitespaceRule("true", " a b c") != " a b c" { + t.Error() + } + + if FixTrimTrailingWhitespaceRule("true", "abc \t\t \t \t \t ") != "abc" { + t.Error() + } + + if FixTrimTrailingWhitespaceRule("false", "abc \t\t \t \t \t ") != "abc \t\t \t \t \t " { + t.Error() + } +}