diff options
author | Chris Perivolaropoulos <c.perivol@ed.ac.uk> | 2019-06-12 13:31:20 +0300 |
---|---|---|
committer | Jasper Van der Jeugt <m@jaspervdj.be> | 2019-06-12 12:31:20 +0200 |
commit | f1fe0d010144483315b3b37cb1eece93ecf3a6e5 (patch) | |
tree | 70481f697ebd49ebe85848bee66e1c5bf0899cdb | |
parent | 660b0c894461a780c7bda8f2231a5101f5f6f164 (diff) | |
download | stylish-haskell-f1fe0d010144483315b3b37cb1eece93ecf3a6e5.tar.gz |
Respect page breaks alone in a line
Page breaks are an old but effective way of bookmarking a file. They
usually are single character lines. Stylish removes them as whitespace
characters, and they are from the compiler's point of view but not
from an editor's perspective.
-rw-r--r-- | lib/Language/Haskell/Stylish/Step/TrailingWhitespace.hs | 7 | ||||
-rw-r--r-- | tests/Language/Haskell/Stylish/Step/TrailingWhitespace/Tests.hs | 6 |
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/Language/Haskell/Stylish/Step/TrailingWhitespace.hs b/lib/Language/Haskell/Stylish/Step/TrailingWhitespace.hs index dbc594c..e41bace 100644 --- a/lib/Language/Haskell/Stylish/Step/TrailingWhitespace.hs +++ b/lib/Language/Haskell/Stylish/Step/TrailingWhitespace.hs @@ -19,4 +19,9 @@ dropTrailingWhitespace = reverse . dropWhile isSpace . reverse -------------------------------------------------------------------------------- step :: Step -step = makeStep "TrailingWhitespace" $ \ls _ -> map dropTrailingWhitespace ls +step = makeStep "TrailingWhitespace" $ \ls _ -> map dropTrailingWhitespace' ls + where + dropTrailingWhitespace' l = case l of + -- Preserve page breaks + "\12" -> l + _ -> dropTrailingWhitespace l diff --git a/tests/Language/Haskell/Stylish/Step/TrailingWhitespace/Tests.hs b/tests/Language/Haskell/Stylish/Step/TrailingWhitespace/Tests.hs index 1394edb..0593c0a 100644 --- a/tests/Language/Haskell/Stylish/Step/TrailingWhitespace/Tests.hs +++ b/tests/Language/Haskell/Stylish/Step/TrailingWhitespace/Tests.hs @@ -28,12 +28,16 @@ case01 = expected @=? testStep step input where input = unlines [ "module Main where" - , " " + , " \t" , "data Foo = Bar | Qux\t " + , "\12" -- page break + , " \12" -- malformed page break ] expected = unlines [ "module Main where" , "" , "data Foo = Bar | Qux" + , "\12" -- page break + , "" ] |