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  }