Fix neovim tests with angle brackets

Conrad Irwin created

Change summary

crates/vim/src/object.rs                                            |   7 
crates/vim/src/test/neovim_backed_test_context.rs                   |   2 
crates/vim/src/test/neovim_connection.rs                            |   7 
crates/vim/test_data/test_G.json                                    |   1 
crates/vim/test_data/test_change_surrounding_character_objects.json | 340 
crates/vim/test_data/test_delete_e.json                             |  12 
crates/vim/test_data/test_delete_surrounding_character_objects.json | 338 
crates/vim/test_data/test_e.json                                    |  32 
crates/vim/test_data/test_visual_paste.json                         |  26 
9 files changed, 684 insertions(+), 81 deletions(-)

Detailed changes

crates/vim/src/object.rs 🔗

@@ -816,10 +816,6 @@ mod test {
         let mut cx = NeovimBackedTestContext::new(cx).await;
 
         for (start, end) in SURROUNDING_OBJECTS {
-            if start == &'<' && !ExemptionFeatures::AngleBracketsFreezeNeovim.supported() {
-                continue;
-            }
-
             let marked_string = SURROUNDING_MARKER_STRING
                 .replace('`', &start.to_string())
                 .replace('\'', &end.to_string());
@@ -999,9 +995,6 @@ mod test {
         let mut cx = NeovimBackedTestContext::new(cx).await;
 
         for (start, end) in SURROUNDING_OBJECTS {
-            if start == &'<' && !ExemptionFeatures::AngleBracketsFreezeNeovim.supported() {
-                continue;
-            }
             let marked_string = SURROUNDING_MARKER_STRING
                 .replace('`', &start.to_string())
                 .replace('\'', &end.to_string());

crates/vim/src/test/neovim_backed_test_context.rs 🔗

@@ -34,8 +34,6 @@ pub enum ExemptionFeatures {
     AroundSentenceStartingBetweenIncludesWrongWhitespace,
     // Non empty selection with text objects in visual mode
     NonEmptyVisualTextObjects,
-    // Neovim freezes up for some reason with angle brackets
-    AngleBracketsFreezeNeovim,
     // Sentence Doesn't backtrack when its at the end of the file
     SentenceAfterPunctuationAtEndOfFile,
 }

crates/vim/src/test/neovim_connection.rs 🔗

@@ -110,7 +110,12 @@ impl NeovimConnection {
     // Sends a keystroke to the neovim process.
     #[cfg(feature = "neovim")]
     pub async fn send_keystroke(&mut self, keystroke_text: &str) {
-        let keystroke = Keystroke::parse(keystroke_text).unwrap();
+        let mut keystroke = Keystroke::parse(keystroke_text).unwrap();
+
+        if keystroke.key == "<" {
+            keystroke.key = "lt".to_string()
+        }
+
         let special = keystroke.shift
             || keystroke.ctrl
             || keystroke.alt

crates/vim/test_data/test_change_surrounding_character_objects.json 🔗

@@ -2038,3 +2038,343 @@
 {"Key":"a"}
 {"Key":"}"}
 {"Get":{"state":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{ˇg","mode":"Normal"}}
+{"Put":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>ˇe <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e ˇ<>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>quˇi<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ˇck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck broˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>ˇfox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox juˇmps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇ<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇer\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe ˇlazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy dˇ>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg","mode":"Normal"}}
+{"Put":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>ˇe <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e ˇ<>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>quˇi<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ˇck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck broˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>ˇfox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox juˇmps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇ<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇer\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe ˇlazy d>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy dˇ>o<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg"}}
+{"Key":"c"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg","mode":"Normal"}}
+{"Put":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>ˇe <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e ˇ<>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>quˇi<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ˇck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck broˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>ˇfox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox juˇmps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇ<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇer\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe ˇlazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy dˇ>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg","mode":"Normal"}}
+{"Put":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>ˇe <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e ˇ<>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>quˇi<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ˇck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck broˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>ˇfox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox juˇmps ov<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇ<er\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇer\nthe lazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe ˇlazy d>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy dˇ>o<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Insert"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg"}}
+{"Key":"c"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg","mode":"Normal"}}

crates/vim/test_data/test_delete_e.json 🔗

@@ -1,12 +0,0 @@
-{"Put":{"state":"Test teˇst\ntest"}}
-{"Key":"d"}
-{"Key":"e"}
-{"Get":{"state":"Test tˇe\ntest","mode":"Normal"}}
-{"Put":{"state":"Test tesˇt\ntest"}}
-{"Key":"d"}
-{"Key":"e"}
-{"Get":{"state":"Test teˇs","mode":"Normal"}}
-{"Put":{"state":"Test teˇst-test test"}}
-{"Key":"d"}
-{"Key":"shift-e"}
-{"Get":{"state":"Test teˇ test","mode":"Normal"}}

crates/vim/test_data/test_delete_surrounding_character_objects.json 🔗

@@ -2032,3 +2032,341 @@
 {"Key":"a"}
 {"Key":"}"}
 {"Get":{"state":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{ˇg","mode":"Normal"}}
+{"Put":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>ˇe <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e ˇ<>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>quˇi<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ˇck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck broˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>ˇfox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox juˇmps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇ<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇer\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe ˇlazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy dˇ>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg","mode":"Normal"}}
+{"Put":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>ˇe <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e ˇ<>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>quˇi<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ˇck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck broˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>ˇfox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox juˇmps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇ<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇer\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe ˇlazy d>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy dˇ>o<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇ>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg"}}
+{"Key":"d"}
+{"Key":"i"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg","mode":"Normal"}}
+{"Put":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>ˇe <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e ˇ<>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>quˇi<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ˇck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck broˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>ˇfox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox juˇmps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇ<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇer\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe ˇlazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy dˇ>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":"<"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg","mode":"Normal"}}
+{"Put":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"ˇTh>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>ˇe <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e ˇ<>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <ˇ>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>ˇqui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>quˇi<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ˇck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck broˇ>wn<\n>fox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>quiˇwn<\n>fox jumps ov<er\nthe lazy d>o<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>ˇfox jumps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox juˇmps ov<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇ<er\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<ˇer\nthe lazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe ˇlazy d>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy dˇ>o<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ovˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>ˇo<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>oˇ<g","mode":"Normal"}}
+{"Put":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg"}}
+{"Key":"d"}
+{"Key":"a"}
+{"Key":">"}
+{"Get":{"state":"Th>e <>qui<ck bro>wn<\n>fox jumps ov<er\nthe lazy d>o<ˇg","mode":"Normal"}}

crates/vim/test_data/test_e.json 🔗

@@ -1,32 +0,0 @@
-{"Put":{"state":"Thˇe quick-brown\n\n\nfox_jumps over\nthe"}}
-{"Key":"e"}
-{"Get":{"state":"The quicˇk-brown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
-{"Key":"e"}
-{"Get":{"state":"The quickˇ-brown\n\n\nfox_jumps over\nthe","mode":"Normal"}}
-{"Key":"e"}
-{"Get":{"state":"The quick-browˇn\n\n\nfox_jumps over\nthe","mode":"Normal"}}
-{"Key":"e"}
-{"Get":{"state":"The quick-brown\n\n\nfox_jumpˇs over\nthe","mode":"Normal"}}
-{"Key":"e"}
-{"Get":{"state":"The quick-brown\n\n\nfox_jumps oveˇr\nthe","mode":"Normal"}}
-{"Key":"e"}
-{"Get":{"state":"The quick-brown\n\n\nfox_jumps over\nthˇe","mode":"Normal"}}
-{"Key":"e"}
-{"Get":{"state":"The quick-brown\n\n\nfox_jumps over\nthˇe","mode":"Normal"}}
-{"Put":{"state":"Thˇe quick-brown\n\n\nfox_jumps over\nthe"}}
-{"Key":"shift-e"}
-{"Get":{"state":"The quick-browˇn\n\n\nfox_jumps over\nthe","mode":"Normal"}}
-{"Put":{"state":"The quicˇk-brown\n\n\nfox_jumps over\nthe"}}
-{"Key":"shift-e"}
-{"Get":{"state":"The quick-browˇn\n\n\nfox_jumps over\nthe","mode":"Normal"}}
-{"Put":{"state":"The quickˇ-brown\n\n\nfox_jumps over\nthe"}}
-{"Key":"shift-e"}
-{"Get":{"state":"The quick-browˇn\n\n\nfox_jumps over\nthe","mode":"Normal"}}
-{"Key":"shift-e"}
-{"Get":{"state":"The quick-brown\n\n\nfox_jumpˇs over\nthe","mode":"Normal"}}
-{"Key":"shift-e"}
-{"Get":{"state":"The quick-brown\n\n\nfox_jumps oveˇr\nthe","mode":"Normal"}}
-{"Key":"shift-e"}
-{"Get":{"state":"The quick-brown\n\n\nfox_jumps over\nthˇe","mode":"Normal"}}
-{"Key":"shift-e"}
-{"Get":{"state":"The quick-brown\n\n\nfox_jumps over\nthˇe","mode":"Normal"}}

crates/vim/test_data/test_visual_paste.json 🔗

@@ -1,26 +0,0 @@
-{"Put":{"state":"The quick brown\nfox jˇumps over\nthe lazy dog"}}
-{"Key":"v"}
-{"Key":"i"}
-{"Key":"w"}
-{"Key":"y"}
-{"Get":{"state":"The quick brown\nfox ˇjumps over\nthe lazy dog","mode":"Normal"}}
-{"Key":"p"}
-{"Get":{"state":"The quick brown\nfox jjumpˇsumps over\nthe lazy dog","mode":"Normal"}}
-{"Put":{"state":"The quick brown\nfox juˇmps over\nthe lazy dog"}}
-{"Key":"shift-v"}
-{"Key":"d"}
-{"Get":{"state":"The quick brown\nthe laˇzy dog","mode":"Normal"}}
-{"Key":"v"}
-{"Key":"i"}
-{"Key":"w"}
-{"Key":"p"}
-{"Get":{"state":"The quick brown\nthe \nˇfox jumps over\n dog","mode":"Normal"}}
-{"ReadRegister":{"name":"\"","value":"lazy"}}
-{"Put":{"state":"The quick brown\nfox juˇmps over\nthe lazy dog"}}
-{"Key":"shift-v"}
-{"Key":"d"}
-{"Get":{"state":"The quick brown\nthe laˇzy dog","mode":"Normal"}}
-{"Key":"k"}
-{"Key":"shift-v"}
-{"Key":"p"}
-{"Get":{"state":"ˇfox jumps over\nthe lazy dog","mode":"Normal"}}