mirror of https://github.com/japl-lang/jale.git
21 lines
563 B
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
|
|
|