command_api.go 577 B

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