summaryrefslogtreecommitdiff
path: root/compiler/utils/PprColour.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/utils/PprColour.hs')
-rw-r--r--compiler/utils/PprColour.hs17
1 files changed, 12 insertions, 5 deletions
diff --git a/compiler/utils/PprColour.hs b/compiler/utils/PprColour.hs
index 1b97303b93..ba7435d5c2 100644
--- a/compiler/utils/PprColour.hs
+++ b/compiler/utils/PprColour.hs
@@ -3,7 +3,7 @@ import Data.Maybe (fromMaybe)
import Util (OverridingBool(..), split)
-- | A colour\/style for use with 'coloured'.
-newtype PprColour = PprColour String
+newtype PprColour = PprColour { renderColour :: String }
-- | Allow colours to be combined (e.g. bold + red);
-- In case of conflict, right side takes precedence.
@@ -11,8 +11,12 @@ instance Monoid PprColour where
mempty = PprColour mempty
PprColour s1 `mappend` PprColour s2 = PprColour (s1 `mappend` s2)
+renderColourAfresh :: PprColour -> String
+renderColourAfresh c = renderColour (colReset `mappend` c)
+
colCustom :: String -> PprColour
-colCustom s = PprColour ("\27[" ++ s ++ "m")
+colCustom "" = mempty
+colCustom s = PprColour ("\27[" ++ s ++ "m")
colReset :: PprColour
colReset = colCustom "0"
@@ -46,7 +50,8 @@ colWhiteFg = colCustom "37"
data Scheme =
Scheme
- { sMessage :: PprColour
+ { sHeader :: PprColour
+ , sMessage :: PprColour
, sWarning :: PprColour
, sError :: PprColour
, sFatal :: PprColour
@@ -56,7 +61,8 @@ data Scheme =
defaultScheme :: Scheme
defaultScheme =
Scheme
- { sMessage = colBold
+ { sHeader = mempty
+ , sMessage = colBold
, sWarning = colBold `mappend` colMagentaFg
, sError = colBold `mappend` colRedFg
, sFatal = colBold `mappend` colRedFg
@@ -72,7 +78,8 @@ parseScheme "never" (_, cs) = (Never, cs)
parseScheme input (b, cs) =
( b
, Scheme
- { sMessage = fromMaybe (sMessage cs) (lookup "message" table)
+ { sHeader = fromMaybe (sHeader cs) (lookup "header" table)
+ , sMessage = fromMaybe (sMessage cs) (lookup "message" table)
, sWarning = fromMaybe (sWarning cs) (lookup "warning" table)
, sError = fromMaybe (sError cs) (lookup "error" table)
, sFatal = fromMaybe (sFatal cs) (lookup "fatal" table)