| 'use strict'; | 
| var ansiEscapes = require('ansi-escapes'); | 
|   | 
| /** | 
|  * Move cursor left by `x` | 
|  * @param  {Readline} rl - Readline instance | 
|  * @param  {Number}   x  - How far to go left (default to 1) | 
|  */ | 
|   | 
| exports.left = function (rl, x) { | 
|   rl.output.write(ansiEscapes.cursorBackward(x)); | 
| }; | 
|   | 
| /** | 
|  * Move cursor right by `x` | 
|  * @param  {Readline} rl - Readline instance | 
|  * @param  {Number}   x  - How far to go left (default to 1) | 
|  */ | 
|   | 
| exports.right = function (rl, x) { | 
|   rl.output.write(ansiEscapes.cursorForward(x)); | 
| }; | 
|   | 
| /** | 
|  * Move cursor up by `x` | 
|  * @param  {Readline} rl - Readline instance | 
|  * @param  {Number}   x  - How far to go up (default to 1) | 
|  */ | 
|   | 
| exports.up = function (rl, x) { | 
|   rl.output.write(ansiEscapes.cursorUp(x)); | 
| }; | 
|   | 
| /** | 
|  * Move cursor down by `x` | 
|  * @param  {Readline} rl - Readline instance | 
|  * @param  {Number}   x  - How far to go down (default to 1) | 
|  */ | 
|   | 
| exports.down = function (rl, x) { | 
|   rl.output.write(ansiEscapes.cursorDown(x)); | 
| }; | 
|   | 
| /** | 
|  * Clear current line | 
|  * @param  {Readline} rl  - Readline instance | 
|  * @param  {Number}   len - number of line to delete | 
|  */ | 
| exports.clearLine = function (rl, len) { | 
|   rl.output.write(ansiEscapes.eraseLines(len)); | 
| }; |