aboutsummaryrefslogtreecommitdiff
path: root/lib/consolecolor.nom
blob: 092105b83be3ab4836d5fdb6bbb9a266e7bc6709 (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 -V5.12.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'")