src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/edit/command_api.go (about) 1 package edit 2 3 // Implementation of the editor "command" mode. 4 5 import ( 6 "src.elv.sh/pkg/cli/modes" 7 "src.elv.sh/pkg/eval" 8 ) 9 10 func initCommandAPI(ed *Editor, ev *eval.Evaler, nb eval.NsBuilder) { 11 bindingVar := newBindingVar(emptyBindingsMap) 12 bindings := newMapBindings(ed, ev, bindingVar) 13 nb.AddNs("command", 14 eval.BuildNsNamed("edit:command"). 15 AddVar("binding", bindingVar). 16 AddGoFns(map[string]any{ 17 "start": func() { 18 w := modes.NewStub(modes.StubSpec{ 19 Bindings: bindings, 20 Name: " COMMAND ", 21 }) 22 ed.app.PushAddon(w) 23 }, 24 })) 25 }