module Language.Haskell.Formatter.Process.Control (format) where
import qualified Language.Haskell.Formatter.ExactCode as ExactCode
import qualified Language.Haskell.Formatter.Process.AttachComments
as AttachComments
import qualified Language.Haskell.Formatter.Process.DetachComments
as DetachComments
import qualified Language.Haskell.Formatter.Process.FormatActualCode
as FormatActualCode
import qualified Language.Haskell.Formatter.Process.FormatComments
as FormatComments
import qualified Language.Haskell.Formatter.Process.Formatter as Formatter
import qualified Language.Haskell.Formatter.Result as Result
import qualified Language.Haskell.Formatter.Style as Style
format ::
Style.Style -> ExactCode.ExactCode -> Result.Result ExactCode.ExactCode
format :: Style -> ExactCode -> Result ExactCode
format Style
style = Formatter -> ExactCode -> Result ExactCode
Formatter.format (Formatter -> ExactCode -> Result ExactCode)
-> Formatter -> ExactCode -> Result ExactCode
forall a b. (a -> b) -> a -> b
$ Style -> Formatter
createFormatter Style
style
createFormatter :: Style.Style -> Formatter.Formatter
createFormatter :: Style -> Formatter
createFormatter Style
style
= Formatter :: (ExactCode -> Result CommentableCode)
-> (LocatableCommentableCode -> Result LocatableCommentableCode)
-> (LocatableCommentableCode -> Result LocatableCommentableCode)
-> (LocatableCommentableCode -> Result ExactCode)
-> Formatter
Formatter.Formatter{attachComments :: ExactCode -> Result CommentableCode
Formatter.attachComments =
Style -> ExactCode -> Result CommentableCode
AttachComments.attachComments Style
style,
formatActualCode :: LocatableCommentableCode -> Result LocatableCommentableCode
Formatter.formatActualCode =
Style
-> LocatableCommentableCode -> Result LocatableCommentableCode
FormatActualCode.formatActualCode Style
style,
formatComments :: LocatableCommentableCode -> Result LocatableCommentableCode
Formatter.formatComments =
Style
-> LocatableCommentableCode -> Result LocatableCommentableCode
FormatComments.formatComments Style
style,
detachComments :: LocatableCommentableCode -> Result ExactCode
Formatter.detachComments =
Style -> LocatableCommentableCode -> Result ExactCode
DetachComments.detachComments Style
style}