{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ViewPatterns #-} -- | Postprocessing for the results of printing. module Ormolu.Processing.Postprocess ( postprocess, ) where import Data.Text (Text) import qualified Data.Text as T import Ormolu.Processing.Common import qualified Ormolu.Processing.Cpp as Cpp -- | Postprocess output of the formatter. postprocess :: -- | Desired indentation level Int -> -- | Input to process Text -> Text postprocess indent = T.unlines . fmap indentLine . fmap Cpp.unmaskLine . filter (not . magicComment) . T.lines where magicComment (T.stripStart -> x) = x == startDisabling || x == endDisabling indentLine x = T.replicate indent " " <> x