diff options
Diffstat (limited to 'xmake/plugins/lua/xmake.lua')
| -rw-r--r-- | xmake/plugins/lua/xmake.lua | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/xmake/plugins/lua/xmake.lua b/xmake/plugins/lua/xmake.lua index 1c6b2bf27..bef62203b 100644 --- a/xmake/plugins/lua/xmake.lua +++ b/xmake/plugins/lua/xmake.lua @@ -34,6 +34,8 @@ task("lua") -- imports import("core.base.option") import("core.sandbox.sandbox") + import("core.project.history") + import("lib.readline") -- list all scripts? if option.get("list") then @@ -56,8 +58,28 @@ task("lua") import("scripts." .. name).main(unpack(option.get("arguments") or {})) end else + -- clear history + readline.clear_history() + + -- load history + local replhistory = history.load("replhistory") or {} + for _, ln in ipairs(replhistory) do + readline.add_history(ln) + end + -- enter interactive mode sandbox.interactive() + + -- save to history + local entries = readline.get_history_state().entries + if #entries > #replhistory then + for i = #replhistory+1, #entries do + history.save("replhistory", entries[i].line) + end + end + + -- clear history + readline.clear_history() end end) |
