diff options
Diffstat (limited to 'plugins/eval.lua')
-rw-r--r-- | plugins/eval.lua | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/plugins/eval.lua b/plugins/eval.lua new file mode 100644 index 0000000..54e08ba --- /dev/null +++ b/plugins/eval.lua @@ -0,0 +1,23 @@ +local core = require "core" +local command = require "core.command" + + +local function eval(str) + local fn, err = load("return " .. str) + if not fn then fn, err = load(str) end + assert(fn, err) + return tostring(fn()) +end + + +command.add("core.docview", { + ["eval:insert"] = function() + core.command_view:enter("Evaluate And Insert Result", function(cmd) + core.active_view.doc:text_input(eval(cmd)) + end) + end, + + ["eval:replace"] = function() + core.active_view.doc:replace(eval) + end, +}) |