2011-08-17 16 views
11

Szukałem tej funkcji w node.js i nie znalazłem jej.
Czy mogę to wdrożyć samodzielnie? O ile mi wiadomo, plik node.js nie ładuje żadnego pliku podczas jego uruchamiania (jak Bash z .bashrc) i nie zauważyłem żadnego sposobu, aby jakoś nadpisać polecenie powłoki.Jak zaimplementować uzupełnianie karty w powłoce node.js?

Czy istnieje sposób na jego wdrożenie bez pisania niestandardowej powłoki?

+0

AFAIK nie ma opcji autouzupełniania dla terminala V8. Może jednak pomocne mogą być narzędzia takie jak [with-readline] (http://www.greenend.org.uk/rjk/2005/withreadline.html). – brandizzi

Odpowiedz

9

Mogłeś monkey-patch rEPL:

var repl = require('repl').start() 
var _complete = repl.complete 
repl.complete = function(line) { 
    ... 
    _complete.apply(this, arguments) 
} 
4

tylko jako punkt odniesienia.

Moduł

readline ma metodę readline.createInterface(options), która akceptuje opcjonalną funkcję completer, która powoduje zakończenie zakładki.

function completer(line) { 
    var completions = '.help .error .exit .quit .q'.split(' ') 
    var hits = completions.filter(function(c) { return c.indexOf(line) == 0 }) 
    // show all completions if none found 
    return [hits.length ? hits : completions, line] 
} 

i

function completer(linePartial, callback) { 
    callback(null, [['123'], linePartial]); 
} 

link docs API: http://nodejs.org/api/readline.html#readline_readline_createinterface_options

Powiązane problemy