commit b04f50a9f61345bef89a87fb201839fd15f363c6
parent 233be476595a74902020f22a3d83376e4b5808a0
Author: kernelkind <kernelkind@gmail.com>
Date: Sun, 27 Jul 2025 10:18:41 -0400
insert space after mention selection
closes: https://github.com/damus-io/notedeck/issues/985
Signed-off-by: kernelkind <kernelkind@gmail.com>
Diffstat:
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/crates/notedeck_columns/src/post.rs b/crates/notedeck_columns/src/post.rs
@@ -363,8 +363,10 @@ impl PostBuffer {
let text_chars_inserted = self.insert_text(full_name, text_start_index);
self.select_full_mention(mention_key, pk);
+ let space_chars_inserted = self.insert_text(" ", text_start_index + text_chars_inserted);
+
Some(MentionSelectedResponse {
- next_cursor_index: text_start_index + text_chars_inserted,
+ next_cursor_index: text_start_index + text_chars_inserted + space_chars_inserted,
})
}
@@ -955,9 +957,9 @@ mod tests {
assert_eq!(buf.mentions.len(), 1);
assert_eq!(buf.mentions.get(&0).unwrap().bounds(), 0..3);
buf.select_mention_and_replace_name(0, "jb55", JB55());
- assert_eq!(buf.as_str(), "@jb55");
+ assert_eq!(buf.as_str(), "@jb55 ");
- buf.insert_text(" test", 5);
+ buf.insert_text("test", 6);
assert_eq!(buf.as_str(), "@jb55 test");
assert_eq!(buf.mentions.len(), 1);
@@ -1239,16 +1241,20 @@ mod tests {
buf.insert_text("@jb", 0);
buf.select_mention_and_replace_name(0, "jb55", JB55());
- buf.insert_text(" test ", 5);
+ buf.insert_text("test ", 6);
+ assert_eq!(buf.as_str(), "@jb55 test ");
buf.insert_text("@kernel", 11);
buf.select_mention_and_replace_name(1, "KernelKind", KK());
- buf.insert_text(" test", 22);
+ assert_eq!(buf.as_str(), "@jb55 test @KernelKind ");
+ buf.insert_text("test", 23);
assert_eq!(buf.as_str(), "@jb55 test @KernelKind test");
+
assert_eq!(buf.mentions.len(), 2);
- buf.insert_text(" ", 5);
buf.insert_text("@els", 6);
+ assert_eq!(buf.as_str(), "@jb55 @elstest @KernelKind test");
+
assert_eq!(buf.mentions.len(), 3);
assert_eq!(buf.mentions.get(&2).unwrap().bounds(), 6..10);
buf.select_mention_and_replace_name(2, "elsat", JB55());