-- | Configuration options used by the tool. module Ormolu.Config ( Config (..), defaultConfig, DynOption (..), dynOptionToLocatedStr, ) where import qualified SrcLoc as GHC -- | Ormolu configuration. data Config = Config { -- | Dynamic options to pass to GHC parser cfgDynOptions :: ![DynOption], -- | Do formatting faster but without automatic detection of defects cfgUnsafe :: !Bool, -- | Output information useful for debugging cfgDebug :: !Bool, -- | Do not fail if CPP pragma is present (still doesn't handle CPP but -- useful for formatting of files that enable the extension without -- actually containing CPP macros) cfgTolerateCpp :: !Bool, -- | Checks if re-formatting the result is idempotent. cfgCheckIdempotency :: !Bool } deriving (Eq, Show) -- | Default 'Config'. defaultConfig :: Config defaultConfig = Config { cfgDynOptions = [], cfgUnsafe = False, cfgDebug = False, cfgTolerateCpp = False, cfgCheckIdempotency = False } -- | A wrapper for dynamic options. newtype DynOption = DynOption { unDynOption :: String } deriving (Eq, Ord, Show) -- | Convert 'DynOption' to @'GHC.Located' 'String'@. dynOptionToLocatedStr :: DynOption -> GHC.Located String dynOptionToLocatedStr (DynOption o) = GHC.L GHC.noSrcSpan o