about summary refs log tree commit diff stats
path: root/src/utils/eprint.nim
blob: ac4963fb084068806b2adb0544611feb476f5b2c (plain) (blame)
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
27
28
29
30
31
32
33
34
{.used.}

template eprint*(s: varargs[string, `$`]) = {.cast(noSideEffect).}:
  var a = false
  when nimVm:
    var o = ""
    for x in s:
      if not a:
        a = true
      else:
        o &= ' '
      o &= x
    echo o
  else:
    for x in s:
      if not a:
        a = true
      else:
        stderr.write(' ')
      stderr.write(x)
    stderr.write('\n')

template print*(s: varargs[string, `$`]) =
  for x in s:
    stdout.write(x)

template printesc*(s: string) =
  for r in s.runes:
    if r.isControlChar():
      stdout.write(('^' & $($r)[0].getControlLetter())
                   .ansiFgColor(fgBlue).ansiStyle(styleBright).ansiReset())
    else:
      stdout.write($r)