summaryrefslogtreecommitdiffhomepage
path: root/lib/Language/Haskell/Stylish/Step
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Language/Haskell/Stylish/Step')
-rw-r--r--lib/Language/Haskell/Stylish/Step/Imports.hs10
-rw-r--r--lib/Language/Haskell/Stylish/Step/TrailingWhitespace.hs7
2 files changed, 13 insertions, 4 deletions
diff --git a/lib/Language/Haskell/Stylish/Step/Imports.hs b/lib/Language/Haskell/Stylish/Step/Imports.hs
index fc035a2..4ceb802 100644
--- a/lib/Language/Haskell/Stylish/Step/Imports.hs
+++ b/lib/Language/Haskell/Stylish/Step/Imports.hs
@@ -72,6 +72,7 @@ data ImportAlign
data ListAlign
= NewLine
+ | WithModuleName
| WithAlias
| AfterAlias
deriving (Eq, Show)
@@ -291,10 +292,11 @@ prettyImport columns Options{..} padQualified padName longest imp
. withLast (++ (maybeSpace ++ ")"))
inlineWrapper = case listAlign of
- NewLine -> (paddedNoSpecBase :) . wrapRest columns listPadding'
- WithAlias -> wrap columns paddedBase (inlineBaseLength + 1)
+ NewLine -> (paddedNoSpecBase :) . wrapRest columns listPadding'
+ WithModuleName -> wrap columns paddedBase (withModuleNameBaseLength + 4)
+ WithAlias -> wrap columns paddedBase (inlineBaseLength + 1)
-- Add 1 extra space to ensure same padding as in original code.
- AfterAlias -> withTail ((' ' : maybeSpace) ++)
+ AfterAlias -> withTail ((' ' : maybeSpace) ++)
. wrap columns paddedBase (afterAliasBaseLength + 1)
inlineWithBreakWrap = paddedNoSpecBase : wrapRest columns listPadding'
@@ -349,6 +351,8 @@ prettyImport columns Options{..} padQualified padName longest imp
inlineBaseLength = length $
base' (padImport $ compoundImportName imp) [] []
+ withModuleNameBaseLength = length $ base' "" [] []
+
afterAliasBaseLength = length $ base' (padImport $ compoundImportName imp)
["as " ++ as | H.ModuleName _ as <- maybeToList $ H.importAs imp] []
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