edtris/editor/init.fnl

38 lines
958 B
Fennel

(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}