summary refs log tree commit diff stats
path: root/lib/pure
diff options
context:
space:
mode:
authorKaushal Modi <kaushal.modi@gmail.com>2018-06-17 12:37:41 -0400
committerVarriount <Varriount@users.noreply.github.com>2018-06-17 12:37:41 -0400
commit4616b28c7b592c8204d9f77f3c1f7db2fb7186d8 (patch)
treed826c73810358be3fe48a8ad60841c528c36aaf9 /lib/pure
parentdbcdc4331a2d87aafa06ce49d50277474595064d (diff)
downloadNim-4616b28c7b592c8204d9f77f3c1f7db2fb7186d8.tar.gz
Add support for italic and strikethrough ANSI escape codes (#8048)
\e[3m -> italic
    \e[9m -> strikethrough

On terminals not supporting italic text, the text is shown in reverse instead,
and on terminals not supporting strikethrough text, the text is shown as is.
Diffstat (limited to 'lib/pure')
-rw-r--r--lib/pure/terminal.nim9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/pure/terminal.nim b/lib/pure/terminal.nim
index fcca4d5d7..8ee95957d 100644
--- a/lib/pure/terminal.nim
+++ b/lib/pure/terminal.nim
@@ -467,16 +467,18 @@ proc resetAttributes*(f: File) =
     f.write(ansiResetCode)
 
 type
-  Style* = enum         ## different styles for text output
+  Style* = enum          ## different styles for text output
     styleBright = 1,     ## bright text
     styleDim,            ## dim text
-    styleUnknown,        ## unknown
+    styleItalic,         ## italic (or reverse on terminals not supporting)
     styleUnderscore = 4, ## underscored text
     styleBlink,          ## blinking/bold text
-    styleReverse = 7,    ## unknown
+    styleReverse = 7,    ## reverse
     styleHidden          ## hidden text
+    styleStrikethrough,  ## strikethrough
 
 {.deprecated: [TStyle: Style].}
+{.deprecated: [styleUnknown: styleItalic].}
 
 when not defined(windows):
   var
@@ -843,6 +845,7 @@ when not defined(testing) and isMainModule:
   write(stdout, "never mind")
   stdout.eraseLine()
   stdout.styledWriteLine("styled text ", {styleBright, styleBlink, styleUnderscore})
+  stdout.styledWriteLine("italic text ", {styleItalic})
   stdout.setBackGroundColor(bgCyan, true)
   stdout.setForeGroundColor(fgBlue)
   stdout.writeLine("ordinary text")