Generate a diff friendly string that is bounded by a configurable scroll box.
npm install scrollable-string
Made for usage with ansi-diff-stream and friends
var scrollable = require('scrollable-string')
var multiLineString = `
foo
bar
baz
`
var str = scrollable(multiLineString, {
maxHeight: 2 // max 32 rows high
})
console.log(str.toString()) // prints foo\nbar\n
str.down()
console.log(str.toString()) // prints bar\nbaz\n
str.down()
console.log(str.toString()) // still prints bar\nbaz\n
Create a new scrollable string. Options include:
{
maxHeight: 32, // max rows height
minHeight: 0 // min height (will pad the input string)
}
Emitted after either str.up()
or str.down()
have been sucessfully
called.
Set absolute scroll position.
Returns true
if the position changed, false
if not.
Move the view-port up.
Returns true
if the position changed, false
if not.
Move the view-port down.
Returns true
if the position changed, false
if not.
Move the view-port up or down, i.e str.move(-5)
to move 5 lines up.
Returns true
if the position changed, false
if not.
Move to bottom.
Returns true
if the position changed, false
if not.
Move to top.
Returns true
if the position changed, false
if not.
Returns the height of the string in rows.
Resize the view-port. Takes same options as the constructor.
Returns true
if either the position or the height changed, false
if not.
Returns the string rendered by the view-port.
Returns the current scroll position in percent (a number between 0
and
1
).
Check if the view-port is at the bottom.
Check if the view-port is at the top.
Check if the view-port is not at the top or bottom.
MIT