This has a few effects:
- `lastSearch` doesn't get overriden with partial searches
unnecessarily, which matches the behaviour of vim/emacs etc.
- Selecting a word, then pressing C-c C-f ENTER works better as you can
now use C-n and C-p to jump to more occurrences of what you just
searched for. Without this C-n would jump to what you searched for
*previously*.
- `lastSearch` will now be updated even if the search did not match -
again, this matches the behaviour of vim/emacs.
// Exit the search mode
ExitSearch(v)
return
- case tcell.KeyCtrlQ, tcell.KeyCtrlC, tcell.KeyEnter:
+ case tcell.KeyEnter:
+ // If the user has pressed Enter, they want this to be the lastSearch
+ lastSearch = messenger.response
+ EndSearch()
+ return
+ case tcell.KeyCtrlQ, tcell.KeyCtrlC:
// Done
EndSearch()
return
found = searchUp(r, v, v.Buf.End(), searchStart)
}
}
- if found {
- lastSearch = searchStr
- } else {
+ if !found {
v.Cursor.ResetSelection()
}
}