bililiteRange is a javascript library that abstracts text selection and replacement.

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require



Github repo:

bililiteRange is a javascript library that abstracts text selection and replacement.

The basic function is in bililiteRange.js, with the documentation at

The other files are assorted javascript libraries that use bililiteRange:

bililiteRange.ex.js: Implements the ex line-editor ( ). Depends on the util and undo libraries below. Documentation at

bililiteRange.fancytext.js: Uses bililiteRange to allow using the Prism syntax highlighter ( to create a simple syntax-highlighting text editor. Documentation at bililiteRange.fancytextasync.js: Like fancytext but allows stacking multiple highlighters asynchronolously.

bililiteRange.util.js: Adds useful functions for searching and keeping the ranges up-to-date with changes in the underlying text. Documentation at

bililiteRange.undo.js: Adds an undo/redo stack to editable elements. Documentation at

jquery.jsvk.js: A jQuery plugin to use Ilya Lebedev's JavaScript VirtualKeyboard ( Depends on bililiteRange for character insertion. Documentation at

jquery.keymap.js: Not really part of the bililiteRange family, but I use them together. A jQuery plugin to turn keydown codes into understandable characters. Also includes a "hotkeys" plugin that allows keystroke handlers for specific keys, like $(el).on('keydown', {keys: '^A'}, function(){}) . Documentation at

jquery.livesearch.js: jQuery plugin to do "live" searching for a regular expression; highlights the text found and scrolls to it as you type. Documentation at

jquery.savemonitor.js: jQuery plugin to track when an element changes and when it is saved. Documentation at

jquery.sendkeys.js: jQuery plugin to simulate keypresses. Documentation at

jquery.status.js: jQuery plugin to display messages and get user input. Documentation at

The other files are not mature and are not documented at all.