Generate a diff friendly string that is bounded by a configurable scroll box
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.travis.yml
LICENSE
README.md
example.js
index.js
package.json
test.js

README.md

scrollable-string

Generate a diff friendly string that is bounded by a configurable scroll box.

npm install scrollable-string

Build Status

Made for usage with ansi-diff-stream and friends

Usage

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

API

var str = scrollable(string, [options])

Create a new scrollable string. Options include:

{
  maxHeight: 32, // max rows height
  minHeight: 0 // min height (will pad the input string)
}

Event: update

Emitted after either str.up() or str.down() have been sucessfully called.

var moved = str.setPosition(pos)

Set absolute scroll position.

Returns true if the position changed, false if not.

var moved = str.up()

Move the view-port up.

Returns true if the position changed, false if not.

var moved = str.down()

Move the view-port down.

Returns true if the position changed, false if not.

var moved = str.move(inc)

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.

var moved = str.bottom()

Move to bottom.

Returns true if the position changed, false if not.

var moved = str.top()

Move to top.

Returns true if the position changed, false if not.

var rows = str.height()

Returns the height of the string in rows.

var changed = str.resize(options)

Resize the view-port. Takes same options as the constructor.

Returns true if either the position or the height changed, false if not.

var string = str.toString()

Returns the string rendered by the view-port.

var percentage = str.pct()

Returns the current scroll position in percent (a number between 0 and 1).

var bool = str.atBottom()

Check if the view-port is at the bottom.

var bool = str.atTop()

Check if the view-port is at the top.

var bool = str.scrollable()

Check if the view-port is not at the top or bottom.

License

MIT