jale/src/jale/renderer.nim

21 lines
563 B
Nim

# renderer.nim
#
# a terminal renderer for readline-like libraries
import strutils
import uniterm
proc renderLine*(wr: var TermWriter, prompt: string, content: string, hscroll: int = 0) =
wr.cr()
var content = prompt & content
if content.len() < wr.terminalWidth():
content &= " ".repeat(wr.terminalWidth() - content.len())
if content.len() > wr.terminalWidth():
var lower = hscroll
var upper = hscroll + wr.terminalWidth() - 1
if upper > content.high():
upper = content.high()
content = content[lower..upper]
wr &= content