diff options
author | Jasper Van der Jeugt <m@jaspervdj.be> | 2016-02-01 11:12:59 +0100 |
---|---|---|
committer | Jasper Van der Jeugt <m@jaspervdj.be> | 2016-02-01 11:12:59 +0100 |
commit | 337983bc827db048263ecc5d77eae824e3d8ca1d (patch) | |
tree | c28447d902b4234eccaa5df469cf8bffe2c26e98 /lib/Language/Haskell/Stylish.hs | |
parent | 95f27fee0b5abed6052b7675b5b8bd6e77cb092d (diff) | |
download | stylish-haskell-337983bc827db048263ecc5d77eae824e3d8ca1d.tar.gz |
Fix warnings
Diffstat (limited to 'lib/Language/Haskell/Stylish.hs')
-rw-r--r-- | lib/Language/Haskell/Stylish.hs | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/lib/Language/Haskell/Stylish.hs b/lib/Language/Haskell/Stylish.hs new file mode 100644 index 0000000..103306c --- /dev/null +++ b/lib/Language/Haskell/Stylish.hs @@ -0,0 +1,92 @@ +-------------------------------------------------------------------------------- +module Language.Haskell.Stylish + ( -- * Run + runSteps + -- * Steps + , imports + , languagePragmas + , records + , tabs + , trailingWhitespace + , unicodeSyntax + -- ** Data types + , Imports.Align (..) + , LanguagePragmas.Style (..) + -- ** Helpers + , stepName + -- * Config + , module Language.Haskell.Stylish.Config + -- * Misc + , module Language.Haskell.Stylish.Verbose + , version + , Lines + , Step + ) where + + +-------------------------------------------------------------------------------- +import Control.Monad (foldM) + + +-------------------------------------------------------------------------------- +import Language.Haskell.Stylish.Config +import Language.Haskell.Stylish.Parse +import Language.Haskell.Stylish.Step +import qualified Language.Haskell.Stylish.Step.Imports as Imports +import qualified Language.Haskell.Stylish.Step.LanguagePragmas as LanguagePragmas +import qualified Language.Haskell.Stylish.Step.Records as Records +import qualified Language.Haskell.Stylish.Step.Tabs as Tabs +import qualified Language.Haskell.Stylish.Step.TrailingWhitespace as TrailingWhitespace +import qualified Language.Haskell.Stylish.Step.UnicodeSyntax as UnicodeSyntax +import Language.Haskell.Stylish.Verbose +import Paths_stylish_haskell (version) + + +-------------------------------------------------------------------------------- +imports :: Int -- ^ columns + -> Imports.Align + -> Step +imports = Imports.step + + +-------------------------------------------------------------------------------- +languagePragmas :: Int -- ^ columns + -> LanguagePragmas.Style + -> Bool -- ^ Pad to same length in vertical mode? + -> Bool -- ^ remove redundant? + -> Step +languagePragmas = LanguagePragmas.step + + +-------------------------------------------------------------------------------- +records :: Step +records = Records.step + + +-------------------------------------------------------------------------------- +tabs :: Int -- ^ number of spaces + -> Step +tabs = Tabs.step + + +-------------------------------------------------------------------------------- +trailingWhitespace :: Step +trailingWhitespace = TrailingWhitespace.step + + +-------------------------------------------------------------------------------- +unicodeSyntax :: Bool -- ^ add language pragma? + -> Step +unicodeSyntax = UnicodeSyntax.step + + +-------------------------------------------------------------------------------- +runStep :: Extensions -> Maybe FilePath -> Lines -> Step -> Either String Lines +runStep exts mfp ls step = + stepFilter step ls <$> parseModule exts mfp (unlines ls) + + +-------------------------------------------------------------------------------- +runSteps :: Extensions -> Maybe FilePath -> [Step] -> Lines + -> Either String Lines +runSteps exts mfp steps ls = foldM (runStep exts mfp) ls steps |