aboutsummaryrefslogtreecommitdiff
path: root/lib/consolecolor.nom
blob: 2c3665aed213cf534c46ee85c7453cc26ee50726 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env nomsu -V4.11.12.8
#
    This file defines actions for ANSI console color escape codes.
    
test:
    % = (bright "\(green)Color test passed.")

%colors = {..}
    normal: 0, "reset color": 0, bright: 1, bold: 1, dim: 2, italic: 3, underscore: 4
    "slow blink": 5, "fast blink": 6, reverse: 7, inverse: 7, inverted: 7
    hidden: 8, # There's some other codes, but they're not currently implemented
    black: 30, red: 31, green: 32, yellow: 33, blue: 34, magenta: 35, cyan: 36
    white: 37, "on black": 40, "on red": 41, "on green": 42, "on yellow": 43
    "on blue": 44, "on magenta": 45, "on cyan": 46, "on white": 47

for %name = %colornum in %colors:
    %colornum = "\%colornum"
    
    #(=lua "COMPILE_ACTIONS").%name = (..)
        [%nomsu, %tree] -> (Lua "'\\027[\(%colornum)m'")
    %compile.action.%name = (..)
        for (%compile %text):
            if %text:
                return (Lua "('\\027[\(%colornum)m'..\(%text as lua expr)..'\\027[0m')")
            ..else:
                return (Lua "'\\027[\(%colornum)m'")