From 0f5d1f407473145c9e0395baf21c433d0bbf712d Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 25 Oct 2020 23:36:06 +0000 Subject: js: Load and save history from/to ~/.js-history This is super useful when hacking on LibJS and in general :^) --- Userland/js.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Userland/js.cpp b/Userland/js.cpp index e19965cbb8..316160e0d7 100644 --- a/Userland/js.cpp +++ b/Userland/js.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -68,6 +69,7 @@ private: static bool s_dump_ast = false; static bool s_print_last_result = false; static RefPtr s_editor; +static String s_history_path = String::formatted("{}/.js-history", Core::StandardPaths::home_directory()); static int s_repl_line_level = 0; static bool s_fail_repl = false; @@ -572,10 +574,12 @@ int main(int argc, char** argv) interpreter->vm().set_underscore_is_last_value(true); s_editor = Line::Editor::construct(); + s_editor->load_history(s_history_path); signal(SIGINT, [](int) { if (!s_editor->is_editing()) sigint_handler(); + s_editor->save_history(s_history_path); }); s_editor->on_display_refresh = [syntax_highlight](Line::Editor& editor) { @@ -763,6 +767,7 @@ int main(int argc, char** argv) }; s_editor->on_tab_complete = move(complete); repl(*interpreter); + s_editor->save_history(s_history_path); } else { interpreter = JS::Interpreter::create(*vm); ReplConsoleClient console_client(interpreter->global_object().console()); -- cgit v1.2.3