package edit

import (
	
	
	
	
)

func ( *Editor,  *eval.Evaler,  eval.NsBuilder) {
	 := newBindingVar(emptyBindingsMap)
	 := newMapBindings(, , )
	.AddNs("minibuf",
		eval.NsBuilder{
			"binding": ,
		}.AddGoFns("<edit:minibuf>:", map[string]interface{}{
			"start": func() { minibufStart(, , ) },
		}).Ns())
}

func ( *Editor,  *eval.Evaler,  tk.Bindings) {
	 := tk.NewCodeArea(tk.CodeAreaSpec{
		Prompt:   mode.Prompt(" MINIBUF ", true),
		Bindings: ,
		OnSubmit: func() { minibufSubmit(, ) },
		// TODO: Add Highlighter. Right now the async highlighter is not
		// directly usable.
	})
	.app.SetAddon(, false)
	.app.Redraw()
}

func ( *Editor,  *eval.Evaler) {
	 := .app
	,  := .CopyState().Addon.(tk.CodeArea)
	if ! {
		return
	}
	.app.SetAddon(nil, false)
	 := .CopyState().Buffer.Content
	 := parse.Source{Name: "[minibuf]", Code: }
	,  := makeNotifyPort()
	defer ()
	 := []*eval.Port{eval.DummyInputPort, , }
	 := .Eval(, eval.EvalCfg{Ports: })
	if  != nil {
		.Notify(.Error())
	}
}