summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorLeonid Onokhov <sopvop@gmail.com>2012-07-27 13:42:37 +0400
committerLeonid Onokhov <sopvop@gmail.com>2012-07-27 13:42:37 +0400
commit28b5f2ec172c7685f9a3fb856ad80c0508ef0169 (patch)
tree9fc8df277048faf402c5c0c4c8ecf5ede2d6f815 /src
parent7de57705558f0676dcd0bd86fea57a7a0def23a0 (diff)
downloadstylish-haskell-28b5f2ec172c7685f9a3fb856ad80c0508ef0169.tar.gz
fix for #7, aligns import specs second line
Diffstat (limited to 'src')
-rw-r--r--src/StylishHaskell/Step/Imports.hs20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/StylishHaskell/Step/Imports.hs b/src/StylishHaskell/Step/Imports.hs
index bbea76d..730006b 100644
--- a/src/StylishHaskell/Step/Imports.hs
+++ b/src/StylishHaskell/Step/Imports.hs
@@ -92,14 +92,20 @@ sortImportSpecs imp = imp {H.importSpecs = fmap sort $ H.importSpecs imp}
--------------------------------------------------------------------------------
prettyImport :: Bool -> Bool -> Int -> H.ImportDecl l -> String
-prettyImport padQualified padName longest imp = unwords $ concat
- [ ["import"]
- , qualified
- , [(if hasExtras && padName then padRight longest else id) (importName imp)]
- , ["as " ++ as | H.ModuleName _ as <- maybeToList $ H.importAs imp]
- , [H.prettyPrint specs | specs <- maybeToList $ H.importSpecs imp]
- ]
+prettyImport padQualified padName longest imp =
+ unwords $ base : maybeToList specs
where
+ base = unwords $ concat
+ [ ["import"]
+ , qualified
+ , [(if hasExtras && padName then padRight longest else id)
+ (importName imp)]
+ , ["as " ++ as | H.ModuleName _ as <- maybeToList $ H.importAs imp]]
+ specs = fmap (unlines . padSpecs . lines . H.prettyPrint)
+ $ H.importSpecs imp
+ pad = replicate (length base) ' '
+ padSpecs [] = []
+ padSpecs (h:rest) = h : map (pad ++) rest
hasExtras = isJust (H.importAs imp) || isJust (H.importSpecs imp)
qualified