Ответ 1
Вы можете обезглавить REPL:
var repl = require('repl').start()
var _complete = repl.complete
repl.complete = function(line) {
...
_complete.apply(this, arguments)
}
Я искал эту функцию в node.js, и я ее не нашел.
Могу ли я реализовать его сам? Насколько мне известно, node.js не загружает ни одного файла при запуске (например, Bash делает с .bashrc
), и я не заметил никакого способа переопределить приглашение оболочки.
Есть ли способ реализовать его без написания пользовательской оболочки?
Вы можете обезглавить REPL:
var repl = require('repl').start()
var _complete = repl.complete
repl.complete = function(line) {
...
_complete.apply(this, arguments)
}
Как ссылка.
readline
модуль имеет метод readline.createInterface(options)
, который принимает необязательную функцию completer
, которая делает завершение табуляции.
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]
}
и
function completer(linePartial, callback) {
callback(null, [['123'], linePartial]);
}
ссылка на api docs: http://nodejs.org/api/readline.html#readline_readline_createinterface_options