diff options
author | Sylvain Henry <sylvain@haskus.fr> | 2020-08-19 11:53:24 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-08-21 09:36:38 -0400 |
commit | 659eb31b7a40f0aa2ba43c3454b5d9006fde837d (patch) | |
tree | 3c4cf4092cd6f7b753971c9fce73ca78b8bc3fae /compiler/GHC/Utils/Outputable.hs | |
parent | 50eb4460cd8412387e0c3755a9e0bafaced12bb2 (diff) | |
download | haskell-659eb31b7a40f0aa2ba43c3454b5d9006fde837d.tar.gz |
NCG: Dwarf configuration
* remove references to DynFlags in GHC.CmmToAsm.Dwarf
* add specific Dwarf options in NCGConfig instead of directly querying
the debug level
Diffstat (limited to 'compiler/GHC/Utils/Outputable.hs')
-rw-r--r-- | compiler/GHC/Utils/Outputable.hs | 48 |
1 files changed, 43 insertions, 5 deletions
diff --git a/compiler/GHC/Utils/Outputable.hs b/compiler/GHC/Utils/Outputable.hs index e83f0af927..1875d8faf9 100644 --- a/compiler/GHC/Utils/Outputable.hs +++ b/compiler/GHC/Utils/Outputable.hs @@ -47,7 +47,7 @@ module GHC.Utils.Outputable ( bufLeftRenderSDoc, pprCode, mkCodeStyle, showSDocOneLine, - renderWithStyle, + renderWithContext, pprInfixVar, pprPrefixVar, pprHsChar, pprHsString, pprHsBytes, @@ -71,7 +71,7 @@ module GHC.Utils.Outputable ( QualifyName(..), queryQual, sdocWithDynFlags, sdocOption, updSDocContext, - SDocContext (..), sdocWithContext, + SDocContext (..), sdocWithContext, defaultSDocContext, getPprStyle, withPprStyle, setStyleColoured, pprDeeper, pprDeeperList, pprSetDepth, codeStyle, userStyle, dumpStyle, asmStyle, @@ -302,7 +302,7 @@ code (either C or assembly), or generating interface files. -- | Represents a pretty-printable document. -- -- To display an 'SDoc', use 'printSDoc', 'printSDocLn', 'bufLeftRenderSDoc', --- or 'renderWithStyle'. Avoid calling 'runSDoc' directly as it breaks the +-- or 'renderWithContext'. Avoid calling 'runSDoc' directly as it breaks the -- abstraction layer. newtype SDoc = SDoc { runSDoc :: SDocContext -> Doc } @@ -354,6 +354,44 @@ instance IsString SDoc where instance Outputable SDoc where ppr = id +-- | Default pretty-printing options +defaultSDocContext :: SDocContext +defaultSDocContext = SDC + { sdocStyle = defaultDumpStyle + , sdocColScheme = Col.defaultScheme + , sdocLastColour = Col.colReset + , sdocShouldUseColor = False + , sdocDefaultDepth = 5 + , sdocLineLength = 100 + , sdocCanUseUnicode = False + , sdocHexWordLiterals = False + , sdocPprDebug = False + , sdocPrintUnicodeSyntax = False + , sdocPrintCaseAsLet = False + , sdocPrintTypecheckerElaboration = False + , sdocPrintAxiomIncomps = False + , sdocPrintExplicitKinds = False + , sdocPrintExplicitCoercions = False + , sdocPrintExplicitRuntimeReps = False + , sdocPrintExplicitForalls = False + , sdocPrintPotentialInstances = False + , sdocPrintEqualityRelations = False + , sdocSuppressTicks = False + , sdocSuppressTypeSignatures = False + , sdocSuppressTypeApplications = False + , sdocSuppressIdInfo = False + , sdocSuppressCoercions = False + , sdocSuppressUnfoldings = False + , sdocSuppressVarKinds = False + , sdocSuppressUniques = False + , sdocSuppressModulePrefixes = False + , sdocSuppressStgExts = False + , sdocErrorSpans = False + , sdocStarIsType = False + , sdocImpredicativeTypes = False + , sdocLinearTypes = False + , sdocDynFlags = error "defaultSDocContext: DynFlags not available" + } withPprStyle :: PprStyle -> SDoc -> SDoc withPprStyle sty d = SDoc $ \ctxt -> runSDoc d ctxt{sdocStyle=sty} @@ -490,8 +528,8 @@ pprCode cs d = withPprStyle (PprCode cs) d mkCodeStyle :: CodeStyle -> PprStyle mkCodeStyle = PprCode -renderWithStyle :: SDocContext -> SDoc -> String -renderWithStyle ctx sdoc +renderWithContext :: SDocContext -> SDoc -> String +renderWithContext ctx sdoc = let s = Pretty.style{ Pretty.mode = PageMode, Pretty.lineLength = sdocLineLength ctx } in Pretty.renderStyle s $ runSDoc sdoc ctx |