@@ -1086,18 +1086,27 @@ fn extend_next_long_word_end(cx: &mut Context) {
1086 extend_word_impl(cx, movement::move_next_long_word_end)
1086 extend_word_impl(cx, movement::move_next_long_word_end)
1089−fn will_find_char<F>(cx: &mut Context, search_fn: F, inclusive: bool, extend: bool)
1089+fn will_find_char<F>(
1094+ pseudo_pending: &str,
1091 F: Fn(RopeSlice, char, usize, usize, bool) -> Option<usize> + 'static,
1096 F: Fn(RopeSlice, char, usize, usize, bool) -> Option<usize> + 'static,
1093 // TODO: count is reset to 1 before next key so we move it into the closure here.
1098 // TODO: count is reset to 1 before next key so we move it into the closure here.
1094 // Would be nice to carry over.
1099 // Would be nice to carry over.
1095 let count = cx.count();
1100 let count = cx.count();
1102+ cx.editor.pseudo_pending = Some(pseudo_pending.to_string());
1097 // need to wait for next key
1104 // need to wait for next key
1098 // TODO: should this be done by grapheme rather than char? For example,
1105 // TODO: should this be done by grapheme rather than char? For example,
1099 // we can't properly handle the line-ending CRLF case here in terms of char.
1106 // we can't properly handle the line-ending CRLF case here in terms of char.
1100 cx.on_next_key(move |cx, event| {
1107 cx.on_next_key(move |cx, event| {
1108+ cx.editor.pseudo_pending = None;
1101 let ch = match event {
1110 let ch = match event {
1102 KeyEvent {
1111 KeyEvent {
1103 code: KeyCode::Enter,
1112 code: KeyCode::Enter,
@@ -1200,35 +1209,35 @@ fn find_prev_char_impl(
1202fn find_till_char(cx: &mut Context) {
1211fn find_till_char(cx: &mut Context) {
1203− will_find_char(cx, find_next_char_impl, false, false)
1212+ will_find_char(cx, find_next_char_impl, false, false, "t")
1206fn find_next_char(cx: &mut Context) {
1215fn find_next_char(cx: &mut Context) {
1207− will_find_char(cx, find_next_char_impl, true, false)
1216+ will_find_char(cx, find_next_char_impl, true, false, "f")
1210fn extend_till_char(cx: &mut Context) {
1219fn extend_till_char(cx: &mut Context) {
1211− will_find_char(cx, find_next_char_impl, false, true)
1220+ will_find_char(cx, find_next_char_impl, false, true, "t")
1214fn extend_next_char(cx: &mut Context) {
1223fn extend_next_char(cx: &mut Context) {
1215− will_find_char(cx, find_next_char_impl, true, true)
1224+ will_find_char(cx, find_next_char_impl, true, true, "f")
1218fn till_prev_char(cx: &mut Context) {
1227fn till_prev_char(cx: &mut Context) {
1219− will_find_char(cx, find_prev_char_impl, false, false)
1228+ will_find_char(cx, find_prev_char_impl, false, false, "T")
1222fn find_prev_char(cx: &mut Context) {
1231fn find_prev_char(cx: &mut Context) {
1223− will_find_char(cx, find_prev_char_impl, true, false)
1232+ will_find_char(cx, find_prev_char_impl, true, false, "F")
1226fn extend_till_prev_char(cx: &mut Context) {
1235fn extend_till_prev_char(cx: &mut Context) {
1227− will_find_char(cx, find_prev_char_impl, false, true)
1236+ will_find_char(cx, find_prev_char_impl, false, true, "T")
1230fn extend_prev_char(cx: &mut Context) {
1239fn extend_prev_char(cx: &mut Context) {
1231− will_find_char(cx, find_prev_char_impl, true, true)
1240+ will_find_char(cx, find_prev_char_impl, true, true, "F")
1234fn repeat_last_motion(cx: &mut Context) {
1243fn repeat_last_motion(cx: &mut Context) {