@@ -5353,7 +5353,10 @@ fn select_textobject_inner(cx: &mut Context) {
5354fn select_textobject(cx: &mut Context, objtype: textobject::TextObject) {
5354fn select_textobject(cx: &mut Context, objtype: textobject::TextObject) {
5355 let count = cx.count();
5355 let count = cx.count();
5356 cx.on_next_key(move |cx, event| {
5357 cx.on_next_key(move |cx, event| {
5358+ cx.editor.autoinfo = None;
5359+ cx.editor.pseudo_pending = None;
5357 if let Some(ch) = event.char() {
5360 if let Some(ch) = event.char() {
5358 let textobject = move |editor: &mut Editor| {
5361 let textobject = move |editor: &mut Editor| {
5359 let (view, doc) = current!(editor);
5362 let (view, doc) = current!(editor);
@@ -5402,7 +5405,32 @@ fn select_textobject(cx: &mut Context, objtype: textobject::TextObject) {
5402 textobject(cx.editor);
5405 textobject(cx.editor);
5403 cx.editor.last_motion = Some(Motion(Box::new(textobject)));
5406 cx.editor.last_motion = Some(Motion(Box::new(textobject)));
5410+ if let Some((title, abbrev)) = match objtype {
5411+ textobject::TextObject::Inside => Some(("Match inside", "mi")),
5412+ textobject::TextObject::Around => Some(("Match around", "ma")),
5418+ ("c", "Class (tree-sitter)"),
5419+ ("f", "Function (tree-sitter)"),
5420+ ("p", "Parameter (tree-sitter)"),
5421+ ("m", "Matching delimiter under cursor"),
5422+ (" ", "... or any character acting as a pair"),
5425+ cx.editor.autoinfo = Some(Info::new(
5429+ .map(|(col1, col2)| (col1.to_string(), col2.to_string()))
5432+ cx.editor.pseudo_pending = Some(abbrev.to_string());
5408fn surround_add(cx: &mut Context) {
5436fn surround_add(cx: &mut Context) {