|
|
@ -105,7 +105,10 @@ const (
|
|
|
|
actUnixWordRubout
|
|
|
|
actUnixWordRubout
|
|
|
|
actYank
|
|
|
|
actYank
|
|
|
|
actBackwardKillWord
|
|
|
|
actBackwardKillWord
|
|
|
|
|
|
|
|
actSelectAll
|
|
|
|
|
|
|
|
actDeselectAll
|
|
|
|
actToggle
|
|
|
|
actToggle
|
|
|
|
|
|
|
|
actToggleAll
|
|
|
|
actToggleDown
|
|
|
|
actToggleDown
|
|
|
|
actToggleUp
|
|
|
|
actToggleUp
|
|
|
|
actDown
|
|
|
|
actDown
|
|
|
@ -661,20 +664,28 @@ func (t *Terminal) Loop() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
toggle := func() {
|
|
|
|
selectItem := func(item *Item) bool {
|
|
|
|
if t.cy < t.merger.Length() {
|
|
|
|
if _, found := t.selected[item.index]; !found {
|
|
|
|
item := t.merger.Get(t.cy)
|
|
|
|
var strptr *string
|
|
|
|
if _, found := t.selected[item.index]; !found {
|
|
|
|
if item.origText != nil {
|
|
|
|
var strptr *string
|
|
|
|
strptr = item.origText
|
|
|
|
if item.origText != nil {
|
|
|
|
|
|
|
|
strptr = item.origText
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
strptr = item.text
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
t.selected[item.index] = selectedItem{time.Now(), strptr}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
delete(t.selected, item.index)
|
|
|
|
strptr = item.text
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
t.selected[item.index] = selectedItem{time.Now(), strptr}
|
|
|
|
|
|
|
|
return true
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return false
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
toggleY := func(y int) {
|
|
|
|
|
|
|
|
item := t.merger.Get(y)
|
|
|
|
|
|
|
|
if !selectItem(item) {
|
|
|
|
|
|
|
|
delete(t.selected, item.index)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
toggle := func() {
|
|
|
|
|
|
|
|
if t.cy < t.merger.Length() {
|
|
|
|
|
|
|
|
toggleY(t.cy)
|
|
|
|
req(reqInfo)
|
|
|
|
req(reqInfo)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -725,11 +736,34 @@ func (t *Terminal) Loop() {
|
|
|
|
t.input = append(t.input[:t.cx-1], t.input[t.cx:]...)
|
|
|
|
t.input = append(t.input[:t.cx-1], t.input[t.cx:]...)
|
|
|
|
t.cx--
|
|
|
|
t.cx--
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
case actSelectAll:
|
|
|
|
|
|
|
|
if t.multi {
|
|
|
|
|
|
|
|
for i := 0; i < t.merger.Length(); i++ {
|
|
|
|
|
|
|
|
item := t.merger.Get(i)
|
|
|
|
|
|
|
|
selectItem(item)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
req(reqList, reqInfo)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
case actDeselectAll:
|
|
|
|
|
|
|
|
if t.multi {
|
|
|
|
|
|
|
|
for i := 0; i < t.merger.Length(); i++ {
|
|
|
|
|
|
|
|
item := t.merger.Get(i)
|
|
|
|
|
|
|
|
delete(t.selected, item.index)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
req(reqList, reqInfo)
|
|
|
|
|
|
|
|
}
|
|
|
|
case actToggle:
|
|
|
|
case actToggle:
|
|
|
|
if t.multi && t.merger.Length() > 0 {
|
|
|
|
if t.multi && t.merger.Length() > 0 {
|
|
|
|
toggle()
|
|
|
|
toggle()
|
|
|
|
req(reqList)
|
|
|
|
req(reqList)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
case actToggleAll:
|
|
|
|
|
|
|
|
if t.multi {
|
|
|
|
|
|
|
|
for i := 0; i < t.merger.Length(); i++ {
|
|
|
|
|
|
|
|
toggleY(i)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
req(reqList, reqInfo)
|
|
|
|
|
|
|
|
}
|
|
|
|
case actToggleDown:
|
|
|
|
case actToggleDown:
|
|
|
|
if t.multi && t.merger.Length() > 0 {
|
|
|
|
if t.multi && t.merger.Length() > 0 {
|
|
|
|
toggle()
|
|
|
|
toggle()
|
|
|
|