From c07edd90f5bfb4edb98b57e76e56742e08142b91 Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Fri, 9 Dec 2011 15:24:15 +0600 Subject: [PATCH] preserve cursor pos * configurable via .prompt()'s preserveCursor argument (false by default) --- lib/_debugger.js | 2 +- lib/readline.js | 4 ++-- lib/repl.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/_debugger.js b/lib/_debugger.js index b0fb61c..a97eca1 100644 --- a/lib/_debugger.js +++ b/lib/_debugger.js @@ -867,7 +867,7 @@ Interface.prototype.childPrint = function(text) { }).map(function(chunk) { return '< ' + chunk; }).join('\n')); - this.repl.displayPrompt(); + this.repl.displayPrompt(true); }; // Errors formatting diff --git a/lib/readline.js b/lib/readline.js index a87ba1e..de484d3 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -125,9 +125,9 @@ Interface.prototype.setPrompt = function(prompt, length) { }; -Interface.prototype.prompt = function() { +Interface.prototype.prompt = function(preserveCursor) { if (this.enabled) { - this.cursor = 0; + if (!preserveCursor) this.cursor = 0; this._refreshLine(); } else { this.output.write(this._prompt); diff --git a/lib/repl.js b/lib/repl.js index 3a5ac43..2c3baeb 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -282,11 +282,11 @@ REPLServer.prototype.resetContext = function(force) { this.context = context; }; -REPLServer.prototype.displayPrompt = function() { +REPLServer.prototype.displayPrompt = function(preserveCursor) { this.rli.setPrompt(this.bufferedCommand.length ? '...' + new Array(this.lines.level.length).join('..') + ' ' : this.prompt); - this.rli.prompt(); + this.rli.prompt(preserveCursor); }; -- 2.7.4