summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorRupert Horlick <ruhatch@me.com>2019-06-12 11:25:56 +0100
committerJasper Van der Jeugt <m@jaspervdj.be>2019-06-12 12:25:56 +0200
commit660b0c894461a780c7bda8f2231a5101f5f6f164 (patch)
tree11c27558df2db8c9e9906b5c65d9c093c3b33e11 /lib
parentf253f37362be840bafe2c82a8d7fb284046fda48 (diff)
downloadstylish-haskell-660b0c894461a780c7bda8f2231a5101f5f6f164.tar.gz
Add with_module_name option to list_align
Diffstat (limited to 'lib')
-rw-r--r--lib/Language/Haskell/Stylish/Config.hs7
-rw-r--r--lib/Language/Haskell/Stylish/Step/Imports.hs10
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] []