我有嘴唇REPL。我已经在lisp中读取了功能。我想在读取读取代码时禁用历史记录,并在完成后启用历史记录。这是我的代码:
var prompt = 'lips> ';
var continuePrompt = '... ';
const rl = readline.createInterface({
input: process.stdin,output: process.stdout,prompt: prompt,terminal: !!process.stdin.isTTY
});
if (process.stdin.isTTY) {
rl.prompt();
}
var code = '';
var multiline = false;
var e = env.inherit('name',{
stdin: {
read: function() {
return new Promise(function(resolve) {
rl.question('',resolve);
});
}
}
});
rl.on('line',function(line) {
code += line;
if (balanced_parenthesis(code)) {
rl.pause();
run(code,e).then(function(result) {
if (process.stdin.isTTY) {
print(result);
if (multiline) {
rl.setPrompt(prompt);
}
code = '';
rl.prompt();
}
rl.resume();
}).catch(function() {
if (process.stdin.isTTY) {
if (multiline) {
rl.setPrompt(prompt);
}
rl.prompt();
}
code = '';
});
} else {
multiline = true;
var i = indent(code,2,prompt.length - continuePrompt.length);
rl.setPrompt(continuePrompt);
rl.prompt();
rl.write(new Array(i + 1).join(' '));
}
});
我从Docs中发现,将HistorySize设置为0以使用readline.createInterface
的唯一方法是,但是如何更新它?