diff options
author | Rupert Horlick <ruhatch@me.com> | 2019-06-12 11:25:56 +0100 |
---|---|---|
committer | Jasper Van der Jeugt <m@jaspervdj.be> | 2019-06-12 12:25:56 +0200 |
commit | 660b0c894461a780c7bda8f2231a5101f5f6f164 (patch) | |
tree | 11c27558df2db8c9e9906b5c65d9c093c3b33e11 /lib | |
parent | f253f37362be840bafe2c82a8d7fb284046fda48 (diff) | |
download | stylish-haskell-660b0c894461a780c7bda8f2231a5101f5f6f164.tar.gz |
Add with_module_name option to list_align
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Language/Haskell/Stylish/Config.hs | 7 | ||||
-rw-r--r-- | lib/Language/Haskell/Stylish/Step/Imports.hs | 10 |
2 files changed, 11 insertions, 6 deletions
diff --git a/lib/Language/Haskell/Stylish/Config.hs b/lib/Language/Haskell/Stylish/Config.hs index ad30498..6513ff8 100644 --- a/lib/Language/Haskell/Stylish/Config.hs +++ b/lib/Language/Haskell/Stylish/Config.hs @@ -209,9 +209,10 @@ parseImports config o = Imports.step ] listAligns = - [ ("new_line", Imports.NewLine) - , ("with_alias", Imports.WithAlias) - , ("after_alias", Imports.AfterAlias) + [ ("new_line", Imports.NewLine) + , ("with_module_name", Imports.WithModuleName) + , ("with_alias", Imports.WithAlias) + , ("after_alias", Imports.AfterAlias) ] longListAligns = 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] [] |