summaryrefslogtreecommitdiff
path: root/compiler/GHC/Utils/Outputable.hs
diff options
context:
space:
mode:
authorSylvain Henry <sylvain@haskus.fr>2020-08-19 11:53:24 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-08-21 09:36:38 -0400
commit659eb31b7a40f0aa2ba43c3454b5d9006fde837d (patch)
tree3c4cf4092cd6f7b753971c9fce73ca78b8bc3fae /compiler/GHC/Utils/Outputable.hs
parent50eb4460cd8412387e0c3755a9e0bafaced12bb2 (diff)
downloadhaskell-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.hs48
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