{-# LANGUAGE RecordWildCards #-}
module Ormolu.Parser.Result
( ParseResult (..),
prettyPrintParseResult,
)
where
import Data.Text (Text)
import GHC
import Ormolu.Parser.Anns
import Ormolu.Parser.CommentStream
import Ormolu.Parser.Pragma (Pragma)
import Ormolu.Parser.Shebang (Shebang)
data ParseResult = ParseResult
{
prParsedSource :: HsModule GhcPs,
prAnns :: Anns,
prStackHeader :: Maybe (RealLocated Comment),
prShebangs :: [Shebang],
prPragmas :: [([RealLocated Comment], Pragma)],
prCommentStream :: CommentStream,
prUseRecordDot :: Bool,
prImportQualifiedPost :: Bool,
prLiteralPrefix :: Text,
prLiteralSuffix :: Text,
prIndent :: Int
}
prettyPrintParseResult :: ParseResult -> String
prettyPrintParseResult ParseResult {..} =
unlines
[ "parse result:",
" comment stream:",
showCommentStream prCommentStream
]