summaryrefslogtreecommitdiffhomepage
path: root/src/Language/Haskell/Stylish/Step/Imports.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Language/Haskell/Stylish/Step/Imports.hs')
-rw-r--r--src/Language/Haskell/Stylish/Step/Imports.hs15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/Language/Haskell/Stylish/Step/Imports.hs b/src/Language/Haskell/Stylish/Step/Imports.hs
index f1fbf40..78c8878 100644
--- a/src/Language/Haskell/Stylish/Step/Imports.hs
+++ b/src/Language/Haskell/Stylish/Step/Imports.hs
@@ -42,8 +42,9 @@ data ImportAlign
deriving (Eq, Show)
data ListAlign
- = SameLine
- | NewLine
+ = NewLine
+ | WithAlias
+ | AfterAlias
deriving (Eq, Show)
data LongListAlign
@@ -132,8 +133,11 @@ prettyImport columns Align{..} padQualified padName longest imp =
$ specs
inlineWrapper = case listAlign of
- SameLine -> wrap columns inlineBase (inlineBaseLength + 1)
- NewLine -> (inlineBase :) . wrapRest columns listPadding
+ NewLine -> (inlineBase :) . wrapRest columns listPadding
+ WithAlias -> wrap columns inlineBase (inlineBaseLength + 1)
+ -- Add 1 extra space to ensure same padding as in original code.
+ AfterAlias -> withTail (' ' :)
+ . wrap columns inlineBase (afterAliasBaseLength + 1)
multilineWrap = multilineBase : (wrapRest 0 listPadding
$ (withHead ("( " ++)
@@ -163,6 +167,9 @@ prettyImport columns Align{..} padQualified padName longest imp =
inlineBaseLength = length $ base' (padImport $ importName imp) [] []
+ afterAliasBaseLength = length $ base' (padImport $ importName imp)
+ ["as " ++ as | H.ModuleName _ as <- maybeToList $ H.importAs imp] []
+
(hiding, importSpecs) = case H.importSpecs imp of
Just (H.ImportSpecList _ h l) -> (h, Just l)
_ -> (False, Nothing)