Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

repl: make tab completion read up the prototype of "global"

For example, there's a global "toString()" function, so the REPL's
tab completion should pick that up.
  • Loading branch information...
commit f405daa92260b0bb9fc5cf8c5c2991679e00bdf2 1 parent 98b4596
@TooTallNate TooTallNate authored
Showing with 10 additions and 0 deletions.
  1. +4 −0 lib/repl.js
  2. +6 −0 test/simple/test-repl-tab-complete.js
View
4 lib/repl.js
@@ -535,6 +535,10 @@ REPLServer.prototype.complete = function(line, callback) {
if (this.useGlobal ||
this.context.constructor &&
this.context.constructor.name === 'Context') {
+ var contextProto = this.context;
+ while (contextProto = Object.getPrototypeOf(contextProto)) {
+ completionGroups.push(Object.getOwnPropertyNames(contextProto));
+ }
completionGroups.push(Object.getOwnPropertyNames(this.context));
addStandardGlobals();
completionGroupsLoaded();
View
6 test/simple/test-repl-tab-complete.js
@@ -202,3 +202,9 @@ testMe.complete(' ', function(error, data) {
assert.deepEqual(data, [[],undefined]);
clearTimeout(spaceTimeout);
});
+
+// tab completion should pick up the global "toString" object, and
+// any other properties up the "global" object's prototype chain
+testMe.complete('toSt', function(error, data) {
+ assert.deepEqual(data, [['toString'], 'toSt']);
+});
Please sign in to comment.
Something went wrong with that request. Please try again.