package edit
import (
)
func ( cli.App) {
, := getNavigation()
if ! {
return
}
:= .SelectedName()
if == "" {
return
}
.CodeArea().MutateState(func( *tk.CodeAreaState) {
:= .Buffer.Dot
if != 0 && !strings.ContainsRune(" \n", rune(.Buffer.Content[-1])) {
.Buffer.InsertAtDot(" ")
}
.Buffer.InsertAtDot(parse.Quote())
})
}
func ( cli.App) {
navInsertSelected()
closeMode()
}
func ( interface{}) [3]int {
var (
[]int
bool
)
vals.Iterate(, func( interface{}) bool {
var int
:= vals.ScanToGo(, &)
if != nil {
= true
return false
}
= append(, )
return true
})
if || len() != 3 {
return [3]int{1, 3, 4}
}
var [3]int
copy([:], )
return
}
func ( *Editor, *eval.Evaler, eval.NsBuilder) {
:= newBindingVar(emptyBindingsMap)
:= newMapBindings(, , )
:= newListVar(vals.MakeList(1.0, 3.0, 4.0))
:= vars.FromGet(func() interface{} {
if , := getNavigation(.app); {
return .SelectedName()
}
return nil
})
:= .app
.Add("selected-file", )
.AddNs("navigation",
eval.NsBuilder{
"binding": ,
"width-ratio": ,
}.AddGoFns("<edit:navigation>", map[string]interface{}{
"start": func() {
:= mode.NewNavigation(, mode.NavigationSpec{
Bindings: ,
WidthRatio: func() [3]int {
return convertNavWidthRatio(.Get())
},
Filter: filterSpec,
})
startMode(, , nil)
},
"left": actOnNavigation(, mode.Navigation.Ascend),
"right": actOnNavigation(, mode.Navigation.Descend),
"up": actOnNavigation(,
func( mode.Navigation) { .Select(tk.Prev) }),
"down": actOnNavigation(,
func( mode.Navigation) { .Select(tk.Next) }),
"page-up": actOnNavigation(,
func( mode.Navigation) { .Select(tk.PrevPage) }),
"page-down": actOnNavigation(,
func( mode.Navigation) { .Select(tk.NextPage) }),
"file-preview-up": actOnNavigation(,
func( mode.Navigation) { .ScrollPreview(-1) }),
"file-preview-down": actOnNavigation(,
func( mode.Navigation) { .ScrollPreview(1) }),
"insert-selected": func() { navInsertSelected() },
"insert-selected-and-quit": func() { navInsertSelectedAndQuit() },
"trigger-filter": actOnNavigation(,
func( mode.Navigation) { .MutateFiltering(neg) }),
"trigger-shown-hidden": actOnNavigation(,
func( mode.Navigation) { .MutateShowHidden(neg) }),
}).Ns())
}
func ( bool) bool { return ! }
func ( cli.App) (mode.Navigation, bool) {
, := .CopyState().Addon.(mode.Navigation)
return ,
}
func ( cli.App, func(mode.Navigation)) func() {
return func() {
if , := getNavigation(); {
()
}
}
}