2016-03-31 3 views
1

Я пытаюсь изменить приглашение для REPL Node с текстом, указанным внутри REPL.Изменить запрос REPL из REPL

Моя первоначальная попытка была чем-то вроде этого.

import repl from 'repl' 

let PROMPT = 'original > ' 

repl.start({ 
    ignoreUndefined: true, 
    prompt: PROMPT, 
    eval: (text, context, filename, callback) => { 
    PROMPT = `${text} >` 
    return callback() 
    } 
}) 

Я понял, что это не сработает, потому что подсказка для repl устанавливается при запуске процесса.

Я придумал что-то вроде этого, которое начинает новую замену новым приглашением после когда-либо введенной команды.

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) 
    } 
    }) 
} 

Это решение почти там, проблема заключается в том, что процесс завершается, когда я закрываю оригинальный REPL.

Я просто пытаюсь изменить запрос REPL внутри скрипта после запуска процесса. Я открыт для любых способов сделать это. В идеале prompt prop принял функцию с аргументом prompt и позволил вам установить ее изнутри функции, затем я мог бы использовать событие или что-то еще.

ответ

3

Чтобы изменить приглашение, вы должны позвонить repl.setPrompt('foo> ');.

+0

:: facepalm :: работает как шарм, спасибо! – ThomasReggi

 Смежные вопросы

  • Нет связанных вопросов^_^