Updated README.
[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 : colour
14     create ,
15 does>
16     @ swap
17     set-term-colour
18 ;
19
20 0 colour black
21 1 colour red
22 2 colour green
23 3 colour yellow
24 4 colour blue
25 5 colour magenta
26 6 colour cyan
27 7 colour white
28
29 : bold
30     escape [char] 1 emit escape-end
31 ;
32
33 : reset-term
34     escape [char] 0 emit escape-end
35 ;
36
37 : clear-term
38     escape [char] 2 emit [char] J emit
39     escape [char] 0 emit [char] ; emit [char] 0 emit [char] f emit
40 ;
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 )
47 \ clear-term    ( clear terminal and return cursor to origin )