(local util (require :lib.util)) (local core (require :core)) (local command (require :core.command)) (local keymap (require :core.keymap)) (local common (require :core.common)) (fn selected-form [] (let [ldoc core.active_view.doc (aline acol bline bcol) (ldoc:get_selection)] (if (and (= aline bline) (= acol bcol)) (ldoc:get_text aline 1 aline 10000000) (ldoc:get_text aline acol bline bcol)))) (fn inline-eval [eval] (let [ldoc core.active_view.doc (aline acol bline bcol) (ldoc:get_selection)] (ldoc:insert bline bcol (eval (selected-form))))) (require :editor.editmode) (command.add :editor.replview { "repl:submit" #(core.active_view:submit) }) (local {: show : submit} (util.require :inspector.debug)) (command.add nil { "repl:create" #(show) }) (command.add :core.docview { "repl:eval" #(submit nil (selected-form)) }) (keymap.add { :return "repl:submit" "alt+e" "repl:eval" }) {: inline-eval}