рдЕрдЪреНрдЫреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдирдорд╕реНрдХрд╛рд░ред
рдЗрд╕ рд╢реАрд░реНрд╖рдХ рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп, рдкрд╛рдардХ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ: рдХрдВрд╕реЛрд▓ рдФрд░ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреНрдпреЛрдВ рдорд┐рд▓рд╛рдПрдБ - GUI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрдВрд╕реЛрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдирд╣реАрдВ, рдореИрдВ рдХрд╣рдиреЗ рдХреА рд╣рд┐рдореНрдордд рдХрд░рддрд╛ рд╣реВрдВред рдХрднреА-рдХрднреА, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдФрд░ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдХрдВрд╕реЛрд▓ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ рдлрд╛рд╕реНрдЯ рдХреА-рд╡реИрд▓реНрдпреВ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдлрд┐рд▓рд╣рд╛рд▓ рд░реЗрдбрд┐рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рджреЗрдЦрдиреЗ, рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╢рд╛рд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рднреА рдбреЗрд╕реНрдХрдЯреЙрдк рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓реАрдХреЗрд╢рди рдирд╣реАрдВ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХрдВрд╕реЛрд▓ рд╣реИ, рд░реЗрдбрд┐рд╕ рдПрдбрдорд┐рди рдпреВрдЖрдИ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдЬрд┐рд╕реЗ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП .NET рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбрд░рд╛ рд░рд╣рд╛ рд╣реИ) рдФрд░ рд░реВрдмреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ, рдпрд╣ рдЬрд▓реНрджрдмрд╛рдЬреА рдореЗрдВ, рдШреБрдЯрдиреЗ рдкрд░ рд▓рдЧрддрд╛ рд╣реИред
рдореИрдВ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рддреЗрдЬрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рд░реЗрдбрд┐рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рднрд░рдиреЗ рдФрд░ рдРрд╕рд╛ рдЙрдкрдХрд░рдг рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЬрдм рд╕реЗ рдЖрдкрдХреЛ рддреЗрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рддрдм рд╕реА ++, рдЬрдм рд╕реЗ рдЖрдкрдХреЛ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рддрдм рдХреНрдпреВрдЯреАред

рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдЖрдк рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рд╣рд░ рджрд┐рди рдирдП рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдПрдХ рдХрдВрд╕реЛрд▓ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред Qt рдореЗрдВ рдХрд┐рд╕ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдХреИрд╕реЗ, рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдЕрдзрд░реНрдо рд╕реЗ рд▓реЗрдХрд░ рдХреБрд▓ рдирд┐рдпрдВрддреНрд░рдг рддрдХ
рдмреЗрд╕ рдХрдВрд╕реЛрд▓ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ QPlainTextEdit рдХреЛ рдЪреБрдирд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕рдореЗрдВ рдЙрдиреНрдирдд рдкрд╛рда рд╕рдВрдкрд╛рджрди рдХреНрд╖рдорддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдпрд╣ рдЖрдкрдХреЛ рд╕реНрд╡рд░реВрдкрдг рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рд░рдВрдЧ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗрдЧреАред
рддреЛ, QPlainTextEdit рдХрд╛ рд╡рдВрд╢рдЬ рдмрдирд╛рдПрдВред
class Console : public QPlainTextEdit{};
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ QPlainTextEdit QTextEdit рдХрд╛ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рднреНрдп рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдо рдХрд░реЗрдВрдЧреЗ, рд╡рд╣ рд╕рдм рдХреБрдЫ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рд╣реИ рдЬреЛ рд╕рдВрднрд╡ рд╣реИред рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдзрд░реНрдо рд╕реЗ рд▓реЗрдХрд░ рдХреБрд▓ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╣реИрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реНрдЯреНрд░реЛрдХреНрд╕ рдФрд░ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реНрд▓реЙрдЯреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
void Console::keyPressEvent(QKeyEvent *){} void Console::mousePressEvent(QMouseEvent *){} void Console::mouseDoubleClickEvent(QMouseEvent *){} void Console::contextMenuEvent(QContextMenuEvent *){}
рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рди рддреЛ рд╡рд┐рдЬреЗрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдЪрд░рд┐рддреНрд░ рджрд░реНрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рди рд╣реА рдкрд╛рда рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЪреБрди рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ - рдкреВрд░реНрдг рдЕрд╡рд░реБрджреНрдзред
рдЙрджрд╛рд░реАрдХрд░рдг рдХрд╛ рджреМрд░
рдЕрдм рд╣рдо рдХреБрд▓ рдкреНрд░рддрд┐рдмрдВрдз рд╕реЗ рдПрдХ рдЙрдЪрд┐рдд рд▓реЛрдХрддрдВрддреНрд░ рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╕рд╛рде рд╣реА рд╕рд╛рде рд╣рд░ рдЙрд╕ рдЪреАрдЬ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░реЙрдореНрдкреНрдЯ рд▓рд╛рдЗрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
рдФрд░ рдкреНрд░рд╛рдВрдкреНрдЯ рд▓рд╛рдЗрди рдХреЛ рдХрдВрд╕реЛрд▓ рдкрд░ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ:
рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдорд╛рдЙрд╕ рд╕реЗ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдХрд░реНрд╕рд░ рдХреЛ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдХрдВрд╕реЛрд▓ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛:
void Console::mousePressEvent(QMouseEvent *) { setFocus(); }
рд╕рд╛рдзрд╛рд░рдг рдЕрдХреНрд╖рд░реЛрдВ, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп, рдЙрдиреНрд╣реЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
void Console::keyPressEvent(QKeyEvent *event) {
рдмреИрдХрд╕реНрдкреЗрд╕ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рдорд┐рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдВрджреБ рддрдХ - рдЗрд╕рд▓рд┐рдП, рднрдЧрд╡рд╛рди рди рдХрд░реЗ, рдЖрдордВрддреНрд░рдг рд░реЗрдЦрд╛ рдЦреЛ рдирд╣реАрдВ рд╣реИ:
void Console::keyPressEvent(QKeyEvent *event) {
рдХрдорд╛рдВрдб рдХреЛ рдЗрдирдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреЗрдЯ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ (рдЬрдм рдЖрдк Enter рджрдмрд╛рддреЗ рд╣реИрдВ):
void Console::keyPressEvent(QKeyEvent *event) {
рдХрдорд╛рдВрдб рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╕рдордп, рд╣рдордиреЗ рдкреНрд░реЙрдореНрдкреНрдЯ рд▓рд╛рдЗрди рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдФрд░ рдПрдХ рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╕реНрд▓реЙрдЯ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
void Console::onEnter() { if(textCursor().positionInBlock() == prompt.length()) { insertPrompt(); return; } QString cmd = textCursor().block().text().mid(prompt.length()); emit onCommand(cmd); }
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдорд╛рдВрдб рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрдХрдмреЙрдХреНрд╕ рд╕реЗрдЯ рдХрд░реЗрдВред
void Console::onEnter() {
рдЖрд╡реЗрджрди - рд╡рд┐рдЬреЗрдЯ рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХрдорд╛рдВрдб рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХрдВрд╕реЛрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рдЕрдирд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
void Console::output(QString s) { textCursor().insertBlock(); textCursor().insertText(s); insertPrompt(); isLocked = false; }
рдЯреАрдо рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕
рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╕рднреА рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдП рдФрд░ рдЬрдм рдЖрдк рдКрдкрд░ / рдиреАрдЪреЗ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдПрдВрдЧреЗ рддреЛ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛:
рд╕реБрдВрджрд░ рдмрдирд╛рдирд╛: рд╕рд╛рдВрддреНрд╡рдирд╛ рд░рдВрдЧ
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдЬреЗрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ, рд╣рдо рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░рдВрдЧ рд╕рд░рдЧрдо тАЛтАЛрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд▓реА рд╣реИ, рдЗрдирдкреБрдЯ рдХрдорд╛рдВрдб рдХреЗ рдЕрдХреНрд╖рд░ рд╣рд░реЗ рд╣реИрдВ:
QPalette p = palette(); p.setColor(QPalette::Base, Qt::black); p.setColor(QPalette::Text, Qt::green); setPalette(p);
рдЬрдм рд╢реАрдШреНрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдлрд╝реЙрдиреНрдЯ рдХреЛ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВ:
void Console::insertPrompt(bool insertNewBlock) {
рдФрд░ рдХрдорд╛рдВрдб рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдПрдХ рд╕рдлреЗрдж рдлрд╝реЙрдиреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ:
void Console::output(QString s) {
рд╕рдм рдиреАрдЪреЗ!
рдореИрдВ рдпрд╣ рднреА рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХрдВрд╕реЛрд▓ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХрд╛ рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдмрд╣реБрдд рдиреАрдЪреЗ рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
void Console::insertPrompt(bool insertNewBlock) {
рдкрд░рд┐рдгрд╛рдо
рдкрд░рд┐рдгрд╛рдо рдПрдХ рдордЬреЗрджрд╛рд░, рд╕реБрдВрджрд░ рдФрд░ рдЖрд░рд╛рдорджрд╛рдпрдХ рдХрдВрд╕реЛрд▓ рд╣реИред рдпрд╣ рдореБрдЭреЗ рдХреЗрд╡рд▓ 120 рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдХреЛрдб рд▓рдЧрд╛ред рдмреЗрд╢рдХ, рдХрдИ рдФрд░ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдВрджрд░реНрдн
GitHub рдкрд░ RedisConsole рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб:
https://github.com/ptrofimov/RedisConsoleрд╡рд╣рд╛рдВ рдЖрдк рдХрдВрд╕реЛрд▓ рд╡рд┐рдЬреЗрдЯ рдХреНрд▓рд╛рд╕ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ "рдбрд╛рдЙрдирд▓реЛрдб" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд╛рдЗрдирд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рдж