Refactor luaconsole to make it easier to use

This commit is contained in:
2021-11-04 11:20:29 -04:00
parent 7cbf40e3d6
commit cf5a2d7462
4 changed files with 63 additions and 82 deletions

View File

@@ -34,10 +34,6 @@ public:
channel_ = new_outgoing_channel("localhost:8085");
}
void do_lua(const std::string &lua) {
stdostream() << "Lua: " << lua << std::endl;
}
void do_command(const util::StringVec &words) {
stdostream() << "Command: ";
for (const std::string &word : words) {
@@ -46,27 +42,17 @@ public:
stdostream() << std::endl;
}
void console_process(const std::string &line) {
console_.add(line);
int action = console_.action();
if (action == LuaConsole::DO_LUA) {
do_lua(console_.lua_expression());
console_.clear();
} else if (action == LuaConsole::DO_COMMAND) {
do_command(console_.words());
console_.clear();
} else if (action == LuaConsole::DO_SYNTAX) {
stdostream() << console_.syntax() << std::endl;
console_.clear();
}
}
virtual void event_update() {
// Check for keyboard input on stdin.
while (true) {
std::string line = get_stdio_channel()->in()->readline();
if (line == "") break;
console_process(line);
console_.add(line);
const util::StringVec &words = console_.words();
if (!words.empty()) {
do_command(words);
console_.clear();
}
get_stdio_channel()->out()->write_bytes(console_.get_prompt());
}