@@ -13,11 +13,12 @@ data IdrisColour = IdrisColour { colour :: Color
13 , vivid :: Bool
13 , vivid :: Bool
14 , underline :: Bool
14 , underline :: Bool
15 , bold :: Bool
15 , bold :: Bool
17 deriving (Eq, Show)
18 deriving (Eq, Show)
19mkColour :: Color -> IdrisColour
20mkColour :: Color -> IdrisColour
20−mkColour c = IdrisColour c True False False
21+mkColour c = IdrisColour c True False False False
22data ColourTheme = ColourTheme { keywordColour :: IdrisColour
23data ColourTheme = ColourTheme { keywordColour :: IdrisColour
23 , boundVarColour :: IdrisColour
24 , boundVarColour :: IdrisColour
@@ -30,21 +31,22 @@ data ColourTheme = ColourTheme { keywordColour :: IdrisColour
30 deriving (Eq, Show)
31 deriving (Eq, Show)
32defaultTheme :: ColourTheme
33defaultTheme :: ColourTheme
33−defaultTheme = ColourTheme { keywordColour = IdrisColour Black True True True
34+defaultTheme = ColourTheme { keywordColour = IdrisColour Black True True True False
34 , boundVarColour = mkColour Magenta
35 , boundVarColour = mkColour Magenta
35− , implicitColour = IdrisColour Magenta True True False
36+ , implicitColour = IdrisColour Magenta True True False False
36 , functionColour = mkColour Green
37 , functionColour = mkColour Green
37 , typeColour = mkColour Blue
38 , typeColour = mkColour Blue
38 , dataColour = mkColour Red
39 , dataColour = mkColour Red
39− , promptColour = IdrisColour Black True False True
40+ , promptColour = IdrisColour Black True False True False
42-- Set the colour of a string using POSIX escape codes
43-- Set the colour of a string using POSIX escape codes
43colourise :: IdrisColour -> String -> String
44colourise :: IdrisColour -> String -> String
44−colourise (IdrisColour c v u b) str = setSGRCode sgr ++ str ++ setSGRCode [Reset]
45+colourise (IdrisColour c v u b i) str = setSGRCode sgr ++ str ++ setSGRCode [Reset]
45 where sgr = [SetColor Foreground (if v then Vivid else Dull) c] ++
46 where sgr = [SetColor Foreground (if v then Vivid else Dull) c] ++
46 (if u then [SetUnderlining SingleUnderline] else []) ++
47 (if u then [SetUnderlining SingleUnderline] else []) ++
47− (if b then [SetConsoleIntensity BoldIntensity] else [])
48+ (if b then [SetConsoleIntensity BoldIntensity] else []) ++
49+ (if i then [SetItalicized True] else [])
49colouriseKwd :: ColourTheme -> String -> String
51colouriseKwd :: ColourTheme -> String -> String
50colouriseKwd t = colourise (keywordColour t)
52colouriseKwd t = colourise (keywordColour t)