Booleans implemented.
[scheme.forth.jl.git] / term-colours.4th
1 \ Words for controlling terminal colours via ANSI escape sequences
2
3 : escape 27 emit [char] [ emit ;
4 : escape-end [char] m emit ;
5
6 : fg [char] 3 ;
7 : bg [char] 4 ;
8
9 : set-term-colour
10     escape emit [char] 0 + emit escape-end
11 ;
12
13 : reset-term
14     escape [char] 0 emit escape-end
15 ;
16
17 : clear-term
18     escape [char] 2 emit [char] J emit
19     escape [char] 0 emit [char] ; emit [char] 0 emit [char] f emit
20 ;
21
22 : bold
23     escape [char] 1 emit escape-end
24 ;
25
26 : colour
27     create ,
28 does>
29     @ swap
30     set-term-colour
31 ;
32
33 0 colour black
34 1 colour red
35 2 colour green
36 3 colour yellow
37 4 colour blue
38 5 colour magenta
39 6 colour cyan
40 7 colour white
41
42 \ Example usage:
43 \ fg red        ( set fg colour to red )
44 \ bg green      ( set bg colour to green )
45 \ bold          ( use a bold font )
46 \ reset-term    ( return everything to normal )