42 lines
1.3 KiB
Fennel
42 lines
1.3 KiB
Fennel
(local editor (require :editor))
|
|
(local util (require :lib.util))
|
|
(local lume (require :lib.lume))
|
|
(local core (require :core))
|
|
(local command (require :core.command))
|
|
(local keymap (require :core.keymap))
|
|
(local translate (require :core.doc.translate))
|
|
(local faith (require :lib.faith))
|
|
(local debug (require :inspector.debug))
|
|
(local fennel (require :lib.fennel))
|
|
(local fv fennel.view)
|
|
|
|
(require :game.meta)
|
|
|
|
(command.add "core.docview" {
|
|
"fennel:eval" #(editor.inline-eval #(fv (fennel.eval $1 {:env _G :compiler-env _G}) {}))
|
|
"lume:hotswap" (fn []
|
|
(local modname
|
|
(-> core.active_view.doc.filename
|
|
(: :gsub "%.%a+$" "")
|
|
(: :gsub "/" ".")
|
|
(: :gsub "^data%." "")
|
|
(: :gsub "%.init$" "")))
|
|
(core.log (.. "Hotswapping " modname))
|
|
(local (mod err) (util.hotswap modname))
|
|
(when (not= err nil) (print err) (error err)))
|
|
})
|
|
(command.add nil {
|
|
"faith:run-tests" (fn []
|
|
(each [modname _ (pairs package.loaded)]
|
|
(when (or (= modname :test) (modname:match "^test%."))
|
|
(tset package.loaded modname nil)))
|
|
(faith.run (require :test) {:hooks {:exit #(core.log "Tests failed!")
|
|
:done (fn [report] (debug.inspect "Test report" report))}}))
|
|
})
|
|
(keymap.add {
|
|
"alt+e" "fennel:eval"
|
|
"alt+r" "lume:hotswap"
|
|
})
|
|
|
|
{}
|