hfmt-0.0.2.3: src/Language/Haskell/Format.hs
module Language.Haskell.Format (
autoSettings,
format,
formatters,
hlint,
hindent,
stylish,
Settings,
Formatter(..),
Suggestion(..),
HaskellSource(..),
Reformatted(..),
) where
import Language.Haskell.Format.Definitions
import qualified Language.Haskell.Format.HIndent as HIndent
import qualified Language.Haskell.Format.HLint as HLint
import qualified Language.Haskell.Format.Stylish as Stylish
import Control.Applicative
import Data.Maybe
data Settings = Settings
autoSettings :: IO Settings
autoSettings = return Settings
hlint :: Settings -> IO Formatter
hlint _ = HLint.suggester <$> HLint.autoSettings
hindent :: Settings -> IO Formatter
hindent _ = HIndent.formatter <$> HIndent.autoSettings
stylish :: Settings -> IO Formatter
stylish _ = Stylish.formatter <$> Stylish.autoSettings
formatters :: Settings -> IO [Formatter]
formatters s = sequence [hlint s, hindent s, stylish s]
format :: Formatter -> HaskellSource -> Either String Reformatted
format = unFormatter