diff options
author | Leonid Onokhov <sopvop@gmail.com> | 2012-07-27 13:42:37 +0400 |
---|---|---|
committer | Leonid Onokhov <sopvop@gmail.com> | 2012-07-27 13:42:37 +0400 |
commit | 28b5f2ec172c7685f9a3fb856ad80c0508ef0169 (patch) | |
tree | 9fc8df277048faf402c5c0c4c8ecf5ede2d6f815 | |
parent | 7de57705558f0676dcd0bd86fea57a7a0def23a0 (diff) | |
download | stylish-haskell-28b5f2ec172c7685f9a3fb856ad80c0508ef0169.tar.gz |
fix for #7, aligns import specs second line
-rw-r--r-- | src/StylishHaskell/Step/Imports.hs | 20 |
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 |