diff --git a/lib/_debugger.js b/lib/_debugger.js index 3fd61238f02..422858ee43e 100644 --- a/lib/_debugger.js +++ b/lib/_debugger.js @@ -351,7 +351,10 @@ function SourceInfo(body) { // "node debug" function Interface() { var self = this; - var term = this.term = readline.createInterface(process.stdout); + var term = this.term = + readline.createInterface(process.stdout, function (line) { + return self.complete(line); + }); var child; var client; var term; @@ -396,6 +399,39 @@ function Interface() { } +var commands = [ + 'backtrace', + 'continue', + 'help', + 'info breakpoints', + 'kill', + 'list', + 'next', + 'print', + 'quit', + 'run', + 'scripts', + 'step', + 'version', +]; + + +Interface.prototype.complete = function(line) { + // Match me with a command. + var matches = []; + // Remove leading whitespace + line = line.replace(/^\s*/, ''); + + for (var i = 0; i < commands.length; i++) { + if (commands[i].indexOf(line) >= 0) { + matches.push(commands[i]); + } + } + + return [matches, line]; +}; + + Interface.prototype.handleSIGINT = function() { if (this.paused) { this.child.kill('SIGINT');