I'm trying to change the prompt for Node's REPL with text given inside the REPL.
My original attempt was something like this.
import repl from 'repl'
let PROMPT = 'original > '
repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text} >`
return callback()
}
})
I realized this isn't gonna work because the prompt for the repl is set when the process starts.
I came up with something like this, which starts a new repl with a new prompt after ever entered mand.
import repl from 'repl'
let PROMPT = 'original > '
let REPL = createRepl(PROMPT)
function createRepl (prompt) {
return repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text.replace(/\n/, '')} >`
REPL.close()
REPL = createRepl(PROMPT)
}
})
}
This solution is almost there the issue is that the process is exiting when I close the original REPL.
I'm simply trying to change the REPL prompt from inside the script after the process starts. I'm open to any means to do this. Ideally the prompt
prop took a function with the prompt
argument and allowed you to set it from within the function, then I could use an event or something else.
I'm trying to change the prompt for Node's REPL with text given inside the REPL.
My original attempt was something like this.
import repl from 'repl'
let PROMPT = 'original > '
repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text} >`
return callback()
}
})
I realized this isn't gonna work because the prompt for the repl is set when the process starts.
I came up with something like this, which starts a new repl with a new prompt after ever entered mand.
import repl from 'repl'
let PROMPT = 'original > '
let REPL = createRepl(PROMPT)
function createRepl (prompt) {
return repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text.replace(/\n/, '')} >`
REPL.close()
REPL = createRepl(PROMPT)
}
})
}
This solution is almost there the issue is that the process is exiting when I close the original REPL.
I'm simply trying to change the REPL prompt from inside the script after the process starts. I'm open to any means to do this. Ideally the prompt
prop took a function with the prompt
argument and allowed you to set it from within the function, then I could use an event or something else.
1 Answer
Reset to default 12You should be able to call repl.setPrompt('foo> ');
to change the prompt.
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744743985a4591198.html
评论列表(0条)