From b82db3a254ad0661892af5dc73b455212f1a5c78 Mon Sep 17 00:00:00 2001 From: K Simmons Date: Wed, 5 Oct 2022 20:19:30 -0700 Subject: [PATCH 01/24] Adds word and sentence text objects along with a new vim testing system which uses cached neovim data to verify our test accuracy --- Cargo.lock | 1197 ++++++++++------- assets/keymaps/vim.json | 32 +- crates/editor/src/display_map.rs | 85 +- crates/editor/src/editor.rs | 4 +- crates/editor/src/element.rs | 2 +- crates/editor/src/movement.rs | 157 ++- crates/vim/Cargo.toml | 17 +- crates/vim/src/insert.rs | 2 +- crates/vim/src/motion.rs | 34 +- crates/vim/src/normal.rs | 46 +- crates/vim/src/normal/change.rs | 27 +- crates/vim/src/normal/delete.rs | 69 +- crates/vim/src/normal/yank.rs | 27 +- crates/vim/src/object.rs | 488 +++++++ crates/vim/src/state.rs | 14 +- crates/vim/src/test_contexts.rs | 9 + .../neovim_backed_binding_test_context.rs | 56 + .../neovim_backed_test_context.rs | 374 +++++ .../test_contexts/vim_binding_test_context.rs | 69 + .../{ => test_contexts}/vim_test_context.rs | 66 +- crates/vim/src/vim.rs | 25 +- crates/vim/src/visual.rs | 6 +- .../test_change_around_sentence/0text.txt | 1 + .../test_change_around_sentence/10head.txt | 1 + .../test_change_around_sentence/1head.txt | 1 + .../test_change_around_sentence/2mode.txt | 1 + .../test_change_around_sentence/3text.txt | 1 + .../test_change_around_sentence/4head.txt | 1 + .../test_change_around_sentence/5mode.txt | 1 + .../test_change_around_sentence/6text.txt | 1 + .../test_change_around_sentence/7head.txt | 1 + .../test_change_around_sentence/8mode.txt | 1 + .../test_change_around_sentence/9text.txt | 1 + .../test_change_around_word/0text.txt | 12 + .../test_change_around_word/100head.txt | 1 + .../test_change_around_word/101mode.txt | 1 + .../test_change_around_word/102text.txt | 12 + .../test_change_around_word/103head.txt | 1 + .../test_change_around_word/104mode.txt | 1 + .../test_change_around_word/105text.txt | 12 + .../test_change_around_word/106head.txt | 1 + .../test_change_around_word/107mode.txt | 1 + .../test_change_around_word/108text.txt | 12 + .../test_change_around_word/109head.txt | 1 + .../test_change_around_word/10head.txt | 1 + .../test_change_around_word/110mode.txt | 1 + .../test_change_around_word/111text.txt | 12 + .../test_change_around_word/112head.txt | 1 + .../test_change_around_word/113mode.txt | 1 + .../test_change_around_word/114text.txt | 12 + .../test_change_around_word/115head.txt | 1 + .../test_change_around_word/116mode.txt | 1 + .../test_change_around_word/117text.txt | 9 + .../test_change_around_word/118head.txt | 1 + .../test_change_around_word/119mode.txt | 1 + .../test_change_around_word/11mode.txt | 1 + .../test_change_around_word/120text.txt | 10 + .../test_change_around_word/121head.txt | 1 + .../test_change_around_word/122mode.txt | 1 + .../test_change_around_word/123text.txt | 11 + .../test_change_around_word/124head.txt | 1 + .../test_change_around_word/125mode.txt | 1 + .../test_change_around_word/126text.txt | 12 + .../test_change_around_word/127head.txt | 1 + .../test_change_around_word/128mode.txt | 1 + .../test_change_around_word/129text.txt | 12 + .../test_change_around_word/12text.txt | 12 + .../test_change_around_word/130head.txt | 1 + .../test_change_around_word/131mode.txt | 1 + .../test_change_around_word/132text.txt | 11 + .../test_change_around_word/133head.txt | 1 + .../test_change_around_word/134mode.txt | 1 + .../test_change_around_word/135text.txt | 11 + .../test_change_around_word/136head.txt | 1 + .../test_change_around_word/137mode.txt | 1 + .../test_change_around_word/13head.txt | 1 + .../test_change_around_word/14mode.txt | 1 + .../test_change_around_word/15text.txt | 12 + .../test_change_around_word/16head.txt | 1 + .../test_change_around_word/17mode.txt | 1 + .../test_change_around_word/18text.txt | 11 + .../test_change_around_word/19head.txt | 1 + .../test_change_around_word/1head.txt | 1 + .../test_change_around_word/20mode.txt | 1 + .../test_change_around_word/21text.txt | 11 + .../test_change_around_word/22head.txt | 1 + .../test_change_around_word/23mode.txt | 1 + .../test_change_around_word/24text.txt | 11 + .../test_change_around_word/25head.txt | 1 + .../test_change_around_word/26mode.txt | 1 + .../test_change_around_word/27text.txt | 11 + .../test_change_around_word/28head.txt | 1 + .../test_change_around_word/29mode.txt | 1 + .../test_change_around_word/2mode.txt | 1 + .../test_change_around_word/30text.txt | 12 + .../test_change_around_word/31head.txt | 1 + .../test_change_around_word/32mode.txt | 1 + .../test_change_around_word/33text.txt | 12 + .../test_change_around_word/34head.txt | 1 + .../test_change_around_word/35mode.txt | 1 + .../test_change_around_word/36text.txt | 12 + .../test_change_around_word/37head.txt | 1 + .../test_change_around_word/38mode.txt | 1 + .../test_change_around_word/39text.txt | 12 + .../test_change_around_word/3text.txt | 12 + .../test_change_around_word/40head.txt | 1 + .../test_change_around_word/41mode.txt | 1 + .../test_change_around_word/42text.txt | 12 + .../test_change_around_word/43head.txt | 1 + .../test_change_around_word/44mode.txt | 1 + .../test_change_around_word/45text.txt | 12 + .../test_change_around_word/46head.txt | 1 + .../test_change_around_word/47mode.txt | 1 + .../test_change_around_word/48text.txt | 9 + .../test_change_around_word/49head.txt | 1 + .../test_change_around_word/4head.txt | 1 + .../test_change_around_word/50mode.txt | 1 + .../test_change_around_word/51text.txt | 10 + .../test_change_around_word/52head.txt | 1 + .../test_change_around_word/53mode.txt | 1 + .../test_change_around_word/54text.txt | 11 + .../test_change_around_word/55head.txt | 1 + .../test_change_around_word/56mode.txt | 1 + .../test_change_around_word/57text.txt | 12 + .../test_change_around_word/58head.txt | 1 + .../test_change_around_word/59mode.txt | 1 + .../test_change_around_word/5mode.txt | 1 + .../test_change_around_word/60text.txt | 12 + .../test_change_around_word/61head.txt | 1 + .../test_change_around_word/62mode.txt | 1 + .../test_change_around_word/63text.txt | 11 + .../test_change_around_word/64head.txt | 1 + .../test_change_around_word/65mode.txt | 1 + .../test_change_around_word/66text.txt | 11 + .../test_change_around_word/67head.txt | 1 + .../test_change_around_word/68mode.txt | 1 + .../test_change_around_word/69text.txt | 12 + .../test_change_around_word/6text.txt | 11 + .../test_change_around_word/70head.txt | 1 + .../test_change_around_word/71mode.txt | 1 + .../test_change_around_word/72text.txt | 12 + .../test_change_around_word/73head.txt | 1 + .../test_change_around_word/74mode.txt | 1 + .../test_change_around_word/75text.txt | 11 + .../test_change_around_word/76head.txt | 1 + .../test_change_around_word/77mode.txt | 1 + .../test_change_around_word/78text.txt | 12 + .../test_change_around_word/79head.txt | 1 + .../test_change_around_word/7head.txt | 1 + .../test_change_around_word/80mode.txt | 1 + .../test_change_around_word/81text.txt | 12 + .../test_change_around_word/82head.txt | 1 + .../test_change_around_word/83mode.txt | 1 + .../test_change_around_word/84text.txt | 12 + .../test_change_around_word/85head.txt | 1 + .../test_change_around_word/86mode.txt | 1 + .../test_change_around_word/87text.txt | 11 + .../test_change_around_word/88head.txt | 1 + .../test_change_around_word/89mode.txt | 1 + .../test_change_around_word/8mode.txt | 1 + .../test_change_around_word/90text.txt | 11 + .../test_change_around_word/91head.txt | 1 + .../test_change_around_word/92mode.txt | 1 + .../test_change_around_word/93text.txt | 11 + .../test_change_around_word/94head.txt | 1 + .../test_change_around_word/95mode.txt | 1 + .../test_change_around_word/96text.txt | 11 + .../test_change_around_word/97head.txt | 1 + .../test_change_around_word/98mode.txt | 1 + .../test_change_around_word/99text.txt | 12 + .../test_change_around_word/9text.txt | 12 + .../test_change_in_sentence/0text.txt | 1 + .../test_change_in_sentence/10head.txt | 1 + .../test_change_in_sentence/11mode.txt | 1 + .../test_change_in_sentence/12text.txt | 1 + .../test_change_in_sentence/13head.txt | 1 + .../test_change_in_sentence/14mode.txt | 1 + .../test_change_in_sentence/15text.txt | 1 + .../test_change_in_sentence/16head.txt | 1 + .../test_change_in_sentence/17mode.txt | 1 + .../test_change_in_sentence/18text.txt | 1 + .../test_change_in_sentence/19head.txt | 1 + .../test_change_in_sentence/1head.txt | 1 + .../test_change_in_sentence/20mode.txt | 1 + .../test_change_in_sentence/21text.txt | 1 + .../test_change_in_sentence/22head.txt | 1 + .../test_change_in_sentence/23mode.txt | 1 + .../test_change_in_sentence/24text.txt | 1 + .../test_change_in_sentence/25head.txt | 1 + .../test_change_in_sentence/26mode.txt | 1 + .../test_change_in_sentence/27text.txt | 1 + .../test_change_in_sentence/28head.txt | 1 + .../test_change_in_sentence/29mode.txt | 1 + .../test_change_in_sentence/2mode.txt | 1 + .../test_change_in_sentence/30text.txt | 1 + .../test_change_in_sentence/31head.txt | 1 + .../test_change_in_sentence/32mode.txt | 1 + .../test_change_in_sentence/33text.txt | 2 + .../test_change_in_sentence/34head.txt | 1 + .../test_change_in_sentence/35mode.txt | 1 + .../test_change_in_sentence/36text.txt | 2 + .../test_change_in_sentence/37head.txt | 1 + .../test_change_in_sentence/38mode.txt | 1 + .../test_change_in_sentence/39text.txt | 2 + .../test_change_in_sentence/3text.txt | 1 + .../test_change_in_sentence/40head.txt | 1 + .../test_change_in_sentence/41mode.txt | 1 + .../test_change_in_sentence/42text.txt | 2 + .../test_change_in_sentence/43head.txt | 1 + .../test_change_in_sentence/44mode.txt | 1 + .../test_change_in_sentence/45text.txt | 2 + .../test_change_in_sentence/46head.txt | 1 + .../test_change_in_sentence/47mode.txt | 1 + .../test_change_in_sentence/48text.txt | 4 + .../test_change_in_sentence/49head.txt | 1 + .../test_change_in_sentence/4head.txt | 1 + .../test_change_in_sentence/50mode.txt | 1 + .../test_change_in_sentence/51text.txt | 3 + .../test_change_in_sentence/52head.txt | 1 + .../test_change_in_sentence/53mode.txt | 1 + .../test_change_in_sentence/54text.txt | 3 + .../test_change_in_sentence/55head.txt | 1 + .../test_change_in_sentence/56mode.txt | 1 + .../test_change_in_sentence/5mode.txt | 1 + .../test_change_in_sentence/6text.txt | 1 + .../test_change_in_sentence/7head.txt | 1 + .../test_change_in_sentence/8mode.txt | 1 + .../test_change_in_sentence/9text.txt | 1 + .../test_data/test_change_in_word/0text.txt | 12 + .../test_data/test_change_in_word/100head.txt | 1 + .../test_data/test_change_in_word/101mode.txt | 1 + .../test_data/test_change_in_word/102text.txt | 12 + .../test_data/test_change_in_word/103head.txt | 1 + .../test_data/test_change_in_word/104mode.txt | 1 + .../test_data/test_change_in_word/105text.txt | 12 + .../test_data/test_change_in_word/106head.txt | 1 + .../test_data/test_change_in_word/107mode.txt | 1 + .../test_data/test_change_in_word/108text.txt | 12 + .../test_data/test_change_in_word/109head.txt | 1 + .../test_data/test_change_in_word/10head.txt | 1 + .../test_data/test_change_in_word/110mode.txt | 1 + .../test_data/test_change_in_word/111text.txt | 12 + .../test_data/test_change_in_word/112head.txt | 1 + .../test_data/test_change_in_word/113mode.txt | 1 + .../test_data/test_change_in_word/114text.txt | 12 + .../test_data/test_change_in_word/115head.txt | 1 + .../test_data/test_change_in_word/116mode.txt | 1 + .../test_data/test_change_in_word/117text.txt | 12 + .../test_data/test_change_in_word/118head.txt | 1 + .../test_data/test_change_in_word/119mode.txt | 1 + .../test_data/test_change_in_word/11mode.txt | 1 + .../test_data/test_change_in_word/120text.txt | 12 + .../test_data/test_change_in_word/121head.txt | 1 + .../test_data/test_change_in_word/122mode.txt | 1 + .../test_data/test_change_in_word/123text.txt | 12 + .../test_data/test_change_in_word/124head.txt | 1 + .../test_data/test_change_in_word/125mode.txt | 1 + .../test_data/test_change_in_word/126text.txt | 12 + .../test_data/test_change_in_word/127head.txt | 1 + .../test_data/test_change_in_word/128mode.txt | 1 + .../test_data/test_change_in_word/129text.txt | 12 + .../test_data/test_change_in_word/12text.txt | 12 + .../test_data/test_change_in_word/130head.txt | 1 + .../test_data/test_change_in_word/131mode.txt | 1 + .../test_data/test_change_in_word/132text.txt | 12 + .../test_data/test_change_in_word/133head.txt | 1 + .../test_data/test_change_in_word/134mode.txt | 1 + .../test_data/test_change_in_word/135text.txt | 12 + .../test_data/test_change_in_word/136head.txt | 1 + .../test_data/test_change_in_word/137mode.txt | 1 + .../test_data/test_change_in_word/13head.txt | 1 + .../test_data/test_change_in_word/14mode.txt | 1 + .../test_data/test_change_in_word/15text.txt | 12 + .../test_data/test_change_in_word/16head.txt | 1 + .../test_data/test_change_in_word/17mode.txt | 1 + .../test_data/test_change_in_word/18text.txt | 12 + .../test_data/test_change_in_word/19head.txt | 1 + .../test_data/test_change_in_word/1head.txt | 1 + .../test_data/test_change_in_word/20mode.txt | 1 + .../test_data/test_change_in_word/21text.txt | 12 + .../test_data/test_change_in_word/22head.txt | 1 + .../test_data/test_change_in_word/23mode.txt | 1 + .../test_data/test_change_in_word/24text.txt | 12 + .../test_data/test_change_in_word/25head.txt | 1 + .../test_data/test_change_in_word/26mode.txt | 1 + .../test_data/test_change_in_word/27text.txt | 12 + .../test_data/test_change_in_word/28head.txt | 1 + .../test_data/test_change_in_word/29mode.txt | 1 + .../test_data/test_change_in_word/2mode.txt | 1 + .../test_data/test_change_in_word/30text.txt | 12 + .../test_data/test_change_in_word/31head.txt | 1 + .../test_data/test_change_in_word/32mode.txt | 1 + .../test_data/test_change_in_word/33text.txt | 12 + .../test_data/test_change_in_word/34head.txt | 1 + .../test_data/test_change_in_word/35mode.txt | 1 + .../test_data/test_change_in_word/36text.txt | 12 + .../test_data/test_change_in_word/37head.txt | 1 + .../test_data/test_change_in_word/38mode.txt | 1 + .../test_data/test_change_in_word/39text.txt | 12 + .../test_data/test_change_in_word/3text.txt | 12 + .../test_data/test_change_in_word/40head.txt | 1 + .../test_data/test_change_in_word/41mode.txt | 1 + .../test_data/test_change_in_word/42text.txt | 12 + .../test_data/test_change_in_word/43head.txt | 1 + .../test_data/test_change_in_word/44mode.txt | 1 + .../test_data/test_change_in_word/45text.txt | 12 + .../test_data/test_change_in_word/46head.txt | 1 + .../test_data/test_change_in_word/47mode.txt | 1 + .../test_data/test_change_in_word/48text.txt | 12 + .../test_data/test_change_in_word/49head.txt | 1 + .../test_data/test_change_in_word/4head.txt | 1 + .../test_data/test_change_in_word/50mode.txt | 1 + .../test_data/test_change_in_word/51text.txt | 12 + .../test_data/test_change_in_word/52head.txt | 1 + .../test_data/test_change_in_word/53mode.txt | 1 + .../test_data/test_change_in_word/54text.txt | 12 + .../test_data/test_change_in_word/55head.txt | 1 + .../test_data/test_change_in_word/56mode.txt | 1 + .../test_data/test_change_in_word/57text.txt | 12 + .../test_data/test_change_in_word/58head.txt | 1 + .../test_data/test_change_in_word/59mode.txt | 1 + .../test_data/test_change_in_word/5mode.txt | 1 + .../test_data/test_change_in_word/60text.txt | 12 + .../test_data/test_change_in_word/61head.txt | 1 + .../test_data/test_change_in_word/62mode.txt | 1 + .../test_data/test_change_in_word/63text.txt | 12 + .../test_data/test_change_in_word/64head.txt | 1 + .../test_data/test_change_in_word/65mode.txt | 1 + .../test_data/test_change_in_word/66text.txt | 12 + .../test_data/test_change_in_word/67head.txt | 1 + .../test_data/test_change_in_word/68mode.txt | 1 + .../test_data/test_change_in_word/69text.txt | 12 + .../test_data/test_change_in_word/6text.txt | 12 + .../test_data/test_change_in_word/70head.txt | 1 + .../test_data/test_change_in_word/71mode.txt | 1 + .../test_data/test_change_in_word/72text.txt | 12 + .../test_data/test_change_in_word/73head.txt | 1 + .../test_data/test_change_in_word/74mode.txt | 1 + .../test_data/test_change_in_word/75text.txt | 12 + .../test_data/test_change_in_word/76head.txt | 1 + .../test_data/test_change_in_word/77mode.txt | 1 + .../test_data/test_change_in_word/78text.txt | 12 + .../test_data/test_change_in_word/79head.txt | 1 + .../test_data/test_change_in_word/7head.txt | 1 + .../test_data/test_change_in_word/80mode.txt | 1 + .../test_data/test_change_in_word/81text.txt | 12 + .../test_data/test_change_in_word/82head.txt | 1 + .../test_data/test_change_in_word/83mode.txt | 1 + .../test_data/test_change_in_word/84text.txt | 12 + .../test_data/test_change_in_word/85head.txt | 1 + .../test_data/test_change_in_word/86mode.txt | 1 + .../test_data/test_change_in_word/87text.txt | 12 + .../test_data/test_change_in_word/88head.txt | 1 + .../test_data/test_change_in_word/89mode.txt | 1 + .../test_data/test_change_in_word/8mode.txt | 1 + .../test_data/test_change_in_word/90text.txt | 12 + .../test_data/test_change_in_word/91head.txt | 1 + .../test_data/test_change_in_word/92mode.txt | 1 + .../test_data/test_change_in_word/93text.txt | 12 + .../test_data/test_change_in_word/94head.txt | 1 + .../test_data/test_change_in_word/95mode.txt | 1 + .../test_data/test_change_in_word/96text.txt | 12 + .../test_data/test_change_in_word/97head.txt | 1 + .../test_data/test_change_in_word/98mode.txt | 1 + .../test_data/test_change_in_word/99text.txt | 12 + .../test_data/test_change_in_word/9text.txt | 12 + .../test_delete_around_sentence/0text.txt | 1 + .../test_delete_around_sentence/10head.txt | 1 + .../test_delete_around_sentence/1head.txt | 1 + .../test_delete_around_sentence/2mode.txt | 1 + .../test_delete_around_sentence/3text.txt | 1 + .../test_delete_around_sentence/4head.txt | 1 + .../test_delete_around_sentence/5mode.txt | 1 + .../test_delete_around_sentence/6text.txt | 1 + .../test_delete_around_sentence/7head.txt | 1 + .../test_delete_around_sentence/8mode.txt | 1 + .../test_delete_around_sentence/9text.txt | 1 + .../test_delete_around_word/0text.txt | 12 + .../test_delete_around_word/100head.txt | 1 + .../test_delete_around_word/101mode.txt | 1 + .../test_delete_around_word/102text.txt | 12 + .../test_delete_around_word/103head.txt | 1 + .../test_delete_around_word/104mode.txt | 1 + .../test_delete_around_word/105text.txt | 12 + .../test_delete_around_word/106head.txt | 1 + .../test_delete_around_word/107mode.txt | 1 + .../test_delete_around_word/108text.txt | 12 + .../test_delete_around_word/109head.txt | 1 + .../test_delete_around_word/10head.txt | 1 + .../test_delete_around_word/110mode.txt | 1 + .../test_delete_around_word/111text.txt | 12 + .../test_delete_around_word/112head.txt | 1 + .../test_delete_around_word/113mode.txt | 1 + .../test_delete_around_word/114text.txt | 12 + .../test_delete_around_word/115head.txt | 1 + .../test_delete_around_word/116mode.txt | 1 + .../test_delete_around_word/117text.txt | 9 + .../test_delete_around_word/118head.txt | 1 + .../test_delete_around_word/119mode.txt | 1 + .../test_delete_around_word/11mode.txt | 1 + .../test_delete_around_word/120text.txt | 10 + .../test_delete_around_word/121head.txt | 1 + .../test_delete_around_word/122mode.txt | 1 + .../test_delete_around_word/123text.txt | 11 + .../test_delete_around_word/124head.txt | 1 + .../test_delete_around_word/125mode.txt | 1 + .../test_delete_around_word/126text.txt | 12 + .../test_delete_around_word/127head.txt | 1 + .../test_delete_around_word/128mode.txt | 1 + .../test_delete_around_word/129text.txt | 12 + .../test_delete_around_word/12text.txt | 12 + .../test_delete_around_word/130head.txt | 1 + .../test_delete_around_word/131mode.txt | 1 + .../test_delete_around_word/132text.txt | 11 + .../test_delete_around_word/133head.txt | 1 + .../test_delete_around_word/134mode.txt | 1 + .../test_delete_around_word/135text.txt | 11 + .../test_delete_around_word/136head.txt | 1 + .../test_delete_around_word/137mode.txt | 1 + .../test_delete_around_word/13head.txt | 1 + .../test_delete_around_word/14mode.txt | 1 + .../test_delete_around_word/15text.txt | 12 + .../test_delete_around_word/16head.txt | 1 + .../test_delete_around_word/17mode.txt | 1 + .../test_delete_around_word/18text.txt | 11 + .../test_delete_around_word/19head.txt | 1 + .../test_delete_around_word/1head.txt | 1 + .../test_delete_around_word/20mode.txt | 1 + .../test_delete_around_word/21text.txt | 10 + .../test_delete_around_word/22head.txt | 1 + .../test_delete_around_word/23mode.txt | 1 + .../test_delete_around_word/24text.txt | 10 + .../test_delete_around_word/25head.txt | 1 + .../test_delete_around_word/26mode.txt | 1 + .../test_delete_around_word/27text.txt | 11 + .../test_delete_around_word/28head.txt | 1 + .../test_delete_around_word/29mode.txt | 1 + .../test_delete_around_word/2mode.txt | 1 + .../test_delete_around_word/30text.txt | 12 + .../test_delete_around_word/31head.txt | 1 + .../test_delete_around_word/32mode.txt | 1 + .../test_delete_around_word/33text.txt | 12 + .../test_delete_around_word/34head.txt | 1 + .../test_delete_around_word/35mode.txt | 1 + .../test_delete_around_word/36text.txt | 12 + .../test_delete_around_word/37head.txt | 1 + .../test_delete_around_word/38mode.txt | 1 + .../test_delete_around_word/39text.txt | 12 + .../test_delete_around_word/3text.txt | 12 + .../test_delete_around_word/40head.txt | 1 + .../test_delete_around_word/41mode.txt | 1 + .../test_delete_around_word/42text.txt | 12 + .../test_delete_around_word/43head.txt | 1 + .../test_delete_around_word/44mode.txt | 1 + .../test_delete_around_word/45text.txt | 12 + .../test_delete_around_word/46head.txt | 1 + .../test_delete_around_word/47mode.txt | 1 + .../test_delete_around_word/48text.txt | 9 + .../test_delete_around_word/49head.txt | 1 + .../test_delete_around_word/4head.txt | 1 + .../test_delete_around_word/50mode.txt | 1 + .../test_delete_around_word/51text.txt | 10 + .../test_delete_around_word/52head.txt | 1 + .../test_delete_around_word/53mode.txt | 1 + .../test_delete_around_word/54text.txt | 11 + .../test_delete_around_word/55head.txt | 1 + .../test_delete_around_word/56mode.txt | 1 + .../test_delete_around_word/57text.txt | 12 + .../test_delete_around_word/58head.txt | 1 + .../test_delete_around_word/59mode.txt | 1 + .../test_delete_around_word/5mode.txt | 1 + .../test_delete_around_word/60text.txt | 12 + .../test_delete_around_word/61head.txt | 1 + .../test_delete_around_word/62mode.txt | 1 + .../test_delete_around_word/63text.txt | 11 + .../test_delete_around_word/64head.txt | 1 + .../test_delete_around_word/65mode.txt | 1 + .../test_delete_around_word/66text.txt | 11 + .../test_delete_around_word/67head.txt | 1 + .../test_delete_around_word/68mode.txt | 1 + .../test_delete_around_word/69text.txt | 12 + .../test_delete_around_word/6text.txt | 11 + .../test_delete_around_word/70head.txt | 1 + .../test_delete_around_word/71mode.txt | 1 + .../test_delete_around_word/72text.txt | 12 + .../test_delete_around_word/73head.txt | 1 + .../test_delete_around_word/74mode.txt | 1 + .../test_delete_around_word/75text.txt | 11 + .../test_delete_around_word/76head.txt | 1 + .../test_delete_around_word/77mode.txt | 1 + .../test_delete_around_word/78text.txt | 12 + .../test_delete_around_word/79head.txt | 1 + .../test_delete_around_word/7head.txt | 1 + .../test_delete_around_word/80mode.txt | 1 + .../test_delete_around_word/81text.txt | 12 + .../test_delete_around_word/82head.txt | 1 + .../test_delete_around_word/83mode.txt | 1 + .../test_delete_around_word/84text.txt | 12 + .../test_delete_around_word/85head.txt | 1 + .../test_delete_around_word/86mode.txt | 1 + .../test_delete_around_word/87text.txt | 11 + .../test_delete_around_word/88head.txt | 1 + .../test_delete_around_word/89mode.txt | 1 + .../test_delete_around_word/8mode.txt | 1 + .../test_delete_around_word/90text.txt | 10 + .../test_delete_around_word/91head.txt | 1 + .../test_delete_around_word/92mode.txt | 1 + .../test_delete_around_word/93text.txt | 10 + .../test_delete_around_word/94head.txt | 1 + .../test_delete_around_word/95mode.txt | 1 + .../test_delete_around_word/96text.txt | 11 + .../test_delete_around_word/97head.txt | 1 + .../test_delete_around_word/98mode.txt | 1 + .../test_delete_around_word/99text.txt | 12 + .../test_delete_around_word/9text.txt | 12 + .../test_delete_in_sentence/0text.txt | 1 + .../test_delete_in_sentence/10head.txt | 1 + .../test_delete_in_sentence/11mode.txt | 1 + .../test_delete_in_sentence/12text.txt | 1 + .../test_delete_in_sentence/13head.txt | 1 + .../test_delete_in_sentence/14mode.txt | 1 + .../test_delete_in_sentence/15text.txt | 1 + .../test_delete_in_sentence/16head.txt | 1 + .../test_delete_in_sentence/17mode.txt | 1 + .../test_delete_in_sentence/18text.txt | 1 + .../test_delete_in_sentence/19head.txt | 1 + .../test_delete_in_sentence/1head.txt | 1 + .../test_delete_in_sentence/20mode.txt | 1 + .../test_delete_in_sentence/21text.txt | 1 + .../test_delete_in_sentence/22head.txt | 1 + .../test_delete_in_sentence/23mode.txt | 1 + .../test_delete_in_sentence/24text.txt | 1 + .../test_delete_in_sentence/25head.txt | 1 + .../test_delete_in_sentence/26mode.txt | 1 + .../test_delete_in_sentence/27text.txt | 1 + .../test_delete_in_sentence/28head.txt | 1 + .../test_delete_in_sentence/29mode.txt | 1 + .../test_delete_in_sentence/2mode.txt | 1 + .../test_delete_in_sentence/30text.txt | 1 + .../test_delete_in_sentence/31head.txt | 1 + .../test_delete_in_sentence/32mode.txt | 1 + .../test_delete_in_sentence/33text.txt | 2 + .../test_delete_in_sentence/34head.txt | 1 + .../test_delete_in_sentence/35mode.txt | 1 + .../test_delete_in_sentence/36text.txt | 2 + .../test_delete_in_sentence/37head.txt | 1 + .../test_delete_in_sentence/38mode.txt | 1 + .../test_delete_in_sentence/39text.txt | 2 + .../test_delete_in_sentence/3text.txt | 1 + .../test_delete_in_sentence/40head.txt | 1 + .../test_delete_in_sentence/41mode.txt | 1 + .../test_delete_in_sentence/42text.txt | 2 + .../test_delete_in_sentence/43head.txt | 1 + .../test_delete_in_sentence/44mode.txt | 1 + .../test_delete_in_sentence/45text.txt | 2 + .../test_delete_in_sentence/46head.txt | 1 + .../test_delete_in_sentence/47mode.txt | 1 + .../test_delete_in_sentence/48text.txt | 4 + .../test_delete_in_sentence/49head.txt | 1 + .../test_delete_in_sentence/4head.txt | 1 + .../test_delete_in_sentence/50mode.txt | 1 + .../test_delete_in_sentence/51text.txt | 3 + .../test_delete_in_sentence/52head.txt | 1 + .../test_delete_in_sentence/53mode.txt | 1 + .../test_delete_in_sentence/54text.txt | 3 + .../test_delete_in_sentence/55head.txt | 1 + .../test_delete_in_sentence/56mode.txt | 1 + .../test_delete_in_sentence/5mode.txt | 1 + .../test_delete_in_sentence/6text.txt | 1 + .../test_delete_in_sentence/7head.txt | 1 + .../test_delete_in_sentence/8mode.txt | 1 + .../test_delete_in_sentence/9text.txt | 1 + .../test_data/test_delete_in_word/0text.txt | 12 + .../test_data/test_delete_in_word/100head.txt | 1 + .../test_data/test_delete_in_word/101mode.txt | 1 + .../test_data/test_delete_in_word/102text.txt | 12 + .../test_data/test_delete_in_word/103head.txt | 1 + .../test_data/test_delete_in_word/104mode.txt | 1 + .../test_data/test_delete_in_word/105text.txt | 12 + .../test_data/test_delete_in_word/106head.txt | 1 + .../test_data/test_delete_in_word/107mode.txt | 1 + .../test_data/test_delete_in_word/108text.txt | 12 + .../test_data/test_delete_in_word/109head.txt | 1 + .../test_data/test_delete_in_word/10head.txt | 1 + .../test_data/test_delete_in_word/110mode.txt | 1 + .../test_data/test_delete_in_word/111text.txt | 12 + .../test_data/test_delete_in_word/112head.txt | 1 + .../test_data/test_delete_in_word/113mode.txt | 1 + .../test_data/test_delete_in_word/114text.txt | 12 + .../test_data/test_delete_in_word/115head.txt | 1 + .../test_data/test_delete_in_word/116mode.txt | 1 + .../test_data/test_delete_in_word/117text.txt | 12 + .../test_data/test_delete_in_word/118head.txt | 1 + .../test_data/test_delete_in_word/119mode.txt | 1 + .../test_data/test_delete_in_word/11mode.txt | 1 + .../test_data/test_delete_in_word/120text.txt | 12 + .../test_data/test_delete_in_word/121head.txt | 1 + .../test_data/test_delete_in_word/122mode.txt | 1 + .../test_data/test_delete_in_word/123text.txt | 12 + .../test_data/test_delete_in_word/124head.txt | 1 + .../test_data/test_delete_in_word/125mode.txt | 1 + .../test_data/test_delete_in_word/126text.txt | 12 + .../test_data/test_delete_in_word/127head.txt | 1 + .../test_data/test_delete_in_word/128mode.txt | 1 + .../test_data/test_delete_in_word/129text.txt | 12 + .../test_data/test_delete_in_word/12text.txt | 12 + .../test_data/test_delete_in_word/130head.txt | 1 + .../test_data/test_delete_in_word/131mode.txt | 1 + .../test_data/test_delete_in_word/132text.txt | 12 + .../test_data/test_delete_in_word/133head.txt | 1 + .../test_data/test_delete_in_word/134mode.txt | 1 + .../test_data/test_delete_in_word/135text.txt | 12 + .../test_data/test_delete_in_word/136head.txt | 1 + .../test_data/test_delete_in_word/137mode.txt | 1 + .../test_data/test_delete_in_word/13head.txt | 1 + .../test_data/test_delete_in_word/14mode.txt | 1 + .../test_data/test_delete_in_word/15text.txt | 12 + .../test_data/test_delete_in_word/16head.txt | 1 + .../test_data/test_delete_in_word/17mode.txt | 1 + .../test_data/test_delete_in_word/18text.txt | 12 + .../test_data/test_delete_in_word/19head.txt | 1 + .../test_data/test_delete_in_word/1head.txt | 1 + .../test_data/test_delete_in_word/20mode.txt | 1 + .../test_data/test_delete_in_word/21text.txt | 12 + .../test_data/test_delete_in_word/22head.txt | 1 + .../test_data/test_delete_in_word/23mode.txt | 1 + .../test_data/test_delete_in_word/24text.txt | 12 + .../test_data/test_delete_in_word/25head.txt | 1 + .../test_data/test_delete_in_word/26mode.txt | 1 + .../test_data/test_delete_in_word/27text.txt | 12 + .../test_data/test_delete_in_word/28head.txt | 1 + .../test_data/test_delete_in_word/29mode.txt | 1 + .../test_data/test_delete_in_word/2mode.txt | 1 + .../test_data/test_delete_in_word/30text.txt | 12 + .../test_data/test_delete_in_word/31head.txt | 1 + .../test_data/test_delete_in_word/32mode.txt | 1 + .../test_data/test_delete_in_word/33text.txt | 12 + .../test_data/test_delete_in_word/34head.txt | 1 + .../test_data/test_delete_in_word/35mode.txt | 1 + .../test_data/test_delete_in_word/36text.txt | 12 + .../test_data/test_delete_in_word/37head.txt | 1 + .../test_data/test_delete_in_word/38mode.txt | 1 + .../test_data/test_delete_in_word/39text.txt | 12 + .../test_data/test_delete_in_word/3text.txt | 12 + .../test_data/test_delete_in_word/40head.txt | 1 + .../test_data/test_delete_in_word/41mode.txt | 1 + .../test_data/test_delete_in_word/42text.txt | 12 + .../test_data/test_delete_in_word/43head.txt | 1 + .../test_data/test_delete_in_word/44mode.txt | 1 + .../test_data/test_delete_in_word/45text.txt | 12 + .../test_data/test_delete_in_word/46head.txt | 1 + .../test_data/test_delete_in_word/47mode.txt | 1 + .../test_data/test_delete_in_word/48text.txt | 12 + .../test_data/test_delete_in_word/49head.txt | 1 + .../test_data/test_delete_in_word/4head.txt | 1 + .../test_data/test_delete_in_word/50mode.txt | 1 + .../test_data/test_delete_in_word/51text.txt | 12 + .../test_data/test_delete_in_word/52head.txt | 1 + .../test_data/test_delete_in_word/53mode.txt | 1 + .../test_data/test_delete_in_word/54text.txt | 12 + .../test_data/test_delete_in_word/55head.txt | 1 + .../test_data/test_delete_in_word/56mode.txt | 1 + .../test_data/test_delete_in_word/57text.txt | 12 + .../test_data/test_delete_in_word/58head.txt | 1 + .../test_data/test_delete_in_word/59mode.txt | 1 + .../test_data/test_delete_in_word/5mode.txt | 1 + .../test_data/test_delete_in_word/60text.txt | 12 + .../test_data/test_delete_in_word/61head.txt | 1 + .../test_data/test_delete_in_word/62mode.txt | 1 + .../test_data/test_delete_in_word/63text.txt | 12 + .../test_data/test_delete_in_word/64head.txt | 1 + .../test_data/test_delete_in_word/65mode.txt | 1 + .../test_data/test_delete_in_word/66text.txt | 12 + .../test_data/test_delete_in_word/67head.txt | 1 + .../test_data/test_delete_in_word/68mode.txt | 1 + .../test_data/test_delete_in_word/69text.txt | 12 + .../test_data/test_delete_in_word/6text.txt | 12 + .../test_data/test_delete_in_word/70head.txt | 1 + .../test_data/test_delete_in_word/71mode.txt | 1 + .../test_data/test_delete_in_word/72text.txt | 12 + .../test_data/test_delete_in_word/73head.txt | 1 + .../test_data/test_delete_in_word/74mode.txt | 1 + .../test_data/test_delete_in_word/75text.txt | 12 + .../test_data/test_delete_in_word/76head.txt | 1 + .../test_data/test_delete_in_word/77mode.txt | 1 + .../test_data/test_delete_in_word/78text.txt | 12 + .../test_data/test_delete_in_word/79head.txt | 1 + .../test_data/test_delete_in_word/7head.txt | 1 + .../test_data/test_delete_in_word/80mode.txt | 1 + .../test_data/test_delete_in_word/81text.txt | 12 + .../test_data/test_delete_in_word/82head.txt | 1 + .../test_data/test_delete_in_word/83mode.txt | 1 + .../test_data/test_delete_in_word/84text.txt | 12 + .../test_data/test_delete_in_word/85head.txt | 1 + .../test_data/test_delete_in_word/86mode.txt | 1 + .../test_data/test_delete_in_word/87text.txt | 12 + .../test_data/test_delete_in_word/88head.txt | 1 + .../test_data/test_delete_in_word/89mode.txt | 1 + .../test_data/test_delete_in_word/8mode.txt | 1 + .../test_data/test_delete_in_word/90text.txt | 12 + .../test_data/test_delete_in_word/91head.txt | 1 + .../test_data/test_delete_in_word/92mode.txt | 1 + .../test_data/test_delete_in_word/93text.txt | 12 + .../test_data/test_delete_in_word/94head.txt | 1 + .../test_data/test_delete_in_word/95mode.txt | 1 + .../test_data/test_delete_in_word/96text.txt | 12 + .../test_data/test_delete_in_word/97head.txt | 1 + .../test_data/test_delete_in_word/98mode.txt | 1 + .../test_data/test_delete_in_word/99text.txt | 12 + .../test_data/test_delete_in_word/9text.txt | 12 + crates/vim/test_data/test_neovim/0text.txt | 1 + crates/vim/test_data/test_neovim/1head.txt | 1 + crates/vim/test_data/test_neovim/2mode.txt | 1 + .../test_data/test_word_text_object/0text.txt | 9 + .../test_word_text_object/100head.txt | 1 + .../test_word_text_object/101mode.txt | 1 + .../test_word_text_object/102text.txt | 9 + .../test_word_text_object/103head.txt | 1 + .../test_word_text_object/104mode.txt | 1 + .../test_word_text_object/105text.txt | 9 + .../test_word_text_object/106head.txt | 1 + .../test_word_text_object/107mode.txt | 1 + .../test_word_text_object/108text.txt | 9 + .../test_word_text_object/109head.txt | 1 + .../test_word_text_object/10head.txt | 1 + .../test_word_text_object/110mode.txt | 1 + .../test_word_text_object/111text.txt | 9 + .../test_word_text_object/112head.txt | 1 + .../test_word_text_object/113mode.txt | 1 + .../test_word_text_object/114text.txt | 9 + .../test_word_text_object/115head.txt | 1 + .../test_word_text_object/116mode.txt | 1 + .../test_word_text_object/117text.txt | 9 + .../test_word_text_object/118head.txt | 1 + .../test_word_text_object/119mode.txt | 1 + .../test_word_text_object/11mode.txt | 1 + .../test_word_text_object/120text.txt | 8 + .../test_word_text_object/121head.txt | 1 + .../test_word_text_object/122mode.txt | 1 + .../test_word_text_object/123text.txt | 9 + .../test_word_text_object/124head.txt | 1 + .../test_word_text_object/125mode.txt | 1 + .../test_word_text_object/126text.txt | 9 + .../test_word_text_object/127head.txt | 1 + .../test_word_text_object/128mode.txt | 1 + .../test_word_text_object/129text.txt | 9 + .../test_word_text_object/12text.txt | 9 + .../test_word_text_object/130head.txt | 1 + .../test_word_text_object/131mode.txt | 1 + .../test_word_text_object/132text.txt | 8 + .../test_word_text_object/133head.txt | 1 + .../test_word_text_object/134mode.txt | 1 + .../test_word_text_object/135text.txt | 8 + .../test_word_text_object/136head.txt | 1 + .../test_word_text_object/137mode.txt | 1 + .../test_word_text_object/138text.txt | 8 + .../test_word_text_object/139head.txt | 1 + .../test_word_text_object/13head.txt | 1 + .../test_word_text_object/140mode.txt | 1 + .../test_word_text_object/141text.txt | 8 + .../test_word_text_object/142head.txt | 1 + .../test_word_text_object/143mode.txt | 1 + .../test_word_text_object/144text.txt | 9 + .../test_word_text_object/145head.txt | 1 + .../test_word_text_object/146mode.txt | 1 + .../test_word_text_object/147text.txt | 9 + .../test_word_text_object/148head.txt | 1 + .../test_word_text_object/149mode.txt | 1 + .../test_word_text_object/14mode.txt | 1 + .../test_word_text_object/150text.txt | 9 + .../test_word_text_object/151head.txt | 1 + .../test_word_text_object/152mode.txt | 1 + .../test_word_text_object/153text.txt | 9 + .../test_word_text_object/154head.txt | 1 + .../test_word_text_object/155mode.txt | 1 + .../test_word_text_object/156text.txt | 9 + .../test_word_text_object/157head.txt | 1 + .../test_word_text_object/158mode.txt | 1 + .../test_word_text_object/159text.txt | 9 + .../test_word_text_object/15text.txt | 9 + .../test_word_text_object/160head.txt | 1 + .../test_word_text_object/161mode.txt | 1 + .../test_word_text_object/162text.txt | 8 + .../test_word_text_object/163head.txt | 1 + .../test_word_text_object/164mode.txt | 1 + .../test_word_text_object/165text.txt | 9 + .../test_word_text_object/166head.txt | 1 + .../test_word_text_object/167mode.txt | 1 + .../test_word_text_object/168text.txt | 9 + .../test_word_text_object/169head.txt | 1 + .../test_word_text_object/16head.txt | 1 + .../test_word_text_object/170mode.txt | 1 + .../test_word_text_object/171text.txt | 9 + .../test_word_text_object/172head.txt | 1 + .../test_word_text_object/173mode.txt | 1 + .../test_word_text_object/174text.txt | 9 + .../test_word_text_object/175head.txt | 1 + .../test_word_text_object/176mode.txt | 1 + .../test_word_text_object/177text.txt | 8 + .../test_word_text_object/178head.txt | 1 + .../test_word_text_object/179mode.txt | 1 + .../test_word_text_object/17mode.txt | 1 + .../test_word_text_object/180text.txt | 9 + .../test_word_text_object/181head.txt | 1 + .../test_word_text_object/182mode.txt | 1 + .../test_word_text_object/183text.txt | 9 + .../test_word_text_object/184head.txt | 1 + .../test_word_text_object/185mode.txt | 1 + .../test_word_text_object/186text.txt | 9 + .../test_word_text_object/187head.txt | 1 + .../test_word_text_object/188mode.txt | 1 + .../test_word_text_object/189text.txt | 8 + .../test_word_text_object/18text.txt | 9 + .../test_word_text_object/190head.txt | 1 + .../test_word_text_object/191mode.txt | 1 + .../test_word_text_object/192text.txt | 8 + .../test_word_text_object/193head.txt | 1 + .../test_word_text_object/194mode.txt | 1 + .../test_word_text_object/195text.txt | 8 + .../test_word_text_object/196head.txt | 1 + .../test_word_text_object/197mode.txt | 1 + .../test_word_text_object/198text.txt | 8 + .../test_word_text_object/199head.txt | 1 + .../test_word_text_object/19head.txt | 1 + .../test_data/test_word_text_object/1head.txt | 1 + .../test_word_text_object/200mode.txt | 1 + .../test_word_text_object/201text.txt | 9 + .../test_word_text_object/202head.txt | 1 + .../test_word_text_object/203mode.txt | 1 + .../test_word_text_object/204text.txt | 9 + .../test_word_text_object/205head.txt | 1 + .../test_word_text_object/206mode.txt | 1 + .../test_word_text_object/207text.txt | 9 + .../test_word_text_object/208head.txt | 1 + .../test_word_text_object/209mode.txt | 1 + .../test_word_text_object/20mode.txt | 1 + .../test_word_text_object/210text.txt | 9 + .../test_word_text_object/211head.txt | 1 + .../test_word_text_object/212mode.txt | 1 + .../test_word_text_object/213text.txt | 9 + .../test_word_text_object/214head.txt | 1 + .../test_word_text_object/215mode.txt | 1 + .../test_word_text_object/216text.txt | 9 + .../test_word_text_object/217head.txt | 1 + .../test_word_text_object/218mode.txt | 1 + .../test_word_text_object/219text.txt | 8 + .../test_word_text_object/21text.txt | 9 + .../test_word_text_object/220head.txt | 1 + .../test_word_text_object/221mode.txt | 1 + .../test_word_text_object/222text.txt | 9 + .../test_word_text_object/223head.txt | 1 + .../test_word_text_object/224mode.txt | 1 + .../test_word_text_object/225text.txt | 9 + .../test_word_text_object/226head.txt | 1 + .../test_word_text_object/227mode.txt | 1 + .../test_word_text_object/228text.txt | 9 + .../test_word_text_object/229head.txt | 1 + .../test_word_text_object/22head.txt | 1 + .../test_word_text_object/230mode.txt | 1 + .../test_word_text_object/231text.txt | 9 + .../test_word_text_object/23mode.txt | 1 + .../test_word_text_object/24text.txt | 9 + .../test_word_text_object/25head.txt | 1 + .../test_word_text_object/26mode.txt | 1 + .../test_word_text_object/27text.txt | 9 + .../test_word_text_object/28head.txt | 1 + .../test_word_text_object/29mode.txt | 1 + .../test_data/test_word_text_object/2mode.txt | 1 + .../test_word_text_object/30text.txt | 9 + .../test_word_text_object/31head.txt | 1 + .../test_word_text_object/32mode.txt | 1 + .../test_word_text_object/33text.txt | 9 + .../test_word_text_object/34head.txt | 1 + .../test_word_text_object/35mode.txt | 1 + .../test_word_text_object/36text.txt | 9 + .../test_word_text_object/37head.txt | 1 + .../test_word_text_object/38mode.txt | 1 + .../test_word_text_object/39text.txt | 9 + .../test_data/test_word_text_object/3text.txt | 9 + .../test_word_text_object/40head.txt | 1 + .../test_word_text_object/41mode.txt | 1 + .../test_word_text_object/42text.txt | 9 + .../test_word_text_object/43head.txt | 1 + .../test_word_text_object/44mode.txt | 1 + .../test_word_text_object/45text.txt | 9 + .../test_word_text_object/46head.txt | 1 + .../test_word_text_object/47mode.txt | 1 + .../test_word_text_object/48text.txt | 9 + .../test_word_text_object/49head.txt | 1 + .../test_data/test_word_text_object/4head.txt | 1 + .../test_word_text_object/50mode.txt | 1 + .../test_word_text_object/51text.txt | 9 + .../test_word_text_object/52head.txt | 1 + .../test_word_text_object/53mode.txt | 1 + .../test_word_text_object/54text.txt | 9 + .../test_word_text_object/55head.txt | 1 + .../test_word_text_object/56mode.txt | 1 + .../test_word_text_object/57text.txt | 9 + .../test_word_text_object/58head.txt | 1 + .../test_word_text_object/59mode.txt | 1 + .../test_data/test_word_text_object/5mode.txt | 1 + .../test_word_text_object/60text.txt | 9 + .../test_word_text_object/61head.txt | 1 + .../test_word_text_object/62mode.txt | 1 + .../test_word_text_object/63text.txt | 9 + .../test_word_text_object/64head.txt | 1 + .../test_word_text_object/65mode.txt | 1 + .../test_word_text_object/66text.txt | 9 + .../test_word_text_object/67head.txt | 1 + .../test_word_text_object/68mode.txt | 1 + .../test_word_text_object/69text.txt | 9 + .../test_data/test_word_text_object/6text.txt | 9 + .../test_word_text_object/70head.txt | 1 + .../test_word_text_object/71mode.txt | 1 + .../test_word_text_object/72text.txt | 9 + .../test_word_text_object/73head.txt | 1 + .../test_word_text_object/74mode.txt | 1 + .../test_word_text_object/75text.txt | 9 + .../test_word_text_object/76head.txt | 1 + .../test_word_text_object/77mode.txt | 1 + .../test_word_text_object/78text.txt | 9 + .../test_word_text_object/79head.txt | 1 + .../test_data/test_word_text_object/7head.txt | 1 + .../test_word_text_object/80mode.txt | 1 + .../test_word_text_object/81text.txt | 9 + .../test_word_text_object/82head.txt | 1 + .../test_word_text_object/83mode.txt | 1 + .../test_word_text_object/84text.txt | 9 + .../test_word_text_object/85head.txt | 1 + .../test_word_text_object/86mode.txt | 1 + .../test_word_text_object/87text.txt | 9 + .../test_word_text_object/88head.txt | 1 + .../test_word_text_object/89mode.txt | 1 + .../test_data/test_word_text_object/8mode.txt | 1 + .../test_word_text_object/90text.txt | 9 + .../test_word_text_object/91head.txt | 1 + .../test_word_text_object/92mode.txt | 1 + .../test_word_text_object/93text.txt | 9 + .../test_word_text_object/94head.txt | 1 + .../test_word_text_object/95mode.txt | 1 + .../test_word_text_object/96text.txt | 9 + .../test_word_text_object/97head.txt | 1 + .../test_word_text_object/98mode.txt | 1 + .../test_word_text_object/99text.txt | 9 + .../test_data/test_word_text_object/9text.txt | 9 + 945 files changed, 5678 insertions(+), 655 deletions(-) create mode 100644 crates/vim/src/object.rs create mode 100644 crates/vim/src/test_contexts.rs create mode 100644 crates/vim/src/test_contexts/neovim_backed_binding_test_context.rs create mode 100644 crates/vim/src/test_contexts/neovim_backed_test_context.rs create mode 100644 crates/vim/src/test_contexts/vim_binding_test_context.rs rename crates/vim/src/{ => test_contexts}/vim_test_context.rs (75%) create mode 100644 crates/vim/test_data/test_change_around_sentence/0text.txt create mode 100644 crates/vim/test_data/test_change_around_sentence/10head.txt create mode 100644 crates/vim/test_data/test_change_around_sentence/1head.txt create mode 100644 crates/vim/test_data/test_change_around_sentence/2mode.txt create mode 100644 crates/vim/test_data/test_change_around_sentence/3text.txt create mode 100644 crates/vim/test_data/test_change_around_sentence/4head.txt create mode 100644 crates/vim/test_data/test_change_around_sentence/5mode.txt create mode 100644 crates/vim/test_data/test_change_around_sentence/6text.txt create mode 100644 crates/vim/test_data/test_change_around_sentence/7head.txt create mode 100644 crates/vim/test_data/test_change_around_sentence/8mode.txt create mode 100644 crates/vim/test_data/test_change_around_sentence/9text.txt create mode 100644 crates/vim/test_data/test_change_around_word/0text.txt create mode 100644 crates/vim/test_data/test_change_around_word/100head.txt create mode 100644 crates/vim/test_data/test_change_around_word/101mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/102text.txt create mode 100644 crates/vim/test_data/test_change_around_word/103head.txt create mode 100644 crates/vim/test_data/test_change_around_word/104mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/105text.txt create mode 100644 crates/vim/test_data/test_change_around_word/106head.txt create mode 100644 crates/vim/test_data/test_change_around_word/107mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/108text.txt create mode 100644 crates/vim/test_data/test_change_around_word/109head.txt create mode 100644 crates/vim/test_data/test_change_around_word/10head.txt create mode 100644 crates/vim/test_data/test_change_around_word/110mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/111text.txt create mode 100644 crates/vim/test_data/test_change_around_word/112head.txt create mode 100644 crates/vim/test_data/test_change_around_word/113mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/114text.txt create mode 100644 crates/vim/test_data/test_change_around_word/115head.txt create mode 100644 crates/vim/test_data/test_change_around_word/116mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/117text.txt create mode 100644 crates/vim/test_data/test_change_around_word/118head.txt create mode 100644 crates/vim/test_data/test_change_around_word/119mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/11mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/120text.txt create mode 100644 crates/vim/test_data/test_change_around_word/121head.txt create mode 100644 crates/vim/test_data/test_change_around_word/122mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/123text.txt create mode 100644 crates/vim/test_data/test_change_around_word/124head.txt create mode 100644 crates/vim/test_data/test_change_around_word/125mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/126text.txt create mode 100644 crates/vim/test_data/test_change_around_word/127head.txt create mode 100644 crates/vim/test_data/test_change_around_word/128mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/129text.txt create mode 100644 crates/vim/test_data/test_change_around_word/12text.txt create mode 100644 crates/vim/test_data/test_change_around_word/130head.txt create mode 100644 crates/vim/test_data/test_change_around_word/131mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/132text.txt create mode 100644 crates/vim/test_data/test_change_around_word/133head.txt create mode 100644 crates/vim/test_data/test_change_around_word/134mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/135text.txt create mode 100644 crates/vim/test_data/test_change_around_word/136head.txt create mode 100644 crates/vim/test_data/test_change_around_word/137mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/13head.txt create mode 100644 crates/vim/test_data/test_change_around_word/14mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/15text.txt create mode 100644 crates/vim/test_data/test_change_around_word/16head.txt create mode 100644 crates/vim/test_data/test_change_around_word/17mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/18text.txt create mode 100644 crates/vim/test_data/test_change_around_word/19head.txt create mode 100644 crates/vim/test_data/test_change_around_word/1head.txt create mode 100644 crates/vim/test_data/test_change_around_word/20mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/21text.txt create mode 100644 crates/vim/test_data/test_change_around_word/22head.txt create mode 100644 crates/vim/test_data/test_change_around_word/23mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/24text.txt create mode 100644 crates/vim/test_data/test_change_around_word/25head.txt create mode 100644 crates/vim/test_data/test_change_around_word/26mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/27text.txt create mode 100644 crates/vim/test_data/test_change_around_word/28head.txt create mode 100644 crates/vim/test_data/test_change_around_word/29mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/2mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/30text.txt create mode 100644 crates/vim/test_data/test_change_around_word/31head.txt create mode 100644 crates/vim/test_data/test_change_around_word/32mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/33text.txt create mode 100644 crates/vim/test_data/test_change_around_word/34head.txt create mode 100644 crates/vim/test_data/test_change_around_word/35mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/36text.txt create mode 100644 crates/vim/test_data/test_change_around_word/37head.txt create mode 100644 crates/vim/test_data/test_change_around_word/38mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/39text.txt create mode 100644 crates/vim/test_data/test_change_around_word/3text.txt create mode 100644 crates/vim/test_data/test_change_around_word/40head.txt create mode 100644 crates/vim/test_data/test_change_around_word/41mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/42text.txt create mode 100644 crates/vim/test_data/test_change_around_word/43head.txt create mode 100644 crates/vim/test_data/test_change_around_word/44mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/45text.txt create mode 100644 crates/vim/test_data/test_change_around_word/46head.txt create mode 100644 crates/vim/test_data/test_change_around_word/47mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/48text.txt create mode 100644 crates/vim/test_data/test_change_around_word/49head.txt create mode 100644 crates/vim/test_data/test_change_around_word/4head.txt create mode 100644 crates/vim/test_data/test_change_around_word/50mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/51text.txt create mode 100644 crates/vim/test_data/test_change_around_word/52head.txt create mode 100644 crates/vim/test_data/test_change_around_word/53mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/54text.txt create mode 100644 crates/vim/test_data/test_change_around_word/55head.txt create mode 100644 crates/vim/test_data/test_change_around_word/56mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/57text.txt create mode 100644 crates/vim/test_data/test_change_around_word/58head.txt create mode 100644 crates/vim/test_data/test_change_around_word/59mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/5mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/60text.txt create mode 100644 crates/vim/test_data/test_change_around_word/61head.txt create mode 100644 crates/vim/test_data/test_change_around_word/62mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/63text.txt create mode 100644 crates/vim/test_data/test_change_around_word/64head.txt create mode 100644 crates/vim/test_data/test_change_around_word/65mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/66text.txt create mode 100644 crates/vim/test_data/test_change_around_word/67head.txt create mode 100644 crates/vim/test_data/test_change_around_word/68mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/69text.txt create mode 100644 crates/vim/test_data/test_change_around_word/6text.txt create mode 100644 crates/vim/test_data/test_change_around_word/70head.txt create mode 100644 crates/vim/test_data/test_change_around_word/71mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/72text.txt create mode 100644 crates/vim/test_data/test_change_around_word/73head.txt create mode 100644 crates/vim/test_data/test_change_around_word/74mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/75text.txt create mode 100644 crates/vim/test_data/test_change_around_word/76head.txt create mode 100644 crates/vim/test_data/test_change_around_word/77mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/78text.txt create mode 100644 crates/vim/test_data/test_change_around_word/79head.txt create mode 100644 crates/vim/test_data/test_change_around_word/7head.txt create mode 100644 crates/vim/test_data/test_change_around_word/80mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/81text.txt create mode 100644 crates/vim/test_data/test_change_around_word/82head.txt create mode 100644 crates/vim/test_data/test_change_around_word/83mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/84text.txt create mode 100644 crates/vim/test_data/test_change_around_word/85head.txt create mode 100644 crates/vim/test_data/test_change_around_word/86mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/87text.txt create mode 100644 crates/vim/test_data/test_change_around_word/88head.txt create mode 100644 crates/vim/test_data/test_change_around_word/89mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/8mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/90text.txt create mode 100644 crates/vim/test_data/test_change_around_word/91head.txt create mode 100644 crates/vim/test_data/test_change_around_word/92mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/93text.txt create mode 100644 crates/vim/test_data/test_change_around_word/94head.txt create mode 100644 crates/vim/test_data/test_change_around_word/95mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/96text.txt create mode 100644 crates/vim/test_data/test_change_around_word/97head.txt create mode 100644 crates/vim/test_data/test_change_around_word/98mode.txt create mode 100644 crates/vim/test_data/test_change_around_word/99text.txt create mode 100644 crates/vim/test_data/test_change_around_word/9text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/0text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/10head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/11mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/12text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/13head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/14mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/15text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/16head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/17mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/18text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/19head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/1head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/20mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/21text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/22head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/23mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/24text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/25head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/26mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/27text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/28head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/29mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/2mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/30text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/31head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/32mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/33text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/34head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/35mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/36text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/37head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/38mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/39text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/3text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/40head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/41mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/42text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/43head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/44mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/45text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/46head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/47mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/48text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/49head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/4head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/50mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/51text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/52head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/53mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/54text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/55head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/56mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/5mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/6text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/7head.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/8mode.txt create mode 100644 crates/vim/test_data/test_change_in_sentence/9text.txt create mode 100644 crates/vim/test_data/test_change_in_word/0text.txt create mode 100644 crates/vim/test_data/test_change_in_word/100head.txt create mode 100644 crates/vim/test_data/test_change_in_word/101mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/102text.txt create mode 100644 crates/vim/test_data/test_change_in_word/103head.txt create mode 100644 crates/vim/test_data/test_change_in_word/104mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/105text.txt create mode 100644 crates/vim/test_data/test_change_in_word/106head.txt create mode 100644 crates/vim/test_data/test_change_in_word/107mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/108text.txt create mode 100644 crates/vim/test_data/test_change_in_word/109head.txt create mode 100644 crates/vim/test_data/test_change_in_word/10head.txt create mode 100644 crates/vim/test_data/test_change_in_word/110mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/111text.txt create mode 100644 crates/vim/test_data/test_change_in_word/112head.txt create mode 100644 crates/vim/test_data/test_change_in_word/113mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/114text.txt create mode 100644 crates/vim/test_data/test_change_in_word/115head.txt create mode 100644 crates/vim/test_data/test_change_in_word/116mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/117text.txt create mode 100644 crates/vim/test_data/test_change_in_word/118head.txt create mode 100644 crates/vim/test_data/test_change_in_word/119mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/11mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/120text.txt create mode 100644 crates/vim/test_data/test_change_in_word/121head.txt create mode 100644 crates/vim/test_data/test_change_in_word/122mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/123text.txt create mode 100644 crates/vim/test_data/test_change_in_word/124head.txt create mode 100644 crates/vim/test_data/test_change_in_word/125mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/126text.txt create mode 100644 crates/vim/test_data/test_change_in_word/127head.txt create mode 100644 crates/vim/test_data/test_change_in_word/128mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/129text.txt create mode 100644 crates/vim/test_data/test_change_in_word/12text.txt create mode 100644 crates/vim/test_data/test_change_in_word/130head.txt create mode 100644 crates/vim/test_data/test_change_in_word/131mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/132text.txt create mode 100644 crates/vim/test_data/test_change_in_word/133head.txt create mode 100644 crates/vim/test_data/test_change_in_word/134mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/135text.txt create mode 100644 crates/vim/test_data/test_change_in_word/136head.txt create mode 100644 crates/vim/test_data/test_change_in_word/137mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/13head.txt create mode 100644 crates/vim/test_data/test_change_in_word/14mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/15text.txt create mode 100644 crates/vim/test_data/test_change_in_word/16head.txt create mode 100644 crates/vim/test_data/test_change_in_word/17mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/18text.txt create mode 100644 crates/vim/test_data/test_change_in_word/19head.txt create mode 100644 crates/vim/test_data/test_change_in_word/1head.txt create mode 100644 crates/vim/test_data/test_change_in_word/20mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/21text.txt create mode 100644 crates/vim/test_data/test_change_in_word/22head.txt create mode 100644 crates/vim/test_data/test_change_in_word/23mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/24text.txt create mode 100644 crates/vim/test_data/test_change_in_word/25head.txt create mode 100644 crates/vim/test_data/test_change_in_word/26mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/27text.txt create mode 100644 crates/vim/test_data/test_change_in_word/28head.txt create mode 100644 crates/vim/test_data/test_change_in_word/29mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/2mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/30text.txt create mode 100644 crates/vim/test_data/test_change_in_word/31head.txt create mode 100644 crates/vim/test_data/test_change_in_word/32mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/33text.txt create mode 100644 crates/vim/test_data/test_change_in_word/34head.txt create mode 100644 crates/vim/test_data/test_change_in_word/35mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/36text.txt create mode 100644 crates/vim/test_data/test_change_in_word/37head.txt create mode 100644 crates/vim/test_data/test_change_in_word/38mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/39text.txt create mode 100644 crates/vim/test_data/test_change_in_word/3text.txt create mode 100644 crates/vim/test_data/test_change_in_word/40head.txt create mode 100644 crates/vim/test_data/test_change_in_word/41mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/42text.txt create mode 100644 crates/vim/test_data/test_change_in_word/43head.txt create mode 100644 crates/vim/test_data/test_change_in_word/44mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/45text.txt create mode 100644 crates/vim/test_data/test_change_in_word/46head.txt create mode 100644 crates/vim/test_data/test_change_in_word/47mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/48text.txt create mode 100644 crates/vim/test_data/test_change_in_word/49head.txt create mode 100644 crates/vim/test_data/test_change_in_word/4head.txt create mode 100644 crates/vim/test_data/test_change_in_word/50mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/51text.txt create mode 100644 crates/vim/test_data/test_change_in_word/52head.txt create mode 100644 crates/vim/test_data/test_change_in_word/53mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/54text.txt create mode 100644 crates/vim/test_data/test_change_in_word/55head.txt create mode 100644 crates/vim/test_data/test_change_in_word/56mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/57text.txt create mode 100644 crates/vim/test_data/test_change_in_word/58head.txt create mode 100644 crates/vim/test_data/test_change_in_word/59mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/5mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/60text.txt create mode 100644 crates/vim/test_data/test_change_in_word/61head.txt create mode 100644 crates/vim/test_data/test_change_in_word/62mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/63text.txt create mode 100644 crates/vim/test_data/test_change_in_word/64head.txt create mode 100644 crates/vim/test_data/test_change_in_word/65mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/66text.txt create mode 100644 crates/vim/test_data/test_change_in_word/67head.txt create mode 100644 crates/vim/test_data/test_change_in_word/68mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/69text.txt create mode 100644 crates/vim/test_data/test_change_in_word/6text.txt create mode 100644 crates/vim/test_data/test_change_in_word/70head.txt create mode 100644 crates/vim/test_data/test_change_in_word/71mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/72text.txt create mode 100644 crates/vim/test_data/test_change_in_word/73head.txt create mode 100644 crates/vim/test_data/test_change_in_word/74mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/75text.txt create mode 100644 crates/vim/test_data/test_change_in_word/76head.txt create mode 100644 crates/vim/test_data/test_change_in_word/77mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/78text.txt create mode 100644 crates/vim/test_data/test_change_in_word/79head.txt create mode 100644 crates/vim/test_data/test_change_in_word/7head.txt create mode 100644 crates/vim/test_data/test_change_in_word/80mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/81text.txt create mode 100644 crates/vim/test_data/test_change_in_word/82head.txt create mode 100644 crates/vim/test_data/test_change_in_word/83mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/84text.txt create mode 100644 crates/vim/test_data/test_change_in_word/85head.txt create mode 100644 crates/vim/test_data/test_change_in_word/86mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/87text.txt create mode 100644 crates/vim/test_data/test_change_in_word/88head.txt create mode 100644 crates/vim/test_data/test_change_in_word/89mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/8mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/90text.txt create mode 100644 crates/vim/test_data/test_change_in_word/91head.txt create mode 100644 crates/vim/test_data/test_change_in_word/92mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/93text.txt create mode 100644 crates/vim/test_data/test_change_in_word/94head.txt create mode 100644 crates/vim/test_data/test_change_in_word/95mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/96text.txt create mode 100644 crates/vim/test_data/test_change_in_word/97head.txt create mode 100644 crates/vim/test_data/test_change_in_word/98mode.txt create mode 100644 crates/vim/test_data/test_change_in_word/99text.txt create mode 100644 crates/vim/test_data/test_change_in_word/9text.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence/0text.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence/10head.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence/1head.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence/2mode.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence/3text.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence/4head.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence/5mode.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence/6text.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence/7head.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence/8mode.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence/9text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/0text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/100head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/101mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/102text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/103head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/104mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/105text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/106head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/107mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/108text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/109head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/10head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/110mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/111text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/112head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/113mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/114text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/115head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/116mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/117text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/118head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/119mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/11mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/120text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/121head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/122mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/123text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/124head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/125mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/126text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/127head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/128mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/129text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/12text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/130head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/131mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/132text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/133head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/134mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/135text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/136head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/137mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/13head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/14mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/15text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/16head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/17mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/18text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/19head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/1head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/20mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/21text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/22head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/23mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/24text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/25head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/26mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/27text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/28head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/29mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/2mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/30text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/31head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/32mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/33text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/34head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/35mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/36text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/37head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/38mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/39text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/3text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/40head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/41mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/42text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/43head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/44mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/45text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/46head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/47mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/48text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/49head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/4head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/50mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/51text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/52head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/53mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/54text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/55head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/56mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/57text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/58head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/59mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/5mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/60text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/61head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/62mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/63text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/64head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/65mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/66text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/67head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/68mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/69text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/6text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/70head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/71mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/72text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/73head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/74mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/75text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/76head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/77mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/78text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/79head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/7head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/80mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/81text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/82head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/83mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/84text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/85head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/86mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/87text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/88head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/89mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/8mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/90text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/91head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/92mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/93text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/94head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/95mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/96text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/97head.txt create mode 100644 crates/vim/test_data/test_delete_around_word/98mode.txt create mode 100644 crates/vim/test_data/test_delete_around_word/99text.txt create mode 100644 crates/vim/test_data/test_delete_around_word/9text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/0text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/10head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/11mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/12text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/13head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/14mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/15text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/16head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/17mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/18text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/19head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/1head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/20mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/21text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/22head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/23mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/24text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/25head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/26mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/27text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/28head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/29mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/2mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/30text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/31head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/32mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/33text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/34head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/35mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/36text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/37head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/38mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/39text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/3text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/40head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/41mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/42text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/43head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/44mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/45text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/46head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/47mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/48text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/49head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/4head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/50mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/51text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/52head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/53mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/54text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/55head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/56mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/5mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/6text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/7head.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/8mode.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence/9text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/0text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/100head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/101mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/102text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/103head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/104mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/105text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/106head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/107mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/108text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/109head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/10head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/110mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/111text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/112head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/113mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/114text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/115head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/116mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/117text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/118head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/119mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/11mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/120text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/121head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/122mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/123text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/124head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/125mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/126text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/127head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/128mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/129text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/12text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/130head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/131mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/132text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/133head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/134mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/135text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/136head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/137mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/13head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/14mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/15text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/16head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/17mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/18text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/19head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/1head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/20mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/21text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/22head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/23mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/24text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/25head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/26mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/27text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/28head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/29mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/2mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/30text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/31head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/32mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/33text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/34head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/35mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/36text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/37head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/38mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/39text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/3text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/40head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/41mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/42text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/43head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/44mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/45text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/46head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/47mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/48text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/49head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/4head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/50mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/51text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/52head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/53mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/54text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/55head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/56mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/57text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/58head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/59mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/5mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/60text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/61head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/62mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/63text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/64head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/65mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/66text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/67head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/68mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/69text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/6text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/70head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/71mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/72text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/73head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/74mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/75text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/76head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/77mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/78text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/79head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/7head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/80mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/81text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/82head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/83mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/84text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/85head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/86mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/87text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/88head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/89mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/8mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/90text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/91head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/92mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/93text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/94head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/95mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/96text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/97head.txt create mode 100644 crates/vim/test_data/test_delete_in_word/98mode.txt create mode 100644 crates/vim/test_data/test_delete_in_word/99text.txt create mode 100644 crates/vim/test_data/test_delete_in_word/9text.txt create mode 100644 crates/vim/test_data/test_neovim/0text.txt create mode 100644 crates/vim/test_data/test_neovim/1head.txt create mode 100644 crates/vim/test_data/test_neovim/2mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/0text.txt create mode 100644 crates/vim/test_data/test_word_text_object/100head.txt create mode 100644 crates/vim/test_data/test_word_text_object/101mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/102text.txt create mode 100644 crates/vim/test_data/test_word_text_object/103head.txt create mode 100644 crates/vim/test_data/test_word_text_object/104mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/105text.txt create mode 100644 crates/vim/test_data/test_word_text_object/106head.txt create mode 100644 crates/vim/test_data/test_word_text_object/107mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/108text.txt create mode 100644 crates/vim/test_data/test_word_text_object/109head.txt create mode 100644 crates/vim/test_data/test_word_text_object/10head.txt create mode 100644 crates/vim/test_data/test_word_text_object/110mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/111text.txt create mode 100644 crates/vim/test_data/test_word_text_object/112head.txt create mode 100644 crates/vim/test_data/test_word_text_object/113mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/114text.txt create mode 100644 crates/vim/test_data/test_word_text_object/115head.txt create mode 100644 crates/vim/test_data/test_word_text_object/116mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/117text.txt create mode 100644 crates/vim/test_data/test_word_text_object/118head.txt create mode 100644 crates/vim/test_data/test_word_text_object/119mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/11mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/120text.txt create mode 100644 crates/vim/test_data/test_word_text_object/121head.txt create mode 100644 crates/vim/test_data/test_word_text_object/122mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/123text.txt create mode 100644 crates/vim/test_data/test_word_text_object/124head.txt create mode 100644 crates/vim/test_data/test_word_text_object/125mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/126text.txt create mode 100644 crates/vim/test_data/test_word_text_object/127head.txt create mode 100644 crates/vim/test_data/test_word_text_object/128mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/129text.txt create mode 100644 crates/vim/test_data/test_word_text_object/12text.txt create mode 100644 crates/vim/test_data/test_word_text_object/130head.txt create mode 100644 crates/vim/test_data/test_word_text_object/131mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/132text.txt create mode 100644 crates/vim/test_data/test_word_text_object/133head.txt create mode 100644 crates/vim/test_data/test_word_text_object/134mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/135text.txt create mode 100644 crates/vim/test_data/test_word_text_object/136head.txt create mode 100644 crates/vim/test_data/test_word_text_object/137mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/138text.txt create mode 100644 crates/vim/test_data/test_word_text_object/139head.txt create mode 100644 crates/vim/test_data/test_word_text_object/13head.txt create mode 100644 crates/vim/test_data/test_word_text_object/140mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/141text.txt create mode 100644 crates/vim/test_data/test_word_text_object/142head.txt create mode 100644 crates/vim/test_data/test_word_text_object/143mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/144text.txt create mode 100644 crates/vim/test_data/test_word_text_object/145head.txt create mode 100644 crates/vim/test_data/test_word_text_object/146mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/147text.txt create mode 100644 crates/vim/test_data/test_word_text_object/148head.txt create mode 100644 crates/vim/test_data/test_word_text_object/149mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/14mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/150text.txt create mode 100644 crates/vim/test_data/test_word_text_object/151head.txt create mode 100644 crates/vim/test_data/test_word_text_object/152mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/153text.txt create mode 100644 crates/vim/test_data/test_word_text_object/154head.txt create mode 100644 crates/vim/test_data/test_word_text_object/155mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/156text.txt create mode 100644 crates/vim/test_data/test_word_text_object/157head.txt create mode 100644 crates/vim/test_data/test_word_text_object/158mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/159text.txt create mode 100644 crates/vim/test_data/test_word_text_object/15text.txt create mode 100644 crates/vim/test_data/test_word_text_object/160head.txt create mode 100644 crates/vim/test_data/test_word_text_object/161mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/162text.txt create mode 100644 crates/vim/test_data/test_word_text_object/163head.txt create mode 100644 crates/vim/test_data/test_word_text_object/164mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/165text.txt create mode 100644 crates/vim/test_data/test_word_text_object/166head.txt create mode 100644 crates/vim/test_data/test_word_text_object/167mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/168text.txt create mode 100644 crates/vim/test_data/test_word_text_object/169head.txt create mode 100644 crates/vim/test_data/test_word_text_object/16head.txt create mode 100644 crates/vim/test_data/test_word_text_object/170mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/171text.txt create mode 100644 crates/vim/test_data/test_word_text_object/172head.txt create mode 100644 crates/vim/test_data/test_word_text_object/173mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/174text.txt create mode 100644 crates/vim/test_data/test_word_text_object/175head.txt create mode 100644 crates/vim/test_data/test_word_text_object/176mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/177text.txt create mode 100644 crates/vim/test_data/test_word_text_object/178head.txt create mode 100644 crates/vim/test_data/test_word_text_object/179mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/17mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/180text.txt create mode 100644 crates/vim/test_data/test_word_text_object/181head.txt create mode 100644 crates/vim/test_data/test_word_text_object/182mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/183text.txt create mode 100644 crates/vim/test_data/test_word_text_object/184head.txt create mode 100644 crates/vim/test_data/test_word_text_object/185mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/186text.txt create mode 100644 crates/vim/test_data/test_word_text_object/187head.txt create mode 100644 crates/vim/test_data/test_word_text_object/188mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/189text.txt create mode 100644 crates/vim/test_data/test_word_text_object/18text.txt create mode 100644 crates/vim/test_data/test_word_text_object/190head.txt create mode 100644 crates/vim/test_data/test_word_text_object/191mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/192text.txt create mode 100644 crates/vim/test_data/test_word_text_object/193head.txt create mode 100644 crates/vim/test_data/test_word_text_object/194mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/195text.txt create mode 100644 crates/vim/test_data/test_word_text_object/196head.txt create mode 100644 crates/vim/test_data/test_word_text_object/197mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/198text.txt create mode 100644 crates/vim/test_data/test_word_text_object/199head.txt create mode 100644 crates/vim/test_data/test_word_text_object/19head.txt create mode 100644 crates/vim/test_data/test_word_text_object/1head.txt create mode 100644 crates/vim/test_data/test_word_text_object/200mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/201text.txt create mode 100644 crates/vim/test_data/test_word_text_object/202head.txt create mode 100644 crates/vim/test_data/test_word_text_object/203mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/204text.txt create mode 100644 crates/vim/test_data/test_word_text_object/205head.txt create mode 100644 crates/vim/test_data/test_word_text_object/206mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/207text.txt create mode 100644 crates/vim/test_data/test_word_text_object/208head.txt create mode 100644 crates/vim/test_data/test_word_text_object/209mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/20mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/210text.txt create mode 100644 crates/vim/test_data/test_word_text_object/211head.txt create mode 100644 crates/vim/test_data/test_word_text_object/212mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/213text.txt create mode 100644 crates/vim/test_data/test_word_text_object/214head.txt create mode 100644 crates/vim/test_data/test_word_text_object/215mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/216text.txt create mode 100644 crates/vim/test_data/test_word_text_object/217head.txt create mode 100644 crates/vim/test_data/test_word_text_object/218mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/219text.txt create mode 100644 crates/vim/test_data/test_word_text_object/21text.txt create mode 100644 crates/vim/test_data/test_word_text_object/220head.txt create mode 100644 crates/vim/test_data/test_word_text_object/221mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/222text.txt create mode 100644 crates/vim/test_data/test_word_text_object/223head.txt create mode 100644 crates/vim/test_data/test_word_text_object/224mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/225text.txt create mode 100644 crates/vim/test_data/test_word_text_object/226head.txt create mode 100644 crates/vim/test_data/test_word_text_object/227mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/228text.txt create mode 100644 crates/vim/test_data/test_word_text_object/229head.txt create mode 100644 crates/vim/test_data/test_word_text_object/22head.txt create mode 100644 crates/vim/test_data/test_word_text_object/230mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/231text.txt create mode 100644 crates/vim/test_data/test_word_text_object/23mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/24text.txt create mode 100644 crates/vim/test_data/test_word_text_object/25head.txt create mode 100644 crates/vim/test_data/test_word_text_object/26mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/27text.txt create mode 100644 crates/vim/test_data/test_word_text_object/28head.txt create mode 100644 crates/vim/test_data/test_word_text_object/29mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/2mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/30text.txt create mode 100644 crates/vim/test_data/test_word_text_object/31head.txt create mode 100644 crates/vim/test_data/test_word_text_object/32mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/33text.txt create mode 100644 crates/vim/test_data/test_word_text_object/34head.txt create mode 100644 crates/vim/test_data/test_word_text_object/35mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/36text.txt create mode 100644 crates/vim/test_data/test_word_text_object/37head.txt create mode 100644 crates/vim/test_data/test_word_text_object/38mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/39text.txt create mode 100644 crates/vim/test_data/test_word_text_object/3text.txt create mode 100644 crates/vim/test_data/test_word_text_object/40head.txt create mode 100644 crates/vim/test_data/test_word_text_object/41mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/42text.txt create mode 100644 crates/vim/test_data/test_word_text_object/43head.txt create mode 100644 crates/vim/test_data/test_word_text_object/44mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/45text.txt create mode 100644 crates/vim/test_data/test_word_text_object/46head.txt create mode 100644 crates/vim/test_data/test_word_text_object/47mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/48text.txt create mode 100644 crates/vim/test_data/test_word_text_object/49head.txt create mode 100644 crates/vim/test_data/test_word_text_object/4head.txt create mode 100644 crates/vim/test_data/test_word_text_object/50mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/51text.txt create mode 100644 crates/vim/test_data/test_word_text_object/52head.txt create mode 100644 crates/vim/test_data/test_word_text_object/53mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/54text.txt create mode 100644 crates/vim/test_data/test_word_text_object/55head.txt create mode 100644 crates/vim/test_data/test_word_text_object/56mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/57text.txt create mode 100644 crates/vim/test_data/test_word_text_object/58head.txt create mode 100644 crates/vim/test_data/test_word_text_object/59mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/5mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/60text.txt create mode 100644 crates/vim/test_data/test_word_text_object/61head.txt create mode 100644 crates/vim/test_data/test_word_text_object/62mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/63text.txt create mode 100644 crates/vim/test_data/test_word_text_object/64head.txt create mode 100644 crates/vim/test_data/test_word_text_object/65mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/66text.txt create mode 100644 crates/vim/test_data/test_word_text_object/67head.txt create mode 100644 crates/vim/test_data/test_word_text_object/68mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/69text.txt create mode 100644 crates/vim/test_data/test_word_text_object/6text.txt create mode 100644 crates/vim/test_data/test_word_text_object/70head.txt create mode 100644 crates/vim/test_data/test_word_text_object/71mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/72text.txt create mode 100644 crates/vim/test_data/test_word_text_object/73head.txt create mode 100644 crates/vim/test_data/test_word_text_object/74mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/75text.txt create mode 100644 crates/vim/test_data/test_word_text_object/76head.txt create mode 100644 crates/vim/test_data/test_word_text_object/77mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/78text.txt create mode 100644 crates/vim/test_data/test_word_text_object/79head.txt create mode 100644 crates/vim/test_data/test_word_text_object/7head.txt create mode 100644 crates/vim/test_data/test_word_text_object/80mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/81text.txt create mode 100644 crates/vim/test_data/test_word_text_object/82head.txt create mode 100644 crates/vim/test_data/test_word_text_object/83mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/84text.txt create mode 100644 crates/vim/test_data/test_word_text_object/85head.txt create mode 100644 crates/vim/test_data/test_word_text_object/86mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/87text.txt create mode 100644 crates/vim/test_data/test_word_text_object/88head.txt create mode 100644 crates/vim/test_data/test_word_text_object/89mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/8mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/90text.txt create mode 100644 crates/vim/test_data/test_word_text_object/91head.txt create mode 100644 crates/vim/test_data/test_word_text_object/92mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/93text.txt create mode 100644 crates/vim/test_data/test_word_text_object/94head.txt create mode 100644 crates/vim/test_data/test_word_text_object/95mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/96text.txt create mode 100644 crates/vim/test_data/test_word_text_object/97head.txt create mode 100644 crates/vim/test_data/test_word_text_object/98mode.txt create mode 100644 crates/vim/test_data/test_word_text_object/99text.txt create mode 100644 crates/vim/test_data/test_word_text_object/9text.txt diff --git a/Cargo.lock b/Cargo.lock index da2362670d..e5f183c9ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,7 @@ version = "0.1.0" dependencies = [ "auto_update", "editor", - "futures", + "futures 0.3.24", "gpui", "language", "project", @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" dependencies = [ "memchr", ] @@ -113,6 +113,15 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec8ad6edb4840b78c5c3d88de606b22252d552b55f3a4699fbb10fc070ec3049" +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "ansi_term" version = "0.12.1" @@ -124,9 +133,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.58" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" +checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" [[package]] name = "arrayref" @@ -148,9 +157,9 @@ checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] name = "ascii" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109" +checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" [[package]] name = "assets" @@ -174,9 +183,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.6.1" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319" +checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" dependencies = [ "concurrent-queue", "event-listener", @@ -184,10 +193,23 @@ dependencies = [ ] [[package]] -name = "async-compression" -version = "0.3.14" +name = "async-compat" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345fd392ab01f746c717b1357165b76f0b67a60192007b234058c9045fdcf695" +checksum = "9b48b4ff0c2026db683dea961cd8ea874737f56cffca86fa84415eaddc51c00d" +dependencies = [ + "futures-core", + "futures-io", + "once_cell", + "pin-project-lite 0.2.9", + "tokio", +] + +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" dependencies = [ "flate2", "futures-core", @@ -212,21 +234,23 @@ dependencies = [ [[package]] name = "async-fs" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b3ca4f8ff117c37c278a2f7415ce9be55560b846b5bc4412aaa5d29c1c3dae2" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" dependencies = [ "async-lock", + "autocfg 1.1.0", "blocking", "futures-lite", ] [[package]] name = "async-io" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07" +checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7" dependencies = [ + "autocfg 1.1.0", "concurrent-queue", "futures-lite", "libc", @@ -251,11 +275,12 @@ dependencies = [ [[package]] name = "async-net" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5373304df79b9b4395068fb080369ec7178608827306ce4d081cba51cac551df" +checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f" dependencies = [ "async-io", + "autocfg 1.1.0", "blocking", "futures-lite", ] @@ -265,17 +290,18 @@ name = "async-pipe" version = "0.1.3" source = "git+https://github.com/zed-industries/async-pipe-rs?rev=82d00a04211cf4e1236029aa03e6b6ce2a74c553#82d00a04211cf4e1236029aa03e6b6ce2a74c553" dependencies = [ - "futures", + "futures 0.3.24", "log", ] [[package]] name = "async-process" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2c06e30a24e8c78a3987d07f0930edf76ef35e027e7bdb063fccafdad1f60c" +checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" dependencies = [ "async-io", + "autocfg 1.1.0", "blocking", "cfg-if 1.0.0", "event-listener", @@ -338,9 +364,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" +checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" dependencies = [ "proc-macro2", "quote", @@ -435,15 +461,15 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.5.11" +version = "0.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2cc6e8e8c993cb61a005fab8c1e5093a29199b7253b05a6883999312935c1ff" +checksum = "c9e3356844c4d6a6d6467b8da2cffb4a2820be256f50a3a386c9d152bab31043" dependencies = [ "async-trait", "axum-core", "base64", "bitflags", - "bytes", + "bytes 1.2.1", "futures-util", "headers", "http", @@ -470,26 +496,28 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4d047478b986f14a13edad31a009e2e05cb241f9805d0d75e4cba4e129ad4d" +checksum = "d9f0c0a60006f2a293d82d571f635042a72edf927539b7685bd62d361963839b" dependencies = [ "async-trait", - "bytes", + "bytes 1.2.1", "futures-util", "http", "http-body", "mime", + "tower-layer", + "tower-service", ] [[package]] name = "axum-extra" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "277c75e6c814b061ae4947d02335d9659db9771b9950cca670002ae986372f44" +checksum = "69034b3b0fd97923eee2ce8a47540edb21e07f48f87f67d44bb4271cec622bdb" dependencies = [ "axum", - "bytes", + "bytes 1.2.1", "futures-util", "http", "mime", @@ -505,16 +533,16 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" +checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" dependencies = [ "addr2line", "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.5.3", - "object", + "miniz_oxide 0.5.4", + "object 0.29.0", "rustc-demangle", ] @@ -526,9 +554,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "base64ct" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdca834647821e0b13d9539a8634eb62d3501b6b6c2cec1722786ee6671b851" +checksum = "ea2b2456fd614d856680dcd9fcc660a51a820fa09daef2e49772b56a193c8474" [[package]] name = "bincode" @@ -585,9 +613,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ "generic-array", ] @@ -645,15 +673,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.10.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "bytemuck" -version = "1.10.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c53dfa917ec274df8ed3c572698f381a24eef2efba9492d797301b72b6db408a" +checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" [[package]] name = "byteorder" @@ -661,6 +689,16 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +[[package]] +name = "bytes" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +dependencies = [ + "byteorder", + "iovec", +] + [[package]] name = "bytes" version = "1.2.1" @@ -758,12 +796,12 @@ dependencies = [ "bindgen", "block", "byteorder", - "bytes", + "bytes 1.2.1", "cocoa", "core-foundation", "core-graphics", "foreign-types", - "futures", + "futures 0.3.24", "gpui", "hmac 0.12.1", "jwt", @@ -774,7 +812,7 @@ dependencies = [ "parking_lot 0.11.2", "postage", "serde", - "sha2 0.10.2", + "sha2 0.10.6", "simplelog", ] @@ -825,21 +863,23 @@ dependencies = [ "postage", "settings", "theme", - "time 0.3.11", + "time 0.3.15", "util", "workspace", ] [[package]] name = "chrono" -version = "0.4.19" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" dependencies = [ - "libc", + "iana-time-zone", + "js-sys", "num-integer", "num-traits", "time 0.1.44", + "wasm-bindgen", "winapi 0.3.9", ] @@ -860,9 +900,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.3.3" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b" +checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" dependencies = [ "glob", "libc", @@ -886,9 +926,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.8" +version = "3.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190814073e85d238f31ff738fcb0bf6910cedeb73376c87cd69291028966fd83" +checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750" dependencies = [ "atty", "bitflags", @@ -898,14 +938,14 @@ dependencies = [ "once_cell", "strsim 0.10.0", "termcolor", - "textwrap 0.15.0", + "textwrap 0.15.1", ] [[package]] name = "clap_derive" -version = "3.2.7" +version = "3.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902" +checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -928,7 +968,7 @@ name = "cli" version = "0.1.0" dependencies = [ "anyhow", - "clap 3.2.8", + "clap 3.2.22", "core-foundation", "core-services", "dirs 3.0.2", @@ -946,7 +986,7 @@ dependencies = [ "async-tungstenite", "collections", "db", - "futures", + "futures 0.3.24", "gpui", "image", "isahc", @@ -961,11 +1001,11 @@ dependencies = [ "sum_tree", "tempfile", "thiserror", - "time 0.3.11", + "time 0.3.15", "tiny_http", "url", "util", - "uuid 1.1.2", + "uuid 1.2.1", ] [[package]] @@ -1013,6 +1053,16 @@ dependencies = [ "objc", ] +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + [[package]] name = "collab" version = "0.1.0" @@ -1023,14 +1073,14 @@ dependencies = [ "axum", "axum-extra", "base64", - "clap 3.2.8", + "clap 3.2.22", "client", "collections", "ctor", "editor", "env_logger", "envy", - "futures", + "futures 0.3.24", "git", "gpui", "hyper", @@ -1053,7 +1103,7 @@ dependencies = [ "sha-1 0.9.8", "sqlx", "theme", - "time 0.3.11", + "time 0.3.15", "tokio", "tokio-tungstenite", "toml", @@ -1101,9 +1151,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "1.2.2" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" +checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" dependencies = [ "cache-padded", ] @@ -1116,7 +1166,7 @@ dependencies = [ "client", "collections", "editor", - "futures", + "futures 0.3.24", "fuzzy", "gpui", "language", @@ -1140,7 +1190,7 @@ dependencies = [ "client", "collections", "editor", - "futures", + "futures 0.3.24", "fuzzy", "gpui", "language", @@ -1236,27 +1286,27 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] [[package]] name = "cranelift-bforest" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7901fbba05decc537080b07cb3f1cadf53be7b7602ca8255786288a8692ae29a" +checksum = "749d0d6022c9038dccf480bdde2a38d435937335bf2bb0f14e815d94517cdce8" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ba1b45d243a4a28e12d26cd5f2507da74e77c45927d40de8b6ffbf088b46b5" +checksum = "e94370cc7b37bf652ccd8bb8f09bd900997f7ccf97520edfc75554bb5c4abbea" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", @@ -1272,33 +1322,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54cc30032171bf230ce22b99c07c3a1de1221cb5375bd6dbe6dbe77d0eed743c" +checksum = "e0a3cea8fdab90e44018c5b9a1dfd460d8ee265ac354337150222a354628bdb6" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23f2672426d2bb4c9c3ef53e023076cfc4d8922f0eeaebaf372c92fae8b5c69" +checksum = "5ac72f76f2698598951ab26d8c96eaa854810e693e7dd52523958b5909fde6b2" [[package]] name = "cranelift-entity" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "886c59a5e0de1f06dbb7da80db149c75de10d5e2caca07cdd9fef8a5918a6336" +checksum = "09eaeacfcd2356fe0e66b295e8f9d59fdd1ac3ace53ba50de14d628ec902f72d" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace74eeca11c439a9d4ed1a5cb9df31a54cd0f7fbddf82c8ce4ea8e9ad2a8fe0" +checksum = "dba69c9980d5ffd62c18a2bde927855fcd7c8dc92f29feaf8636052662cbd99c" dependencies = [ "cranelift-codegen", "log", @@ -1308,15 +1358,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db1ae52a5cc2cad0d86fdd3dcb16b7217d2f1e65ab4f5814aa4f014ad335fa43" +checksum = "d2920dc1e05cac40304456ed3301fde2c09bd6a9b0210bcfa2f101398d628d5b" [[package]] name = "cranelift-native" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dadcfb7852900780d37102bce5698bcd401736403f07b52e714ff7a180e0e22f" +checksum = "f04dfa45f9b2a6f587c564d6b63388e00cd6589d2df6ea2758cf79e1a13285e6" dependencies = [ "cranelift-codegen", "libc", @@ -1325,9 +1375,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c84e3410960389110b88f97776f39f6d2c8becdaa4cd59e390e6b76d9d0e7190" +checksum = "31a46513ae6f26f3f267d8d75b5373d555fbbd1e68681f348d99df43f747ec54" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1375,47 +1425,46 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.10", + "crossbeam-utils 0.8.12", ] [[package]] name = "crossbeam-deque" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", - "crossbeam-utils 0.8.10", + "crossbeam-utils 0.8.12", ] [[package]] name = "crossbeam-epoch" -version = "0.9.9" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" +checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" dependencies = [ "autocfg 1.1.0", "cfg-if 1.0.0", - "crossbeam-utils 0.8.10", + "crossbeam-utils 0.8.12", "memoffset", - "once_cell", "scopeguard", ] [[package]] name = "crossbeam-queue" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2" +checksum = "1cd42583b04998a5363558e5f9291ee5a5ff6b49944332103f251e7479a82aa7" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.10", + "crossbeam-utils 0.8.12", ] [[package]] @@ -1431,19 +1480,18 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.10" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" +checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" dependencies = [ "cfg-if 1.0.0", - "once_cell", ] [[package]] name = "crypto-common" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5999502d32b9c48d492abe66392408144895020ec4709e549e840799f3bb74c0" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", "typenum", @@ -1461,9 +1509,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c" +checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" dependencies = [ "quote", "syn", @@ -1471,9 +1519,9 @@ dependencies = [ [[package]] name = "curl" -version = "0.4.43" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d855aeef205b43f65a5001e0997d81f8efca7badad4fad7d897aa7f0d0651f" +checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22" dependencies = [ "curl-sys", "libc", @@ -1486,9 +1534,9 @@ dependencies = [ [[package]] name = "curl-sys" -version = "0.4.55+curl-7.83.1" +version = "0.4.56+curl-7.83.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23734ec77368ec583c2e61dd3f0b0e5c98b93abe6d2a004ca06b91dd7e3e2762" +checksum = "6093e169dd4de29e468fa649fbae11cdcd5551c81fe5bf1b0677adad7ef3d26f" dependencies = [ "cc", "libc", @@ -1500,6 +1548,50 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "cxx" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f39818dcfc97d45b03953c1292efc4e80954e1583c4aa770bac1383e2310a4" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e580d70777c116df50c390d1211993f62d40302881e54d4b79727acb83d0199" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56a46460b88d1cec95112c8c363f0e2c39afdb237f60583b0b36343bf627ea9c" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747b608fecf06b0d72d440f27acc99288207324b793be2c17991839f3d4995ea" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "data-url" version = "0.1.1" @@ -1534,13 +1626,13 @@ dependencies = [ [[package]] name = "dhat" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47003dc9f6368a88e85956c3b2573a7e6872746a3e5d762a8885da3a136a0381" +checksum = "0684eaa19a59be283a6f99369917b679bd4d1d06604b2eb2e2f87b4bbd67668d" dependencies = [ "backtrace", "lazy_static", - "parking_lot 0.11.2", + "parking_lot 0.12.1", "rustc-hash", "serde", "serde_json", @@ -1579,11 +1671,11 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" dependencies = [ - "block-buffer 0.10.2", + "block-buffer 0.10.3", "crypto-common", "subtle", ] @@ -1649,10 +1741,13 @@ dependencies = [ ] [[package]] -name = "dotenv" -version = "0.15.0" +name = "dotenvy" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" +checksum = "ed9155c8f4dc55c7470ae9da3f63c6785245093b3f6aeb0f5bf2e968efbba314" +dependencies = [ + "dirs 4.0.0", +] [[package]] name = "drag_and_drop" @@ -1676,9 +1771,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "140206b78fb2bc3edbcfc9b5ccbd0b30699cfe8d348b8b31b330e47df5291a5a" +checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" [[package]] name = "easy-parallel" @@ -1697,7 +1792,7 @@ dependencies = [ "context_menu", "ctor", "env_logger", - "futures", + "futures 0.3.24", "fuzzy", "git", "gpui", @@ -1732,9 +1827,9 @@ dependencies = [ [[package]] name = "either" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "encoding_rs" @@ -1747,9 +1842,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" dependencies = [ "atty", "humantime", @@ -1769,9 +1864,9 @@ dependencies = [ [[package]] name = "erased-serde" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81d013529d5574a60caeda29e179e695125448e5de52e3874f7b4c1d7360e18e" +checksum = "54558e0ba96fbe24280072642eceb9d7d442e32c7ec0ea9e7ecd7b4ea2cf4e11" dependencies = [ "serde", ] @@ -1818,9 +1913,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "expat-sys" @@ -1840,9 +1935,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] @@ -1890,7 +1985,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ "crc32fast", - "miniz_oxide 0.5.3", + "miniz_oxide 0.5.4", ] [[package]] @@ -1963,11 +2058,10 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", "percent-encoding", ] @@ -2046,9 +2140,15 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.3.21" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" + +[[package]] +name = "futures" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" dependencies = [ "futures-channel", "futures-core", @@ -2061,9 +2161,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" dependencies = [ "futures-core", "futures-sink", @@ -2071,15 +2171,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" dependencies = [ "futures-core", "futures-task", @@ -2099,9 +2199,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" [[package]] name = "futures-lite" @@ -2120,9 +2220,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" dependencies = [ "proc-macro2", "quote", @@ -2131,22 +2231,23 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" dependencies = [ + "futures 0.1.31", "futures-channel", "futures-core", "futures-io", @@ -2157,6 +2258,7 @@ dependencies = [ "pin-project-lite 0.2.9", "pin-utils", "slab", + "tokio-io", ] [[package]] @@ -2178,9 +2280,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", @@ -2220,9 +2322,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" dependencies = [ "fallible-iterator", "indexmap", @@ -2237,7 +2339,7 @@ dependencies = [ "async-trait", "clock", "collections", - "futures", + "futures 0.3.24", "git2", "lazy_static", "log", @@ -2315,7 +2417,7 @@ dependencies = [ "etagere", "font-kit", "foreign-types", - "futures", + "futures 0.3.24", "gpui_macros", "image", "lazy_static", @@ -2340,7 +2442,7 @@ dependencies = [ "smallvec", "smol", "sum_tree", - "time 0.3.11", + "time 0.3.15", "tiny-skia", "tree-sitter", "usvg", @@ -2359,11 +2461,11 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" dependencies = [ - "bytes", + "bytes 1.2.1", "fnv", "futures-core", "futures-sink", @@ -2372,7 +2474,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.3", + "tokio-util 0.7.4", "tracing", ] @@ -2387,36 +2489,36 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ "ahash", ] [[package]] name = "hashlink" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d452c155cb93fecdfb02a73dd57b5d8e442c2063bd7aac72f1bc5e4263a43086" +checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa" dependencies = [ - "hashbrown 0.12.1", + "hashbrown 0.12.3", ] [[package]] name = "headers" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cff78e5788be1e0ab65b04d306b2ed5092c815ec97ec70f4ebd5aee158aa55d" +checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" dependencies = [ "base64", "bitflags", - "bytes", + "bytes 1.2.1", "headers-core", "http", "httpdate", "mime", - "sha-1 0.10.0", + "sha1", ] [[package]] @@ -2457,9 +2559,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.2.3" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37fb7dc756218a0559bfc21e4381f03cbb696cdaf959e7e95e927496f0564cd" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" dependencies = [ "libc", ] @@ -2495,7 +2597,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.3", + "digest 0.10.5", ] [[package]] @@ -2504,7 +2606,7 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ - "bytes", + "bytes 1.2.1", "fnv", "itoa", ] @@ -2515,7 +2617,7 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ - "bytes", + "bytes 1.2.1", "http", "pin-project-lite 0.2.9", ] @@ -2528,9 +2630,9 @@ checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" [[package]] name = "httparse" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" @@ -2546,11 +2648,11 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.19" +version = "0.14.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42dc3c131584288d375f2d07f822b0cb012d8c6fb899a5b9fdb3cb7eb9b6004f" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" dependencies = [ - "bytes", + "bytes 1.2.1", "futures-channel", "futures-core", "futures-util", @@ -2586,7 +2688,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes", + "bytes 1.2.1", "hyper", "native-tls", "tokio", @@ -2594,12 +2696,35 @@ dependencies = [ ] [[package]] -name = "idna" -version = "0.2.3" +name = "iana-time-zone" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi 0.3.9", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fde6edd6cef363e9359ed3c98ba64590ba9eecba2293eb5a723ab32aee8926aa" +dependencies = [ + "cxx", + "cxx-build", +] + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] @@ -2610,7 +2735,7 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" dependencies = [ - "crossbeam-utils 0.8.10", + "crossbeam-utils 0.8.12", "globset", "lazy_static", "log", @@ -2648,15 +2773,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg 1.1.0", - "hashbrown 0.12.1", + "hashbrown 0.12.3", "serde", ] [[package]] name = "indoc" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05a0bd019339e5d968b37855180087b7b9d512c5046fbd244cf8c95687927d6e" +checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3" [[package]] name = "instant" @@ -2727,7 +2852,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c89a757e762896bdbdfadf2860d0f8b0cea5e363d8cf3e7bdfeb63d1d976352" dependencies = [ - "hermit-abi 0.2.3", + "hermit-abi 0.2.6", "io-lifetimes", "rustix", "winapi 0.3.9", @@ -2741,7 +2866,7 @@ checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9" dependencies = [ "async-channel", "castaway", - "crossbeam-utils 0.8.10", + "crossbeam-utils 0.8.12", "curl", "curl-sys", "encoding_rs", @@ -2762,18 +2887,18 @@ dependencies = [ [[package]] name = "itertools" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" [[package]] name = "ittapi-rs" @@ -2786,9 +2911,9 @@ dependencies = [ [[package]] name = "jobserver" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" dependencies = [ "libc", ] @@ -2817,9 +2942,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.58" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" dependencies = [ "wasm-bindgen", ] @@ -2838,11 +2963,11 @@ checksum = "6204285f77fe7d9784db3fdc449ecce1a0114927a51d5a41c4c7a292011c015f" dependencies = [ "base64", "crypto-common", - "digest 0.10.3", + "digest 0.10.5", "hmac 0.12.1", "serde", "serde_json", - "sha2 0.10.2", + "sha2 0.10.6", ] [[package]] @@ -2876,7 +3001,7 @@ dependencies = [ "collections", "ctor", "env_logger", - "futures", + "futures 0.3.24", "fuzzy", "git", "gpui", @@ -2931,9 +3056,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.126" +version = "0.2.134" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" +checksum = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb" [[package]] name = "libgit2-sys" @@ -2959,9 +3084,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" +checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565" [[package]] name = "libnghttp2-sys" @@ -3008,6 +3133,15 @@ dependencies = [ "safemem", ] +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -3037,7 +3171,7 @@ dependencies = [ "anyhow", "core-foundation", "core-graphics", - "futures", + "futures 0.3.24", "media", "parking_lot 0.11.2", "serde", @@ -3046,9 +3180,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ "autocfg 1.1.0", "scopeguard", @@ -3074,7 +3208,7 @@ dependencies = [ "collections", "ctor", "env_logger", - "futures", + "futures 0.3.24", "gpui", "log", "lsp-types", @@ -3153,11 +3287,11 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "md-5" -version = "0.10.1" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658646b21e0b72f7866c7038ab086d3d5e1cd6271f060fd37defb241949d0582" +checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" dependencies = [ - "digest 0.10.3", + "digest 0.10.5", ] [[package]] @@ -3167,7 +3301,7 @@ dependencies = [ "anyhow", "bindgen", "block", - "bytes", + "bytes 1.2.1", "core-foundation", "foreign-types", "metal", @@ -3261,9 +3395,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" dependencies = [ "adler", ] @@ -3437,6 +3571,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi 0.3.9", +] + [[package]] name = "num-bigint" version = "0.4.3" @@ -3527,6 +3671,21 @@ dependencies = [ "libc", ] +[[package]] +name = "nvim-rs" +version = "0.5.0" +source = "git+https://github.com/KillTheMule/nvim-rs?branch=master#d701c2790dcb2579f8f4d7003ba30e2100a7d25b" +dependencies = [ + "async-trait", + "futures 0.3.24", + "log", + "parity-tokio-ipc", + "rmp", + "rmpv", + "tokio", + "tokio-util 0.7.4", +] + [[package]] name = "objc" version = "0.2.7" @@ -3559,10 +3718,19 @@ dependencies = [ ] [[package]] -name = "once_cell" -version = "1.13.0" +name = "object" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" +checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" [[package]] name = "opaque-debug" @@ -3572,9 +3740,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.40" +version = "0.10.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb81a6430ac911acb25fe5ac8f1d2af1b4ea8a4fdfda0f1ee4292af2e2d8eb0e" +checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -3604,9 +3772,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.74" +version = "0.9.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835363342df5fba8354c5b453325b110ffd54044e588c539cf2f20a8014e4cb1" +checksum = "5230151e44c0f05157effb743e8d517472843121cf9243e8b81393edb5acd9ce" dependencies = [ "autocfg 1.1.0", "cc", @@ -3626,9 +3794,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.1.0" +version = "6.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa" +checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" [[package]] name = "outline" @@ -3647,6 +3815,26 @@ dependencies = [ "workspace", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parity-tokio-ipc" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" +dependencies = [ + "futures 0.3.24", + "libc", + "log", + "rand 0.7.3", + "tokio", + "winapi 0.3.9", +] + [[package]] name = "parking" version = "2.0.0" @@ -3708,15 +3896,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77e0b28ace46c5a396546bcf443bf422b57049617433d8854227352a4a9b24e7" dependencies = [ "base64ct", - "rand_core 0.6.3", + "rand_core 0.6.4", "subtle", ] [[package]] name = "paste" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" +checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" [[package]] name = "pathfinder_color" @@ -3774,16 +3962,17 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.1.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" dependencies = [ + "thiserror", "ucd-trie", ] @@ -3821,18 +4010,18 @@ checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468" [[package]] name = "pin-project" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", @@ -3873,7 +4062,7 @@ dependencies = [ "indexmap", "line-wrap", "serde", - "time 0.3.11", + "time 0.3.15", "xml-rs", ] @@ -3926,10 +4115,11 @@ dependencies = [ [[package]] name = "polling" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" +checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" dependencies = [ + "autocfg 1.1.0", "cfg-if 1.0.0", "libc", "log", @@ -3951,7 +4141,7 @@ checksum = "a63d25391d04a097954b76aba742b6b5b74f213dfe3dbaeeb36e8ddc1c657f0b" dependencies = [ "atomic", "crossbeam-queue", - "futures", + "futures 0.3.24", "log", "pin-project", "pollster", @@ -3991,9 +4181,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.40" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" +checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" dependencies = [ "unicode-ident", ] @@ -4021,7 +4211,7 @@ dependencies = [ "collections", "db", "fsevent", - "futures", + "futures 0.3.24", "fuzzy", "git", "gpui", @@ -4041,7 +4231,7 @@ dependencies = [ "serde", "serde_json", "settings", - "sha2 0.10.2", + "sha2 0.10.6", "similar", "smol", "sum_tree", @@ -4059,7 +4249,7 @@ version = "0.1.0" dependencies = [ "context_menu", "editor", - "futures", + "futures 0.3.24", "gpui", "menu", "postage", @@ -4078,7 +4268,7 @@ version = "0.1.0" dependencies = [ "anyhow", "editor", - "futures", + "futures 0.3.24", "fuzzy", "gpui", "language", @@ -4096,9 +4286,9 @@ dependencies = [ [[package]] name = "prometheus" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cface98dfa6d645ea4c789839f176e4b072265d085bfcc48eaa8d137f58d3c39" +checksum = "45c8babc29389186697fe5a2a4859d697825496b83db5d0b65271cdc0488e88c" dependencies = [ "cfg-if 1.0.0", "fnv", @@ -4115,7 +4305,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020" dependencies = [ - "bytes", + "bytes 1.2.1", "prost-derive 0.8.0", ] @@ -4125,7 +4315,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" dependencies = [ - "bytes", + "bytes 1.2.1", "prost-derive 0.9.0", ] @@ -4135,7 +4325,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" dependencies = [ - "bytes", + "bytes 1.2.1", "heck 0.3.3", "itertools", "lazy_static", @@ -4181,30 +4371,30 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" dependencies = [ - "bytes", + "bytes 1.2.1", "prost 0.9.0", ] [[package]] name = "protobuf" -version = "2.27.1" +version = "2.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf7e6d18738ecd0902d30d1ad232c9125985a3422929b16c65517b38adc14f96" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" [[package]] name = "psm" -version = "0.1.19" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd89aa18fbf9533a581355a22438101fe9c2ed8c9e2f0dcf520552a3afddf2" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" dependencies = [ "cc", ] [[package]] name = "pulldown-cmark" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34f197a544b0c9ab3ae46c359a7ec9cbbb5c7bf97054266fecb7ead794a181d6" +checksum = "2d9cc634bc78768157b5cbfe988ffcd1dcba95cd2b2f03a88316c08c6d00ed63" dependencies = [ "bitflags", "memchr", @@ -4213,9 +4403,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" dependencies = [ "proc-macro2", ] @@ -4254,7 +4444,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -4274,7 +4464,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -4303,9 +4493,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom 0.2.7", ] @@ -4337,9 +4527,9 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" dependencies = [ - "crossbeam-channel 0.5.5", + "crossbeam-channel 0.5.6", "crossbeam-deque", - "crossbeam-utils 0.8.10", + "crossbeam-utils 0.8.12", "num_cpus", ] @@ -4360,9 +4550,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -4439,12 +4629,12 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.11" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" +checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" dependencies = [ "base64", - "bytes", + "bytes 1.2.1", "encoding_rs", "futures-core", "futures-util", @@ -4455,10 +4645,10 @@ dependencies = [ "hyper-tls", "ipnet", "js-sys", - "lazy_static", "log", "mime", "native-tls", + "once_cell", "percent-encoding", "pin-project-lite 0.2.9", "serde", @@ -4492,9 +4682,9 @@ dependencies = [ [[package]] name = "rgb" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3b221de559e4a29df3b957eec92bc0de6bc8eaf6ca9cfed43e5e1d67ff65a34" +checksum = "3603b7d71ca82644f79b5a06d1220e9a58ede60bd32255f698cb1af8838b8db3" dependencies = [ "bytemuck", ] @@ -4514,6 +4704,27 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "rmp" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmpv" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de8813b3a2f95c5138fe5925bfb8784175d88d6bff059ba8ce090aa891319754" +dependencies = [ + "num-traits", + "rmp", +] + [[package]] name = "rocksdb" version = "0.18.0" @@ -4544,7 +4755,7 @@ dependencies = [ "collections", "ctor", "env_logger", - "futures", + "futures 0.3.24", "gpui", "parking_lot 0.11.2", "prost 0.8.0", @@ -4582,9 +4793,9 @@ dependencies = [ [[package]] name = "rust-embed" -version = "6.4.0" +version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a17e5ac65b318f397182ae94e532da0ba56b88dd1200b774715d36c4943b1c3" +checksum = "e26934cd67a1da1165efe61cba4047cc1b4a526019da609fcce13a1000afb5fa" dependencies = [ "rust-embed-impl", "rust-embed-utils", @@ -4593,9 +4804,9 @@ dependencies = [ [[package]] name = "rust-embed-impl" -version = "6.2.0" +version = "6.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94e763e24ba2bf0c72bc6be883f967f794a019fafd1b86ba1daff9c91a7edd30" +checksum = "e35d7b402e273544cc08e0824aa3404333fab8a90ac43589d3d5b72f4b346e12" dependencies = [ "proc-macro2", "quote", @@ -4606,12 +4817,12 @@ dependencies = [ [[package]] name = "rust-embed-utils" -version = "7.2.0" +version = "7.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "756feca3afcbb1487a1d01f4ecd94cf8ec98ea074c55a69e7136d29fb6166029" +checksum = "c1669d81dfabd1b5f8e2856b8bbe146c6192b0ba22162edc738ac0a5de18f054" dependencies = [ "globset", - "sha2 0.9.9", + "sha2 0.10.6", "walkdir", ] @@ -4679,9 +4890,9 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" +checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" dependencies = [ "base64", ] @@ -4704,9 +4915,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "safe_arch" @@ -4753,9 +4964,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1847b767a3d62d95cbf3d8a9f0e421cf57a0d8aa4f411d4b16525afb0284d4ed" +checksum = "2a5fb6c61f29e723026dc8e923d94c694313212abbecbbe5f55a7748eec5b307" dependencies = [ "dyn-clone", "schemars_derive", @@ -4765,9 +4976,9 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4d7e1b012cb3d9129567661a63755ea4b8a7386d339dc945ae187e403c6743" +checksum = "f188d036977451159430f3b8dc82ec76364a42b7e289c2b18a9a18f4470058e9" dependencies = [ "proc-macro2", "quote", @@ -4787,6 +4998,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + [[package]] name = "scrypt" version = "0.7.0" @@ -4852,9 +5069,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" dependencies = [ "bitflags", "core-foundation", @@ -4899,18 +5116,18 @@ checksum = "5a9f47faea3cad316faa914d013d24f471cd90bfca1a0c70f05a3f42c6441e99" [[package]] name = "serde" -version = "1.0.138" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.138" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" dependencies = [ "proc-macro2", "quote", @@ -4939,9 +5156,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.82" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ "indexmap", "itoa", @@ -4951,18 +5168,18 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7868ad3b8196a8a0aea99a8220b124278ee5320a55e4fde97794b6f85b1a377" +checksum = "184c643044780f7ceb59104cef98a5a6f12cb2288a7bc701ab93a362b49fd47d" dependencies = [ "serde", ] [[package]] name = "serde_repr" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ad84e47328a31223de7fed7a4f5087f2d6ddfe586cf3ca25b7a165bc0a5aed" +checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" dependencies = [ "proc-macro2", "quote", @@ -4983,9 +5200,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.8.24" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707d15895415db6628332b737c838b88c598522e4dc70647e59b72312924aebc" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ "indexmap", "ryu", @@ -5053,7 +5270,18 @@ checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.3", + "digest 0.10.5", +] + +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.5", ] [[package]] @@ -5071,13 +5299,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.2" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.3", + "digest 0.10.5", ] [[package]] @@ -5091,11 +5319,11 @@ dependencies = [ [[package]] name = "shellexpand" -version = "2.1.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bdb7831b2d85ddf4a7b148aa19d0587eddbe8671a436b7bd1182eaad0f2829" +checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" dependencies = [ - "dirs-next", + "dirs 4.0.0", ] [[package]] @@ -5181,9 +5409,12 @@ checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" [[package]] name = "slab" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg 1.1.0", +] [[package]] name = "slice-group-by" @@ -5204,9 +5435,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "smol" @@ -5246,9 +5477,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", "winapi 0.3.9", @@ -5268,9 +5499,9 @@ checksum = "be6c3f39c37a4283ee4b43d1311c828f2e1fb0541e76ea0cb1a2abd9ef2f5b3b" [[package]] name = "sqlformat" -version = "0.1.8" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" +checksum = "f87e292b4291f154971a43c3774364e2cbcaec599d3f5bf6fa9d122885dbc38a" dependencies = [ "itertools", "nom", @@ -5279,9 +5510,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.6.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f82cbe94f41641d6c410ded25bbf5097c240cefdf8e3b06d04198d0a96af6a4" +checksum = "9249290c05928352f71c077cc44a464d880c63f26f7534728cca008e135c0428" dependencies = [ "sqlx-core", "sqlx-macros", @@ -5289,19 +5520,20 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.6.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b69bf218860335ddda60d6ce85ee39f6cf6e5630e300e19757d1de15886a093" +checksum = "dcbc16ddba161afc99e14d1713a453747a2b07fc097d2009f4c300ec99286105" dependencies = [ "ahash", "atoi", "base64", "bitflags", "byteorder", - "bytes", + "bytes 1.2.1", "crc", "crossbeam-queue", "dirs 4.0.0", + "dotenvy", "either", "event-listener", "futures-channel", @@ -5326,34 +5558,34 @@ dependencies = [ "rustls-pemfile", "serde", "serde_json", - "sha-1 0.10.0", - "sha2 0.10.2", + "sha1", + "sha2 0.10.6", "smallvec", "sqlformat", "sqlx-rt", "stringprep", "thiserror", - "time 0.3.11", + "time 0.3.15", "tokio-stream", "url", - "uuid 1.1.2", - "webpki-roots 0.22.3", + "uuid 1.2.1", + "webpki-roots 0.22.5", "whoami", ] [[package]] name = "sqlx-macros" -version = "0.6.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40c63177cf23d356b159b60acd27c54af7423f1736988502e36bae9a712118f" +checksum = "b850fa514dc11f2ee85be9d055c512aa866746adfacd1cb42d867d68e6a5b0d9" dependencies = [ - "dotenv", + "dotenvy", "either", "heck 0.4.0", "once_cell", "proc-macro2", "quote", - "sha2 0.10.2", + "sha2 0.10.6", "sqlx-core", "sqlx-rt", "syn", @@ -5362,9 +5594,9 @@ dependencies = [ [[package]] name = "sqlx-rt" -version = "0.6.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874e93a365a598dc3dadb197565952cb143ae4aa716f7bcc933a8d836f6bf89f" +checksum = "24c5b2d25fa654cc5f841750b8e1cdedbe21189bf9a9382ee90bfa9dd3562396" dependencies = [ "once_cell", "tokio", @@ -5459,9 +5691,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.98" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" +checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" dependencies = [ "proc-macro2", "quote", @@ -5551,7 +5783,7 @@ dependencies = [ "context_menu", "dirs 4.0.0", "editor", - "futures", + "futures 0.3.24", "gpui", "itertools", "lazy_static", @@ -5607,9 +5839,9 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" +checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16" [[package]] name = "theme" @@ -5644,18 +5876,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ "proc-macro2", "quote", @@ -5701,9 +5933,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.11" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217" +checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" dependencies = [ "itoa", "libc", @@ -5762,16 +5994,16 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.19.2" +version = "1.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439" +checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" dependencies = [ - "bytes", + "autocfg 1.1.0", + "bytes 1.2.1", "libc", "memchr", "mio 0.8.4", "num_cpus", - "once_cell", "parking_lot 0.12.1", "pin-project-lite 0.2.9", "signal-hook-registry", @@ -5780,6 +6012,17 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "tokio-io" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.31", + "log", +] + [[package]] name = "tokio-io-timeout" version = "1.2.0" @@ -5824,9 +6067,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" +checksum = "f6edf2d6bc038a43d31353570e27270603f4648d18f5ed10c0e179abe43255af" dependencies = [ "futures-core", "pin-project-lite 0.2.9", @@ -5835,14 +6078,14 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.17.1" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06cda1232a49558c46f8a504d5b93101d42c0bf7f911f12a105ba48168f821ae" +checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ "futures-util", "log", "tokio", - "tungstenite 0.17.2", + "tungstenite 0.17.3", ] [[package]] @@ -5851,7 +6094,7 @@ version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ - "bytes", + "bytes 1.2.1", "futures-core", "futures-sink", "log", @@ -5861,12 +6104,13 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" dependencies = [ - "bytes", + "bytes 1.2.1", "futures-core", + "futures-io", "futures-sink", "pin-project-lite 0.2.9", "tokio", @@ -5891,7 +6135,7 @@ dependencies = [ "async-stream", "async-trait", "base64", - "bytes", + "bytes 1.2.1", "futures-core", "futures-util", "h2", @@ -5927,7 +6171,7 @@ dependencies = [ "rand 0.8.5", "slab", "tokio", - "tokio-util 0.7.3", + "tokio-util 0.7.4", "tower-layer", "tower-service", "tracing", @@ -5940,7 +6184,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba" dependencies = [ "bitflags", - "bytes", + "bytes 1.2.1", "futures-core", "futures-util", "http", @@ -5966,9 +6210,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.35" +version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", "log", @@ -5979,9 +6223,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", @@ -5990,9 +6234,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", "valuable", @@ -6031,12 +6275,12 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.14" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a713421342a5a666b7577783721d3117f1b69a393df803ee17bb73b1e122a59" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" dependencies = [ - "ansi_term", "matchers", + "nu-ansi-term", "once_cell", "regex", "serde", @@ -6061,9 +6305,9 @@ dependencies = [ [[package]] name = "tree-sitter-c" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bdc5574c6cbc39c409246caeb1dd4d3c4bd6d30d4e9b399776086c20365fd24" +checksum = "cca211f4827d4b4dc79f388bf67b6fa3bc8a8cfa642161ef24f99f371ba34c7b" dependencies = [ "cc", "tree-sitter", @@ -6219,7 +6463,7 @@ checksum = "6ad3713a14ae247f22a728a0456a545df14acf3867f905adff84be99e23b3ad1" dependencies = [ "base64", "byteorder", - "bytes", + "bytes 1.2.1", "http", "httparse", "log", @@ -6232,13 +6476,13 @@ dependencies = [ [[package]] name = "tungstenite" -version = "0.17.2" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96a2dea40e7570482f28eb57afbe42d97551905da6a9400acc5c328d24004f5" +checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" dependencies = [ "base64", "byteorder", - "bytes", + "bytes 1.2.1", "http", "httparse", "log", @@ -6257,9 +6501,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" [[package]] name = "unicase" @@ -6296,30 +6540,30 @@ checksum = "7f9af028e052a610d99e066b33304625dea9613170a2563314490a4e6ec5cf7f" [[package]] name = "unicode-ident" -version = "1.0.1" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" [[package]] name = "unicode-normalization" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-script" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dd944fd05f2f0b5c674917aea8a4df6af84f2d8de3fe8d988b95d28fb8fb09" +checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc" [[package]] name = "unicode-segmentation" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" [[package]] name = "unicode-vo" @@ -6329,15 +6573,15 @@ checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" [[package]] name = "unicode-width" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "unicode-xid" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "unicode_categories" @@ -6347,9 +6591,9 @@ checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" [[package]] name = "unindent" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52fee519a3e570f7df377a06a1a7775cdbfb7aa460be7e08de2b1f0e69973a44" +checksum = "58ee9362deb4a96cef4d437d1ad49cffc9b9e92d202b6995674e928ce684f112" [[package]] name = "untrusted" @@ -6359,13 +6603,12 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", "serde", ] @@ -6414,7 +6657,7 @@ name = "util" version = "0.1.0" dependencies = [ "anyhow", - "futures", + "futures 0.3.24", "git2", "lazy_static", "log", @@ -6434,9 +6677,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.1.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" +checksum = "feb41e78f93363bb2df8b0e86a2ca30eed7806ea16ea0c790d757cf93f79be83" dependencies = [ "getrandom 0.2.7", ] @@ -6484,6 +6727,8 @@ name = "vim" version = "0.1.0" dependencies = [ "assets", + "async-compat", + "async-trait", "collections", "command_palette", "editor", @@ -6492,10 +6737,13 @@ dependencies = [ "itertools", "language", "log", + "nvim-rs", "project", "search", "serde", + "serde_json", "settings", + "tokio", "util", "workspace", ] @@ -6567,9 +6815,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi-cap-std-sync" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1c4e73ed64b92ae87b416f4274b3c827180b02b67f835f66a86fc4267b77349" +checksum = "f086c5026d2fc3b268d138e65373f46422cc810f46d6e0776859c5027cb18728" dependencies = [ "anyhow", "async-trait", @@ -6591,9 +6839,9 @@ dependencies = [ [[package]] name = "wasi-common" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc983eb93607a61f64152ec8728bf453f4dfdf22e7ab1784faac3297fe9a035e" +checksum = "4e8844fede1c3787cc08853872f47e8bd91f6c939c7406bc7a5dba496b260c08" dependencies = [ "anyhow", "bitflags", @@ -6609,9 +6857,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.81" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -6619,13 +6867,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.81" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" dependencies = [ "bumpalo", - "lazy_static", "log", + "once_cell", "proc-macro2", "quote", "syn", @@ -6634,9 +6882,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.31" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -6646,9 +6894,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.81" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6656,9 +6904,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.81" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2", "quote", @@ -6669,15 +6917,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.81" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] name = "wasm-encoder" -version = "0.14.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f76068e87fe9b837a6bc2ccded66784173eadb828c4168643e9fddf6f9ed2e61" +checksum = "c64ac98d5d61192cc45c701b7e4bd0b9aff91e2edfc7a088406cfe2288581e2c" dependencies = [ "leb128", ] @@ -6693,9 +6941,9 @@ dependencies = [ [[package]] name = "wasmtime" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e76e2b2833bb0ece666ccdbed7b71b617d447da11f1bb61f4f2bab2648f745ee" +checksum = "1f50eadf868ab6a04b7b511460233377d0bfbb92e417b2f6a98b98fef2e098f5" dependencies = [ "anyhow", "async-trait", @@ -6706,7 +6954,7 @@ dependencies = [ "lazy_static", "libc", "log", - "object", + "object 0.28.4", "once_cell", "paste", "psm", @@ -6727,9 +6975,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743a9f142d93318262d7e1fe329394ff2e8f86a1df45ae5e4f0eedba215ca5ce" +checksum = "d1df23c642e1376892f3b72f311596976979cbf8b85469680cdd3a8a063d12a2" dependencies = [ "anyhow", "base64", @@ -6747,9 +6995,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc0f80afa1ce97083a7168e6b6948d015d6237369e9f4a511d38c9c4ac8fbb9" +checksum = "f264ff6b4df247d15584f2f53d009fbc90032cfdc2605b52b961bffc71b6eccd" dependencies = [ "anyhow", "cranelift-codegen", @@ -6760,7 +7008,7 @@ dependencies = [ "gimli", "log", "more-asserts", - "object", + "object 0.28.4", "target-lexicon", "thiserror", "wasmparser", @@ -6769,9 +7017,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0816d9365196f1f447060087e0f87239ccded830bd54970a1168b0c9c8e824c9" +checksum = "839d2820e4b830f4b9e7aa08d4c0acabf4a5036105d639f6dfa1c6891c73bdc6" dependencies = [ "anyhow", "cranelift-entity", @@ -6779,7 +7027,7 @@ dependencies = [ "indexmap", "log", "more-asserts", - "object", + "object 0.28.4", "serde", "target-lexicon", "thiserror", @@ -6789,9 +7037,9 @@ dependencies = [ [[package]] name = "wasmtime-fiber" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715afdb87a3bcf1eae3f098c742d650fb783abdb8a7ca87076ea1cabecabea5d" +checksum = "3248be3c4911233535356025f6562193614a40155ee9094bb6a2b43f0dc82803" dependencies = [ "cc", "rustix", @@ -6800,9 +7048,9 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c687f33cfa0f89ec1646929d0ff102087052cf9f0d15533de56526b0da0d1b3" +checksum = "ef0a0bcbfa18b946d890078ba0e1bc76bcc53eccfb40806c0020ec29dcd1bd49" dependencies = [ "addr2line", "anyhow", @@ -6812,7 +7060,7 @@ dependencies = [ "gimli", "ittapi-rs", "log", - "object", + "object 0.28.4", "region", "rustc-demangle", "rustix", @@ -6827,20 +7075,20 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b252d1d025f94f3954ba2111f12f3a22826a0764a11c150c2d46623115a69e27" +checksum = "4f4779d976206c458edd643d1ac622b6c37e4a0800a8b1d25dfbf245ac2f2cac" dependencies = [ "lazy_static", - "object", + "object 0.28.4", "rustix", ] [[package]] name = "wasmtime-runtime" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace251693103c9facbbd7df87a29a75e68016e48bc83c09133f2fda6b575e0ab" +checksum = "b7eb6ffa169eb5dcd18ac9473c817358cd57bc62c244622210566d473397954a" dependencies = [ "anyhow", "backtrace", @@ -6865,9 +7113,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d129b0487a95986692af8708ffde9c50b0568dcefd79200941d475713b4f40bb" +checksum = "8d932b0ac5336f7308d869703dd225610a6a3aeaa8e968c52b43eed96cefb1c2" dependencies = [ "cranelift-entity", "serde", @@ -6877,9 +7125,9 @@ dependencies = [ [[package]] name = "wasmtime-wasi" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb49791530b3a3375897a6d5a8bfa9914101ef8a672d01c951e70b46fd953c15" +checksum = "b68b7d77fb6f2975a6fe6cc4d0015d6b0cebb65c39fce1dd4cc00880dbf7789c" dependencies = [ "anyhow", "wasi-cap-std-sync", @@ -6899,9 +7147,9 @@ dependencies = [ [[package]] name = "wast" -version = "43.0.0" +version = "47.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "408feaebf6dbf9d154957873b14d00e8fba4cbc17a8cbb1bc9e4c1db425c50a8" +checksum = "02b98502f3978adea49551e801a6687678e6015317d7d9470a67fe813393f2a8" dependencies = [ "leb128", "memchr", @@ -6911,18 +7159,18 @@ dependencies = [ [[package]] name = "wat" -version = "1.0.45" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b70bfff0cfaf33dc9d641196dbcd0023a2da8b4b9030c59535cb44e2884983b" +checksum = "7aab4e20c60429fbba9670a6cae0fff9520046ba0aa3e6d0b1cd2653bea14898" dependencies = [ - "wast 43.0.0", + "wast 47.0.1", ] [[package]] name = "web-sys" -version = "0.3.58" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" dependencies = [ "js-sys", "wasm-bindgen", @@ -6959,18 +7207,18 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" +checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" dependencies = [ "webpki 0.22.0", ] [[package]] name = "weezl" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c97e489d8f836838d497091de568cf16b117486d529ec5579233521065bd5e4" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" [[package]] name = "wepoll-ffi" @@ -6983,30 +7231,31 @@ dependencies = [ [[package]] name = "which" -version = "4.2.5" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" +checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" dependencies = [ "either", - "lazy_static", "libc", + "once_cell", ] [[package]] name = "whoami" -version = "1.2.1" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524b58fa5a20a2fb3014dd6358b70e6579692a56ef6fce928834e488f42f65e8" +checksum = "d6631b6a2fd59b1841b622e8f1a7ad241ef0a46f2d580464ce8140ac94cbd571" dependencies = [ + "bumpalo", "wasm-bindgen", "web-sys", ] [[package]] name = "wiggle" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91c38020359fabec5e5ce5a3f667af72e9a203bc6fe8caeb8931d3a870754d9d" +checksum = "67dadac11343d2aabc8a906a0db0aaf7cb5046ec3d6fffccdaf2847dccdef8d6" dependencies = [ "anyhow", "async-trait", @@ -7019,9 +7268,9 @@ dependencies = [ [[package]] name = "wiggle-generate" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e4420b496b04920ae3e41424029aba95c15a5e2e2b4012d14ec83770a3ef" +checksum = "63a1dccd6b3fbd9a27417f5d30ce9aa3ee9cf529aad453abbf88a49c5d605b79" dependencies = [ "anyhow", "heck 0.4.0", @@ -7034,9 +7283,9 @@ dependencies = [ [[package]] name = "wiggle-macro" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e541a0be1f2c4d53471d8a9df81c2d8725a3f023d8259f555c65b03d515aaab" +checksum = "f1c368d57d9560c34deaa67e06b0953ccf65edb906c525e5a2c866c849b48ec2" dependencies = [ "proc-macro2", "quote", @@ -7181,7 +7430,7 @@ dependencies = [ "collections", "context_menu", "drag_and_drop", - "futures", + "futures 0.3.24", "gpui", "language", "log", @@ -7265,7 +7514,7 @@ dependencies = [ "env_logger", "file_finder", "fsevent", - "futures", + "futures 0.3.24", "fuzzy", "go_to_line", "gpui", diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index 5262daab5f..651484afcd 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -38,7 +38,23 @@ } ], "%": "vim::Matching", - "escape": "editor::Cancel" + "escape": "editor::Cancel", + "i": [ + "vim::PushOperator", + { + "Object": { + "around": false + } + } + ], + "a": [ + "vim::PushOperator", + { + "Object": { + "around": true + } + } + ] } }, { @@ -134,6 +150,20 @@ "y": "vim::CurrentLine" } }, + { + "context": "Editor && VimObject", + "bindings": { + "w": "vim::Word", + "shift-w": [ + "vim::Word", + { + "ignorePunctuation": true + } + ], + "s": "vim::Sentence", + "p": "vim::Paragraph" + } + }, { "context": "Editor && vim_mode == visual", "bindings": { diff --git a/crates/editor/src/display_map.rs b/crates/editor/src/display_map.rs index 58fc2e4fe7..ac85bf68ee 100644 --- a/crates/editor/src/display_map.rs +++ b/crates/editor/src/display_map.rs @@ -330,34 +330,91 @@ impl DisplaySnapshot { DisplayPoint(self.blocks_snapshot.max_point()) } + /// Returns text chunks starting at the given display row until the end of the file pub fn text_chunks(&self, display_row: u32) -> impl Iterator { self.blocks_snapshot .chunks(display_row..self.max_point().row() + 1, false, None) .map(|h| h.text) } + // Returns text chunks starting at the end of the given display row in reverse until the start of the file + pub fn reverse_text_chunks(&self, display_row: u32) -> impl Iterator { + (0..=display_row).into_iter().rev().flat_map(|row| { + self.blocks_snapshot + .chunks(row..row + 1, false, None) + .map(|h| h.text) + .collect::>() + .into_iter() + .rev() + }) + } + pub fn chunks(&self, display_rows: Range, language_aware: bool) -> DisplayChunks<'_> { self.blocks_snapshot .chunks(display_rows, language_aware, Some(&self.text_highlights)) } - pub fn chars_at(&self, point: DisplayPoint) -> impl Iterator + '_ { - let mut column = 0; - let mut chars = self.text_chunks(point.row()).flat_map(str::chars); - while column < point.column() { - if let Some(c) = chars.next() { - column += c.len_utf8() as u32; - } else { - break; - } - } - chars + pub fn chars_at( + &self, + mut point: DisplayPoint, + ) -> impl Iterator + '_ { + point = DisplayPoint(self.blocks_snapshot.clip_point(point.0, Bias::Left)); + self.text_chunks(point.row()) + .flat_map(str::chars) + .skip_while({ + let mut column = 0; + move |char| { + let at_point = column >= point.column(); + column += char.len_utf8() as u32; + !at_point + } + }) + .map(move |ch| { + let result = (ch, point); + if ch == '\n' { + *point.row_mut() += 1; + *point.column_mut() = 0; + } else { + *point.column_mut() += ch.len_utf8() as u32; + } + result + }) + } + + pub fn reverse_chars_at( + &self, + mut point: DisplayPoint, + ) -> impl Iterator + '_ { + point = DisplayPoint(self.blocks_snapshot.clip_point(point.0, Bias::Left)); + self.reverse_text_chunks(point.row()) + .flat_map(|chunk| chunk.chars().rev()) + .skip_while({ + let mut column = self.line_len(point.row()); + if self.max_point().row() > point.row() { + column += 1; + } + + move |char| { + let at_point = column <= point.column(); + column = column.saturating_sub(char.len_utf8() as u32); + !at_point + } + }) + .map(move |ch| { + if ch == '\n' { + *point.row_mut() -= 1; + *point.column_mut() = self.line_len(point.row()); + } else { + *point.column_mut() = point.column().saturating_sub(ch.len_utf8() as u32); + } + (ch, point) + }) } pub fn column_to_chars(&self, display_row: u32, target: u32) -> u32 { let mut count = 0; let mut column = 0; - for c in self.chars_at(DisplayPoint::new(display_row, 0)) { + for (c, _) in self.chars_at(DisplayPoint::new(display_row, 0)) { if column >= target { break; } @@ -370,7 +427,7 @@ impl DisplaySnapshot { pub fn column_from_chars(&self, display_row: u32, char_count: u32) -> u32 { let mut column = 0; - for (count, c) in self.chars_at(DisplayPoint::new(display_row, 0)).enumerate() { + for (count, (c, _)) in self.chars_at(DisplayPoint::new(display_row, 0)).enumerate() { if c == '\n' || count >= char_count as usize { break; } @@ -454,7 +511,7 @@ impl DisplaySnapshot { pub fn line_indent(&self, display_row: u32) -> (u32, bool) { let mut indent = 0; let mut is_blank = true; - for c in self.chars_at(DisplayPoint::new(display_row, 0)) { + for (c, _) in self.chars_at(DisplayPoint::new(display_row, 0)) { if c == ' ' { indent += 1; } else { diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 1abe65d482..e59b024ebc 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -4074,7 +4074,7 @@ impl Editor { self.change_selections(Some(Autoscroll::Fit), cx, |s| { s.move_cursors_with(|map, head, _| { ( - movement::line_beginning(map, head, true), + movement::indented_line_beginning(map, head, true), SelectionGoal::None, ) }); @@ -4089,7 +4089,7 @@ impl Editor { self.change_selections(Some(Autoscroll::Fit), cx, |s| { s.move_heads_with(|map, head, _| { ( - movement::line_beginning(map, head, action.stop_at_soft_wraps), + movement::indented_line_beginning(map, head, action.stop_at_soft_wraps), SelectionGoal::None, ) }); diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index acf2e5887c..42bb027283 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -752,7 +752,7 @@ impl EditorElement { .snapshot .chars_at(cursor_position) .next() - .and_then(|character| { + .and_then(|(character, _)| { let font_id = cursor_row_layout.font_for_index(cursor_column)?; let text = character.to_string(); diff --git a/crates/editor/src/movement.rs b/crates/editor/src/movement.rs index 0db5cc0812..9261a6d445 100644 --- a/crates/editor/src/movement.rs +++ b/crates/editor/src/movement.rs @@ -101,6 +101,22 @@ pub fn line_beginning( map: &DisplaySnapshot, display_point: DisplayPoint, stop_at_soft_boundaries: bool, +) -> DisplayPoint { + let point = display_point.to_point(map); + let soft_line_start = map.clip_point(DisplayPoint::new(display_point.row(), 0), Bias::Right); + let line_start = map.prev_line_boundary(point).1; + + if stop_at_soft_boundaries && display_point != soft_line_start { + soft_line_start + } else { + line_start + } +} + +pub fn indented_line_beginning( + map: &DisplaySnapshot, + display_point: DisplayPoint, + stop_at_soft_boundaries: bool, ) -> DisplayPoint { let point = display_point.to_point(map); let soft_line_start = map.clip_point(DisplayPoint::new(display_point.row(), 0), Bias::Right); @@ -167,54 +183,79 @@ pub fn next_subword_end(map: &DisplaySnapshot, point: DisplayPoint) -> DisplayPo }) } -/// Scans for a boundary from the start of each line preceding the given end point until a boundary -/// is found, indicated by the given predicate returning true. The predicate is called with the -/// character to the left and right of the candidate boundary location, and will be called with `\n` -/// characters indicating the start or end of a line. If the predicate returns true multiple times -/// on a line, the *rightmost* boundary is returned. +/// Scans for a boundary preceding the given start point `from` until a boundary is found, indicated by the +/// given predicate returning true. The predicate is called with the character to the left and right +/// of the candidate boundary location, and will be called with `\n` characters indicating the start +/// or end of a line. pub fn find_preceding_boundary( map: &DisplaySnapshot, - end: DisplayPoint, + from: DisplayPoint, mut is_boundary: impl FnMut(char, char) -> bool, ) -> DisplayPoint { - let mut point = end; - loop { - *point.column_mut() = 0; - if point.row() > 0 { - if let Some(indent) = map.soft_wrap_indent(point.row() - 1) { - *point.column_mut() = indent; + let mut start_column = 0; + let mut soft_wrap_row = from.row() + 1; + + let mut prev = None; + for (ch, point) in map.reverse_chars_at(from) { + // Recompute soft_wrap_indent if the row has changed + if point.row() != soft_wrap_row { + soft_wrap_row = point.row(); + + if point.row() == 0 { + start_column = 0; + } else if let Some(indent) = map.soft_wrap_indent(point.row() - 1) { + start_column = indent; } } - let mut boundary = None; - let mut prev_ch = if point.is_zero() { None } else { Some('\n') }; - for ch in map.chars_at(point) { - if point >= end { - break; - } - - if let Some(prev_ch) = prev_ch { - if is_boundary(prev_ch, ch) { - boundary = Some(point); - } - } - - if ch == '\n' { - break; - } - - prev_ch = Some(ch); - *point.column_mut() += ch.len_utf8() as u32; + // If the current point is in the soft_wrap, skip comparing it + if point.column() < start_column { + continue; } - if let Some(boundary) = boundary { - return boundary; - } else if point.row() == 0 { - return DisplayPoint::zero(); - } else { - *point.row_mut() -= 1; + if let Some((prev_ch, prev_point)) = prev { + if is_boundary(ch, prev_ch) { + return prev_point; + } + } + + prev = Some((ch, point)); + } + DisplayPoint::zero() +} + +/// Scans for a boundary preceding the given start point `from` until a boundary is found, indicated by the +/// given predicate returning true. The predicate is called with the character to the left and right +/// of the candidate boundary location, and will be called with `\n` characters indicating the start +/// or end of a line. If no boundary is found, the start of the line is returned. +pub fn find_preceding_boundary_in_line( + map: &DisplaySnapshot, + from: DisplayPoint, + mut is_boundary: impl FnMut(char, char) -> bool, +) -> DisplayPoint { + let mut start_column = 0; + if from.row() > 0 { + if let Some(indent) = map.soft_wrap_indent(from.row() - 1) { + start_column = indent; } } + + let mut prev = None; + for (ch, point) in map.reverse_chars_at(from) { + if let Some((prev_ch, prev_point)) = prev { + if is_boundary(ch, prev_ch) { + return prev_point; + } + } + + if ch == '\n' || point.column() < start_column { + break; + } + + prev = Some((ch, point)); + } + + prev.map(|(_, point)| point).unwrap_or(from) } /// Scans for a boundary following the given start point until a boundary is found, indicated by the @@ -223,26 +264,48 @@ pub fn find_preceding_boundary( /// or end of a line. pub fn find_boundary( map: &DisplaySnapshot, - mut point: DisplayPoint, + from: DisplayPoint, mut is_boundary: impl FnMut(char, char) -> bool, ) -> DisplayPoint { let mut prev_ch = None; - for ch in map.chars_at(point) { + for (ch, point) in map.chars_at(from) { if let Some(prev_ch) = prev_ch { if is_boundary(prev_ch, ch) { - break; + return map.clip_point(point, Bias::Right); } } - if ch == '\n' { - *point.row_mut() += 1; - *point.column_mut() = 0; - } else { - *point.column_mut() += ch.len_utf8() as u32; - } prev_ch = Some(ch); } - map.clip_point(point, Bias::Right) + map.clip_point(map.max_point(), Bias::Right) +} + +/// Scans for a boundary following the given start point until a boundary is found, indicated by the +/// given predicate returning true. The predicate is called with the character to the left and right +/// of the candidate boundary location, and will be called with `\n` characters indicating the start +/// or end of a line. If no boundary is found, the end of the line is returned +pub fn find_boundary_in_line( + map: &DisplaySnapshot, + from: DisplayPoint, + mut is_boundary: impl FnMut(char, char) -> bool, +) -> DisplayPoint { + let mut prev = None; + for (ch, point) in map.chars_at(from) { + if let Some((prev_ch, _)) = prev { + if is_boundary(prev_ch, ch) { + return map.clip_point(point, Bias::Right); + } + } + + prev = Some((ch, point)); + + if ch == '\n' { + break; + } + } + + // Return the last position checked so that we give a point right before the newline or eof. + map.clip_point(prev.map(|(_, point)| point).unwrap_or(from), Bias::Right) } pub fn is_inside_word(map: &DisplaySnapshot, point: DisplayPoint) -> bool { diff --git a/crates/vim/Cargo.toml b/crates/vim/Cargo.toml index 5bc32cd5bd..6b72383fdb 100644 --- a/crates/vim/Cargo.toml +++ b/crates/vim/Cargo.toml @@ -7,7 +7,20 @@ edition = "2021" path = "src/vim.rs" doctest = false +[features] +neovim = ["nvim-rs", "async-compat", "async-trait", "tokio"] + [dependencies] +serde = { version = "1.0", features = ["derive", "rc"] } +itertools = "0.10" +log = { version = "0.4.16", features = ["kv_unstable_serde"] } + +async-compat = { version = "0.2.1", "optional" = true } +async-trait = { version = "0.1", "optional" = true } +nvim-rs = { git = "https://github.com/KillTheMule/nvim-rs", branch = "master", features = ["use_tokio"], optional = true } +tokio = { version = "1.15", "optional" = true } +serde_json = { version = "1.0", features = ["preserve_order"] } + assets = { path = "../assets" } collections = { path = "../collections" } command_palette = { path = "../command_palette" } @@ -15,14 +28,12 @@ editor = { path = "../editor" } gpui = { path = "../gpui" } language = { path = "../language" } search = { path = "../search" } -serde = { version = "1.0", features = ["derive", "rc"] } settings = { path = "../settings" } workspace = { path = "../workspace" } -itertools = "0.10" -log = { version = "0.4.16", features = ["kv_unstable_serde"] } [dev-dependencies] indoc = "1.0.4" + editor = { path = "../editor", features = ["test-support"] } gpui = { path = "../gpui", features = ["test-support"] } language = { path = "../language", features = ["test-support"] } diff --git a/crates/vim/src/insert.rs b/crates/vim/src/insert.rs index a1d1c7b404..1b9b299bf3 100644 --- a/crates/vim/src/insert.rs +++ b/crates/vim/src/insert.rs @@ -26,7 +26,7 @@ fn normal_before(_: &mut Workspace, _: &NormalBefore, cx: &mut ViewContext DisplayPoint { map.clip_point(point, Bias::Left) } -fn right(map: &DisplaySnapshot, mut point: DisplayPoint) -> DisplayPoint { +pub(crate) fn right(map: &DisplaySnapshot, mut point: DisplayPoint) -> DisplayPoint { *point.column_mut() += 1; map.clip_point(point, Bias::Right) } -fn next_word_start( +pub(crate) fn next_word_start( map: &DisplaySnapshot, point: DisplayPoint, ignore_punctuation: bool, @@ -255,7 +255,7 @@ fn next_word_start( let right_kind = char_kind(right).coerce_punctuation(ignore_punctuation); let at_newline = right == '\n'; - let found = (left_kind != right_kind && !right.is_whitespace()) + let found = (left_kind != right_kind && right_kind != CharKind::Whitespace) || at_newline && crossed_newline || at_newline && left == '\n'; // Prevents skipping repeated empty lines @@ -272,23 +272,28 @@ fn next_word_end( ignore_punctuation: bool, ) -> DisplayPoint { *point.column_mut() += 1; + dbg!(point); point = movement::find_boundary(map, point, |left, right| { + dbg!(left); let left_kind = char_kind(left).coerce_punctuation(ignore_punctuation); let right_kind = char_kind(right).coerce_punctuation(ignore_punctuation); - left_kind != right_kind && !left.is_whitespace() + left_kind != right_kind && left_kind != CharKind::Whitespace }); + + dbg!(point); + // find_boundary clips, so if the character after the next character is a newline or at the end of the document, we know // we have backtraced already if !map .chars_at(point) .nth(1) - .map(|c| c == '\n') + .map(|(c, _)| c == '\n') .unwrap_or(true) { *point.column_mut() = point.column().saturating_sub(1); } - map.clip_point(point, Bias::Left) + dbg!(map.clip_point(point, Bias::Left)) } fn previous_word_start( @@ -307,22 +312,21 @@ fn previous_word_start( point } -fn first_non_whitespace(map: &DisplaySnapshot, mut point: DisplayPoint) -> DisplayPoint { - let mut column = 0; - for ch in map.chars_at(DisplayPoint::new(point.row(), 0)) { +fn first_non_whitespace(map: &DisplaySnapshot, from: DisplayPoint) -> DisplayPoint { + let mut last_point = DisplayPoint::new(from.row(), 0); + for (ch, point) in map.chars_at(last_point) { if ch == '\n' { - return point; + return from; } + last_point = point; + if char_kind(ch) != CharKind::Whitespace { break; } - - column += ch.len_utf8() as u32; } - *point.column_mut() = column; - map.clip_point(point, Bias::Left) + map.clip_point(last_point, Bias::Left) } fn start_of_line(map: &DisplaySnapshot, point: DisplayPoint) -> DisplayPoint { diff --git a/crates/vim/src/normal.rs b/crates/vim/src/normal.rs index db5583b4ce..5345586743 100644 --- a/crates/vim/src/normal.rs +++ b/crates/vim/src/normal.rs @@ -6,6 +6,7 @@ use std::borrow::Cow; use crate::{ motion::Motion, + object::Object, state::{Mode, Operator}, Vim, }; @@ -16,7 +17,11 @@ use gpui::{actions, MutableAppContext, ViewContext}; use language::{AutoindentMode, Point, SelectionGoal}; use workspace::Workspace; -use self::{change::change_over, delete::delete_over, yank::yank_over}; +use self::{ + change::{change_motion, change_object}, + delete::{delete_motion, delete_object}, + yank::{yank_motion, yank_object}, +}; actions!( vim, @@ -43,22 +48,22 @@ pub fn init(cx: &mut MutableAppContext) { cx.add_action(insert_line_below); cx.add_action(|_: &mut Workspace, _: &DeleteLeft, cx| { Vim::update(cx, |vim, cx| { - delete_over(vim, Motion::Left, cx); + delete_motion(vim, Motion::Left, cx); }) }); cx.add_action(|_: &mut Workspace, _: &DeleteRight, cx| { Vim::update(cx, |vim, cx| { - delete_over(vim, Motion::Right, cx); + delete_motion(vim, Motion::Right, cx); }) }); cx.add_action(|_: &mut Workspace, _: &ChangeToEndOfLine, cx| { Vim::update(cx, |vim, cx| { - change_over(vim, Motion::EndOfLine, cx); + change_motion(vim, Motion::EndOfLine, cx); }) }); cx.add_action(|_: &mut Workspace, _: &DeleteToEndOfLine, cx| { Vim::update(cx, |vim, cx| { - delete_over(vim, Motion::EndOfLine, cx); + delete_motion(vim, Motion::EndOfLine, cx); }) }); cx.add_action(paste); @@ -70,17 +75,36 @@ pub fn normal_motion(motion: Motion, cx: &mut MutableAppContext) { Vim::update(cx, |vim, cx| { match vim.state.operator_stack.pop() { None => move_cursor(vim, motion, cx), - Some(Operator::Namespace(_)) => { - // Can't do anything for a namespace operator. Ignoring + Some(Operator::Change) => change_motion(vim, motion, cx), + Some(Operator::Delete) => delete_motion(vim, motion, cx), + Some(Operator::Yank) => yank_motion(vim, motion, cx), + _ => { + // Can't do anything for text objects or namespace operators. Ignoring } - Some(Operator::Change) => change_over(vim, motion, cx), - Some(Operator::Delete) => delete_over(vim, motion, cx), - Some(Operator::Yank) => yank_over(vim, motion, cx), } vim.clear_operator(cx); }); } +pub fn normal_object(object: Object, cx: &mut MutableAppContext) { + Vim::update(cx, |vim, cx| { + match vim.state.operator_stack.pop() { + Some(Operator::Object { around }) => match vim.state.operator_stack.pop() { + Some(Operator::Change) => change_object(vim, object, around, cx), + Some(Operator::Delete) => delete_object(vim, object, around, cx), + Some(Operator::Yank) => yank_object(vim, object, around, cx), + _ => { + // Can't do anything for namespace operators. Ignoring + } + }, + _ => { + // Can't do anything with change/delete/yank and text objects. Ignoring + } + } + vim.clear_operator(cx); + }) +} + fn move_cursor(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { vim.update_active_editor(cx, |editor, cx| { editor.change_selections(Some(Autoscroll::Fit), cx, |s| { @@ -304,7 +328,7 @@ mod test { Mode::{self, *}, Namespace, Operator, }, - vim_test_context::VimTestContext, + test_contexts::VimTestContext, }; #[gpui::test] diff --git a/crates/vim/src/normal/change.rs b/crates/vim/src/normal/change.rs index 8695c9668b..6835ea3b1c 100644 --- a/crates/vim/src/normal/change.rs +++ b/crates/vim/src/normal/change.rs @@ -1,4 +1,4 @@ -use crate::{motion::Motion, state::Mode, utils::copy_selections_content, Vim}; +use crate::{motion::Motion, object::Object, state::Mode, utils::copy_selections_content, Vim}; use editor::{char_kind, movement, Autoscroll}; use gpui::{impl_actions, MutableAppContext, ViewContext}; use serde::Deserialize; @@ -17,7 +17,7 @@ pub fn init(cx: &mut MutableAppContext) { cx.add_action(change_word); } -pub fn change_over(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { +pub fn change_motion(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { vim.update_active_editor(cx, |editor, cx| { editor.transact(cx, |editor, cx| { // We are swapping to insert mode anyway. Just set the line end clipping behavior now @@ -34,6 +34,23 @@ pub fn change_over(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { vim.switch_mode(Mode::Insert, false, cx) } +pub fn change_object(vim: &mut Vim, object: Object, around: bool, cx: &mut MutableAppContext) { + vim.update_active_editor(cx, |editor, cx| { + editor.transact(cx, |editor, cx| { + // We are swapping to insert mode anyway. Just set the line end clipping behavior now + editor.set_clip_at_line_ends(false, cx); + editor.change_selections(Some(Autoscroll::Fit), cx, |s| { + s.move_with(|map, selection| { + object.expand_selection(map, selection, around); + }); + }); + copy_selections_content(editor, false, cx); + editor.insert("", cx); + }); + }); + vim.switch_mode(Mode::Insert, false, cx); +} + // From the docs https://vimhelp.org/change.txt.html#cw // Special case: When the cursor is in a word, "cw" and "cW" do not include the // white space after a word, they only change up to the end of the word. This is @@ -78,7 +95,7 @@ fn change_word( mod test { use indoc::indoc; - use crate::{state::Mode, vim_test_context::VimTestContext}; + use crate::{state::Mode, test_contexts::VimTestContext}; #[gpui::test] async fn test_change_h(cx: &mut gpui::TestAppContext) { @@ -170,8 +187,7 @@ mod test { test"}, indoc! {" Test test - ˇ - test"}, + ˇ"}, ); let mut cx = cx.binding(["c", "shift-e"]); @@ -193,6 +209,7 @@ mod test { Test ˇ test"}, ); + println!("Marker"); cx.assert( indoc! {" Test test diff --git a/crates/vim/src/normal/delete.rs b/crates/vim/src/normal/delete.rs index b2e228bdb1..e410024aea 100644 --- a/crates/vim/src/normal/delete.rs +++ b/crates/vim/src/normal/delete.rs @@ -1,9 +1,9 @@ -use crate::{motion::Motion, utils::copy_selections_content, Vim}; -use collections::HashMap; -use editor::{Autoscroll, Bias}; +use crate::{motion::Motion, object::Object, utils::copy_selections_content, Vim}; +use collections::{HashMap, HashSet}; +use editor::{display_map::ToDisplayPoint, Autoscroll, Bias}; use gpui::MutableAppContext; -pub fn delete_over(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { +pub fn delete_motion(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { vim.update_active_editor(cx, |editor, cx| { editor.transact(cx, |editor, cx| { editor.set_clip_at_line_ends(false, cx); @@ -36,11 +36,67 @@ pub fn delete_over(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { }); } +pub fn delete_object(vim: &mut Vim, object: Object, around: bool, cx: &mut MutableAppContext) { + vim.update_active_editor(cx, |editor, cx| { + editor.transact(cx, |editor, cx| { + editor.set_clip_at_line_ends(false, cx); + // Emulates behavior in vim where if we expanded backwards to include a newline + // the cursor gets set back to the start of the line + let mut should_move_to_start: HashSet<_> = Default::default(); + editor.change_selections(Some(Autoscroll::Fit), cx, |s| { + s.move_with(|map, selection| { + object.expand_selection(map, selection, around); + let offset_range = selection.map(|p| p.to_offset(map, Bias::Left)).range(); + let contains_only_newlines = map + .chars_at(selection.start) + .take_while(|(_, p)| p < &selection.end) + .all(|(char, _)| char == '\n') + || offset_range.is_empty(); + let end_at_newline = map + .chars_at(selection.end) + .next() + .map(|(c, _)| c == '\n') + .unwrap_or(false); + + // If expanded range contains only newlines and + // the object is around or sentence, expand to include a newline + // at the end or start + if (around || object == Object::Sentence) && contains_only_newlines { + if end_at_newline { + selection.end = + (offset_range.end + '\n'.len_utf8()).to_display_point(map); + } else if selection.start.row() > 0 { + should_move_to_start.insert(selection.id); + selection.start = + (offset_range.start - '\n'.len_utf8()).to_display_point(map); + } + } + }); + }); + copy_selections_content(editor, false, cx); + editor.insert("", cx); + + // Fixup cursor position after the deletion + editor.set_clip_at_line_ends(true, cx); + editor.change_selections(Some(Autoscroll::Fit), cx, |s| { + s.move_with(|map, selection| { + let mut cursor = selection.head(); + if should_move_to_start.contains(&selection.id) { + *cursor.column_mut() = 0; + } + cursor = map.clip_point(cursor, Bias::Left); + selection.collapse_to(cursor, selection.goal) + }); + }); + }); + }); +} + #[cfg(test)] mod test { use indoc::indoc; - use crate::{state::Mode, vim_test_context::VimTestContext}; + use crate::{state::Mode, test_contexts::VimTestContext}; #[gpui::test] async fn test_delete_h(cx: &mut gpui::TestAppContext) { @@ -140,8 +196,7 @@ mod test { test"}, indoc! {" Test test - ˇ - test"}, + ˇ"}, ); let mut cx = cx.binding(["d", "shift-e"]); diff --git a/crates/vim/src/normal/yank.rs b/crates/vim/src/normal/yank.rs index 17a9e47d3d..11f5371cc6 100644 --- a/crates/vim/src/normal/yank.rs +++ b/crates/vim/src/normal/yank.rs @@ -1,8 +1,8 @@ -use crate::{motion::Motion, utils::copy_selections_content, Vim}; +use crate::{motion::Motion, object::Object, utils::copy_selections_content, Vim}; use collections::HashMap; use gpui::MutableAppContext; -pub fn yank_over(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { +pub fn yank_motion(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { vim.update_active_editor(cx, |editor, cx| { editor.transact(cx, |editor, cx| { editor.set_clip_at_line_ends(false, cx); @@ -24,3 +24,26 @@ pub fn yank_over(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { }); }); } + +pub fn yank_object(vim: &mut Vim, object: Object, around: bool, cx: &mut MutableAppContext) { + vim.update_active_editor(cx, |editor, cx| { + editor.transact(cx, |editor, cx| { + editor.set_clip_at_line_ends(false, cx); + let mut original_positions: HashMap<_, _> = Default::default(); + editor.change_selections(None, cx, |s| { + s.move_with(|map, selection| { + let original_position = (selection.head(), selection.goal); + object.expand_selection(map, selection, around); + original_positions.insert(selection.id, original_position); + }); + }); + copy_selections_content(editor, false, cx); + editor.change_selections(None, cx, |s| { + s.move_with(|_, selection| { + let (head, goal) = original_positions.remove(&selection.id).unwrap(); + selection.collapse_to(head, goal); + }); + }); + }); + }); +} diff --git a/crates/vim/src/object.rs b/crates/vim/src/object.rs new file mode 100644 index 0000000000..5c03bda2d9 --- /dev/null +++ b/crates/vim/src/object.rs @@ -0,0 +1,488 @@ +use std::ops::Range; + +use editor::{char_kind, display_map::DisplaySnapshot, movement, Bias, CharKind, DisplayPoint}; +use gpui::{actions, impl_actions, MutableAppContext}; +use language::Selection; +use serde::Deserialize; +use workspace::Workspace; + +use crate::{motion, normal::normal_object, state::Mode, visual::visual_object, Vim}; + +#[derive(Copy, Clone, Debug, PartialEq)] +pub enum Object { + Word { ignore_punctuation: bool }, + Sentence, + Paragraph, +} + +#[derive(Clone, Deserialize, PartialEq)] +#[serde(rename_all = "camelCase")] +struct Word { + #[serde(default)] + ignore_punctuation: bool, +} + +actions!(vim, [Sentence, Paragraph]); +impl_actions!(vim, [Word]); + +pub fn init(cx: &mut MutableAppContext) { + cx.add_action( + |_: &mut Workspace, &Word { ignore_punctuation }: &Word, cx: _| { + object(Object::Word { ignore_punctuation }, cx) + }, + ); + cx.add_action(|_: &mut Workspace, _: &Sentence, cx: _| object(Object::Sentence, cx)); + cx.add_action(|_: &mut Workspace, _: &Paragraph, cx: _| object(Object::Paragraph, cx)); +} + +fn object(object: Object, cx: &mut MutableAppContext) { + match Vim::read(cx).state.mode { + Mode::Normal => normal_object(object, cx), + Mode::Visual { .. } => visual_object(object, cx), + Mode::Insert => { + // Shouldn't execute a text object in insert mode. Ignoring + } + } +} + +impl Object { + pub fn object_range( + self, + map: &DisplaySnapshot, + relative_to: DisplayPoint, + around: bool, + ) -> Range { + match self { + Object::Word { ignore_punctuation } => { + if around { + around_word(map, relative_to, ignore_punctuation) + } else { + in_word(map, relative_to, ignore_punctuation) + } + } + Object::Sentence => sentence(map, relative_to, around), + _ => relative_to..relative_to, + } + } + + pub fn expand_selection( + self, + map: &DisplaySnapshot, + selection: &mut Selection, + around: bool, + ) { + let range = self.object_range(map, selection.head(), around); + selection.start = range.start; + selection.end = range.end; + } +} + +/// Return a range that surrounds the word relative_to is in +/// If relative_to is at the start of a word, return the word. +/// If relative_to is between words, return the space between +fn in_word( + map: &DisplaySnapshot, + relative_to: DisplayPoint, + ignore_punctuation: bool, +) -> Range { + // Use motion::right so that we consider the character under the cursor when looking for the start + let start = movement::find_preceding_boundary_in_line( + map, + motion::right(map, relative_to), + |left, right| { + char_kind(left).coerce_punctuation(ignore_punctuation) + != char_kind(right).coerce_punctuation(ignore_punctuation) + }, + ); + let end = movement::find_boundary_in_line(map, relative_to, |left, right| { + char_kind(left).coerce_punctuation(ignore_punctuation) + != char_kind(right).coerce_punctuation(ignore_punctuation) + }); + + start..end +} + +/// Return a range that surrounds the word and following whitespace +/// relative_to is in. +/// If relative_to is at the start of a word, return the word and following whitespace. +/// If relative_to is between words, return the whitespace back and the following word + +/// if in word +/// delete that word +/// if there is whitespace following the word, delete that as well +/// otherwise, delete any preceding whitespace +/// otherwise +/// delete whitespace around cursor +/// delete word following the cursor +fn around_word( + map: &DisplaySnapshot, + relative_to: DisplayPoint, + ignore_punctuation: bool, +) -> Range { + let in_word = map + .chars_at(relative_to) + .next() + .map(|(c, _)| char_kind(c) != CharKind::Whitespace) + .unwrap_or(false); + + if in_word { + around_containing_word(map, relative_to, ignore_punctuation) + } else { + around_next_word(map, relative_to, ignore_punctuation) + } +} + +fn around_containing_word( + map: &DisplaySnapshot, + relative_to: DisplayPoint, + ignore_punctuation: bool, +) -> Range { + expand_to_include_whitespace(map, in_word(map, relative_to, ignore_punctuation), true) +} + +fn around_next_word( + map: &DisplaySnapshot, + relative_to: DisplayPoint, + ignore_punctuation: bool, +) -> Range { + // Get the start of the word + let start = movement::find_preceding_boundary_in_line( + map, + motion::right(map, relative_to), + |left, right| { + char_kind(left).coerce_punctuation(ignore_punctuation) + != char_kind(right).coerce_punctuation(ignore_punctuation) + }, + ); + + let mut word_found = false; + let end = movement::find_boundary(map, relative_to, |left, right| { + let left_kind = char_kind(left).coerce_punctuation(ignore_punctuation); + let right_kind = char_kind(right).coerce_punctuation(ignore_punctuation); + + let found = (word_found && left_kind != right_kind) || right == '\n' && left == '\n'; + + if right_kind != CharKind::Whitespace { + word_found = true; + } + + found + }); + + start..end +} + +// /// Return the range containing a sentence. +// fn sentence(map: &DisplaySnapshot, relative_to: DisplayPoint, around: bool) -> Range { +// let mut previous_end = relative_to; +// let mut start = None; + +// // Seek backwards to find a period or double newline. Record the last non whitespace character as the +// // possible start of the sentence. Alternatively if two newlines are found right after each other, return that. +// let mut rev_chars = map.reverse_chars_at(relative_to).peekable(); +// while let Some((char, point)) = rev_chars.next() { +// dbg!(char, point); +// if char == '.' { +// break; +// } + +// if char == '\n' +// && (rev_chars.peek().map(|(c, _)| c == &'\n').unwrap_or(false) || start.is_none()) +// { +// break; +// } + +// if !char.is_whitespace() { +// start = Some(point); +// } + +// previous_end = point; +// } + +// let mut end = relative_to; +// let mut chars = map.chars_at(relative_to).peekable(); +// while let Some((char, point)) = chars.next() { +// if !char.is_whitespace() { +// if start.is_none() { +// start = Some(point); +// } + +// // Set the end to the point after the current non whitespace character +// end = point; +// *end.column_mut() += char.len_utf8() as u32; +// } + +// if char == '.' { +// break; +// } + +// if char == '\n' { +// if start.is_none() { +// if let Some((_, next_point)) = chars.peek() { +// end = *next_point; +// } +// break; + +// if chars.peek().map(|(c, _)| c == &'\n').unwrap_or(false) { +// break; +// } +// } +// } + +// start.unwrap_or(previous_end)..end +// } + +fn sentence(map: &DisplaySnapshot, relative_to: DisplayPoint, around: bool) -> Range { + let mut start = None; + let mut previous_end = relative_to; + + for (char, point) in map.reverse_chars_at(relative_to) { + if is_sentence_end(map, point) { + break; + } + + if is_possible_sentence_start(char) { + start = Some(point); + } + + previous_end = point; + } + + // Handle case where cursor was before the sentence start + let mut chars = map.chars_at(relative_to).peekable(); + if start.is_none() { + if let Some((char, point)) = chars.peek() { + if is_possible_sentence_start(*char) { + start = Some(*point); + } + } + } + + let mut end = relative_to; + for (char, point) in chars { + if start.is_some() { + if !char.is_whitespace() { + end = point; + *end.column_mut() += char.len_utf8() as u32; + end = map.clip_point(end, Bias::Left); + } + + if is_sentence_end(map, point) { + break; + } + } else if is_possible_sentence_start(char) { + if around { + start = Some(point); + } else { + end = point; + break; + } + } + } + + let mut range = start.unwrap_or(previous_end)..end; + if around { + range = expand_to_include_whitespace(map, range, false); + } + + range +} + +fn is_possible_sentence_start(character: char) -> bool { + !character.is_whitespace() && character != '.' +} + +const SENTENCE_END_PUNCTUATION: &[char] = &['.', '!', '?']; +const SENTENCE_END_FILLERS: &[char] = &[')', ']', '"', '\'']; +const SENTENCE_END_WHITESPACE: &[char] = &[' ', '\t', '\n']; +fn is_sentence_end(map: &DisplaySnapshot, point: DisplayPoint) -> bool { + let mut chars = map.chars_at(point).peekable(); + + if let Some((char, _)) = chars.next() { + if char == '\n' && chars.peek().map(|(c, _)| c == &'\n').unwrap_or(false) { + return true; + } + + if !SENTENCE_END_PUNCTUATION.contains(&char) { + return false; + } + } else { + return false; + } + + for (char, _) in chars { + if SENTENCE_END_WHITESPACE.contains(&char) { + return true; + } + + if !SENTENCE_END_FILLERS.contains(&char) { + return false; + } + } + + return true; +} + +/// Expands the passed range to include whitespace on one side or the other in a line. Attempts to add the +/// whitespace to the end first and falls back to the start if there was none. +fn expand_to_include_whitespace( + map: &DisplaySnapshot, + mut range: Range, + stop_at_newline: bool, +) -> Range { + let mut whitespace_included = false; + for (char, point) in map.chars_at(range.end) { + range.end = point; + + if char == '\n' && stop_at_newline { + break; + } + + if char.is_whitespace() { + whitespace_included = true; + } else { + break; + } + } + + if !whitespace_included { + for (char, point) in map.reverse_chars_at(range.start) { + if char == '\n' && stop_at_newline { + break; + } + + if !char.is_whitespace() { + break; + } + + range.start = point; + } + } + + range +} + +#[cfg(test)] +mod test { + use indoc::indoc; + + use crate::test_contexts::NeovimBackedTestContext; + + const WORD_LOCATIONS: &'static str = indoc! {" + The quick ˇbrowˇnˇ + fox ˇjuˇmpsˇ over + the lazy dogˇ + ˇ + ˇ + ˇ + Thˇeˇ-ˇquˇickˇ ˇbrownˇ + ˇ + ˇ + ˇ fox-jumpˇs over + the lazy dogˇ + ˇ + "}; + + #[gpui::test] + async fn test_change_in_word(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new("test_change_in_word", cx) + .await + .binding(["c", "i", "w"]); + cx.assert_all(WORD_LOCATIONS).await; + let mut cx = cx.consume().binding(["c", "i", "shift-w"]); + cx.assert_all(WORD_LOCATIONS).await; + } + + #[gpui::test] + async fn test_delete_in_word(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new("test_delete_in_word", cx) + .await + .binding(["d", "i", "w"]); + cx.assert_all(WORD_LOCATIONS).await; + let mut cx = cx.consume().binding(["d", "i", "shift-w"]); + cx.assert_all(WORD_LOCATIONS).await; + } + + #[gpui::test] + async fn test_change_around_word(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new("test_change_around_word", cx) + .await + .binding(["c", "a", "w"]); + cx.assert_all(WORD_LOCATIONS).await; + let mut cx = cx.consume().binding(["c", "a", "shift-w"]); + cx.assert_all(WORD_LOCATIONS).await; + } + + #[gpui::test] + async fn test_delete_around_word(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new("test_delete_around_word", cx) + .await + .binding(["d", "a", "w"]); + cx.assert_all(WORD_LOCATIONS).await; + let mut cx = cx.consume().binding(["d", "a", "shift-w"]); + cx.assert_all(WORD_LOCATIONS).await; + } + + const SENTENCE_EXAMPLES: &[&'static str] = &[ + "ˇThe quick ˇbrownˇ?ˇ ˇFox Jˇumpsˇ!ˇ Ovˇer theˇ lazyˇ.", + indoc! {" + ˇThe quick ˇbrownˇ + fox jumps over + the lazy doˇgˇ.ˇ ˇThe quick ˇ + brown fox jumps over + "}, + // Double newlines are broken currently + // indoc! {" + // The quick brown fox jumps. + // Over the lazy dog + // ˇ + // ˇ + // ˇ fox-jumpˇs over + // the lazy dog.ˇ + // ˇ + // "}, + r#"The quick brown.)]'" Brown fox jumps."#, + ]; + + #[gpui::test] + async fn test_change_in_sentence(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new("test_change_in_sentence", cx) + .await + .binding(["c", "i", "s"]); + for sentence_example in SENTENCE_EXAMPLES { + cx.assert_all(sentence_example).await; + } + } + + #[gpui::test] + async fn test_delete_in_sentence(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new("test_delete_in_sentence", cx) + .await + .binding(["d", "i", "s"]); + for sentence_example in SENTENCE_EXAMPLES { + cx.assert_all(sentence_example).await; + } + } + + #[gpui::test] + #[ignore] // End cursor position is incorrect + async fn test_change_around_sentence(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new("test_change_around_sentence", cx) + .await + .binding(["c", "a", "s"]); + for sentence_example in SENTENCE_EXAMPLES { + cx.assert_all(sentence_example).await; + } + } + + #[gpui::test] + #[ignore] // End cursor position is incorrect + async fn test_delete_around_sentence(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new("test_delete_around_sentence", cx) + .await + .binding(["d", "a", "s"]); + for sentence_example in SENTENCE_EXAMPLES { + cx.assert_all(sentence_example).await; + } + } +} diff --git a/crates/vim/src/state.rs b/crates/vim/src/state.rs index e556048ea8..29a51664ee 100644 --- a/crates/vim/src/state.rs +++ b/crates/vim/src/state.rs @@ -1,8 +1,8 @@ use editor::CursorShape; use gpui::keymap::Context; -use serde::Deserialize; +use serde::{Deserialize, Serialize}; -#[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize, Serialize)] pub enum Mode { Normal, Insert, @@ -26,6 +26,7 @@ pub enum Operator { Change, Delete, Yank, + Object { around: bool }, } #[derive(Default)] @@ -77,7 +78,12 @@ impl VimState { context.set.insert("VimControl".to_string()); } - Operator::set_context(self.operator_stack.last(), &mut context); + let active_operator = self.operator_stack.last(); + if matches!(active_operator, Some(Operator::Object { .. })) { + context.set.insert("VimObject".to_string()); + } + + Operator::set_context(active_operator, &mut context); context } @@ -87,6 +93,8 @@ impl Operator { pub fn set_context(operator: Option<&Operator>, context: &mut Context) { let operator_context = match operator { Some(Operator::Namespace(Namespace::G)) => "g", + Some(Operator::Object { around: false }) => "i", + Some(Operator::Object { around: true }) => "a", Some(Operator::Change) => "c", Some(Operator::Delete) => "d", Some(Operator::Yank) => "y", diff --git a/crates/vim/src/test_contexts.rs b/crates/vim/src/test_contexts.rs new file mode 100644 index 0000000000..1a65be251b --- /dev/null +++ b/crates/vim/src/test_contexts.rs @@ -0,0 +1,9 @@ +mod neovim_backed_binding_test_context; +mod neovim_backed_test_context; +mod vim_binding_test_context; +mod vim_test_context; + +pub use neovim_backed_binding_test_context::*; +pub use neovim_backed_test_context::*; +pub use vim_binding_test_context::*; +pub use vim_test_context::*; diff --git a/crates/vim/src/test_contexts/neovim_backed_binding_test_context.rs b/crates/vim/src/test_contexts/neovim_backed_binding_test_context.rs new file mode 100644 index 0000000000..b732bfa19c --- /dev/null +++ b/crates/vim/src/test_contexts/neovim_backed_binding_test_context.rs @@ -0,0 +1,56 @@ +use std::ops::{Deref, DerefMut}; + +use util::test::marked_text_offsets; + +use super::NeovimBackedTestContext; + +pub struct NeovimBackedBindingTestContext<'a, const COUNT: usize> { + cx: NeovimBackedTestContext<'a>, + keystrokes_under_test: [&'static str; COUNT], +} + +impl<'a, const COUNT: usize> NeovimBackedBindingTestContext<'a, COUNT> { + pub fn new( + keystrokes_under_test: [&'static str; COUNT], + cx: NeovimBackedTestContext<'a>, + ) -> Self { + Self { + cx, + keystrokes_under_test, + } + } + + pub fn consume(self) -> NeovimBackedTestContext<'a> { + self.cx + } + + pub async fn assert(&mut self, initial_state: &str) { + self.cx + .assert_binding_matches(self.keystrokes_under_test, initial_state) + .await + } + + pub async fn assert_all(&mut self, marked_positions: &str) { + let (unmarked_text, cursor_offsets) = marked_text_offsets(marked_positions); + + for cursor_offset in cursor_offsets.iter() { + let mut marked_text = unmarked_text.clone(); + marked_text.insert(*cursor_offset, 'ˇ'); + self.assert(&marked_text).await; + } + } +} + +impl<'a, const COUNT: usize> Deref for NeovimBackedBindingTestContext<'a, COUNT> { + type Target = NeovimBackedTestContext<'a>; + + fn deref(&self) -> &Self::Target { + &self.cx + } +} + +impl<'a, const COUNT: usize> DerefMut for NeovimBackedBindingTestContext<'a, COUNT> { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.cx + } +} diff --git a/crates/vim/src/test_contexts/neovim_backed_test_context.rs b/crates/vim/src/test_contexts/neovim_backed_test_context.rs new file mode 100644 index 0000000000..12654c7fb9 --- /dev/null +++ b/crates/vim/src/test_contexts/neovim_backed_test_context.rs @@ -0,0 +1,374 @@ +use std::{ + ops::{Deref, DerefMut}, + path::PathBuf, +}; + +use editor::DisplayPoint; +use gpui::keymap::Keystroke; + +#[cfg(feature = "neovim")] +use async_compat::Compat; +#[cfg(feature = "neovim")] +use async_trait::async_trait; +#[cfg(feature = "neovim")] +use nvim_rs::{ + create::tokio::new_child_cmd, error::LoopError, Handler, Neovim, UiAttachOptions, Value, +}; +#[cfg(feature = "neovim")] +use tokio::{ + process::{Child, ChildStdin, Command}, + task::JoinHandle, +}; + +use crate::state::Mode; + +use super::{NeovimBackedBindingTestContext, VimTestContext}; + +pub struct NeovimBackedTestContext<'a> { + cx: VimTestContext<'a>, + test_case_id: &'static str, + data_counter: usize, + #[cfg(feature = "neovim")] + nvim: Neovim>, + #[cfg(feature = "neovim")] + _join_handle: JoinHandle>>, + #[cfg(feature = "neovim")] + _child: Child, +} + +impl<'a> NeovimBackedTestContext<'a> { + pub async fn new( + test_case_id: &'static str, + cx: &'a mut gpui::TestAppContext, + ) -> NeovimBackedTestContext<'a> { + let cx = VimTestContext::new(cx, true).await; + + #[cfg(feature = "neovim")] + let handler = NvimHandler {}; + #[cfg(feature = "neovim")] + let (nvim, join_handle, child) = Compat::new(async { + let (nvim, join_handle, child) = new_child_cmd( + &mut Command::new("nvim").arg("--embed").arg("--clean"), + handler, + ) + .await + .expect("Could not connect to neovim process"); + + nvim.ui_attach(100, 100, &UiAttachOptions::default()) + .await + .expect("Could not attach to ui"); + + (nvim, join_handle, child) + }) + .await; + + let result = Self { + cx, + test_case_id, + data_counter: 0, + #[cfg(feature = "neovim")] + nvim, + #[cfg(feature = "neovim")] + _join_handle: join_handle, + #[cfg(feature = "neovim")] + _child: child, + }; + + #[cfg(feature = "neovim")] + { + result.clear_test_data() + } + + result + } + + pub async fn simulate_shared_keystroke(&mut self, keystroke_text: &str) { + let keystroke = Keystroke::parse(keystroke_text).unwrap(); + + #[cfg(feature = "neovim")] + { + let special = keystroke.shift + || keystroke.ctrl + || keystroke.alt + || keystroke.cmd + || keystroke.key.len() > 1; + let start = if special { "<" } else { "" }; + let shift = if keystroke.shift { "S-" } else { "" }; + let ctrl = if keystroke.ctrl { "C-" } else { "" }; + let alt = if keystroke.alt { "M-" } else { "" }; + let cmd = if keystroke.cmd { "D-" } else { "" }; + let end = if special { ">" } else { "" }; + + let key = format!("{start}{shift}{ctrl}{alt}{cmd}{}{end}", keystroke.key); + + self.nvim + .input(&key) + .await + .expect("Could not input keystroke"); + } + + let window_id = self.window_id; + self.cx.dispatch_keystroke(window_id, keystroke, false); + } + + pub async fn simulate_shared_keystrokes( + &mut self, + keystroke_texts: [&str; COUNT], + ) { + for keystroke_text in keystroke_texts.into_iter() { + self.simulate_shared_keystroke(keystroke_text).await; + } + } + + pub async fn set_shared_state(&mut self, marked_text: &str) { + self.set_state(marked_text, Mode::Normal); + + #[cfg(feature = "neovim")] + { + let cursor_point = + self.editor(|editor, cx| editor.selections.newest::(cx)); + let nvim_buffer = self + .nvim + .get_current_buf() + .await + .expect("Could not get neovim buffer"); + let mut lines = self + .buffer_text() + .lines() + .map(|line| line.to_string()) + .collect::>(); + + if lines.len() > 1 { + // Add final newline which is missing from buffer_text + lines.push("".to_string()); + } + + nvim_buffer + .set_lines(0, -1, false, lines) + .await + .expect("Could not set nvim buffer text"); + + self.nvim + .input("") + .await + .expect("Could not send escape to nvim"); + self.nvim + .input("") + .await + .expect("Could not send escape to nvim"); + + let nvim_window = self + .nvim + .get_current_win() + .await + .expect("Could not get neovim window"); + nvim_window + .set_cursor(( + cursor_point.head().row as i64 + 1, + cursor_point.head().column as i64, + )) + .await + .expect("Could not set nvim cursor position"); + } + } + + pub async fn assert_state_matches(&mut self) { + assert_eq!(self.neovim_text().await, self.buffer_text()); + + let zed_head = self.update_editor(|editor, cx| editor.selections.newest_display(cx).head()); + assert_eq!(self.neovim_head().await, zed_head); + + if let Some(neovim_mode) = self.neovim_mode().await { + assert_eq!(neovim_mode, self.mode()); + } + } + + #[cfg(feature = "neovim")] + pub async fn neovim_text(&mut self) -> String { + let nvim_buffer = self + .nvim + .get_current_buf() + .await + .expect("Could not get neovim buffer"); + let text = nvim_buffer + .get_lines(0, -1, false) + .await + .expect("Could not get buffer text") + .join("\n"); + + self.write_test_data(text.clone(), "text"); + text + } + + #[cfg(not(feature = "neovim"))] + pub async fn neovim_text(&mut self) -> String { + self.read_test_data("text") + } + + #[cfg(feature = "neovim")] + pub async fn neovim_head(&mut self) -> DisplayPoint { + let nvim_row: u32 = self + .nvim + .command_output("echo line('.')") + .await + .unwrap() + .parse::() + .unwrap() + - 1; // Neovim rows start at 1 + let nvim_column: u32 = self + .nvim + .command_output("echo col('.')") + .await + .unwrap() + .parse::() + .unwrap() + - 1; // Neovim columns start at 1 + + let serialized = format!("{},{}", nvim_row.to_string(), nvim_column.to_string()); + self.write_test_data(serialized, "head"); + + DisplayPoint::new(nvim_row, nvim_column) + } + + #[cfg(not(feature = "neovim"))] + pub async fn neovim_head(&mut self) -> DisplayPoint { + let serialized = self.read_test_data("head"); + let mut components = serialized.split(','); + let nvim_row = components.next().unwrap().parse::().unwrap(); + let nvim_column = components.next().unwrap().parse::().unwrap(); + + DisplayPoint::new(nvim_row, nvim_column) + } + + #[cfg(feature = "neovim")] + pub async fn neovim_mode(&mut self) -> Option { + let nvim_mode_text = self + .nvim + .get_mode() + .await + .expect("Could not get mode") + .into_iter() + .find_map(|(key, value)| { + if key.as_str() == Some("mode") { + Some(value.as_str().unwrap().to_owned()) + } else { + None + } + }) + .expect("Could not find mode value"); + + let mode = match nvim_mode_text.as_ref() { + "i" => Some(Mode::Insert), + "n" => Some(Mode::Normal), + "v" => Some(Mode::Visual { line: false }), + "V" => Some(Mode::Visual { line: true }), + _ => None, + }; + + let serialized = serde_json::to_string(&mode).expect("Could not serialize mode"); + + self.write_test_data(serialized, "mode"); + + mode + } + + #[cfg(not(feature = "neovim"))] + pub async fn neovim_mode(&mut self) -> Option { + let serialized = self.read_test_data("mode"); + serde_json::from_str(&serialized).expect("Could not deserialize test data") + } + + fn test_data_directory(&self) -> PathBuf { + let mut data_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + data_path.push("test_data"); + data_path.push(self.test_case_id); + data_path + } + + fn next_data_path(&mut self, kind: &str) -> PathBuf { + let mut data_path = self.test_data_directory(); + data_path.push(format!("{}{}.txt", self.data_counter, kind)); + self.data_counter += 1; + data_path + } + + #[cfg(not(feature = "neovim"))] + fn read_test_data(&mut self, kind: &str) -> String { + let path = self.next_data_path(kind); + std::fs::read_to_string(path).expect( + "Could not read test data. Is it generated? Try running test with '--features neovim'", + ) + } + + #[cfg(feature = "neovim")] + fn write_test_data(&mut self, data: String, kind: &str) { + let path = self.next_data_path(kind); + std::fs::create_dir_all(path.parent().unwrap()) + .expect("Could not create test data directory"); + std::fs::write(path, data).expect("Could not write out test data"); + } + + #[cfg(feature = "neovim")] + fn clear_test_data(&self) { + // If the path does not exist, no biggy, we will create it + std::fs::remove_dir_all(self.test_data_directory()).ok(); + } + + pub async fn assert_binding_matches( + &mut self, + keystrokes: [&str; COUNT], + initial_state: &str, + ) { + dbg!(keystrokes, initial_state); + self.set_shared_state(initial_state).await; + self.simulate_shared_keystrokes(keystrokes).await; + self.assert_state_matches().await; + } + + pub fn binding( + self, + keystrokes: [&'static str; COUNT], + ) -> NeovimBackedBindingTestContext<'a, COUNT> { + NeovimBackedBindingTestContext::new(keystrokes, self) + } +} + +#[derive(Clone)] +struct NvimHandler {} + +#[cfg(feature = "neovim")] +#[async_trait] +impl Handler for NvimHandler { + type Writer = nvim_rs::compat::tokio::Compat; + + async fn handle_request( + &self, + _event_name: String, + _arguments: Vec, + _neovim: Neovim, + ) -> Result { + unimplemented!(); + } + + async fn handle_notify( + &self, + _event_name: String, + _arguments: Vec, + _neovim: Neovim, + ) { + } +} + +impl<'a> Deref for NeovimBackedTestContext<'a> { + type Target = VimTestContext<'a>; + + fn deref(&self) -> &Self::Target { + &self.cx + } +} + +impl<'a> DerefMut for NeovimBackedTestContext<'a> { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.cx + } +} diff --git a/crates/vim/src/test_contexts/vim_binding_test_context.rs b/crates/vim/src/test_contexts/vim_binding_test_context.rs new file mode 100644 index 0000000000..0974684a34 --- /dev/null +++ b/crates/vim/src/test_contexts/vim_binding_test_context.rs @@ -0,0 +1,69 @@ +use std::ops::{Deref, DerefMut}; + +use crate::*; + +use super::VimTestContext; + +pub struct VimBindingTestContext<'a, const COUNT: usize> { + cx: VimTestContext<'a>, + keystrokes_under_test: [&'static str; COUNT], + mode_before: Mode, + mode_after: Mode, +} + +impl<'a, const COUNT: usize> VimBindingTestContext<'a, COUNT> { + pub fn new( + keystrokes_under_test: [&'static str; COUNT], + mode_before: Mode, + mode_after: Mode, + cx: VimTestContext<'a>, + ) -> Self { + Self { + cx, + keystrokes_under_test, + mode_before, + mode_after, + } + } + + pub fn binding( + self, + keystrokes_under_test: [&'static str; NEW_COUNT], + ) -> VimBindingTestContext<'a, NEW_COUNT> { + VimBindingTestContext { + keystrokes_under_test, + cx: self.cx, + mode_before: self.mode_before, + mode_after: self.mode_after, + } + } + + pub fn mode_after(mut self, mode_after: Mode) -> Self { + self.mode_after = mode_after; + self + } + + pub fn assert(&mut self, initial_state: &str, state_after: &str) { + self.cx.assert_binding( + self.keystrokes_under_test, + initial_state, + self.mode_before, + state_after, + self.mode_after, + ) + } +} + +impl<'a, const COUNT: usize> Deref for VimBindingTestContext<'a, COUNT> { + type Target = VimTestContext<'a>; + + fn deref(&self) -> &Self::Target { + &self.cx + } +} + +impl<'a, const COUNT: usize> DerefMut for VimBindingTestContext<'a, COUNT> { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.cx + } +} diff --git a/crates/vim/src/vim_test_context.rs b/crates/vim/src/test_contexts/vim_test_context.rs similarity index 75% rename from crates/vim/src/vim_test_context.rs rename to crates/vim/src/test_contexts/vim_test_context.rs index 0e77b05ba2..229b5e0a8e 100644 --- a/crates/vim/src/vim_test_context.rs +++ b/crates/vim/src/test_contexts/vim_test_context.rs @@ -8,6 +8,8 @@ use workspace::{pane, AppState, WorkspaceHandle}; use crate::{state::Operator, *}; +use super::VimBindingTestContext; + pub struct VimTestContext<'a> { cx: EditorTestContext<'a>, workspace: ViewHandle, @@ -168,67 +170,3 @@ impl<'a> DerefMut for VimTestContext<'a> { &mut self.cx } } - -pub struct VimBindingTestContext<'a, const COUNT: usize> { - cx: VimTestContext<'a>, - keystrokes_under_test: [&'static str; COUNT], - mode_before: Mode, - mode_after: Mode, -} - -impl<'a, const COUNT: usize> VimBindingTestContext<'a, COUNT> { - pub fn new( - keystrokes_under_test: [&'static str; COUNT], - mode_before: Mode, - mode_after: Mode, - cx: VimTestContext<'a>, - ) -> Self { - Self { - cx, - keystrokes_under_test, - mode_before, - mode_after, - } - } - - pub fn binding( - self, - keystrokes_under_test: [&'static str; NEW_COUNT], - ) -> VimBindingTestContext<'a, NEW_COUNT> { - VimBindingTestContext { - keystrokes_under_test, - cx: self.cx, - mode_before: self.mode_before, - mode_after: self.mode_after, - } - } - - pub fn mode_after(mut self, mode_after: Mode) -> Self { - self.mode_after = mode_after; - self - } - - pub fn assert(&mut self, initial_state: &str, state_after: &str) { - self.cx.assert_binding( - self.keystrokes_under_test, - initial_state, - self.mode_before, - state_after, - self.mode_after, - ) - } -} - -impl<'a, const COUNT: usize> Deref for VimBindingTestContext<'a, COUNT> { - type Target = VimTestContext<'a>; - - fn deref(&self) -> &Self::Target { - &self.cx - } -} - -impl<'a, const COUNT: usize> DerefMut for VimBindingTestContext<'a, COUNT> { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.cx - } -} diff --git a/crates/vim/src/vim.rs b/crates/vim/src/vim.rs index ecad33ce3f..234eb0361b 100644 --- a/crates/vim/src/vim.rs +++ b/crates/vim/src/vim.rs @@ -1,10 +1,11 @@ #[cfg(test)] -mod vim_test_context; +mod test_contexts; mod editor_events; mod insert; mod motion; mod normal; +mod object; mod state; mod utils; mod visual; @@ -32,6 +33,7 @@ pub fn init(cx: &mut MutableAppContext) { normal::init(cx); visual::init(cx); insert::init(cx); + object::init(cx); motion::init(cx); // Vim Actions @@ -144,7 +146,8 @@ impl Vim { } fn pop_operator(&mut self, cx: &mut MutableAppContext) -> Operator { - let popped_operator = self.state.operator_stack.pop().expect("Operator popped when no operator was on the stack. This likely means there is an invalid keymap config"); + let popped_operator = self.state.operator_stack.pop() + .expect("Operator popped when no operator was on the stack. This likely means there is an invalid keymap config"); self.sync_vim_settings(cx); popped_operator } @@ -210,7 +213,10 @@ mod test { use indoc::indoc; use search::BufferSearchBar; - use crate::{state::Mode, vim_test_context::VimTestContext}; + use crate::{ + state::Mode, + test_contexts::{NeovimBackedTestContext, VimTestContext}, + }; #[gpui::test] async fn test_initially_disabled(cx: &mut gpui::TestAppContext) { @@ -219,6 +225,19 @@ mod test { cx.assert_editor_state("hjklˇ"); } + #[gpui::test] + async fn test_neovim(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new("test_neovim", cx).await; + + cx.simulate_shared_keystroke("i").await; + cx.simulate_shared_keystrokes([ + "shift-T", "e", "s", "t", " ", "t", "e", "s", "t", "escape", "0", "d", "w", + ]) + .await; + cx.assert_state_matches().await; + cx.assert_editor_state("ˇtest"); + } + #[gpui::test] async fn test_toggle_through_settings(cx: &mut gpui::TestAppContext) { let mut cx = VimTestContext::new(cx, true).await; diff --git a/crates/vim/src/visual.rs b/crates/vim/src/visual.rs index d468393027..bbd6c8cfd9 100644 --- a/crates/vim/src/visual.rs +++ b/crates/vim/src/visual.rs @@ -6,7 +6,7 @@ use gpui::{actions, MutableAppContext, ViewContext}; use language::{AutoindentMode, SelectionGoal}; use workspace::Workspace; -use crate::{motion::Motion, state::Mode, utils::copy_selections_content, Vim}; +use crate::{motion::Motion, object::Object, state::Mode, utils::copy_selections_content, Vim}; actions!(vim, [VisualDelete, VisualChange, VisualYank, VisualPaste]); @@ -43,6 +43,8 @@ pub fn visual_motion(motion: Motion, cx: &mut MutableAppContext) { }); } +pub fn visual_object(_object: Object, _cx: &mut MutableAppContext) {} + pub fn change(_: &mut Workspace, _: &VisualChange, cx: &mut ViewContext) { Vim::update(cx, |vim, cx| { vim.update_active_editor(cx, |editor, cx| { @@ -274,7 +276,7 @@ pub fn paste(_: &mut Workspace, _: &VisualPaste, cx: &mut ViewContext mod test { use indoc::indoc; - use crate::{state::Mode, vim_test_context::VimTestContext}; + use crate::{state::Mode, test_contexts::VimTestContext}; #[gpui::test] async fn test_enter_visual_mode(cx: &mut gpui::TestAppContext) { diff --git a/crates/vim/test_data/test_change_around_sentence/0text.txt b/crates/vim/test_data/test_change_around_sentence/0text.txt new file mode 100644 index 0000000000..d2b92e8000 --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence/0text.txt @@ -0,0 +1 @@ +Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/10head.txt b/crates/vim/test_data/test_change_around_sentence/10head.txt new file mode 100644 index 0000000000..5df80e23c6 --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence/10head.txt @@ -0,0 +1 @@ +0,16 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/1head.txt b/crates/vim/test_data/test_change_around_sentence/1head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence/1head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/2mode.txt b/crates/vim/test_data/test_change_around_sentence/2mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence/2mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/3text.txt b/crates/vim/test_data/test_change_around_sentence/3text.txt new file mode 100644 index 0000000000..d2b92e8000 --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence/3text.txt @@ -0,0 +1 @@ +Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/4head.txt b/crates/vim/test_data/test_change_around_sentence/4head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence/4head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/5mode.txt b/crates/vim/test_data/test_change_around_sentence/5mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence/5mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/6text.txt b/crates/vim/test_data/test_change_around_sentence/6text.txt new file mode 100644 index 0000000000..d2b92e8000 --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence/6text.txt @@ -0,0 +1 @@ +Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/7head.txt b/crates/vim/test_data/test_change_around_sentence/7head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence/7head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/8mode.txt b/crates/vim/test_data/test_change_around_sentence/8mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence/8mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/9text.txt b/crates/vim/test_data/test_change_around_sentence/9text.txt new file mode 100644 index 0000000000..5e3a12964d --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence/9text.txt @@ -0,0 +1 @@ +The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/0text.txt b/crates/vim/test_data/test_change_around_word/0text.txt new file mode 100644 index 0000000000..366beed733 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/0text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/100head.txt b/crates/vim/test_data/test_change_around_word/100head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/100head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/101mode.txt b/crates/vim/test_data/test_change_around_word/101mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/101mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/102text.txt b/crates/vim/test_data/test_change_around_word/102text.txt new file mode 100644 index 0000000000..c8a5876179 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/102text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/103head.txt b/crates/vim/test_data/test_change_around_word/103head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/103head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/104mode.txt b/crates/vim/test_data/test_change_around_word/104mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/104mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/105text.txt b/crates/vim/test_data/test_change_around_word/105text.txt new file mode 100644 index 0000000000..c8a5876179 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/105text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/106head.txt b/crates/vim/test_data/test_change_around_word/106head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/106head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/107mode.txt b/crates/vim/test_data/test_change_around_word/107mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/107mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/108text.txt b/crates/vim/test_data/test_change_around_word/108text.txt new file mode 100644 index 0000000000..c8a5876179 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/108text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/109head.txt b/crates/vim/test_data/test_change_around_word/109head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/109head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/10head.txt b/crates/vim/test_data/test_change_around_word/10head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/10head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/110mode.txt b/crates/vim/test_data/test_change_around_word/110mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/110mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/111text.txt b/crates/vim/test_data/test_change_around_word/111text.txt new file mode 100644 index 0000000000..f05cdd88c1 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/111text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/112head.txt b/crates/vim/test_data/test_change_around_word/112head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/112head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/113mode.txt b/crates/vim/test_data/test_change_around_word/113mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/113mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/114text.txt b/crates/vim/test_data/test_change_around_word/114text.txt new file mode 100644 index 0000000000..f05cdd88c1 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/114text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/115head.txt b/crates/vim/test_data/test_change_around_word/115head.txt new file mode 100644 index 0000000000..c5a50698dd --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/115head.txt @@ -0,0 +1 @@ +6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/116mode.txt b/crates/vim/test_data/test_change_around_word/116mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/116mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/117text.txt b/crates/vim/test_data/test_change_around_word/117text.txt new file mode 100644 index 0000000000..0e9094161a --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/117text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/118head.txt b/crates/vim/test_data/test_change_around_word/118head.txt new file mode 100644 index 0000000000..d933eb81fa --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/118head.txt @@ -0,0 +1 @@ +6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/119mode.txt b/crates/vim/test_data/test_change_around_word/119mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/119mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/11mode.txt b/crates/vim/test_data/test_change_around_word/11mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/11mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/120text.txt b/crates/vim/test_data/test_change_around_word/120text.txt new file mode 100644 index 0000000000..fa73eb37b8 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/120text.txt @@ -0,0 +1,10 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/121head.txt b/crates/vim/test_data/test_change_around_word/121head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/121head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/122mode.txt b/crates/vim/test_data/test_change_around_word/122mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/122mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/123text.txt b/crates/vim/test_data/test_change_around_word/123text.txt new file mode 100644 index 0000000000..4fe33b47eb --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/123text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/124head.txt b/crates/vim/test_data/test_change_around_word/124head.txt new file mode 100644 index 0000000000..ded56a5926 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/124head.txt @@ -0,0 +1 @@ +8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/125mode.txt b/crates/vim/test_data/test_change_around_word/125mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/125mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/126text.txt b/crates/vim/test_data/test_change_around_word/126text.txt new file mode 100644 index 0000000000..35dd5816fc --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/126text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/127head.txt b/crates/vim/test_data/test_change_around_word/127head.txt new file mode 100644 index 0000000000..8e69e0ad79 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/127head.txt @@ -0,0 +1 @@ +9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/128mode.txt b/crates/vim/test_data/test_change_around_word/128mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/128mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/129text.txt b/crates/vim/test_data/test_change_around_word/129text.txt new file mode 100644 index 0000000000..1bac4587a7 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/129text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/12text.txt b/crates/vim/test_data/test_change_around_word/12text.txt new file mode 100644 index 0000000000..2feb66cfb9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/12text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/130head.txt b/crates/vim/test_data/test_change_around_word/130head.txt new file mode 100644 index 0000000000..edb3544f9a --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/130head.txt @@ -0,0 +1 @@ +9,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/131mode.txt b/crates/vim/test_data/test_change_around_word/131mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/131mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/132text.txt b/crates/vim/test_data/test_change_around_word/132text.txt new file mode 100644 index 0000000000..912316a9f7 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/132text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_change_around_word/133head.txt b/crates/vim/test_data/test_change_around_word/133head.txt new file mode 100644 index 0000000000..00f5ae6cbb --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/133head.txt @@ -0,0 +1 @@ +10,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/134mode.txt b/crates/vim/test_data/test_change_around_word/134mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/134mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/135text.txt b/crates/vim/test_data/test_change_around_word/135text.txt new file mode 100644 index 0000000000..1563710058 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/135text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_change_around_word/136head.txt b/crates/vim/test_data/test_change_around_word/136head.txt new file mode 100644 index 0000000000..94dbddc699 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/136head.txt @@ -0,0 +1 @@ +11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/137mode.txt b/crates/vim/test_data/test_change_around_word/137mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/137mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/13head.txt b/crates/vim/test_data/test_change_around_word/13head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/13head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/14mode.txt b/crates/vim/test_data/test_change_around_word/14mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/14mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/15text.txt b/crates/vim/test_data/test_change_around_word/15text.txt new file mode 100644 index 0000000000..262feeae96 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/15text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/16head.txt b/crates/vim/test_data/test_change_around_word/16head.txt new file mode 100644 index 0000000000..bd712da63a --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/16head.txt @@ -0,0 +1 @@ +1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/17mode.txt b/crates/vim/test_data/test_change_around_word/17mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/17mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/18text.txt b/crates/vim/test_data/test_change_around_word/18text.txt new file mode 100644 index 0000000000..ba0aea82d9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/18text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/19head.txt b/crates/vim/test_data/test_change_around_word/19head.txt new file mode 100644 index 0000000000..28ce8bcc5c --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/19head.txt @@ -0,0 +1 @@ +2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/1head.txt b/crates/vim/test_data/test_change_around_word/1head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/1head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/20mode.txt b/crates/vim/test_data/test_change_around_word/20mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/20mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/21text.txt b/crates/vim/test_data/test_change_around_word/21text.txt new file mode 100644 index 0000000000..783e049f86 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/21text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/22head.txt b/crates/vim/test_data/test_change_around_word/22head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/22head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/23mode.txt b/crates/vim/test_data/test_change_around_word/23mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/23mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/24text.txt b/crates/vim/test_data/test_change_around_word/24text.txt new file mode 100644 index 0000000000..783e049f86 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/24text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/25head.txt b/crates/vim/test_data/test_change_around_word/25head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/25head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/26mode.txt b/crates/vim/test_data/test_change_around_word/26mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/26mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/27text.txt b/crates/vim/test_data/test_change_around_word/27text.txt new file mode 100644 index 0000000000..252419d291 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/27text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + +-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/28head.txt b/crates/vim/test_data/test_change_around_word/28head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/28head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/29mode.txt b/crates/vim/test_data/test_change_around_word/29mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/29mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/2mode.txt b/crates/vim/test_data/test_change_around_word/2mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/2mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/30text.txt b/crates/vim/test_data/test_change_around_word/30text.txt new file mode 100644 index 0000000000..609747299b --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/30text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/31head.txt b/crates/vim/test_data/test_change_around_word/31head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/31head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/32mode.txt b/crates/vim/test_data/test_change_around_word/32mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/32mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/33text.txt b/crates/vim/test_data/test_change_around_word/33text.txt new file mode 100644 index 0000000000..12ede0f513 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/33text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +Thequick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/34head.txt b/crates/vim/test_data/test_change_around_word/34head.txt new file mode 100644 index 0000000000..c20df71d5e --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/34head.txt @@ -0,0 +1 @@ +6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/35mode.txt b/crates/vim/test_data/test_change_around_word/35mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/35mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/36text.txt b/crates/vim/test_data/test_change_around_word/36text.txt new file mode 100644 index 0000000000..4a6d943982 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/36text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/37head.txt b/crates/vim/test_data/test_change_around_word/37head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/37head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/38mode.txt b/crates/vim/test_data/test_change_around_word/38mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/38mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/39text.txt b/crates/vim/test_data/test_change_around_word/39text.txt new file mode 100644 index 0000000000..4a6d943982 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/39text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/3text.txt b/crates/vim/test_data/test_change_around_word/3text.txt new file mode 100644 index 0000000000..366beed733 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/3text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/40head.txt b/crates/vim/test_data/test_change_around_word/40head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/40head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/41mode.txt b/crates/vim/test_data/test_change_around_word/41mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/41mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/42text.txt b/crates/vim/test_data/test_change_around_word/42text.txt new file mode 100644 index 0000000000..f05cdd88c1 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/42text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/43head.txt b/crates/vim/test_data/test_change_around_word/43head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/43head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/44mode.txt b/crates/vim/test_data/test_change_around_word/44mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/44mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/45text.txt b/crates/vim/test_data/test_change_around_word/45text.txt new file mode 100644 index 0000000000..f05cdd88c1 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/45text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/46head.txt b/crates/vim/test_data/test_change_around_word/46head.txt new file mode 100644 index 0000000000..c5a50698dd --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/46head.txt @@ -0,0 +1 @@ +6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/47mode.txt b/crates/vim/test_data/test_change_around_word/47mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/47mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/48text.txt b/crates/vim/test_data/test_change_around_word/48text.txt new file mode 100644 index 0000000000..13b7d1cb51 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/48text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/49head.txt b/crates/vim/test_data/test_change_around_word/49head.txt new file mode 100644 index 0000000000..d933eb81fa --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/49head.txt @@ -0,0 +1 @@ +6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/4head.txt b/crates/vim/test_data/test_change_around_word/4head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/4head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/50mode.txt b/crates/vim/test_data/test_change_around_word/50mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/50mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/51text.txt b/crates/vim/test_data/test_change_around_word/51text.txt new file mode 100644 index 0000000000..3976ef9c85 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/51text.txt @@ -0,0 +1,10 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown +-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/52head.txt b/crates/vim/test_data/test_change_around_word/52head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/52head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/53mode.txt b/crates/vim/test_data/test_change_around_word/53mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/53mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/54text.txt b/crates/vim/test_data/test_change_around_word/54text.txt new file mode 100644 index 0000000000..b5ca31babe --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/54text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + +-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/55head.txt b/crates/vim/test_data/test_change_around_word/55head.txt new file mode 100644 index 0000000000..ded56a5926 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/55head.txt @@ -0,0 +1 @@ +8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/56mode.txt b/crates/vim/test_data/test_change_around_word/56mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/56mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/57text.txt b/crates/vim/test_data/test_change_around_word/57text.txt new file mode 100644 index 0000000000..0eaface506 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/57text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + +-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/58head.txt b/crates/vim/test_data/test_change_around_word/58head.txt new file mode 100644 index 0000000000..8e69e0ad79 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/58head.txt @@ -0,0 +1 @@ +9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/59mode.txt b/crates/vim/test_data/test_change_around_word/59mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/59mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/5mode.txt b/crates/vim/test_data/test_change_around_word/5mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/5mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/60text.txt b/crates/vim/test_data/test_change_around_word/60text.txt new file mode 100644 index 0000000000..d8b9b05b79 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/60text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/61head.txt b/crates/vim/test_data/test_change_around_word/61head.txt new file mode 100644 index 0000000000..e0460d1bc5 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/61head.txt @@ -0,0 +1 @@ +9,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/62mode.txt b/crates/vim/test_data/test_change_around_word/62mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/62mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/63text.txt b/crates/vim/test_data/test_change_around_word/63text.txt new file mode 100644 index 0000000000..912316a9f7 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/63text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_change_around_word/64head.txt b/crates/vim/test_data/test_change_around_word/64head.txt new file mode 100644 index 0000000000..00f5ae6cbb --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/64head.txt @@ -0,0 +1 @@ +10,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/65mode.txt b/crates/vim/test_data/test_change_around_word/65mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/65mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/66text.txt b/crates/vim/test_data/test_change_around_word/66text.txt new file mode 100644 index 0000000000..1563710058 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/66text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_change_around_word/67head.txt b/crates/vim/test_data/test_change_around_word/67head.txt new file mode 100644 index 0000000000..94dbddc699 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/67head.txt @@ -0,0 +1 @@ +11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/68mode.txt b/crates/vim/test_data/test_change_around_word/68mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/68mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/69text.txt b/crates/vim/test_data/test_change_around_word/69text.txt new file mode 100644 index 0000000000..366beed733 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/69text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/6text.txt b/crates/vim/test_data/test_change_around_word/6text.txt new file mode 100644 index 0000000000..3678c219a3 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/6text.txt @@ -0,0 +1,11 @@ +The quick brown jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/70head.txt b/crates/vim/test_data/test_change_around_word/70head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/70head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/71mode.txt b/crates/vim/test_data/test_change_around_word/71mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/71mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/72text.txt b/crates/vim/test_data/test_change_around_word/72text.txt new file mode 100644 index 0000000000..366beed733 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/72text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/73head.txt b/crates/vim/test_data/test_change_around_word/73head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/73head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/74mode.txt b/crates/vim/test_data/test_change_around_word/74mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/74mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/75text.txt b/crates/vim/test_data/test_change_around_word/75text.txt new file mode 100644 index 0000000000..3678c219a3 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/75text.txt @@ -0,0 +1,11 @@ +The quick brown jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/76head.txt b/crates/vim/test_data/test_change_around_word/76head.txt new file mode 100644 index 0000000000..5f7b20f0d9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/76head.txt @@ -0,0 +1 @@ +0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/77mode.txt b/crates/vim/test_data/test_change_around_word/77mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/77mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/78text.txt b/crates/vim/test_data/test_change_around_word/78text.txt new file mode 100644 index 0000000000..2feb66cfb9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/78text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/79head.txt b/crates/vim/test_data/test_change_around_word/79head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/79head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/7head.txt b/crates/vim/test_data/test_change_around_word/7head.txt new file mode 100644 index 0000000000..5f7b20f0d9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/7head.txt @@ -0,0 +1 @@ +0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/80mode.txt b/crates/vim/test_data/test_change_around_word/80mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/80mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/81text.txt b/crates/vim/test_data/test_change_around_word/81text.txt new file mode 100644 index 0000000000..2feb66cfb9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/81text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/82head.txt b/crates/vim/test_data/test_change_around_word/82head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/82head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/83mode.txt b/crates/vim/test_data/test_change_around_word/83mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/83mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/84text.txt b/crates/vim/test_data/test_change_around_word/84text.txt new file mode 100644 index 0000000000..262feeae96 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/84text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/85head.txt b/crates/vim/test_data/test_change_around_word/85head.txt new file mode 100644 index 0000000000..bd712da63a --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/85head.txt @@ -0,0 +1 @@ +1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/86mode.txt b/crates/vim/test_data/test_change_around_word/86mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/86mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/87text.txt b/crates/vim/test_data/test_change_around_word/87text.txt new file mode 100644 index 0000000000..ba0aea82d9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/87text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/88head.txt b/crates/vim/test_data/test_change_around_word/88head.txt new file mode 100644 index 0000000000..28ce8bcc5c --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/88head.txt @@ -0,0 +1 @@ +2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/89mode.txt b/crates/vim/test_data/test_change_around_word/89mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/89mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/8mode.txt b/crates/vim/test_data/test_change_around_word/8mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/8mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/90text.txt b/crates/vim/test_data/test_change_around_word/90text.txt new file mode 100644 index 0000000000..783e049f86 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/90text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/91head.txt b/crates/vim/test_data/test_change_around_word/91head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/91head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/92mode.txt b/crates/vim/test_data/test_change_around_word/92mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/92mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/93text.txt b/crates/vim/test_data/test_change_around_word/93text.txt new file mode 100644 index 0000000000..783e049f86 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/93text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/94head.txt b/crates/vim/test_data/test_change_around_word/94head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/94head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/95mode.txt b/crates/vim/test_data/test_change_around_word/95mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/95mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/96text.txt b/crates/vim/test_data/test_change_around_word/96text.txt new file mode 100644 index 0000000000..523f6002f4 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/96text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/97head.txt b/crates/vim/test_data/test_change_around_word/97head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/97head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/98mode.txt b/crates/vim/test_data/test_change_around_word/98mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/98mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/99text.txt b/crates/vim/test_data/test_change_around_word/99text.txt new file mode 100644 index 0000000000..c8a5876179 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/99text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_around_word/9text.txt b/crates/vim/test_data/test_change_around_word/9text.txt new file mode 100644 index 0000000000..2feb66cfb9 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word/9text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_sentence/0text.txt b/crates/vim/test_data/test_change_in_sentence/0text.txt new file mode 100644 index 0000000000..fd36730b8d --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/0text.txt @@ -0,0 +1 @@ + Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/10head.txt b/crates/vim/test_data/test_change_in_sentence/10head.txt new file mode 100644 index 0000000000..5df80e23c6 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/10head.txt @@ -0,0 +1 @@ +0,16 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/11mode.txt b/crates/vim/test_data/test_change_in_sentence/11mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/11mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/12text.txt b/crates/vim/test_data/test_change_in_sentence/12text.txt new file mode 100644 index 0000000000..40eacc6489 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/12text.txt @@ -0,0 +1 @@ +The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/13head.txt b/crates/vim/test_data/test_change_in_sentence/13head.txt new file mode 100644 index 0000000000..40d2f2ab55 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/13head.txt @@ -0,0 +1 @@ +0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/14mode.txt b/crates/vim/test_data/test_change_in_sentence/14mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/14mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/15text.txt b/crates/vim/test_data/test_change_in_sentence/15text.txt new file mode 100644 index 0000000000..40eacc6489 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/15text.txt @@ -0,0 +1 @@ +The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/16head.txt b/crates/vim/test_data/test_change_in_sentence/16head.txt new file mode 100644 index 0000000000..40d2f2ab55 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/16head.txt @@ -0,0 +1 @@ +0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/17mode.txt b/crates/vim/test_data/test_change_in_sentence/17mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/17mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/18text.txt b/crates/vim/test_data/test_change_in_sentence/18text.txt new file mode 100644 index 0000000000..40eacc6489 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/18text.txt @@ -0,0 +1 @@ +The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/19head.txt b/crates/vim/test_data/test_change_in_sentence/19head.txt new file mode 100644 index 0000000000..40d2f2ab55 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/19head.txt @@ -0,0 +1 @@ +0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/1head.txt b/crates/vim/test_data/test_change_in_sentence/1head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/1head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/20mode.txt b/crates/vim/test_data/test_change_in_sentence/20mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/20mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/21text.txt b/crates/vim/test_data/test_change_in_sentence/21text.txt new file mode 100644 index 0000000000..ef17a5f7fb --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/21text.txt @@ -0,0 +1 @@ +The quick brown? Fox Jumps!Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/22head.txt b/crates/vim/test_data/test_change_in_sentence/22head.txt new file mode 100644 index 0000000000..17beb4d83f --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/22head.txt @@ -0,0 +1 @@ +0,27 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/23mode.txt b/crates/vim/test_data/test_change_in_sentence/23mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/23mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/24text.txt b/crates/vim/test_data/test_change_in_sentence/24text.txt new file mode 100644 index 0000000000..d81c10974f --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/24text.txt @@ -0,0 +1 @@ +The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/25head.txt b/crates/vim/test_data/test_change_in_sentence/25head.txt new file mode 100644 index 0000000000..588ae97095 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/25head.txt @@ -0,0 +1 @@ +0,28 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/26mode.txt b/crates/vim/test_data/test_change_in_sentence/26mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/26mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/27text.txt b/crates/vim/test_data/test_change_in_sentence/27text.txt new file mode 100644 index 0000000000..d81c10974f --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/27text.txt @@ -0,0 +1 @@ +The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/28head.txt b/crates/vim/test_data/test_change_in_sentence/28head.txt new file mode 100644 index 0000000000..588ae97095 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/28head.txt @@ -0,0 +1 @@ +0,28 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/29mode.txt b/crates/vim/test_data/test_change_in_sentence/29mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/29mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/2mode.txt b/crates/vim/test_data/test_change_in_sentence/2mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/2mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/30text.txt b/crates/vim/test_data/test_change_in_sentence/30text.txt new file mode 100644 index 0000000000..d81c10974f --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/30text.txt @@ -0,0 +1 @@ +The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/31head.txt b/crates/vim/test_data/test_change_in_sentence/31head.txt new file mode 100644 index 0000000000..588ae97095 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/31head.txt @@ -0,0 +1 @@ +0,28 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/32mode.txt b/crates/vim/test_data/test_change_in_sentence/32mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/32mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/33text.txt b/crates/vim/test_data/test_change_in_sentence/33text.txt new file mode 100644 index 0000000000..561ed0800c --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/33text.txt @@ -0,0 +1,2 @@ + The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/34head.txt b/crates/vim/test_data/test_change_in_sentence/34head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/34head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/35mode.txt b/crates/vim/test_data/test_change_in_sentence/35mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/35mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/36text.txt b/crates/vim/test_data/test_change_in_sentence/36text.txt new file mode 100644 index 0000000000..561ed0800c --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/36text.txt @@ -0,0 +1,2 @@ + The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/37head.txt b/crates/vim/test_data/test_change_in_sentence/37head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/37head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/38mode.txt b/crates/vim/test_data/test_change_in_sentence/38mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/38mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/39text.txt b/crates/vim/test_data/test_change_in_sentence/39text.txt new file mode 100644 index 0000000000..561ed0800c --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/39text.txt @@ -0,0 +1,2 @@ + The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/3text.txt b/crates/vim/test_data/test_change_in_sentence/3text.txt new file mode 100644 index 0000000000..fd36730b8d --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/3text.txt @@ -0,0 +1 @@ + Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/40head.txt b/crates/vim/test_data/test_change_in_sentence/40head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/40head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/41mode.txt b/crates/vim/test_data/test_change_in_sentence/41mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/41mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/42text.txt b/crates/vim/test_data/test_change_in_sentence/42text.txt new file mode 100644 index 0000000000..561ed0800c --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/42text.txt @@ -0,0 +1,2 @@ + The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/43head.txt b/crates/vim/test_data/test_change_in_sentence/43head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/43head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/44mode.txt b/crates/vim/test_data/test_change_in_sentence/44mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/44mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/45text.txt b/crates/vim/test_data/test_change_in_sentence/45text.txt new file mode 100644 index 0000000000..561ed0800c --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/45text.txt @@ -0,0 +1,2 @@ + The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/46head.txt b/crates/vim/test_data/test_change_in_sentence/46head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/46head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/47mode.txt b/crates/vim/test_data/test_change_in_sentence/47mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/47mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/48text.txt b/crates/vim/test_data/test_change_in_sentence/48text.txt new file mode 100644 index 0000000000..bbf10c5693 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/48text.txt @@ -0,0 +1,4 @@ +The quick brown +fox jumps over +the lazy dog.The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/49head.txt b/crates/vim/test_data/test_change_in_sentence/49head.txt new file mode 100644 index 0000000000..26560586d9 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/49head.txt @@ -0,0 +1 @@ +2,13 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/4head.txt b/crates/vim/test_data/test_change_in_sentence/4head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/4head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/50mode.txt b/crates/vim/test_data/test_change_in_sentence/50mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/50mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/51text.txt b/crates/vim/test_data/test_change_in_sentence/51text.txt new file mode 100644 index 0000000000..0b535bbbaf --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/51text.txt @@ -0,0 +1,3 @@ +The quick brown +fox jumps over +the lazy dog. diff --git a/crates/vim/test_data/test_change_in_sentence/52head.txt b/crates/vim/test_data/test_change_in_sentence/52head.txt new file mode 100644 index 0000000000..e9aafafade --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/52head.txt @@ -0,0 +1 @@ +2,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/53mode.txt b/crates/vim/test_data/test_change_in_sentence/53mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/53mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/54text.txt b/crates/vim/test_data/test_change_in_sentence/54text.txt new file mode 100644 index 0000000000..0b535bbbaf --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/54text.txt @@ -0,0 +1,3 @@ +The quick brown +fox jumps over +the lazy dog. diff --git a/crates/vim/test_data/test_change_in_sentence/55head.txt b/crates/vim/test_data/test_change_in_sentence/55head.txt new file mode 100644 index 0000000000..e9aafafade --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/55head.txt @@ -0,0 +1 @@ +2,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/56mode.txt b/crates/vim/test_data/test_change_in_sentence/56mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/56mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/5mode.txt b/crates/vim/test_data/test_change_in_sentence/5mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/5mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/6text.txt b/crates/vim/test_data/test_change_in_sentence/6text.txt new file mode 100644 index 0000000000..fd36730b8d --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/6text.txt @@ -0,0 +1 @@ + Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/7head.txt b/crates/vim/test_data/test_change_in_sentence/7head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/7head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/8mode.txt b/crates/vim/test_data/test_change_in_sentence/8mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/8mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/9text.txt b/crates/vim/test_data/test_change_in_sentence/9text.txt new file mode 100644 index 0000000000..9e4b6dcc50 --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence/9text.txt @@ -0,0 +1 @@ +The quick brown?Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/0text.txt b/crates/vim/test_data/test_change_in_word/0text.txt new file mode 100644 index 0000000000..481389e676 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/0text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/100head.txt b/crates/vim/test_data/test_change_in_word/100head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/100head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/101mode.txt b/crates/vim/test_data/test_change_in_word/101mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/101mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/102text.txt b/crates/vim/test_data/test_change_in_word/102text.txt new file mode 100644 index 0000000000..d90b2c4e48 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/102text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/103head.txt b/crates/vim/test_data/test_change_in_word/103head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/103head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/104mode.txt b/crates/vim/test_data/test_change_in_word/104mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/104mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/105text.txt b/crates/vim/test_data/test_change_in_word/105text.txt new file mode 100644 index 0000000000..d90b2c4e48 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/105text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/106head.txt b/crates/vim/test_data/test_change_in_word/106head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/106head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/107mode.txt b/crates/vim/test_data/test_change_in_word/107mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/107mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/108text.txt b/crates/vim/test_data/test_change_in_word/108text.txt new file mode 100644 index 0000000000..d90b2c4e48 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/108text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/109head.txt b/crates/vim/test_data/test_change_in_word/109head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/109head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/10head.txt b/crates/vim/test_data/test_change_in_word/10head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/10head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/110mode.txt b/crates/vim/test_data/test_change_in_word/110mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/110mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/111text.txt b/crates/vim/test_data/test_change_in_word/111text.txt new file mode 100644 index 0000000000..7d13d92d35 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/111text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quickbrown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/112head.txt b/crates/vim/test_data/test_change_in_word/112head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/112head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/113mode.txt b/crates/vim/test_data/test_change_in_word/113mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/113mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/114text.txt b/crates/vim/test_data/test_change_in_word/114text.txt new file mode 100644 index 0000000000..95b76ce25b --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/114text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/115head.txt b/crates/vim/test_data/test_change_in_word/115head.txt new file mode 100644 index 0000000000..c5a50698dd --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/115head.txt @@ -0,0 +1 @@ +6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/116mode.txt b/crates/vim/test_data/test_change_in_word/116mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/116mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/117text.txt b/crates/vim/test_data/test_change_in_word/117text.txt new file mode 100644 index 0000000000..805a5ebe4c --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/117text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/118head.txt b/crates/vim/test_data/test_change_in_word/118head.txt new file mode 100644 index 0000000000..d933eb81fa --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/118head.txt @@ -0,0 +1 @@ +6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/119mode.txt b/crates/vim/test_data/test_change_in_word/119mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/119mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/11mode.txt b/crates/vim/test_data/test_change_in_word/11mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/11mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/120text.txt b/crates/vim/test_data/test_change_in_word/120text.txt new file mode 100644 index 0000000000..1d797e34b8 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/120text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/121head.txt b/crates/vim/test_data/test_change_in_word/121head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/121head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/122mode.txt b/crates/vim/test_data/test_change_in_word/122mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/122mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/123text.txt b/crates/vim/test_data/test_change_in_word/123text.txt new file mode 100644 index 0000000000..8a35adfa26 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/123text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/124head.txt b/crates/vim/test_data/test_change_in_word/124head.txt new file mode 100644 index 0000000000..ded56a5926 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/124head.txt @@ -0,0 +1 @@ +8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/125mode.txt b/crates/vim/test_data/test_change_in_word/125mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/125mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/126text.txt b/crates/vim/test_data/test_change_in_word/126text.txt new file mode 100644 index 0000000000..26e9d0a1b6 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/126text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + +fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/127head.txt b/crates/vim/test_data/test_change_in_word/127head.txt new file mode 100644 index 0000000000..8e69e0ad79 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/127head.txt @@ -0,0 +1 @@ +9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/128mode.txt b/crates/vim/test_data/test_change_in_word/128mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/128mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/129text.txt b/crates/vim/test_data/test_change_in_word/129text.txt new file mode 100644 index 0000000000..c2c9c0edb0 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/129text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/12text.txt b/crates/vim/test_data/test_change_in_word/12text.txt new file mode 100644 index 0000000000..38c6ccbeac --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/12text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/130head.txt b/crates/vim/test_data/test_change_in_word/130head.txt new file mode 100644 index 0000000000..edb3544f9a --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/130head.txt @@ -0,0 +1 @@ +9,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/131mode.txt b/crates/vim/test_data/test_change_in_word/131mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/131mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/132text.txt b/crates/vim/test_data/test_change_in_word/132text.txt new file mode 100644 index 0000000000..4b2cd80611 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/132text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/133head.txt b/crates/vim/test_data/test_change_in_word/133head.txt new file mode 100644 index 0000000000..00f5ae6cbb --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/133head.txt @@ -0,0 +1 @@ +10,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/134mode.txt b/crates/vim/test_data/test_change_in_word/134mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/134mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/135text.txt b/crates/vim/test_data/test_change_in_word/135text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/135text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/136head.txt b/crates/vim/test_data/test_change_in_word/136head.txt new file mode 100644 index 0000000000..94dbddc699 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/136head.txt @@ -0,0 +1 @@ +11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/137mode.txt b/crates/vim/test_data/test_change_in_word/137mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/137mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/13head.txt b/crates/vim/test_data/test_change_in_word/13head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/13head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/14mode.txt b/crates/vim/test_data/test_change_in_word/14mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/14mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/15text.txt b/crates/vim/test_data/test_change_in_word/15text.txt new file mode 100644 index 0000000000..282218da91 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/15text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumpsover +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/16head.txt b/crates/vim/test_data/test_change_in_word/16head.txt new file mode 100644 index 0000000000..bd712da63a --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/16head.txt @@ -0,0 +1 @@ +1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/17mode.txt b/crates/vim/test_data/test_change_in_word/17mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/17mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/18text.txt b/crates/vim/test_data/test_change_in_word/18text.txt new file mode 100644 index 0000000000..0b042b7c39 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/18text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/19head.txt b/crates/vim/test_data/test_change_in_word/19head.txt new file mode 100644 index 0000000000..28ce8bcc5c --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/19head.txt @@ -0,0 +1 @@ +2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/1head.txt b/crates/vim/test_data/test_change_in_word/1head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/1head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/20mode.txt b/crates/vim/test_data/test_change_in_word/20mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/20mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/21text.txt b/crates/vim/test_data/test_change_in_word/21text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/21text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/22head.txt b/crates/vim/test_data/test_change_in_word/22head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/22head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/23mode.txt b/crates/vim/test_data/test_change_in_word/23mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/23mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/24text.txt b/crates/vim/test_data/test_change_in_word/24text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/24text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/25head.txt b/crates/vim/test_data/test_change_in_word/25head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/25head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/26mode.txt b/crates/vim/test_data/test_change_in_word/26mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/26mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/27text.txt b/crates/vim/test_data/test_change_in_word/27text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/27text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/28head.txt b/crates/vim/test_data/test_change_in_word/28head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/28head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/29mode.txt b/crates/vim/test_data/test_change_in_word/29mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/29mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/2mode.txt b/crates/vim/test_data/test_change_in_word/2mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/2mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/30text.txt b/crates/vim/test_data/test_change_in_word/30text.txt new file mode 100644 index 0000000000..609747299b --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/30text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/31head.txt b/crates/vim/test_data/test_change_in_word/31head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/31head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/32mode.txt b/crates/vim/test_data/test_change_in_word/32mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/32mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/33text.txt b/crates/vim/test_data/test_change_in_word/33text.txt new file mode 100644 index 0000000000..12ede0f513 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/33text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +Thequick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/34head.txt b/crates/vim/test_data/test_change_in_word/34head.txt new file mode 100644 index 0000000000..c20df71d5e --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/34head.txt @@ -0,0 +1 @@ +6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/35mode.txt b/crates/vim/test_data/test_change_in_word/35mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/35mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/36text.txt b/crates/vim/test_data/test_change_in_word/36text.txt new file mode 100644 index 0000000000..3b3f900a05 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/36text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The- brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/37head.txt b/crates/vim/test_data/test_change_in_word/37head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/37head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/38mode.txt b/crates/vim/test_data/test_change_in_word/38mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/38mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/39text.txt b/crates/vim/test_data/test_change_in_word/39text.txt new file mode 100644 index 0000000000..3b3f900a05 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/39text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The- brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/3text.txt b/crates/vim/test_data/test_change_in_word/3text.txt new file mode 100644 index 0000000000..481389e676 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/3text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/40head.txt b/crates/vim/test_data/test_change_in_word/40head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/40head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/41mode.txt b/crates/vim/test_data/test_change_in_word/41mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/41mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/42text.txt b/crates/vim/test_data/test_change_in_word/42text.txt new file mode 100644 index 0000000000..7d13d92d35 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/42text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quickbrown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/43head.txt b/crates/vim/test_data/test_change_in_word/43head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/43head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/44mode.txt b/crates/vim/test_data/test_change_in_word/44mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/44mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/45text.txt b/crates/vim/test_data/test_change_in_word/45text.txt new file mode 100644 index 0000000000..95b76ce25b --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/45text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/46head.txt b/crates/vim/test_data/test_change_in_word/46head.txt new file mode 100644 index 0000000000..c5a50698dd --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/46head.txt @@ -0,0 +1 @@ +6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/47mode.txt b/crates/vim/test_data/test_change_in_word/47mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/47mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/48text.txt b/crates/vim/test_data/test_change_in_word/48text.txt new file mode 100644 index 0000000000..805a5ebe4c --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/48text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/49head.txt b/crates/vim/test_data/test_change_in_word/49head.txt new file mode 100644 index 0000000000..d933eb81fa --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/49head.txt @@ -0,0 +1 @@ +6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/4head.txt b/crates/vim/test_data/test_change_in_word/4head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/4head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/50mode.txt b/crates/vim/test_data/test_change_in_word/50mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/50mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/51text.txt b/crates/vim/test_data/test_change_in_word/51text.txt new file mode 100644 index 0000000000..1d797e34b8 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/51text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/52head.txt b/crates/vim/test_data/test_change_in_word/52head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/52head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/53mode.txt b/crates/vim/test_data/test_change_in_word/53mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/53mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/54text.txt b/crates/vim/test_data/test_change_in_word/54text.txt new file mode 100644 index 0000000000..8a35adfa26 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/54text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/55head.txt b/crates/vim/test_data/test_change_in_word/55head.txt new file mode 100644 index 0000000000..ded56a5926 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/55head.txt @@ -0,0 +1 @@ +8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/56mode.txt b/crates/vim/test_data/test_change_in_word/56mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/56mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/57text.txt b/crates/vim/test_data/test_change_in_word/57text.txt new file mode 100644 index 0000000000..26e9d0a1b6 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/57text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + +fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/58head.txt b/crates/vim/test_data/test_change_in_word/58head.txt new file mode 100644 index 0000000000..8e69e0ad79 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/58head.txt @@ -0,0 +1 @@ +9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/59mode.txt b/crates/vim/test_data/test_change_in_word/59mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/59mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/5mode.txt b/crates/vim/test_data/test_change_in_word/5mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/5mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/60text.txt b/crates/vim/test_data/test_change_in_word/60text.txt new file mode 100644 index 0000000000..816bf47cf0 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/60text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox- over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/61head.txt b/crates/vim/test_data/test_change_in_word/61head.txt new file mode 100644 index 0000000000..e0460d1bc5 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/61head.txt @@ -0,0 +1 @@ +9,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/62mode.txt b/crates/vim/test_data/test_change_in_word/62mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/62mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/63text.txt b/crates/vim/test_data/test_change_in_word/63text.txt new file mode 100644 index 0000000000..4b2cd80611 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/63text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/64head.txt b/crates/vim/test_data/test_change_in_word/64head.txt new file mode 100644 index 0000000000..00f5ae6cbb --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/64head.txt @@ -0,0 +1 @@ +10,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/65mode.txt b/crates/vim/test_data/test_change_in_word/65mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/65mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/66text.txt b/crates/vim/test_data/test_change_in_word/66text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/66text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/67head.txt b/crates/vim/test_data/test_change_in_word/67head.txt new file mode 100644 index 0000000000..94dbddc699 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/67head.txt @@ -0,0 +1 @@ +11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/68mode.txt b/crates/vim/test_data/test_change_in_word/68mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/68mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/69text.txt b/crates/vim/test_data/test_change_in_word/69text.txt new file mode 100644 index 0000000000..481389e676 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/69text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/6text.txt b/crates/vim/test_data/test_change_in_word/6text.txt new file mode 100644 index 0000000000..35fd5c89ba --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/6text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/70head.txt b/crates/vim/test_data/test_change_in_word/70head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/70head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/71mode.txt b/crates/vim/test_data/test_change_in_word/71mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/71mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/72text.txt b/crates/vim/test_data/test_change_in_word/72text.txt new file mode 100644 index 0000000000..481389e676 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/72text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/73head.txt b/crates/vim/test_data/test_change_in_word/73head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/73head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/74mode.txt b/crates/vim/test_data/test_change_in_word/74mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/74mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/75text.txt b/crates/vim/test_data/test_change_in_word/75text.txt new file mode 100644 index 0000000000..35fd5c89ba --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/75text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/76head.txt b/crates/vim/test_data/test_change_in_word/76head.txt new file mode 100644 index 0000000000..5f7b20f0d9 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/76head.txt @@ -0,0 +1 @@ +0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/77mode.txt b/crates/vim/test_data/test_change_in_word/77mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/77mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/78text.txt b/crates/vim/test_data/test_change_in_word/78text.txt new file mode 100644 index 0000000000..38c6ccbeac --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/78text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/79head.txt b/crates/vim/test_data/test_change_in_word/79head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/79head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/7head.txt b/crates/vim/test_data/test_change_in_word/7head.txt new file mode 100644 index 0000000000..5f7b20f0d9 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/7head.txt @@ -0,0 +1 @@ +0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/80mode.txt b/crates/vim/test_data/test_change_in_word/80mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/80mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/81text.txt b/crates/vim/test_data/test_change_in_word/81text.txt new file mode 100644 index 0000000000..38c6ccbeac --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/81text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/82head.txt b/crates/vim/test_data/test_change_in_word/82head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/82head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/83mode.txt b/crates/vim/test_data/test_change_in_word/83mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/83mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/84text.txt b/crates/vim/test_data/test_change_in_word/84text.txt new file mode 100644 index 0000000000..282218da91 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/84text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumpsover +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/85head.txt b/crates/vim/test_data/test_change_in_word/85head.txt new file mode 100644 index 0000000000..bd712da63a --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/85head.txt @@ -0,0 +1 @@ +1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/86mode.txt b/crates/vim/test_data/test_change_in_word/86mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/86mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/87text.txt b/crates/vim/test_data/test_change_in_word/87text.txt new file mode 100644 index 0000000000..0b042b7c39 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/87text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/88head.txt b/crates/vim/test_data/test_change_in_word/88head.txt new file mode 100644 index 0000000000..28ce8bcc5c --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/88head.txt @@ -0,0 +1 @@ +2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/89mode.txt b/crates/vim/test_data/test_change_in_word/89mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/89mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/8mode.txt b/crates/vim/test_data/test_change_in_word/8mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/8mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/90text.txt b/crates/vim/test_data/test_change_in_word/90text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/90text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/91head.txt b/crates/vim/test_data/test_change_in_word/91head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/91head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/92mode.txt b/crates/vim/test_data/test_change_in_word/92mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/92mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/93text.txt b/crates/vim/test_data/test_change_in_word/93text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/93text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/94head.txt b/crates/vim/test_data/test_change_in_word/94head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/94head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/95mode.txt b/crates/vim/test_data/test_change_in_word/95mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/95mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/96text.txt b/crates/vim/test_data/test_change_in_word/96text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/96text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/97head.txt b/crates/vim/test_data/test_change_in_word/97head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/97head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/98mode.txt b/crates/vim/test_data/test_change_in_word/98mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/98mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/99text.txt b/crates/vim/test_data/test_change_in_word/99text.txt new file mode 100644 index 0000000000..d90b2c4e48 --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/99text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_change_in_word/9text.txt b/crates/vim/test_data/test_change_in_word/9text.txt new file mode 100644 index 0000000000..38c6ccbeac --- /dev/null +++ b/crates/vim/test_data/test_change_in_word/9text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_sentence/0text.txt b/crates/vim/test_data/test_delete_around_sentence/0text.txt new file mode 100644 index 0000000000..d2b92e8000 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence/0text.txt @@ -0,0 +1 @@ +Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/10head.txt b/crates/vim/test_data/test_delete_around_sentence/10head.txt new file mode 100644 index 0000000000..5df80e23c6 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence/10head.txt @@ -0,0 +1 @@ +0,16 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/1head.txt b/crates/vim/test_data/test_delete_around_sentence/1head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence/1head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/2mode.txt b/crates/vim/test_data/test_delete_around_sentence/2mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence/2mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/3text.txt b/crates/vim/test_data/test_delete_around_sentence/3text.txt new file mode 100644 index 0000000000..d2b92e8000 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence/3text.txt @@ -0,0 +1 @@ +Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/4head.txt b/crates/vim/test_data/test_delete_around_sentence/4head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence/4head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/5mode.txt b/crates/vim/test_data/test_delete_around_sentence/5mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence/5mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/6text.txt b/crates/vim/test_data/test_delete_around_sentence/6text.txt new file mode 100644 index 0000000000..d2b92e8000 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence/6text.txt @@ -0,0 +1 @@ +Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/7head.txt b/crates/vim/test_data/test_delete_around_sentence/7head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence/7head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/8mode.txt b/crates/vim/test_data/test_delete_around_sentence/8mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence/8mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/9text.txt b/crates/vim/test_data/test_delete_around_sentence/9text.txt new file mode 100644 index 0000000000..5e3a12964d --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence/9text.txt @@ -0,0 +1 @@ +The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/0text.txt b/crates/vim/test_data/test_delete_around_word/0text.txt new file mode 100644 index 0000000000..366beed733 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/0text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/100head.txt b/crates/vim/test_data/test_delete_around_word/100head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/100head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/101mode.txt b/crates/vim/test_data/test_delete_around_word/101mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/101mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/102text.txt b/crates/vim/test_data/test_delete_around_word/102text.txt new file mode 100644 index 0000000000..c8a5876179 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/102text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/103head.txt b/crates/vim/test_data/test_delete_around_word/103head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/103head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/104mode.txt b/crates/vim/test_data/test_delete_around_word/104mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/104mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/105text.txt b/crates/vim/test_data/test_delete_around_word/105text.txt new file mode 100644 index 0000000000..c8a5876179 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/105text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/106head.txt b/crates/vim/test_data/test_delete_around_word/106head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/106head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/107mode.txt b/crates/vim/test_data/test_delete_around_word/107mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/107mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/108text.txt b/crates/vim/test_data/test_delete_around_word/108text.txt new file mode 100644 index 0000000000..c8a5876179 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/108text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/109head.txt b/crates/vim/test_data/test_delete_around_word/109head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/109head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/10head.txt b/crates/vim/test_data/test_delete_around_word/10head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/10head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/110mode.txt b/crates/vim/test_data/test_delete_around_word/110mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/110mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/111text.txt b/crates/vim/test_data/test_delete_around_word/111text.txt new file mode 100644 index 0000000000..f05cdd88c1 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/111text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/112head.txt b/crates/vim/test_data/test_delete_around_word/112head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/112head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/113mode.txt b/crates/vim/test_data/test_delete_around_word/113mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/113mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/114text.txt b/crates/vim/test_data/test_delete_around_word/114text.txt new file mode 100644 index 0000000000..f05cdd88c1 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/114text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/115head.txt b/crates/vim/test_data/test_delete_around_word/115head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/115head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/116mode.txt b/crates/vim/test_data/test_delete_around_word/116mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/116mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/117text.txt b/crates/vim/test_data/test_delete_around_word/117text.txt new file mode 100644 index 0000000000..0e9094161a --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/117text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/118head.txt b/crates/vim/test_data/test_delete_around_word/118head.txt new file mode 100644 index 0000000000..d933eb81fa --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/118head.txt @@ -0,0 +1 @@ +6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/119mode.txt b/crates/vim/test_data/test_delete_around_word/119mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/119mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/11mode.txt b/crates/vim/test_data/test_delete_around_word/11mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/11mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/120text.txt b/crates/vim/test_data/test_delete_around_word/120text.txt new file mode 100644 index 0000000000..fa73eb37b8 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/120text.txt @@ -0,0 +1,10 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/121head.txt b/crates/vim/test_data/test_delete_around_word/121head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/121head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/122mode.txt b/crates/vim/test_data/test_delete_around_word/122mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/122mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/123text.txt b/crates/vim/test_data/test_delete_around_word/123text.txt new file mode 100644 index 0000000000..4fe33b47eb --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/123text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/124head.txt b/crates/vim/test_data/test_delete_around_word/124head.txt new file mode 100644 index 0000000000..ded56a5926 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/124head.txt @@ -0,0 +1 @@ +8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/125mode.txt b/crates/vim/test_data/test_delete_around_word/125mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/125mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/126text.txt b/crates/vim/test_data/test_delete_around_word/126text.txt new file mode 100644 index 0000000000..35dd5816fc --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/126text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/127head.txt b/crates/vim/test_data/test_delete_around_word/127head.txt new file mode 100644 index 0000000000..8e69e0ad79 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/127head.txt @@ -0,0 +1 @@ +9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/128mode.txt b/crates/vim/test_data/test_delete_around_word/128mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/128mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/129text.txt b/crates/vim/test_data/test_delete_around_word/129text.txt new file mode 100644 index 0000000000..1bac4587a7 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/129text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/12text.txt b/crates/vim/test_data/test_delete_around_word/12text.txt new file mode 100644 index 0000000000..2feb66cfb9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/12text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/130head.txt b/crates/vim/test_data/test_delete_around_word/130head.txt new file mode 100644 index 0000000000..edb3544f9a --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/130head.txt @@ -0,0 +1 @@ +9,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/131mode.txt b/crates/vim/test_data/test_delete_around_word/131mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/131mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/132text.txt b/crates/vim/test_data/test_delete_around_word/132text.txt new file mode 100644 index 0000000000..912316a9f7 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/132text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_delete_around_word/133head.txt b/crates/vim/test_data/test_delete_around_word/133head.txt new file mode 100644 index 0000000000..63ee4f53ac --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/133head.txt @@ -0,0 +1 @@ +10,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/134mode.txt b/crates/vim/test_data/test_delete_around_word/134mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/134mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/135text.txt b/crates/vim/test_data/test_delete_around_word/135text.txt new file mode 100644 index 0000000000..3c4e8c2398 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/135text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/136head.txt b/crates/vim/test_data/test_delete_around_word/136head.txt new file mode 100644 index 0000000000..ec50c7d44f --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/136head.txt @@ -0,0 +1 @@ +10,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/137mode.txt b/crates/vim/test_data/test_delete_around_word/137mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/137mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/13head.txt b/crates/vim/test_data/test_delete_around_word/13head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/13head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/14mode.txt b/crates/vim/test_data/test_delete_around_word/14mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/14mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/15text.txt b/crates/vim/test_data/test_delete_around_word/15text.txt new file mode 100644 index 0000000000..262feeae96 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/15text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/16head.txt b/crates/vim/test_data/test_delete_around_word/16head.txt new file mode 100644 index 0000000000..413d7dd4d2 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/16head.txt @@ -0,0 +1 @@ +1,8 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/17mode.txt b/crates/vim/test_data/test_delete_around_word/17mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/17mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/18text.txt b/crates/vim/test_data/test_delete_around_word/18text.txt new file mode 100644 index 0000000000..ba0aea82d9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/18text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/19head.txt b/crates/vim/test_data/test_delete_around_word/19head.txt new file mode 100644 index 0000000000..06ce34087d --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/19head.txt @@ -0,0 +1 @@ +2,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/1head.txt b/crates/vim/test_data/test_delete_around_word/1head.txt new file mode 100644 index 0000000000..2871b36925 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/1head.txt @@ -0,0 +1 @@ +0,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/20mode.txt b/crates/vim/test_data/test_delete_around_word/20mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/20mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/21text.txt b/crates/vim/test_data/test_delete_around_word/21text.txt new file mode 100644 index 0000000000..ead25fb9d0 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/21text.txt @@ -0,0 +1,10 @@ +The quick brown +fox jumps over +the lazy dog + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/22head.txt b/crates/vim/test_data/test_delete_around_word/22head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/22head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/23mode.txt b/crates/vim/test_data/test_delete_around_word/23mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/23mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/24text.txt b/crates/vim/test_data/test_delete_around_word/24text.txt new file mode 100644 index 0000000000..ead25fb9d0 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/24text.txt @@ -0,0 +1,10 @@ +The quick brown +fox jumps over +the lazy dog + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/25head.txt b/crates/vim/test_data/test_delete_around_word/25head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/25head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/26mode.txt b/crates/vim/test_data/test_delete_around_word/26mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/26mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/27text.txt b/crates/vim/test_data/test_delete_around_word/27text.txt new file mode 100644 index 0000000000..252419d291 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/27text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + +-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/28head.txt b/crates/vim/test_data/test_delete_around_word/28head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/28head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/29mode.txt b/crates/vim/test_data/test_delete_around_word/29mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/29mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/2mode.txt b/crates/vim/test_data/test_delete_around_word/2mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/2mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/30text.txt b/crates/vim/test_data/test_delete_around_word/30text.txt new file mode 100644 index 0000000000..609747299b --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/30text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/31head.txt b/crates/vim/test_data/test_delete_around_word/31head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/31head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/32mode.txt b/crates/vim/test_data/test_delete_around_word/32mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/32mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/33text.txt b/crates/vim/test_data/test_delete_around_word/33text.txt new file mode 100644 index 0000000000..12ede0f513 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/33text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +Thequick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/34head.txt b/crates/vim/test_data/test_delete_around_word/34head.txt new file mode 100644 index 0000000000..c20df71d5e --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/34head.txt @@ -0,0 +1 @@ +6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/35mode.txt b/crates/vim/test_data/test_delete_around_word/35mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/35mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/36text.txt b/crates/vim/test_data/test_delete_around_word/36text.txt new file mode 100644 index 0000000000..4a6d943982 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/36text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/37head.txt b/crates/vim/test_data/test_delete_around_word/37head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/37head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/38mode.txt b/crates/vim/test_data/test_delete_around_word/38mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/38mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/39text.txt b/crates/vim/test_data/test_delete_around_word/39text.txt new file mode 100644 index 0000000000..4a6d943982 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/39text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/3text.txt b/crates/vim/test_data/test_delete_around_word/3text.txt new file mode 100644 index 0000000000..366beed733 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/3text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/40head.txt b/crates/vim/test_data/test_delete_around_word/40head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/40head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/41mode.txt b/crates/vim/test_data/test_delete_around_word/41mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/41mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/42text.txt b/crates/vim/test_data/test_delete_around_word/42text.txt new file mode 100644 index 0000000000..f05cdd88c1 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/42text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/43head.txt b/crates/vim/test_data/test_delete_around_word/43head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/43head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/44mode.txt b/crates/vim/test_data/test_delete_around_word/44mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/44mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/45text.txt b/crates/vim/test_data/test_delete_around_word/45text.txt new file mode 100644 index 0000000000..f05cdd88c1 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/45text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/46head.txt b/crates/vim/test_data/test_delete_around_word/46head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/46head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/47mode.txt b/crates/vim/test_data/test_delete_around_word/47mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/47mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/48text.txt b/crates/vim/test_data/test_delete_around_word/48text.txt new file mode 100644 index 0000000000..13b7d1cb51 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/48text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/49head.txt b/crates/vim/test_data/test_delete_around_word/49head.txt new file mode 100644 index 0000000000..d933eb81fa --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/49head.txt @@ -0,0 +1 @@ +6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/4head.txt b/crates/vim/test_data/test_delete_around_word/4head.txt new file mode 100644 index 0000000000..2871b36925 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/4head.txt @@ -0,0 +1 @@ +0,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/50mode.txt b/crates/vim/test_data/test_delete_around_word/50mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/50mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/51text.txt b/crates/vim/test_data/test_delete_around_word/51text.txt new file mode 100644 index 0000000000..3976ef9c85 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/51text.txt @@ -0,0 +1,10 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown +-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/52head.txt b/crates/vim/test_data/test_delete_around_word/52head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/52head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/53mode.txt b/crates/vim/test_data/test_delete_around_word/53mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/53mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/54text.txt b/crates/vim/test_data/test_delete_around_word/54text.txt new file mode 100644 index 0000000000..b5ca31babe --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/54text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + +-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/55head.txt b/crates/vim/test_data/test_delete_around_word/55head.txt new file mode 100644 index 0000000000..ded56a5926 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/55head.txt @@ -0,0 +1 @@ +8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/56mode.txt b/crates/vim/test_data/test_delete_around_word/56mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/56mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/57text.txt b/crates/vim/test_data/test_delete_around_word/57text.txt new file mode 100644 index 0000000000..0eaface506 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/57text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + +-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/58head.txt b/crates/vim/test_data/test_delete_around_word/58head.txt new file mode 100644 index 0000000000..8e69e0ad79 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/58head.txt @@ -0,0 +1 @@ +9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/59mode.txt b/crates/vim/test_data/test_delete_around_word/59mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/59mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/5mode.txt b/crates/vim/test_data/test_delete_around_word/5mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/5mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/60text.txt b/crates/vim/test_data/test_delete_around_word/60text.txt new file mode 100644 index 0000000000..d8b9b05b79 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/60text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/61head.txt b/crates/vim/test_data/test_delete_around_word/61head.txt new file mode 100644 index 0000000000..e0460d1bc5 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/61head.txt @@ -0,0 +1 @@ +9,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/62mode.txt b/crates/vim/test_data/test_delete_around_word/62mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/62mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/63text.txt b/crates/vim/test_data/test_delete_around_word/63text.txt new file mode 100644 index 0000000000..912316a9f7 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/63text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_delete_around_word/64head.txt b/crates/vim/test_data/test_delete_around_word/64head.txt new file mode 100644 index 0000000000..63ee4f53ac --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/64head.txt @@ -0,0 +1 @@ +10,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/65mode.txt b/crates/vim/test_data/test_delete_around_word/65mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/65mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/66text.txt b/crates/vim/test_data/test_delete_around_word/66text.txt new file mode 100644 index 0000000000..3c4e8c2398 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/66text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/67head.txt b/crates/vim/test_data/test_delete_around_word/67head.txt new file mode 100644 index 0000000000..ec50c7d44f --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/67head.txt @@ -0,0 +1 @@ +10,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/68mode.txt b/crates/vim/test_data/test_delete_around_word/68mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/68mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/69text.txt b/crates/vim/test_data/test_delete_around_word/69text.txt new file mode 100644 index 0000000000..366beed733 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/69text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/6text.txt b/crates/vim/test_data/test_delete_around_word/6text.txt new file mode 100644 index 0000000000..3678c219a3 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/6text.txt @@ -0,0 +1,11 @@ +The quick brown jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/70head.txt b/crates/vim/test_data/test_delete_around_word/70head.txt new file mode 100644 index 0000000000..2871b36925 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/70head.txt @@ -0,0 +1 @@ +0,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/71mode.txt b/crates/vim/test_data/test_delete_around_word/71mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/71mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/72text.txt b/crates/vim/test_data/test_delete_around_word/72text.txt new file mode 100644 index 0000000000..366beed733 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/72text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/73head.txt b/crates/vim/test_data/test_delete_around_word/73head.txt new file mode 100644 index 0000000000..2871b36925 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/73head.txt @@ -0,0 +1 @@ +0,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/74mode.txt b/crates/vim/test_data/test_delete_around_word/74mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/74mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/75text.txt b/crates/vim/test_data/test_delete_around_word/75text.txt new file mode 100644 index 0000000000..3678c219a3 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/75text.txt @@ -0,0 +1,11 @@ +The quick brown jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/76head.txt b/crates/vim/test_data/test_delete_around_word/76head.txt new file mode 100644 index 0000000000..5f7b20f0d9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/76head.txt @@ -0,0 +1 @@ +0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/77mode.txt b/crates/vim/test_data/test_delete_around_word/77mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/77mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/78text.txt b/crates/vim/test_data/test_delete_around_word/78text.txt new file mode 100644 index 0000000000..2feb66cfb9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/78text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/79head.txt b/crates/vim/test_data/test_delete_around_word/79head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/79head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/7head.txt b/crates/vim/test_data/test_delete_around_word/7head.txt new file mode 100644 index 0000000000..5f7b20f0d9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/7head.txt @@ -0,0 +1 @@ +0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/80mode.txt b/crates/vim/test_data/test_delete_around_word/80mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/80mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/81text.txt b/crates/vim/test_data/test_delete_around_word/81text.txt new file mode 100644 index 0000000000..2feb66cfb9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/81text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/82head.txt b/crates/vim/test_data/test_delete_around_word/82head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/82head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/83mode.txt b/crates/vim/test_data/test_delete_around_word/83mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/83mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/84text.txt b/crates/vim/test_data/test_delete_around_word/84text.txt new file mode 100644 index 0000000000..262feeae96 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/84text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/85head.txt b/crates/vim/test_data/test_delete_around_word/85head.txt new file mode 100644 index 0000000000..413d7dd4d2 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/85head.txt @@ -0,0 +1 @@ +1,8 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/86mode.txt b/crates/vim/test_data/test_delete_around_word/86mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/86mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/87text.txt b/crates/vim/test_data/test_delete_around_word/87text.txt new file mode 100644 index 0000000000..ba0aea82d9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/87text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/88head.txt b/crates/vim/test_data/test_delete_around_word/88head.txt new file mode 100644 index 0000000000..06ce34087d --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/88head.txt @@ -0,0 +1 @@ +2,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/89mode.txt b/crates/vim/test_data/test_delete_around_word/89mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/89mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/8mode.txt b/crates/vim/test_data/test_delete_around_word/8mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/8mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/90text.txt b/crates/vim/test_data/test_delete_around_word/90text.txt new file mode 100644 index 0000000000..ead25fb9d0 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/90text.txt @@ -0,0 +1,10 @@ +The quick brown +fox jumps over +the lazy dog + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/91head.txt b/crates/vim/test_data/test_delete_around_word/91head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/91head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/92mode.txt b/crates/vim/test_data/test_delete_around_word/92mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/92mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/93text.txt b/crates/vim/test_data/test_delete_around_word/93text.txt new file mode 100644 index 0000000000..ead25fb9d0 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/93text.txt @@ -0,0 +1,10 @@ +The quick brown +fox jumps over +the lazy dog + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/94head.txt b/crates/vim/test_data/test_delete_around_word/94head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/94head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/95mode.txt b/crates/vim/test_data/test_delete_around_word/95mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/95mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/96text.txt b/crates/vim/test_data/test_delete_around_word/96text.txt new file mode 100644 index 0000000000..523f6002f4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/96text.txt @@ -0,0 +1,11 @@ +The quick brown +fox jumps over +the lazy dog + + + brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/97head.txt b/crates/vim/test_data/test_delete_around_word/97head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/97head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/98mode.txt b/crates/vim/test_data/test_delete_around_word/98mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/98mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/99text.txt b/crates/vim/test_data/test_delete_around_word/99text.txt new file mode 100644 index 0000000000..c8a5876179 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/99text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_around_word/9text.txt b/crates/vim/test_data/test_delete_around_word/9text.txt new file mode 100644 index 0000000000..2feb66cfb9 --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word/9text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_sentence/0text.txt b/crates/vim/test_data/test_delete_in_sentence/0text.txt new file mode 100644 index 0000000000..fd36730b8d --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/0text.txt @@ -0,0 +1 @@ + Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/10head.txt b/crates/vim/test_data/test_delete_in_sentence/10head.txt new file mode 100644 index 0000000000..5df80e23c6 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/10head.txt @@ -0,0 +1 @@ +0,16 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/11mode.txt b/crates/vim/test_data/test_delete_in_sentence/11mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/11mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/12text.txt b/crates/vim/test_data/test_delete_in_sentence/12text.txt new file mode 100644 index 0000000000..40eacc6489 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/12text.txt @@ -0,0 +1 @@ +The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/13head.txt b/crates/vim/test_data/test_delete_in_sentence/13head.txt new file mode 100644 index 0000000000..40d2f2ab55 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/13head.txt @@ -0,0 +1 @@ +0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/14mode.txt b/crates/vim/test_data/test_delete_in_sentence/14mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/14mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/15text.txt b/crates/vim/test_data/test_delete_in_sentence/15text.txt new file mode 100644 index 0000000000..40eacc6489 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/15text.txt @@ -0,0 +1 @@ +The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/16head.txt b/crates/vim/test_data/test_delete_in_sentence/16head.txt new file mode 100644 index 0000000000..40d2f2ab55 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/16head.txt @@ -0,0 +1 @@ +0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/17mode.txt b/crates/vim/test_data/test_delete_in_sentence/17mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/17mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/18text.txt b/crates/vim/test_data/test_delete_in_sentence/18text.txt new file mode 100644 index 0000000000..40eacc6489 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/18text.txt @@ -0,0 +1 @@ +The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/19head.txt b/crates/vim/test_data/test_delete_in_sentence/19head.txt new file mode 100644 index 0000000000..40d2f2ab55 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/19head.txt @@ -0,0 +1 @@ +0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/1head.txt b/crates/vim/test_data/test_delete_in_sentence/1head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/1head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/20mode.txt b/crates/vim/test_data/test_delete_in_sentence/20mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/20mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/21text.txt b/crates/vim/test_data/test_delete_in_sentence/21text.txt new file mode 100644 index 0000000000..ef17a5f7fb --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/21text.txt @@ -0,0 +1 @@ +The quick brown? Fox Jumps!Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/22head.txt b/crates/vim/test_data/test_delete_in_sentence/22head.txt new file mode 100644 index 0000000000..17beb4d83f --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/22head.txt @@ -0,0 +1 @@ +0,27 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/23mode.txt b/crates/vim/test_data/test_delete_in_sentence/23mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/23mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/24text.txt b/crates/vim/test_data/test_delete_in_sentence/24text.txt new file mode 100644 index 0000000000..d81c10974f --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/24text.txt @@ -0,0 +1 @@ +The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/25head.txt b/crates/vim/test_data/test_delete_in_sentence/25head.txt new file mode 100644 index 0000000000..17beb4d83f --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/25head.txt @@ -0,0 +1 @@ +0,27 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/26mode.txt b/crates/vim/test_data/test_delete_in_sentence/26mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/26mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/27text.txt b/crates/vim/test_data/test_delete_in_sentence/27text.txt new file mode 100644 index 0000000000..d81c10974f --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/27text.txt @@ -0,0 +1 @@ +The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/28head.txt b/crates/vim/test_data/test_delete_in_sentence/28head.txt new file mode 100644 index 0000000000..17beb4d83f --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/28head.txt @@ -0,0 +1 @@ +0,27 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/29mode.txt b/crates/vim/test_data/test_delete_in_sentence/29mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/29mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/2mode.txt b/crates/vim/test_data/test_delete_in_sentence/2mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/2mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/30text.txt b/crates/vim/test_data/test_delete_in_sentence/30text.txt new file mode 100644 index 0000000000..d81c10974f --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/30text.txt @@ -0,0 +1 @@ +The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/31head.txt b/crates/vim/test_data/test_delete_in_sentence/31head.txt new file mode 100644 index 0000000000..17beb4d83f --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/31head.txt @@ -0,0 +1 @@ +0,27 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/32mode.txt b/crates/vim/test_data/test_delete_in_sentence/32mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/32mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/33text.txt b/crates/vim/test_data/test_delete_in_sentence/33text.txt new file mode 100644 index 0000000000..561ed0800c --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/33text.txt @@ -0,0 +1,2 @@ + The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/34head.txt b/crates/vim/test_data/test_delete_in_sentence/34head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/34head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/35mode.txt b/crates/vim/test_data/test_delete_in_sentence/35mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/35mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/36text.txt b/crates/vim/test_data/test_delete_in_sentence/36text.txt new file mode 100644 index 0000000000..561ed0800c --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/36text.txt @@ -0,0 +1,2 @@ + The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/37head.txt b/crates/vim/test_data/test_delete_in_sentence/37head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/37head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/38mode.txt b/crates/vim/test_data/test_delete_in_sentence/38mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/38mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/39text.txt b/crates/vim/test_data/test_delete_in_sentence/39text.txt new file mode 100644 index 0000000000..561ed0800c --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/39text.txt @@ -0,0 +1,2 @@ + The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/3text.txt b/crates/vim/test_data/test_delete_in_sentence/3text.txt new file mode 100644 index 0000000000..fd36730b8d --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/3text.txt @@ -0,0 +1 @@ + Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/40head.txt b/crates/vim/test_data/test_delete_in_sentence/40head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/40head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/41mode.txt b/crates/vim/test_data/test_delete_in_sentence/41mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/41mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/42text.txt b/crates/vim/test_data/test_delete_in_sentence/42text.txt new file mode 100644 index 0000000000..561ed0800c --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/42text.txt @@ -0,0 +1,2 @@ + The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/43head.txt b/crates/vim/test_data/test_delete_in_sentence/43head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/43head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/44mode.txt b/crates/vim/test_data/test_delete_in_sentence/44mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/44mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/45text.txt b/crates/vim/test_data/test_delete_in_sentence/45text.txt new file mode 100644 index 0000000000..561ed0800c --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/45text.txt @@ -0,0 +1,2 @@ + The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/46head.txt b/crates/vim/test_data/test_delete_in_sentence/46head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/46head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/47mode.txt b/crates/vim/test_data/test_delete_in_sentence/47mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/47mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/48text.txt b/crates/vim/test_data/test_delete_in_sentence/48text.txt new file mode 100644 index 0000000000..bbf10c5693 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/48text.txt @@ -0,0 +1,4 @@ +The quick brown +fox jumps over +the lazy dog.The quick +brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/49head.txt b/crates/vim/test_data/test_delete_in_sentence/49head.txt new file mode 100644 index 0000000000..26560586d9 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/49head.txt @@ -0,0 +1 @@ +2,13 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/4head.txt b/crates/vim/test_data/test_delete_in_sentence/4head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/4head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/50mode.txt b/crates/vim/test_data/test_delete_in_sentence/50mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/50mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/51text.txt b/crates/vim/test_data/test_delete_in_sentence/51text.txt new file mode 100644 index 0000000000..0b535bbbaf --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/51text.txt @@ -0,0 +1,3 @@ +The quick brown +fox jumps over +the lazy dog. diff --git a/crates/vim/test_data/test_delete_in_sentence/52head.txt b/crates/vim/test_data/test_delete_in_sentence/52head.txt new file mode 100644 index 0000000000..26560586d9 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/52head.txt @@ -0,0 +1 @@ +2,13 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/53mode.txt b/crates/vim/test_data/test_delete_in_sentence/53mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/53mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/54text.txt b/crates/vim/test_data/test_delete_in_sentence/54text.txt new file mode 100644 index 0000000000..0b535bbbaf --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/54text.txt @@ -0,0 +1,3 @@ +The quick brown +fox jumps over +the lazy dog. diff --git a/crates/vim/test_data/test_delete_in_sentence/55head.txt b/crates/vim/test_data/test_delete_in_sentence/55head.txt new file mode 100644 index 0000000000..26560586d9 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/55head.txt @@ -0,0 +1 @@ +2,13 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/56mode.txt b/crates/vim/test_data/test_delete_in_sentence/56mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/56mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/5mode.txt b/crates/vim/test_data/test_delete_in_sentence/5mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/5mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/6text.txt b/crates/vim/test_data/test_delete_in_sentence/6text.txt new file mode 100644 index 0000000000..fd36730b8d --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/6text.txt @@ -0,0 +1 @@ + Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/7head.txt b/crates/vim/test_data/test_delete_in_sentence/7head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/7head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/8mode.txt b/crates/vim/test_data/test_delete_in_sentence/8mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/8mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/9text.txt b/crates/vim/test_data/test_delete_in_sentence/9text.txt new file mode 100644 index 0000000000..9e4b6dcc50 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence/9text.txt @@ -0,0 +1 @@ +The quick brown?Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/0text.txt b/crates/vim/test_data/test_delete_in_word/0text.txt new file mode 100644 index 0000000000..481389e676 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/0text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/100head.txt b/crates/vim/test_data/test_delete_in_word/100head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/100head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/101mode.txt b/crates/vim/test_data/test_delete_in_word/101mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/101mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/102text.txt b/crates/vim/test_data/test_delete_in_word/102text.txt new file mode 100644 index 0000000000..d90b2c4e48 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/102text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/103head.txt b/crates/vim/test_data/test_delete_in_word/103head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/103head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/104mode.txt b/crates/vim/test_data/test_delete_in_word/104mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/104mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/105text.txt b/crates/vim/test_data/test_delete_in_word/105text.txt new file mode 100644 index 0000000000..d90b2c4e48 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/105text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/106head.txt b/crates/vim/test_data/test_delete_in_word/106head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/106head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/107mode.txt b/crates/vim/test_data/test_delete_in_word/107mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/107mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/108text.txt b/crates/vim/test_data/test_delete_in_word/108text.txt new file mode 100644 index 0000000000..d90b2c4e48 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/108text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/109head.txt b/crates/vim/test_data/test_delete_in_word/109head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/109head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/10head.txt b/crates/vim/test_data/test_delete_in_word/10head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/10head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/110mode.txt b/crates/vim/test_data/test_delete_in_word/110mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/110mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/111text.txt b/crates/vim/test_data/test_delete_in_word/111text.txt new file mode 100644 index 0000000000..7d13d92d35 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/111text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quickbrown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/112head.txt b/crates/vim/test_data/test_delete_in_word/112head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/112head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/113mode.txt b/crates/vim/test_data/test_delete_in_word/113mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/113mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/114text.txt b/crates/vim/test_data/test_delete_in_word/114text.txt new file mode 100644 index 0000000000..95b76ce25b --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/114text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/115head.txt b/crates/vim/test_data/test_delete_in_word/115head.txt new file mode 100644 index 0000000000..c5a50698dd --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/115head.txt @@ -0,0 +1 @@ +6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/116mode.txt b/crates/vim/test_data/test_delete_in_word/116mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/116mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/117text.txt b/crates/vim/test_data/test_delete_in_word/117text.txt new file mode 100644 index 0000000000..805a5ebe4c --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/117text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/118head.txt b/crates/vim/test_data/test_delete_in_word/118head.txt new file mode 100644 index 0000000000..afce6fe58c --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/118head.txt @@ -0,0 +1 @@ +6,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/119mode.txt b/crates/vim/test_data/test_delete_in_word/119mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/119mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/11mode.txt b/crates/vim/test_data/test_delete_in_word/11mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/11mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/120text.txt b/crates/vim/test_data/test_delete_in_word/120text.txt new file mode 100644 index 0000000000..1d797e34b8 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/120text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/121head.txt b/crates/vim/test_data/test_delete_in_word/121head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/121head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/122mode.txt b/crates/vim/test_data/test_delete_in_word/122mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/122mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/123text.txt b/crates/vim/test_data/test_delete_in_word/123text.txt new file mode 100644 index 0000000000..8a35adfa26 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/123text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/124head.txt b/crates/vim/test_data/test_delete_in_word/124head.txt new file mode 100644 index 0000000000..ded56a5926 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/124head.txt @@ -0,0 +1 @@ +8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/125mode.txt b/crates/vim/test_data/test_delete_in_word/125mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/125mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/126text.txt b/crates/vim/test_data/test_delete_in_word/126text.txt new file mode 100644 index 0000000000..26e9d0a1b6 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/126text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + +fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/127head.txt b/crates/vim/test_data/test_delete_in_word/127head.txt new file mode 100644 index 0000000000..8e69e0ad79 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/127head.txt @@ -0,0 +1 @@ +9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/128mode.txt b/crates/vim/test_data/test_delete_in_word/128mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/128mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/129text.txt b/crates/vim/test_data/test_delete_in_word/129text.txt new file mode 100644 index 0000000000..c2c9c0edb0 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/129text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/12text.txt b/crates/vim/test_data/test_delete_in_word/12text.txt new file mode 100644 index 0000000000..38c6ccbeac --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/12text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/130head.txt b/crates/vim/test_data/test_delete_in_word/130head.txt new file mode 100644 index 0000000000..edb3544f9a --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/130head.txt @@ -0,0 +1 @@ +9,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/131mode.txt b/crates/vim/test_data/test_delete_in_word/131mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/131mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/132text.txt b/crates/vim/test_data/test_delete_in_word/132text.txt new file mode 100644 index 0000000000..4b2cd80611 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/132text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/133head.txt b/crates/vim/test_data/test_delete_in_word/133head.txt new file mode 100644 index 0000000000..63ee4f53ac --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/133head.txt @@ -0,0 +1 @@ +10,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/134mode.txt b/crates/vim/test_data/test_delete_in_word/134mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/134mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/135text.txt b/crates/vim/test_data/test_delete_in_word/135text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/135text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/136head.txt b/crates/vim/test_data/test_delete_in_word/136head.txt new file mode 100644 index 0000000000..94dbddc699 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/136head.txt @@ -0,0 +1 @@ +11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/137mode.txt b/crates/vim/test_data/test_delete_in_word/137mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/137mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/13head.txt b/crates/vim/test_data/test_delete_in_word/13head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/13head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/14mode.txt b/crates/vim/test_data/test_delete_in_word/14mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/14mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/15text.txt b/crates/vim/test_data/test_delete_in_word/15text.txt new file mode 100644 index 0000000000..282218da91 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/15text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumpsover +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/16head.txt b/crates/vim/test_data/test_delete_in_word/16head.txt new file mode 100644 index 0000000000..bd712da63a --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/16head.txt @@ -0,0 +1 @@ +1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/17mode.txt b/crates/vim/test_data/test_delete_in_word/17mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/17mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/18text.txt b/crates/vim/test_data/test_delete_in_word/18text.txt new file mode 100644 index 0000000000..0b042b7c39 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/18text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/19head.txt b/crates/vim/test_data/test_delete_in_word/19head.txt new file mode 100644 index 0000000000..06ce34087d --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/19head.txt @@ -0,0 +1 @@ +2,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/1head.txt b/crates/vim/test_data/test_delete_in_word/1head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/1head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/20mode.txt b/crates/vim/test_data/test_delete_in_word/20mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/20mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/21text.txt b/crates/vim/test_data/test_delete_in_word/21text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/21text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/22head.txt b/crates/vim/test_data/test_delete_in_word/22head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/22head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/23mode.txt b/crates/vim/test_data/test_delete_in_word/23mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/23mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/24text.txt b/crates/vim/test_data/test_delete_in_word/24text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/24text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/25head.txt b/crates/vim/test_data/test_delete_in_word/25head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/25head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/26mode.txt b/crates/vim/test_data/test_delete_in_word/26mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/26mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/27text.txt b/crates/vim/test_data/test_delete_in_word/27text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/27text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/28head.txt b/crates/vim/test_data/test_delete_in_word/28head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/28head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/29mode.txt b/crates/vim/test_data/test_delete_in_word/29mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/29mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/2mode.txt b/crates/vim/test_data/test_delete_in_word/2mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/2mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/30text.txt b/crates/vim/test_data/test_delete_in_word/30text.txt new file mode 100644 index 0000000000..609747299b --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/30text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/31head.txt b/crates/vim/test_data/test_delete_in_word/31head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/31head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/32mode.txt b/crates/vim/test_data/test_delete_in_word/32mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/32mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/33text.txt b/crates/vim/test_data/test_delete_in_word/33text.txt new file mode 100644 index 0000000000..12ede0f513 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/33text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +Thequick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/34head.txt b/crates/vim/test_data/test_delete_in_word/34head.txt new file mode 100644 index 0000000000..c20df71d5e --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/34head.txt @@ -0,0 +1 @@ +6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/35mode.txt b/crates/vim/test_data/test_delete_in_word/35mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/35mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/36text.txt b/crates/vim/test_data/test_delete_in_word/36text.txt new file mode 100644 index 0000000000..3b3f900a05 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/36text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The- brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/37head.txt b/crates/vim/test_data/test_delete_in_word/37head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/37head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/38mode.txt b/crates/vim/test_data/test_delete_in_word/38mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/38mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/39text.txt b/crates/vim/test_data/test_delete_in_word/39text.txt new file mode 100644 index 0000000000..3b3f900a05 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/39text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The- brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/3text.txt b/crates/vim/test_data/test_delete_in_word/3text.txt new file mode 100644 index 0000000000..481389e676 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/3text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/40head.txt b/crates/vim/test_data/test_delete_in_word/40head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/40head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/41mode.txt b/crates/vim/test_data/test_delete_in_word/41mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/41mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/42text.txt b/crates/vim/test_data/test_delete_in_word/42text.txt new file mode 100644 index 0000000000..7d13d92d35 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/42text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quickbrown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/43head.txt b/crates/vim/test_data/test_delete_in_word/43head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/43head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/44mode.txt b/crates/vim/test_data/test_delete_in_word/44mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/44mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/45text.txt b/crates/vim/test_data/test_delete_in_word/45text.txt new file mode 100644 index 0000000000..95b76ce25b --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/45text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/46head.txt b/crates/vim/test_data/test_delete_in_word/46head.txt new file mode 100644 index 0000000000..c5a50698dd --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/46head.txt @@ -0,0 +1 @@ +6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/47mode.txt b/crates/vim/test_data/test_delete_in_word/47mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/47mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/48text.txt b/crates/vim/test_data/test_delete_in_word/48text.txt new file mode 100644 index 0000000000..805a5ebe4c --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/48text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/49head.txt b/crates/vim/test_data/test_delete_in_word/49head.txt new file mode 100644 index 0000000000..afce6fe58c --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/49head.txt @@ -0,0 +1 @@ +6,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/4head.txt b/crates/vim/test_data/test_delete_in_word/4head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/4head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/50mode.txt b/crates/vim/test_data/test_delete_in_word/50mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/50mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/51text.txt b/crates/vim/test_data/test_delete_in_word/51text.txt new file mode 100644 index 0000000000..1d797e34b8 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/51text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/52head.txt b/crates/vim/test_data/test_delete_in_word/52head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/52head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/53mode.txt b/crates/vim/test_data/test_delete_in_word/53mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/53mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/54text.txt b/crates/vim/test_data/test_delete_in_word/54text.txt new file mode 100644 index 0000000000..8a35adfa26 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/54text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/55head.txt b/crates/vim/test_data/test_delete_in_word/55head.txt new file mode 100644 index 0000000000..ded56a5926 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/55head.txt @@ -0,0 +1 @@ +8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/56mode.txt b/crates/vim/test_data/test_delete_in_word/56mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/56mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/57text.txt b/crates/vim/test_data/test_delete_in_word/57text.txt new file mode 100644 index 0000000000..26e9d0a1b6 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/57text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + +fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/58head.txt b/crates/vim/test_data/test_delete_in_word/58head.txt new file mode 100644 index 0000000000..8e69e0ad79 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/58head.txt @@ -0,0 +1 @@ +9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/59mode.txt b/crates/vim/test_data/test_delete_in_word/59mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/59mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/5mode.txt b/crates/vim/test_data/test_delete_in_word/5mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/5mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/60text.txt b/crates/vim/test_data/test_delete_in_word/60text.txt new file mode 100644 index 0000000000..816bf47cf0 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/60text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox- over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/61head.txt b/crates/vim/test_data/test_delete_in_word/61head.txt new file mode 100644 index 0000000000..e0460d1bc5 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/61head.txt @@ -0,0 +1 @@ +9,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/62mode.txt b/crates/vim/test_data/test_delete_in_word/62mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/62mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/63text.txt b/crates/vim/test_data/test_delete_in_word/63text.txt new file mode 100644 index 0000000000..4b2cd80611 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/63text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/64head.txt b/crates/vim/test_data/test_delete_in_word/64head.txt new file mode 100644 index 0000000000..63ee4f53ac --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/64head.txt @@ -0,0 +1 @@ +10,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/65mode.txt b/crates/vim/test_data/test_delete_in_word/65mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/65mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/66text.txt b/crates/vim/test_data/test_delete_in_word/66text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/66text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/67head.txt b/crates/vim/test_data/test_delete_in_word/67head.txt new file mode 100644 index 0000000000..94dbddc699 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/67head.txt @@ -0,0 +1 @@ +11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/68mode.txt b/crates/vim/test_data/test_delete_in_word/68mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/68mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/69text.txt b/crates/vim/test_data/test_delete_in_word/69text.txt new file mode 100644 index 0000000000..481389e676 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/69text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/6text.txt b/crates/vim/test_data/test_delete_in_word/6text.txt new file mode 100644 index 0000000000..35fd5c89ba --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/6text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/70head.txt b/crates/vim/test_data/test_delete_in_word/70head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/70head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/71mode.txt b/crates/vim/test_data/test_delete_in_word/71mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/71mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/72text.txt b/crates/vim/test_data/test_delete_in_word/72text.txt new file mode 100644 index 0000000000..481389e676 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/72text.txt @@ -0,0 +1,12 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/73head.txt b/crates/vim/test_data/test_delete_in_word/73head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/73head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/74mode.txt b/crates/vim/test_data/test_delete_in_word/74mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/74mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/75text.txt b/crates/vim/test_data/test_delete_in_word/75text.txt new file mode 100644 index 0000000000..35fd5c89ba --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/75text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/76head.txt b/crates/vim/test_data/test_delete_in_word/76head.txt new file mode 100644 index 0000000000..8b208cec2d --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/76head.txt @@ -0,0 +1 @@ +0,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/77mode.txt b/crates/vim/test_data/test_delete_in_word/77mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/77mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/78text.txt b/crates/vim/test_data/test_delete_in_word/78text.txt new file mode 100644 index 0000000000..38c6ccbeac --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/78text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/79head.txt b/crates/vim/test_data/test_delete_in_word/79head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/79head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/7head.txt b/crates/vim/test_data/test_delete_in_word/7head.txt new file mode 100644 index 0000000000..8b208cec2d --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/7head.txt @@ -0,0 +1 @@ +0,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/80mode.txt b/crates/vim/test_data/test_delete_in_word/80mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/80mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/81text.txt b/crates/vim/test_data/test_delete_in_word/81text.txt new file mode 100644 index 0000000000..38c6ccbeac --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/81text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/82head.txt b/crates/vim/test_data/test_delete_in_word/82head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/82head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/83mode.txt b/crates/vim/test_data/test_delete_in_word/83mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/83mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/84text.txt b/crates/vim/test_data/test_delete_in_word/84text.txt new file mode 100644 index 0000000000..282218da91 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/84text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumpsover +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/85head.txt b/crates/vim/test_data/test_delete_in_word/85head.txt new file mode 100644 index 0000000000..bd712da63a --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/85head.txt @@ -0,0 +1 @@ +1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/86mode.txt b/crates/vim/test_data/test_delete_in_word/86mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/86mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/87text.txt b/crates/vim/test_data/test_delete_in_word/87text.txt new file mode 100644 index 0000000000..0b042b7c39 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/87text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/88head.txt b/crates/vim/test_data/test_delete_in_word/88head.txt new file mode 100644 index 0000000000..06ce34087d --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/88head.txt @@ -0,0 +1 @@ +2,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/89mode.txt b/crates/vim/test_data/test_delete_in_word/89mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/89mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/8mode.txt b/crates/vim/test_data/test_delete_in_word/8mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/8mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/90text.txt b/crates/vim/test_data/test_delete_in_word/90text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/90text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/91head.txt b/crates/vim/test_data/test_delete_in_word/91head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/91head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/92mode.txt b/crates/vim/test_data/test_delete_in_word/92mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/92mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/93text.txt b/crates/vim/test_data/test_delete_in_word/93text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/93text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/94head.txt b/crates/vim/test_data/test_delete_in_word/94head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/94head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/95mode.txt b/crates/vim/test_data/test_delete_in_word/95mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/95mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/96text.txt b/crates/vim/test_data/test_delete_in_word/96text.txt new file mode 100644 index 0000000000..e971227436 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/96text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/97head.txt b/crates/vim/test_data/test_delete_in_word/97head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/97head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/98mode.txt b/crates/vim/test_data/test_delete_in_word/98mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/98mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/99text.txt b/crates/vim/test_data/test_delete_in_word/99text.txt new file mode 100644 index 0000000000..d90b2c4e48 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/99text.txt @@ -0,0 +1,12 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_delete_in_word/9text.txt b/crates/vim/test_data/test_delete_in_word/9text.txt new file mode 100644 index 0000000000..38c6ccbeac --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word/9text.txt @@ -0,0 +1,12 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + + + fox-jumps over +the lazy dog + diff --git a/crates/vim/test_data/test_neovim/0text.txt b/crates/vim/test_data/test_neovim/0text.txt new file mode 100644 index 0000000000..30d74d2584 --- /dev/null +++ b/crates/vim/test_data/test_neovim/0text.txt @@ -0,0 +1 @@ +test \ No newline at end of file diff --git a/crates/vim/test_data/test_neovim/1head.txt b/crates/vim/test_data/test_neovim/1head.txt new file mode 100644 index 0000000000..7de346d2f5 --- /dev/null +++ b/crates/vim/test_data/test_neovim/1head.txt @@ -0,0 +1 @@ +0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_neovim/2mode.txt b/crates/vim/test_data/test_neovim/2mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_neovim/2mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/0text.txt b/crates/vim/test_data/test_word_text_object/0text.txt new file mode 100644 index 0000000000..456c2b1038 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/0text.txt @@ -0,0 +1,9 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/100head.txt b/crates/vim/test_data/test_word_text_object/100head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/100head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/101mode.txt b/crates/vim/test_data/test_word_text_object/101mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/101mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/102text.txt b/crates/vim/test_data/test_word_text_object/102text.txt new file mode 100644 index 0000000000..fb34ebac01 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/102text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/103head.txt b/crates/vim/test_data/test_word_text_object/103head.txt new file mode 100644 index 0000000000..c5a50698dd --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/103head.txt @@ -0,0 +1 @@ +6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/104mode.txt b/crates/vim/test_data/test_word_text_object/104mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/104mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/105text.txt b/crates/vim/test_data/test_word_text_object/105text.txt new file mode 100644 index 0000000000..de6c722fe0 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/105text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/106head.txt b/crates/vim/test_data/test_word_text_object/106head.txt new file mode 100644 index 0000000000..d933eb81fa --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/106head.txt @@ -0,0 +1 @@ +6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/107mode.txt b/crates/vim/test_data/test_word_text_object/107mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/107mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/108text.txt b/crates/vim/test_data/test_word_text_object/108text.txt new file mode 100644 index 0000000000..6d1c944902 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/108text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown +fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/109head.txt b/crates/vim/test_data/test_word_text_object/109head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/109head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/10head.txt b/crates/vim/test_data/test_word_text_object/10head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/10head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/110mode.txt b/crates/vim/test_data/test_word_text_object/110mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/110mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/111text.txt b/crates/vim/test_data/test_word_text_object/111text.txt new file mode 100644 index 0000000000..a4effc421e --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/111text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/112head.txt b/crates/vim/test_data/test_word_text_object/112head.txt new file mode 100644 index 0000000000..60ada3d5d5 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/112head.txt @@ -0,0 +1 @@ +7,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/113mode.txt b/crates/vim/test_data/test_word_text_object/113mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/113mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/114text.txt b/crates/vim/test_data/test_word_text_object/114text.txt new file mode 100644 index 0000000000..41651c8e63 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/114text.txt @@ -0,0 +1,9 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/115head.txt b/crates/vim/test_data/test_word_text_object/115head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/115head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/116mode.txt b/crates/vim/test_data/test_word_text_object/116mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/116mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/117text.txt b/crates/vim/test_data/test_word_text_object/117text.txt new file mode 100644 index 0000000000..41651c8e63 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/117text.txt @@ -0,0 +1,9 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/118head.txt b/crates/vim/test_data/test_word_text_object/118head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/118head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/119mode.txt b/crates/vim/test_data/test_word_text_object/119mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/119mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/11mode.txt b/crates/vim/test_data/test_word_text_object/11mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/11mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/120text.txt b/crates/vim/test_data/test_word_text_object/120text.txt new file mode 100644 index 0000000000..f4e4cfe812 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/120text.txt @@ -0,0 +1,8 @@ +The quick brown jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/121head.txt b/crates/vim/test_data/test_word_text_object/121head.txt new file mode 100644 index 0000000000..5f7b20f0d9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/121head.txt @@ -0,0 +1 @@ +0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/122mode.txt b/crates/vim/test_data/test_word_text_object/122mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/122mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/123text.txt b/crates/vim/test_data/test_word_text_object/123text.txt new file mode 100644 index 0000000000..1a715d7a9d --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/123text.txt @@ -0,0 +1,9 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/124head.txt b/crates/vim/test_data/test_word_text_object/124head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/124head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/125mode.txt b/crates/vim/test_data/test_word_text_object/125mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/125mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/126text.txt b/crates/vim/test_data/test_word_text_object/126text.txt new file mode 100644 index 0000000000..1a715d7a9d --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/126text.txt @@ -0,0 +1,9 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/127head.txt b/crates/vim/test_data/test_word_text_object/127head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/127head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/128mode.txt b/crates/vim/test_data/test_word_text_object/128mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/128mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/129text.txt b/crates/vim/test_data/test_word_text_object/129text.txt new file mode 100644 index 0000000000..cfeeac1a14 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/129text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/12text.txt b/crates/vim/test_data/test_word_text_object/12text.txt new file mode 100644 index 0000000000..bffcedd2db --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/12text.txt @@ -0,0 +1,9 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/130head.txt b/crates/vim/test_data/test_word_text_object/130head.txt new file mode 100644 index 0000000000..bd712da63a --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/130head.txt @@ -0,0 +1 @@ +1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/131mode.txt b/crates/vim/test_data/test_word_text_object/131mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/131mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/132text.txt b/crates/vim/test_data/test_word_text_object/132text.txt new file mode 100644 index 0000000000..b57b97d090 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/132text.txt @@ -0,0 +1,8 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/133head.txt b/crates/vim/test_data/test_word_text_object/133head.txt new file mode 100644 index 0000000000..28ce8bcc5c --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/133head.txt @@ -0,0 +1 @@ +2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/134mode.txt b/crates/vim/test_data/test_word_text_object/134mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/134mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/135text.txt b/crates/vim/test_data/test_word_text_object/135text.txt new file mode 100644 index 0000000000..e2405acd79 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/135text.txt @@ -0,0 +1,8 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/136head.txt b/crates/vim/test_data/test_word_text_object/136head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/136head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/137mode.txt b/crates/vim/test_data/test_word_text_object/137mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/137mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/138text.txt b/crates/vim/test_data/test_word_text_object/138text.txt new file mode 100644 index 0000000000..e2405acd79 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/138text.txt @@ -0,0 +1,8 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/139head.txt b/crates/vim/test_data/test_word_text_object/139head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/139head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/13head.txt b/crates/vim/test_data/test_word_text_object/13head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/13head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/140mode.txt b/crates/vim/test_data/test_word_text_object/140mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/140mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/141text.txt b/crates/vim/test_data/test_word_text_object/141text.txt new file mode 100644 index 0000000000..e075f5e01a --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/141text.txt @@ -0,0 +1,8 @@ +The quick brown +fox jumps over +the lazy dog + + +-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/142head.txt b/crates/vim/test_data/test_word_text_object/142head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/142head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/143mode.txt b/crates/vim/test_data/test_word_text_object/143mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/143mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/144text.txt b/crates/vim/test_data/test_word_text_object/144text.txt new file mode 100644 index 0000000000..6042949b9a --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/144text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/145head.txt b/crates/vim/test_data/test_word_text_object/145head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/145head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/146mode.txt b/crates/vim/test_data/test_word_text_object/146mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/146mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/147text.txt b/crates/vim/test_data/test_word_text_object/147text.txt new file mode 100644 index 0000000000..edc3de8e10 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/147text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +Thequick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/148head.txt b/crates/vim/test_data/test_word_text_object/148head.txt new file mode 100644 index 0000000000..c20df71d5e --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/148head.txt @@ -0,0 +1 @@ +6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/149mode.txt b/crates/vim/test_data/test_word_text_object/149mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/149mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/14mode.txt b/crates/vim/test_data/test_word_text_object/14mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/14mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/150text.txt b/crates/vim/test_data/test_word_text_object/150text.txt new file mode 100644 index 0000000000..44972e7628 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/150text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/151head.txt b/crates/vim/test_data/test_word_text_object/151head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/151head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/152mode.txt b/crates/vim/test_data/test_word_text_object/152mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/152mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/153text.txt b/crates/vim/test_data/test_word_text_object/153text.txt new file mode 100644 index 0000000000..44972e7628 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/153text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/154head.txt b/crates/vim/test_data/test_word_text_object/154head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/154head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/155mode.txt b/crates/vim/test_data/test_word_text_object/155mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/155mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/156text.txt b/crates/vim/test_data/test_word_text_object/156text.txt new file mode 100644 index 0000000000..d7c8eebb49 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/156text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/157head.txt b/crates/vim/test_data/test_word_text_object/157head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/157head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/158mode.txt b/crates/vim/test_data/test_word_text_object/158mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/158mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/159text.txt b/crates/vim/test_data/test_word_text_object/159text.txt new file mode 100644 index 0000000000..d7c8eebb49 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/159text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/15text.txt b/crates/vim/test_data/test_word_text_object/15text.txt new file mode 100644 index 0000000000..3abea644f1 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/15text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumpsover +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/160head.txt b/crates/vim/test_data/test_word_text_object/160head.txt new file mode 100644 index 0000000000..c5a50698dd --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/160head.txt @@ -0,0 +1 @@ +6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/161mode.txt b/crates/vim/test_data/test_word_text_object/161mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/161mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/162text.txt b/crates/vim/test_data/test_word_text_object/162text.txt new file mode 100644 index 0000000000..f0f447c8fa --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/162text.txt @@ -0,0 +1,8 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/163head.txt b/crates/vim/test_data/test_word_text_object/163head.txt new file mode 100644 index 0000000000..d933eb81fa --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/163head.txt @@ -0,0 +1 @@ +6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/164mode.txt b/crates/vim/test_data/test_word_text_object/164mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/164mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/165text.txt b/crates/vim/test_data/test_word_text_object/165text.txt new file mode 100644 index 0000000000..3fcf6c5682 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/165text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown +-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/166head.txt b/crates/vim/test_data/test_word_text_object/166head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/166head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/167mode.txt b/crates/vim/test_data/test_word_text_object/167mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/167mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/168text.txt b/crates/vim/test_data/test_word_text_object/168text.txt new file mode 100644 index 0000000000..88098b63df --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/168text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/169head.txt b/crates/vim/test_data/test_word_text_object/169head.txt new file mode 100644 index 0000000000..6cf0fedea6 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/169head.txt @@ -0,0 +1 @@ +7,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/16head.txt b/crates/vim/test_data/test_word_text_object/16head.txt new file mode 100644 index 0000000000..bd712da63a --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/16head.txt @@ -0,0 +1 @@ +1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/170mode.txt b/crates/vim/test_data/test_word_text_object/170mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/170mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/171text.txt b/crates/vim/test_data/test_word_text_object/171text.txt new file mode 100644 index 0000000000..41651c8e63 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/171text.txt @@ -0,0 +1,9 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/172head.txt b/crates/vim/test_data/test_word_text_object/172head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/172head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/173mode.txt b/crates/vim/test_data/test_word_text_object/173mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/173mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/174text.txt b/crates/vim/test_data/test_word_text_object/174text.txt new file mode 100644 index 0000000000..41651c8e63 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/174text.txt @@ -0,0 +1,9 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/175head.txt b/crates/vim/test_data/test_word_text_object/175head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/175head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/176mode.txt b/crates/vim/test_data/test_word_text_object/176mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/176mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/177text.txt b/crates/vim/test_data/test_word_text_object/177text.txt new file mode 100644 index 0000000000..f4e4cfe812 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/177text.txt @@ -0,0 +1,8 @@ +The quick brown jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/178head.txt b/crates/vim/test_data/test_word_text_object/178head.txt new file mode 100644 index 0000000000..5f7b20f0d9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/178head.txt @@ -0,0 +1 @@ +0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/179mode.txt b/crates/vim/test_data/test_word_text_object/179mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/179mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/17mode.txt b/crates/vim/test_data/test_word_text_object/17mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/17mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/180text.txt b/crates/vim/test_data/test_word_text_object/180text.txt new file mode 100644 index 0000000000..1a715d7a9d --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/180text.txt @@ -0,0 +1,9 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/181head.txt b/crates/vim/test_data/test_word_text_object/181head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/181head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/182mode.txt b/crates/vim/test_data/test_word_text_object/182mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/182mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/183text.txt b/crates/vim/test_data/test_word_text_object/183text.txt new file mode 100644 index 0000000000..1a715d7a9d --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/183text.txt @@ -0,0 +1,9 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/184head.txt b/crates/vim/test_data/test_word_text_object/184head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/184head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/185mode.txt b/crates/vim/test_data/test_word_text_object/185mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/185mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/186text.txt b/crates/vim/test_data/test_word_text_object/186text.txt new file mode 100644 index 0000000000..cfeeac1a14 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/186text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/187head.txt b/crates/vim/test_data/test_word_text_object/187head.txt new file mode 100644 index 0000000000..bd712da63a --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/187head.txt @@ -0,0 +1 @@ +1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/188mode.txt b/crates/vim/test_data/test_word_text_object/188mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/188mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/189text.txt b/crates/vim/test_data/test_word_text_object/189text.txt new file mode 100644 index 0000000000..b57b97d090 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/189text.txt @@ -0,0 +1,8 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/18text.txt b/crates/vim/test_data/test_word_text_object/18text.txt new file mode 100644 index 0000000000..ebac2acd25 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/18text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/190head.txt b/crates/vim/test_data/test_word_text_object/190head.txt new file mode 100644 index 0000000000..28ce8bcc5c --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/190head.txt @@ -0,0 +1 @@ +2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/191mode.txt b/crates/vim/test_data/test_word_text_object/191mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/191mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/192text.txt b/crates/vim/test_data/test_word_text_object/192text.txt new file mode 100644 index 0000000000..e2405acd79 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/192text.txt @@ -0,0 +1,8 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/193head.txt b/crates/vim/test_data/test_word_text_object/193head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/193head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/194mode.txt b/crates/vim/test_data/test_word_text_object/194mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/194mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/195text.txt b/crates/vim/test_data/test_word_text_object/195text.txt new file mode 100644 index 0000000000..e2405acd79 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/195text.txt @@ -0,0 +1,8 @@ +The quick brown +fox jumps over +the lazy dog + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/196head.txt b/crates/vim/test_data/test_word_text_object/196head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/196head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/197mode.txt b/crates/vim/test_data/test_word_text_object/197mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/197mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/198text.txt b/crates/vim/test_data/test_word_text_object/198text.txt new file mode 100644 index 0000000000..4363975ac2 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/198text.txt @@ -0,0 +1,8 @@ +The quick brown +fox jumps over +the lazy dog + + + brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/199head.txt b/crates/vim/test_data/test_word_text_object/199head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/199head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/19head.txt b/crates/vim/test_data/test_word_text_object/19head.txt new file mode 100644 index 0000000000..28ce8bcc5c --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/19head.txt @@ -0,0 +1 @@ +2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/1head.txt b/crates/vim/test_data/test_word_text_object/1head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/1head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/200mode.txt b/crates/vim/test_data/test_word_text_object/200mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/200mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/201text.txt b/crates/vim/test_data/test_word_text_object/201text.txt new file mode 100644 index 0000000000..7c0186083e --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/201text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/202head.txt b/crates/vim/test_data/test_word_text_object/202head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/202head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/203mode.txt b/crates/vim/test_data/test_word_text_object/203mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/203mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/204text.txt b/crates/vim/test_data/test_word_text_object/204text.txt new file mode 100644 index 0000000000..7c0186083e --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/204text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/205head.txt b/crates/vim/test_data/test_word_text_object/205head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/205head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/206mode.txt b/crates/vim/test_data/test_word_text_object/206mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/206mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/207text.txt b/crates/vim/test_data/test_word_text_object/207text.txt new file mode 100644 index 0000000000..7c0186083e --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/207text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/208head.txt b/crates/vim/test_data/test_word_text_object/208head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/208head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/209mode.txt b/crates/vim/test_data/test_word_text_object/209mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/209mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/20mode.txt b/crates/vim/test_data/test_word_text_object/20mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/20mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/210text.txt b/crates/vim/test_data/test_word_text_object/210text.txt new file mode 100644 index 0000000000..7c0186083e --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/210text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/211head.txt b/crates/vim/test_data/test_word_text_object/211head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/211head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/212mode.txt b/crates/vim/test_data/test_word_text_object/212mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/212mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/213text.txt b/crates/vim/test_data/test_word_text_object/213text.txt new file mode 100644 index 0000000000..d7c8eebb49 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/213text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/214head.txt b/crates/vim/test_data/test_word_text_object/214head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/214head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/215mode.txt b/crates/vim/test_data/test_word_text_object/215mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/215mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/216text.txt b/crates/vim/test_data/test_word_text_object/216text.txt new file mode 100644 index 0000000000..d7c8eebb49 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/216text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/217head.txt b/crates/vim/test_data/test_word_text_object/217head.txt new file mode 100644 index 0000000000..c5a50698dd --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/217head.txt @@ -0,0 +1 @@ +6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/218mode.txt b/crates/vim/test_data/test_word_text_object/218mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/218mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/219text.txt b/crates/vim/test_data/test_word_text_object/219text.txt new file mode 100644 index 0000000000..1cbb0c4272 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/219text.txt @@ -0,0 +1,8 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/21text.txt b/crates/vim/test_data/test_word_text_object/21text.txt new file mode 100644 index 0000000000..3b33deb2ae --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/21text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/220head.txt b/crates/vim/test_data/test_word_text_object/220head.txt new file mode 100644 index 0000000000..d933eb81fa --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/220head.txt @@ -0,0 +1 @@ +6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/221mode.txt b/crates/vim/test_data/test_word_text_object/221mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/221mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/222text.txt b/crates/vim/test_data/test_word_text_object/222text.txt new file mode 100644 index 0000000000..bc43fca8a1 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/222text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/223head.txt b/crates/vim/test_data/test_word_text_object/223head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/223head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/224mode.txt b/crates/vim/test_data/test_word_text_object/224mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/224mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/225text.txt b/crates/vim/test_data/test_word_text_object/225text.txt new file mode 100644 index 0000000000..3fa4fd5f45 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/225text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/226head.txt b/crates/vim/test_data/test_word_text_object/226head.txt new file mode 100644 index 0000000000..60ada3d5d5 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/226head.txt @@ -0,0 +1 @@ +7,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/227mode.txt b/crates/vim/test_data/test_word_text_object/227mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/227mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/228text.txt b/crates/vim/test_data/test_word_text_object/228text.txt new file mode 100644 index 0000000000..456c2b1038 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/228text.txt @@ -0,0 +1,9 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/229head.txt b/crates/vim/test_data/test_word_text_object/229head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/229head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/22head.txt b/crates/vim/test_data/test_word_text_object/22head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/22head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/230mode.txt b/crates/vim/test_data/test_word_text_object/230mode.txt new file mode 100644 index 0000000000..ab75e91dc4 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/230mode.txt @@ -0,0 +1 @@ +"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/231text.txt b/crates/vim/test_data/test_word_text_object/231text.txt new file mode 100644 index 0000000000..286752a955 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/231text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/23mode.txt b/crates/vim/test_data/test_word_text_object/23mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/23mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/24text.txt b/crates/vim/test_data/test_word_text_object/24text.txt new file mode 100644 index 0000000000..3b33deb2ae --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/24text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/25head.txt b/crates/vim/test_data/test_word_text_object/25head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/25head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/26mode.txt b/crates/vim/test_data/test_word_text_object/26mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/26mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/27text.txt b/crates/vim/test_data/test_word_text_object/27text.txt new file mode 100644 index 0000000000..3b33deb2ae --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/27text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/28head.txt b/crates/vim/test_data/test_word_text_object/28head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/28head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/29mode.txt b/crates/vim/test_data/test_word_text_object/29mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/29mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/2mode.txt b/crates/vim/test_data/test_word_text_object/2mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/2mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/30text.txt b/crates/vim/test_data/test_word_text_object/30text.txt new file mode 100644 index 0000000000..6042949b9a --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/30text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/31head.txt b/crates/vim/test_data/test_word_text_object/31head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/31head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/32mode.txt b/crates/vim/test_data/test_word_text_object/32mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/32mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/33text.txt b/crates/vim/test_data/test_word_text_object/33text.txt new file mode 100644 index 0000000000..edc3de8e10 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/33text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +Thequick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/34head.txt b/crates/vim/test_data/test_word_text_object/34head.txt new file mode 100644 index 0000000000..c20df71d5e --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/34head.txt @@ -0,0 +1 @@ +6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/35mode.txt b/crates/vim/test_data/test_word_text_object/35mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/35mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/36text.txt b/crates/vim/test_data/test_word_text_object/36text.txt new file mode 100644 index 0000000000..dedd4d92b7 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/36text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The- brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/37head.txt b/crates/vim/test_data/test_word_text_object/37head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/37head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/38mode.txt b/crates/vim/test_data/test_word_text_object/38mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/38mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/39text.txt b/crates/vim/test_data/test_word_text_object/39text.txt new file mode 100644 index 0000000000..dedd4d92b7 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/39text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The- brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/3text.txt b/crates/vim/test_data/test_word_text_object/3text.txt new file mode 100644 index 0000000000..456c2b1038 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/3text.txt @@ -0,0 +1,9 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/40head.txt b/crates/vim/test_data/test_word_text_object/40head.txt new file mode 100644 index 0000000000..95fb9c638e --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/40head.txt @@ -0,0 +1 @@ +6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/41mode.txt b/crates/vim/test_data/test_word_text_object/41mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/41mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/42text.txt b/crates/vim/test_data/test_word_text_object/42text.txt new file mode 100644 index 0000000000..5bb4f4effb --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/42text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quickbrown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/43head.txt b/crates/vim/test_data/test_word_text_object/43head.txt new file mode 100644 index 0000000000..da809253d8 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/43head.txt @@ -0,0 +1 @@ +6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/44mode.txt b/crates/vim/test_data/test_word_text_object/44mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/44mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/45text.txt b/crates/vim/test_data/test_word_text_object/45text.txt new file mode 100644 index 0000000000..fb34ebac01 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/45text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/46head.txt b/crates/vim/test_data/test_word_text_object/46head.txt new file mode 100644 index 0000000000..c5a50698dd --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/46head.txt @@ -0,0 +1 @@ +6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/47mode.txt b/crates/vim/test_data/test_word_text_object/47mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/47mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/48text.txt b/crates/vim/test_data/test_word_text_object/48text.txt new file mode 100644 index 0000000000..de6c722fe0 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/48text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/49head.txt b/crates/vim/test_data/test_word_text_object/49head.txt new file mode 100644 index 0000000000..d933eb81fa --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/49head.txt @@ -0,0 +1 @@ +6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/4head.txt b/crates/vim/test_data/test_word_text_object/4head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/4head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/50mode.txt b/crates/vim/test_data/test_word_text_object/50mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/50mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/51text.txt b/crates/vim/test_data/test_word_text_object/51text.txt new file mode 100644 index 0000000000..6d1c944902 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/51text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown +fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/52head.txt b/crates/vim/test_data/test_word_text_object/52head.txt new file mode 100644 index 0000000000..72c23ba506 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/52head.txt @@ -0,0 +1 @@ +7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/53mode.txt b/crates/vim/test_data/test_word_text_object/53mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/53mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/54text.txt b/crates/vim/test_data/test_word_text_object/54text.txt new file mode 100644 index 0000000000..0f7af08f72 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/54text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox- over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/55head.txt b/crates/vim/test_data/test_word_text_object/55head.txt new file mode 100644 index 0000000000..6cf0fedea6 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/55head.txt @@ -0,0 +1 @@ +7,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/56mode.txt b/crates/vim/test_data/test_word_text_object/56mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/56mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/57text.txt b/crates/vim/test_data/test_word_text_object/57text.txt new file mode 100644 index 0000000000..456c2b1038 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/57text.txt @@ -0,0 +1,9 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/58head.txt b/crates/vim/test_data/test_word_text_object/58head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/58head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/59mode.txt b/crates/vim/test_data/test_word_text_object/59mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/59mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/5mode.txt b/crates/vim/test_data/test_word_text_object/5mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/5mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/60text.txt b/crates/vim/test_data/test_word_text_object/60text.txt new file mode 100644 index 0000000000..456c2b1038 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/60text.txt @@ -0,0 +1,9 @@ +The quick +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/61head.txt b/crates/vim/test_data/test_word_text_object/61head.txt new file mode 100644 index 0000000000..352f6067e6 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/61head.txt @@ -0,0 +1 @@ +0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/62mode.txt b/crates/vim/test_data/test_word_text_object/62mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/62mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/63text.txt b/crates/vim/test_data/test_word_text_object/63text.txt new file mode 100644 index 0000000000..286752a955 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/63text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/64head.txt b/crates/vim/test_data/test_word_text_object/64head.txt new file mode 100644 index 0000000000..5f7b20f0d9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/64head.txt @@ -0,0 +1 @@ +0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/65mode.txt b/crates/vim/test_data/test_word_text_object/65mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/65mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/66text.txt b/crates/vim/test_data/test_word_text_object/66text.txt new file mode 100644 index 0000000000..bffcedd2db --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/66text.txt @@ -0,0 +1,9 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/67head.txt b/crates/vim/test_data/test_word_text_object/67head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/67head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/68mode.txt b/crates/vim/test_data/test_word_text_object/68mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/68mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/69text.txt b/crates/vim/test_data/test_word_text_object/69text.txt new file mode 100644 index 0000000000..bffcedd2db --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/69text.txt @@ -0,0 +1,9 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/6text.txt b/crates/vim/test_data/test_word_text_object/6text.txt new file mode 100644 index 0000000000..286752a955 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/6text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/70head.txt b/crates/vim/test_data/test_word_text_object/70head.txt new file mode 100644 index 0000000000..28f7acb8c9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/70head.txt @@ -0,0 +1 @@ +1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/71mode.txt b/crates/vim/test_data/test_word_text_object/71mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/71mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/72text.txt b/crates/vim/test_data/test_word_text_object/72text.txt new file mode 100644 index 0000000000..3abea644f1 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/72text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumpsover +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/73head.txt b/crates/vim/test_data/test_word_text_object/73head.txt new file mode 100644 index 0000000000..bd712da63a --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/73head.txt @@ -0,0 +1 @@ +1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/74mode.txt b/crates/vim/test_data/test_word_text_object/74mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/74mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/75text.txt b/crates/vim/test_data/test_word_text_object/75text.txt new file mode 100644 index 0000000000..ebac2acd25 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/75text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/76head.txt b/crates/vim/test_data/test_word_text_object/76head.txt new file mode 100644 index 0000000000..28ce8bcc5c --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/76head.txt @@ -0,0 +1 @@ +2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/77mode.txt b/crates/vim/test_data/test_word_text_object/77mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/77mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/78text.txt b/crates/vim/test_data/test_word_text_object/78text.txt new file mode 100644 index 0000000000..3b33deb2ae --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/78text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/79head.txt b/crates/vim/test_data/test_word_text_object/79head.txt new file mode 100644 index 0000000000..7cad756336 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/79head.txt @@ -0,0 +1 @@ +3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/7head.txt b/crates/vim/test_data/test_word_text_object/7head.txt new file mode 100644 index 0000000000..5f7b20f0d9 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/7head.txt @@ -0,0 +1 @@ +0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/80mode.txt b/crates/vim/test_data/test_word_text_object/80mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/80mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/81text.txt b/crates/vim/test_data/test_word_text_object/81text.txt new file mode 100644 index 0000000000..3b33deb2ae --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/81text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/82head.txt b/crates/vim/test_data/test_word_text_object/82head.txt new file mode 100644 index 0000000000..b26cd1f1d3 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/82head.txt @@ -0,0 +1 @@ +4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/83mode.txt b/crates/vim/test_data/test_word_text_object/83mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/83mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/84text.txt b/crates/vim/test_data/test_word_text_object/84text.txt new file mode 100644 index 0000000000..3b33deb2ae --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/84text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/85head.txt b/crates/vim/test_data/test_word_text_object/85head.txt new file mode 100644 index 0000000000..880fda949a --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/85head.txt @@ -0,0 +1 @@ +5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/86mode.txt b/crates/vim/test_data/test_word_text_object/86mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/86mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/87text.txt b/crates/vim/test_data/test_word_text_object/87text.txt new file mode 100644 index 0000000000..a647811a26 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/87text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/88head.txt b/crates/vim/test_data/test_word_text_object/88head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/88head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/89mode.txt b/crates/vim/test_data/test_word_text_object/89mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/89mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/8mode.txt b/crates/vim/test_data/test_word_text_object/8mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/8mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/90text.txt b/crates/vim/test_data/test_word_text_object/90text.txt new file mode 100644 index 0000000000..a647811a26 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/90text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/91head.txt b/crates/vim/test_data/test_word_text_object/91head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/91head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/92mode.txt b/crates/vim/test_data/test_word_text_object/92mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/92mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/93text.txt b/crates/vim/test_data/test_word_text_object/93text.txt new file mode 100644 index 0000000000..a647811a26 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/93text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/94head.txt b/crates/vim/test_data/test_word_text_object/94head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/94head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/95mode.txt b/crates/vim/test_data/test_word_text_object/95mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/95mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/96text.txt b/crates/vim/test_data/test_word_text_object/96text.txt new file mode 100644 index 0000000000..a647811a26 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/96text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + + brown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/97head.txt b/crates/vim/test_data/test_word_text_object/97head.txt new file mode 100644 index 0000000000..f7c508be16 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/97head.txt @@ -0,0 +1 @@ +6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/98mode.txt b/crates/vim/test_data/test_word_text_object/98mode.txt new file mode 100644 index 0000000000..d0d2c59887 --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/98mode.txt @@ -0,0 +1 @@ +"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/99text.txt b/crates/vim/test_data/test_word_text_object/99text.txt new file mode 100644 index 0000000000..5bb4f4effb --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/99text.txt @@ -0,0 +1,9 @@ +The quick brown +fox jumps over +the lazy dog + + + +The-quickbrown + fox-jumps over +the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/9text.txt b/crates/vim/test_data/test_word_text_object/9text.txt new file mode 100644 index 0000000000..bffcedd2db --- /dev/null +++ b/crates/vim/test_data/test_word_text_object/9text.txt @@ -0,0 +1,9 @@ +The quick brown +fox over +the lazy dog + + + +The-quick brown + fox-jumps over +the lazy dog From 515c1ea1236764ab7b2c8f0ee6958e45c63ef971 Mon Sep 17 00:00:00 2001 From: K Simmons Date: Sat, 8 Oct 2022 21:20:47 -0700 Subject: [PATCH 02/24] Fixed some neovim test context issues, added repeated commands in vim mode, and ported some tests to use the neovim testing strategy --- Cargo.lock | 7629 ----------------- assets/keymaps/vim.json | 59 +- crates/collab/src/integration_tests.rs | 2 + crates/editor/src/test.rs | 57 +- crates/gpui/src/app.rs | 3 + crates/gpui/src/test.rs | 2 + crates/gpui_macros/src/gpui_macros.rs | 7 +- crates/vim/Cargo.toml | 1 + crates/vim/src/motion.rs | 35 +- crates/vim/src/normal.rs | 555 +- crates/vim/src/normal/change.rs | 164 +- crates/vim/src/normal/delete.rs | 4 +- crates/vim/src/normal/yank.rs | 4 +- crates/vim/src/object.rs | 178 +- crates/vim/src/state.rs | 3 + .../neovim_backed_binding_test_context.rs | 39 +- .../neovim_backed_test_context.rs | 398 +- .../vim/src/test_contexts/vim_test_context.rs | 3 +- crates/vim/src/vim.rs | 28 +- crates/vim/src/visual.rs | 10 +- .../neovim_backed_test_context_works.json | 1 + crates/vim/test_data/test_a.json | 1 + crates/vim/test_data/test_backspace.json | 1 + .../test_change_around_sentence.json | 1 + .../test_change_around_sentence/0text.txt | 1 - .../test_change_around_sentence/10head.txt | 1 - .../test_change_around_sentence/1head.txt | 1 - .../test_change_around_sentence/2mode.txt | 1 - .../test_change_around_sentence/3text.txt | 1 - .../test_change_around_sentence/4head.txt | 1 - .../test_change_around_sentence/5mode.txt | 1 - .../test_change_around_sentence/6text.txt | 1 - .../test_change_around_sentence/7head.txt | 1 - .../test_change_around_sentence/8mode.txt | 1 - .../test_change_around_sentence/9text.txt | 1 - .../test_data/test_change_around_word.json | 1 + .../test_change_around_word/0text.txt | 12 - .../test_change_around_word/100head.txt | 1 - .../test_change_around_word/101mode.txt | 1 - .../test_change_around_word/102text.txt | 12 - .../test_change_around_word/103head.txt | 1 - .../test_change_around_word/104mode.txt | 1 - .../test_change_around_word/105text.txt | 12 - .../test_change_around_word/106head.txt | 1 - .../test_change_around_word/107mode.txt | 1 - .../test_change_around_word/108text.txt | 12 - .../test_change_around_word/109head.txt | 1 - .../test_change_around_word/10head.txt | 1 - .../test_change_around_word/110mode.txt | 1 - .../test_change_around_word/111text.txt | 12 - .../test_change_around_word/112head.txt | 1 - .../test_change_around_word/113mode.txt | 1 - .../test_change_around_word/114text.txt | 12 - .../test_change_around_word/115head.txt | 1 - .../test_change_around_word/116mode.txt | 1 - .../test_change_around_word/117text.txt | 9 - .../test_change_around_word/118head.txt | 1 - .../test_change_around_word/119mode.txt | 1 - .../test_change_around_word/11mode.txt | 1 - .../test_change_around_word/120text.txt | 10 - .../test_change_around_word/121head.txt | 1 - .../test_change_around_word/122mode.txt | 1 - .../test_change_around_word/123text.txt | 11 - .../test_change_around_word/124head.txt | 1 - .../test_change_around_word/125mode.txt | 1 - .../test_change_around_word/126text.txt | 12 - .../test_change_around_word/127head.txt | 1 - .../test_change_around_word/128mode.txt | 1 - .../test_change_around_word/129text.txt | 12 - .../test_change_around_word/12text.txt | 12 - .../test_change_around_word/130head.txt | 1 - .../test_change_around_word/131mode.txt | 1 - .../test_change_around_word/132text.txt | 11 - .../test_change_around_word/133head.txt | 1 - .../test_change_around_word/134mode.txt | 1 - .../test_change_around_word/135text.txt | 11 - .../test_change_around_word/136head.txt | 1 - .../test_change_around_word/137mode.txt | 1 - .../test_change_around_word/13head.txt | 1 - .../test_change_around_word/14mode.txt | 1 - .../test_change_around_word/15text.txt | 12 - .../test_change_around_word/16head.txt | 1 - .../test_change_around_word/17mode.txt | 1 - .../test_change_around_word/18text.txt | 11 - .../test_change_around_word/19head.txt | 1 - .../test_change_around_word/1head.txt | 1 - .../test_change_around_word/20mode.txt | 1 - .../test_change_around_word/21text.txt | 11 - .../test_change_around_word/22head.txt | 1 - .../test_change_around_word/23mode.txt | 1 - .../test_change_around_word/24text.txt | 11 - .../test_change_around_word/25head.txt | 1 - .../test_change_around_word/26mode.txt | 1 - .../test_change_around_word/27text.txt | 11 - .../test_change_around_word/28head.txt | 1 - .../test_change_around_word/29mode.txt | 1 - .../test_change_around_word/2mode.txt | 1 - .../test_change_around_word/30text.txt | 12 - .../test_change_around_word/31head.txt | 1 - .../test_change_around_word/32mode.txt | 1 - .../test_change_around_word/33text.txt | 12 - .../test_change_around_word/34head.txt | 1 - .../test_change_around_word/35mode.txt | 1 - .../test_change_around_word/36text.txt | 12 - .../test_change_around_word/37head.txt | 1 - .../test_change_around_word/38mode.txt | 1 - .../test_change_around_word/39text.txt | 12 - .../test_change_around_word/3text.txt | 12 - .../test_change_around_word/40head.txt | 1 - .../test_change_around_word/41mode.txt | 1 - .../test_change_around_word/42text.txt | 12 - .../test_change_around_word/43head.txt | 1 - .../test_change_around_word/44mode.txt | 1 - .../test_change_around_word/45text.txt | 12 - .../test_change_around_word/46head.txt | 1 - .../test_change_around_word/47mode.txt | 1 - .../test_change_around_word/48text.txt | 9 - .../test_change_around_word/49head.txt | 1 - .../test_change_around_word/4head.txt | 1 - .../test_change_around_word/50mode.txt | 1 - .../test_change_around_word/51text.txt | 10 - .../test_change_around_word/52head.txt | 1 - .../test_change_around_word/53mode.txt | 1 - .../test_change_around_word/54text.txt | 11 - .../test_change_around_word/55head.txt | 1 - .../test_change_around_word/56mode.txt | 1 - .../test_change_around_word/57text.txt | 12 - .../test_change_around_word/58head.txt | 1 - .../test_change_around_word/59mode.txt | 1 - .../test_change_around_word/5mode.txt | 1 - .../test_change_around_word/60text.txt | 12 - .../test_change_around_word/61head.txt | 1 - .../test_change_around_word/62mode.txt | 1 - .../test_change_around_word/63text.txt | 11 - .../test_change_around_word/64head.txt | 1 - .../test_change_around_word/65mode.txt | 1 - .../test_change_around_word/66text.txt | 11 - .../test_change_around_word/67head.txt | 1 - .../test_change_around_word/68mode.txt | 1 - .../test_change_around_word/69text.txt | 12 - .../test_change_around_word/6text.txt | 11 - .../test_change_around_word/70head.txt | 1 - .../test_change_around_word/71mode.txt | 1 - .../test_change_around_word/72text.txt | 12 - .../test_change_around_word/73head.txt | 1 - .../test_change_around_word/74mode.txt | 1 - .../test_change_around_word/75text.txt | 11 - .../test_change_around_word/76head.txt | 1 - .../test_change_around_word/77mode.txt | 1 - .../test_change_around_word/78text.txt | 12 - .../test_change_around_word/79head.txt | 1 - .../test_change_around_word/7head.txt | 1 - .../test_change_around_word/80mode.txt | 1 - .../test_change_around_word/81text.txt | 12 - .../test_change_around_word/82head.txt | 1 - .../test_change_around_word/83mode.txt | 1 - .../test_change_around_word/84text.txt | 12 - .../test_change_around_word/85head.txt | 1 - .../test_change_around_word/86mode.txt | 1 - .../test_change_around_word/87text.txt | 11 - .../test_change_around_word/88head.txt | 1 - .../test_change_around_word/89mode.txt | 1 - .../test_change_around_word/8mode.txt | 1 - .../test_change_around_word/90text.txt | 11 - .../test_change_around_word/91head.txt | 1 - .../test_change_around_word/92mode.txt | 1 - .../test_change_around_word/93text.txt | 11 - .../test_change_around_word/94head.txt | 1 - .../test_change_around_word/95mode.txt | 1 - .../test_change_around_word/96text.txt | 11 - .../test_change_around_word/97head.txt | 1 - .../test_change_around_word/98mode.txt | 1 - .../test_change_around_word/99text.txt | 12 - .../test_change_around_word/9text.txt | 12 - .../test_data/test_change_in_sentence.json | 1 + .../test_change_in_sentence/0text.txt | 1 - .../test_change_in_sentence/10head.txt | 1 - .../test_change_in_sentence/11mode.txt | 1 - .../test_change_in_sentence/12text.txt | 1 - .../test_change_in_sentence/13head.txt | 1 - .../test_change_in_sentence/14mode.txt | 1 - .../test_change_in_sentence/15text.txt | 1 - .../test_change_in_sentence/16head.txt | 1 - .../test_change_in_sentence/17mode.txt | 1 - .../test_change_in_sentence/18text.txt | 1 - .../test_change_in_sentence/19head.txt | 1 - .../test_change_in_sentence/1head.txt | 1 - .../test_change_in_sentence/20mode.txt | 1 - .../test_change_in_sentence/21text.txt | 1 - .../test_change_in_sentence/22head.txt | 1 - .../test_change_in_sentence/23mode.txt | 1 - .../test_change_in_sentence/24text.txt | 1 - .../test_change_in_sentence/25head.txt | 1 - .../test_change_in_sentence/26mode.txt | 1 - .../test_change_in_sentence/27text.txt | 1 - .../test_change_in_sentence/28head.txt | 1 - .../test_change_in_sentence/29mode.txt | 1 - .../test_change_in_sentence/2mode.txt | 1 - .../test_change_in_sentence/30text.txt | 1 - .../test_change_in_sentence/31head.txt | 1 - .../test_change_in_sentence/32mode.txt | 1 - .../test_change_in_sentence/33text.txt | 2 - .../test_change_in_sentence/34head.txt | 1 - .../test_change_in_sentence/35mode.txt | 1 - .../test_change_in_sentence/36text.txt | 2 - .../test_change_in_sentence/37head.txt | 1 - .../test_change_in_sentence/38mode.txt | 1 - .../test_change_in_sentence/39text.txt | 2 - .../test_change_in_sentence/3text.txt | 1 - .../test_change_in_sentence/40head.txt | 1 - .../test_change_in_sentence/41mode.txt | 1 - .../test_change_in_sentence/42text.txt | 2 - .../test_change_in_sentence/43head.txt | 1 - .../test_change_in_sentence/44mode.txt | 1 - .../test_change_in_sentence/45text.txt | 2 - .../test_change_in_sentence/46head.txt | 1 - .../test_change_in_sentence/47mode.txt | 1 - .../test_change_in_sentence/48text.txt | 4 - .../test_change_in_sentence/49head.txt | 1 - .../test_change_in_sentence/4head.txt | 1 - .../test_change_in_sentence/50mode.txt | 1 - .../test_change_in_sentence/51text.txt | 3 - .../test_change_in_sentence/52head.txt | 1 - .../test_change_in_sentence/53mode.txt | 1 - .../test_change_in_sentence/54text.txt | 3 - .../test_change_in_sentence/55head.txt | 1 - .../test_change_in_sentence/56mode.txt | 1 - .../test_change_in_sentence/5mode.txt | 1 - .../test_change_in_sentence/6text.txt | 1 - .../test_change_in_sentence/7head.txt | 1 - .../test_change_in_sentence/8mode.txt | 1 - .../test_change_in_sentence/9text.txt | 1 - crates/vim/test_data/test_change_in_word.json | 1 + .../test_data/test_change_in_word/0text.txt | 12 - .../test_data/test_change_in_word/100head.txt | 1 - .../test_data/test_change_in_word/101mode.txt | 1 - .../test_data/test_change_in_word/102text.txt | 12 - .../test_data/test_change_in_word/103head.txt | 1 - .../test_data/test_change_in_word/104mode.txt | 1 - .../test_data/test_change_in_word/105text.txt | 12 - .../test_data/test_change_in_word/106head.txt | 1 - .../test_data/test_change_in_word/107mode.txt | 1 - .../test_data/test_change_in_word/108text.txt | 12 - .../test_data/test_change_in_word/109head.txt | 1 - .../test_data/test_change_in_word/10head.txt | 1 - .../test_data/test_change_in_word/110mode.txt | 1 - .../test_data/test_change_in_word/111text.txt | 12 - .../test_data/test_change_in_word/112head.txt | 1 - .../test_data/test_change_in_word/113mode.txt | 1 - .../test_data/test_change_in_word/114text.txt | 12 - .../test_data/test_change_in_word/115head.txt | 1 - .../test_data/test_change_in_word/116mode.txt | 1 - .../test_data/test_change_in_word/117text.txt | 12 - .../test_data/test_change_in_word/118head.txt | 1 - .../test_data/test_change_in_word/119mode.txt | 1 - .../test_data/test_change_in_word/11mode.txt | 1 - .../test_data/test_change_in_word/120text.txt | 12 - .../test_data/test_change_in_word/121head.txt | 1 - .../test_data/test_change_in_word/122mode.txt | 1 - .../test_data/test_change_in_word/123text.txt | 12 - .../test_data/test_change_in_word/124head.txt | 1 - .../test_data/test_change_in_word/125mode.txt | 1 - .../test_data/test_change_in_word/126text.txt | 12 - .../test_data/test_change_in_word/127head.txt | 1 - .../test_data/test_change_in_word/128mode.txt | 1 - .../test_data/test_change_in_word/129text.txt | 12 - .../test_data/test_change_in_word/12text.txt | 12 - .../test_data/test_change_in_word/130head.txt | 1 - .../test_data/test_change_in_word/131mode.txt | 1 - .../test_data/test_change_in_word/132text.txt | 12 - .../test_data/test_change_in_word/133head.txt | 1 - .../test_data/test_change_in_word/134mode.txt | 1 - .../test_data/test_change_in_word/135text.txt | 12 - .../test_data/test_change_in_word/136head.txt | 1 - .../test_data/test_change_in_word/137mode.txt | 1 - .../test_data/test_change_in_word/13head.txt | 1 - .../test_data/test_change_in_word/14mode.txt | 1 - .../test_data/test_change_in_word/15text.txt | 12 - .../test_data/test_change_in_word/16head.txt | 1 - .../test_data/test_change_in_word/17mode.txt | 1 - .../test_data/test_change_in_word/18text.txt | 12 - .../test_data/test_change_in_word/19head.txt | 1 - .../test_data/test_change_in_word/1head.txt | 1 - .../test_data/test_change_in_word/20mode.txt | 1 - .../test_data/test_change_in_word/21text.txt | 12 - .../test_data/test_change_in_word/22head.txt | 1 - .../test_data/test_change_in_word/23mode.txt | 1 - .../test_data/test_change_in_word/24text.txt | 12 - .../test_data/test_change_in_word/25head.txt | 1 - .../test_data/test_change_in_word/26mode.txt | 1 - .../test_data/test_change_in_word/27text.txt | 12 - .../test_data/test_change_in_word/28head.txt | 1 - .../test_data/test_change_in_word/29mode.txt | 1 - .../test_data/test_change_in_word/2mode.txt | 1 - .../test_data/test_change_in_word/30text.txt | 12 - .../test_data/test_change_in_word/31head.txt | 1 - .../test_data/test_change_in_word/32mode.txt | 1 - .../test_data/test_change_in_word/33text.txt | 12 - .../test_data/test_change_in_word/34head.txt | 1 - .../test_data/test_change_in_word/35mode.txt | 1 - .../test_data/test_change_in_word/36text.txt | 12 - .../test_data/test_change_in_word/37head.txt | 1 - .../test_data/test_change_in_word/38mode.txt | 1 - .../test_data/test_change_in_word/39text.txt | 12 - .../test_data/test_change_in_word/3text.txt | 12 - .../test_data/test_change_in_word/40head.txt | 1 - .../test_data/test_change_in_word/41mode.txt | 1 - .../test_data/test_change_in_word/42text.txt | 12 - .../test_data/test_change_in_word/43head.txt | 1 - .../test_data/test_change_in_word/44mode.txt | 1 - .../test_data/test_change_in_word/45text.txt | 12 - .../test_data/test_change_in_word/46head.txt | 1 - .../test_data/test_change_in_word/47mode.txt | 1 - .../test_data/test_change_in_word/48text.txt | 12 - .../test_data/test_change_in_word/49head.txt | 1 - .../test_data/test_change_in_word/4head.txt | 1 - .../test_data/test_change_in_word/50mode.txt | 1 - .../test_data/test_change_in_word/51text.txt | 12 - .../test_data/test_change_in_word/52head.txt | 1 - .../test_data/test_change_in_word/53mode.txt | 1 - .../test_data/test_change_in_word/54text.txt | 12 - .../test_data/test_change_in_word/55head.txt | 1 - .../test_data/test_change_in_word/56mode.txt | 1 - .../test_data/test_change_in_word/57text.txt | 12 - .../test_data/test_change_in_word/58head.txt | 1 - .../test_data/test_change_in_word/59mode.txt | 1 - .../test_data/test_change_in_word/5mode.txt | 1 - .../test_data/test_change_in_word/60text.txt | 12 - .../test_data/test_change_in_word/61head.txt | 1 - .../test_data/test_change_in_word/62mode.txt | 1 - .../test_data/test_change_in_word/63text.txt | 12 - .../test_data/test_change_in_word/64head.txt | 1 - .../test_data/test_change_in_word/65mode.txt | 1 - .../test_data/test_change_in_word/66text.txt | 12 - .../test_data/test_change_in_word/67head.txt | 1 - .../test_data/test_change_in_word/68mode.txt | 1 - .../test_data/test_change_in_word/69text.txt | 12 - .../test_data/test_change_in_word/6text.txt | 12 - .../test_data/test_change_in_word/70head.txt | 1 - .../test_data/test_change_in_word/71mode.txt | 1 - .../test_data/test_change_in_word/72text.txt | 12 - .../test_data/test_change_in_word/73head.txt | 1 - .../test_data/test_change_in_word/74mode.txt | 1 - .../test_data/test_change_in_word/75text.txt | 12 - .../test_data/test_change_in_word/76head.txt | 1 - .../test_data/test_change_in_word/77mode.txt | 1 - .../test_data/test_change_in_word/78text.txt | 12 - .../test_data/test_change_in_word/79head.txt | 1 - .../test_data/test_change_in_word/7head.txt | 1 - .../test_data/test_change_in_word/80mode.txt | 1 - .../test_data/test_change_in_word/81text.txt | 12 - .../test_data/test_change_in_word/82head.txt | 1 - .../test_data/test_change_in_word/83mode.txt | 1 - .../test_data/test_change_in_word/84text.txt | 12 - .../test_data/test_change_in_word/85head.txt | 1 - .../test_data/test_change_in_word/86mode.txt | 1 - .../test_data/test_change_in_word/87text.txt | 12 - .../test_data/test_change_in_word/88head.txt | 1 - .../test_data/test_change_in_word/89mode.txt | 1 - .../test_data/test_change_in_word/8mode.txt | 1 - .../test_data/test_change_in_word/90text.txt | 12 - .../test_data/test_change_in_word/91head.txt | 1 - .../test_data/test_change_in_word/92mode.txt | 1 - .../test_data/test_change_in_word/93text.txt | 12 - .../test_data/test_change_in_word/94head.txt | 1 - .../test_data/test_change_in_word/95mode.txt | 1 - .../test_data/test_change_in_word/96text.txt | 12 - .../test_data/test_change_in_word/97head.txt | 1 - .../test_data/test_change_in_word/98mode.txt | 1 - .../test_data/test_change_in_word/99text.txt | 12 - .../test_data/test_change_in_word/9text.txt | 12 - .../test_delete_around_sentence.json | 1 + .../test_delete_around_sentence/0text.txt | 1 - .../test_delete_around_sentence/10head.txt | 1 - .../test_delete_around_sentence/1head.txt | 1 - .../test_delete_around_sentence/2mode.txt | 1 - .../test_delete_around_sentence/3text.txt | 1 - .../test_delete_around_sentence/4head.txt | 1 - .../test_delete_around_sentence/5mode.txt | 1 - .../test_delete_around_sentence/6text.txt | 1 - .../test_delete_around_sentence/7head.txt | 1 - .../test_delete_around_sentence/8mode.txt | 1 - .../test_delete_around_sentence/9text.txt | 1 - .../test_data/test_delete_around_word.json | 1 + .../test_delete_around_word/0text.txt | 12 - .../test_delete_around_word/100head.txt | 1 - .../test_delete_around_word/101mode.txt | 1 - .../test_delete_around_word/102text.txt | 12 - .../test_delete_around_word/103head.txt | 1 - .../test_delete_around_word/104mode.txt | 1 - .../test_delete_around_word/105text.txt | 12 - .../test_delete_around_word/106head.txt | 1 - .../test_delete_around_word/107mode.txt | 1 - .../test_delete_around_word/108text.txt | 12 - .../test_delete_around_word/109head.txt | 1 - .../test_delete_around_word/10head.txt | 1 - .../test_delete_around_word/110mode.txt | 1 - .../test_delete_around_word/111text.txt | 12 - .../test_delete_around_word/112head.txt | 1 - .../test_delete_around_word/113mode.txt | 1 - .../test_delete_around_word/114text.txt | 12 - .../test_delete_around_word/115head.txt | 1 - .../test_delete_around_word/116mode.txt | 1 - .../test_delete_around_word/117text.txt | 9 - .../test_delete_around_word/118head.txt | 1 - .../test_delete_around_word/119mode.txt | 1 - .../test_delete_around_word/11mode.txt | 1 - .../test_delete_around_word/120text.txt | 10 - .../test_delete_around_word/121head.txt | 1 - .../test_delete_around_word/122mode.txt | 1 - .../test_delete_around_word/123text.txt | 11 - .../test_delete_around_word/124head.txt | 1 - .../test_delete_around_word/125mode.txt | 1 - .../test_delete_around_word/126text.txt | 12 - .../test_delete_around_word/127head.txt | 1 - .../test_delete_around_word/128mode.txt | 1 - .../test_delete_around_word/129text.txt | 12 - .../test_delete_around_word/12text.txt | 12 - .../test_delete_around_word/130head.txt | 1 - .../test_delete_around_word/131mode.txt | 1 - .../test_delete_around_word/132text.txt | 11 - .../test_delete_around_word/133head.txt | 1 - .../test_delete_around_word/134mode.txt | 1 - .../test_delete_around_word/135text.txt | 11 - .../test_delete_around_word/136head.txt | 1 - .../test_delete_around_word/137mode.txt | 1 - .../test_delete_around_word/13head.txt | 1 - .../test_delete_around_word/14mode.txt | 1 - .../test_delete_around_word/15text.txt | 12 - .../test_delete_around_word/16head.txt | 1 - .../test_delete_around_word/17mode.txt | 1 - .../test_delete_around_word/18text.txt | 11 - .../test_delete_around_word/19head.txt | 1 - .../test_delete_around_word/1head.txt | 1 - .../test_delete_around_word/20mode.txt | 1 - .../test_delete_around_word/21text.txt | 10 - .../test_delete_around_word/22head.txt | 1 - .../test_delete_around_word/23mode.txt | 1 - .../test_delete_around_word/24text.txt | 10 - .../test_delete_around_word/25head.txt | 1 - .../test_delete_around_word/26mode.txt | 1 - .../test_delete_around_word/27text.txt | 11 - .../test_delete_around_word/28head.txt | 1 - .../test_delete_around_word/29mode.txt | 1 - .../test_delete_around_word/2mode.txt | 1 - .../test_delete_around_word/30text.txt | 12 - .../test_delete_around_word/31head.txt | 1 - .../test_delete_around_word/32mode.txt | 1 - .../test_delete_around_word/33text.txt | 12 - .../test_delete_around_word/34head.txt | 1 - .../test_delete_around_word/35mode.txt | 1 - .../test_delete_around_word/36text.txt | 12 - .../test_delete_around_word/37head.txt | 1 - .../test_delete_around_word/38mode.txt | 1 - .../test_delete_around_word/39text.txt | 12 - .../test_delete_around_word/3text.txt | 12 - .../test_delete_around_word/40head.txt | 1 - .../test_delete_around_word/41mode.txt | 1 - .../test_delete_around_word/42text.txt | 12 - .../test_delete_around_word/43head.txt | 1 - .../test_delete_around_word/44mode.txt | 1 - .../test_delete_around_word/45text.txt | 12 - .../test_delete_around_word/46head.txt | 1 - .../test_delete_around_word/47mode.txt | 1 - .../test_delete_around_word/48text.txt | 9 - .../test_delete_around_word/49head.txt | 1 - .../test_delete_around_word/4head.txt | 1 - .../test_delete_around_word/50mode.txt | 1 - .../test_delete_around_word/51text.txt | 10 - .../test_delete_around_word/52head.txt | 1 - .../test_delete_around_word/53mode.txt | 1 - .../test_delete_around_word/54text.txt | 11 - .../test_delete_around_word/55head.txt | 1 - .../test_delete_around_word/56mode.txt | 1 - .../test_delete_around_word/57text.txt | 12 - .../test_delete_around_word/58head.txt | 1 - .../test_delete_around_word/59mode.txt | 1 - .../test_delete_around_word/5mode.txt | 1 - .../test_delete_around_word/60text.txt | 12 - .../test_delete_around_word/61head.txt | 1 - .../test_delete_around_word/62mode.txt | 1 - .../test_delete_around_word/63text.txt | 11 - .../test_delete_around_word/64head.txt | 1 - .../test_delete_around_word/65mode.txt | 1 - .../test_delete_around_word/66text.txt | 11 - .../test_delete_around_word/67head.txt | 1 - .../test_delete_around_word/68mode.txt | 1 - .../test_delete_around_word/69text.txt | 12 - .../test_delete_around_word/6text.txt | 11 - .../test_delete_around_word/70head.txt | 1 - .../test_delete_around_word/71mode.txt | 1 - .../test_delete_around_word/72text.txt | 12 - .../test_delete_around_word/73head.txt | 1 - .../test_delete_around_word/74mode.txt | 1 - .../test_delete_around_word/75text.txt | 11 - .../test_delete_around_word/76head.txt | 1 - .../test_delete_around_word/77mode.txt | 1 - .../test_delete_around_word/78text.txt | 12 - .../test_delete_around_word/79head.txt | 1 - .../test_delete_around_word/7head.txt | 1 - .../test_delete_around_word/80mode.txt | 1 - .../test_delete_around_word/81text.txt | 12 - .../test_delete_around_word/82head.txt | 1 - .../test_delete_around_word/83mode.txt | 1 - .../test_delete_around_word/84text.txt | 12 - .../test_delete_around_word/85head.txt | 1 - .../test_delete_around_word/86mode.txt | 1 - .../test_delete_around_word/87text.txt | 11 - .../test_delete_around_word/88head.txt | 1 - .../test_delete_around_word/89mode.txt | 1 - .../test_delete_around_word/8mode.txt | 1 - .../test_delete_around_word/90text.txt | 10 - .../test_delete_around_word/91head.txt | 1 - .../test_delete_around_word/92mode.txt | 1 - .../test_delete_around_word/93text.txt | 10 - .../test_delete_around_word/94head.txt | 1 - .../test_delete_around_word/95mode.txt | 1 - .../test_delete_around_word/96text.txt | 11 - .../test_delete_around_word/97head.txt | 1 - .../test_delete_around_word/98mode.txt | 1 - .../test_delete_around_word/99text.txt | 12 - .../test_delete_around_word/9text.txt | 12 - .../test_data/test_delete_in_sentence.json | 1 + .../test_delete_in_sentence/0text.txt | 1 - .../test_delete_in_sentence/10head.txt | 1 - .../test_delete_in_sentence/11mode.txt | 1 - .../test_delete_in_sentence/12text.txt | 1 - .../test_delete_in_sentence/13head.txt | 1 - .../test_delete_in_sentence/14mode.txt | 1 - .../test_delete_in_sentence/15text.txt | 1 - .../test_delete_in_sentence/16head.txt | 1 - .../test_delete_in_sentence/17mode.txt | 1 - .../test_delete_in_sentence/18text.txt | 1 - .../test_delete_in_sentence/19head.txt | 1 - .../test_delete_in_sentence/1head.txt | 1 - .../test_delete_in_sentence/20mode.txt | 1 - .../test_delete_in_sentence/21text.txt | 1 - .../test_delete_in_sentence/22head.txt | 1 - .../test_delete_in_sentence/23mode.txt | 1 - .../test_delete_in_sentence/24text.txt | 1 - .../test_delete_in_sentence/25head.txt | 1 - .../test_delete_in_sentence/26mode.txt | 1 - .../test_delete_in_sentence/27text.txt | 1 - .../test_delete_in_sentence/28head.txt | 1 - .../test_delete_in_sentence/29mode.txt | 1 - .../test_delete_in_sentence/2mode.txt | 1 - .../test_delete_in_sentence/30text.txt | 1 - .../test_delete_in_sentence/31head.txt | 1 - .../test_delete_in_sentence/32mode.txt | 1 - .../test_delete_in_sentence/33text.txt | 2 - .../test_delete_in_sentence/34head.txt | 1 - .../test_delete_in_sentence/35mode.txt | 1 - .../test_delete_in_sentence/36text.txt | 2 - .../test_delete_in_sentence/37head.txt | 1 - .../test_delete_in_sentence/38mode.txt | 1 - .../test_delete_in_sentence/39text.txt | 2 - .../test_delete_in_sentence/3text.txt | 1 - .../test_delete_in_sentence/40head.txt | 1 - .../test_delete_in_sentence/41mode.txt | 1 - .../test_delete_in_sentence/42text.txt | 2 - .../test_delete_in_sentence/43head.txt | 1 - .../test_delete_in_sentence/44mode.txt | 1 - .../test_delete_in_sentence/45text.txt | 2 - .../test_delete_in_sentence/46head.txt | 1 - .../test_delete_in_sentence/47mode.txt | 1 - .../test_delete_in_sentence/48text.txt | 4 - .../test_delete_in_sentence/49head.txt | 1 - .../test_delete_in_sentence/4head.txt | 1 - .../test_delete_in_sentence/50mode.txt | 1 - .../test_delete_in_sentence/51text.txt | 3 - .../test_delete_in_sentence/52head.txt | 1 - .../test_delete_in_sentence/53mode.txt | 1 - .../test_delete_in_sentence/54text.txt | 3 - .../test_delete_in_sentence/55head.txt | 1 - .../test_delete_in_sentence/56mode.txt | 1 - .../test_delete_in_sentence/5mode.txt | 1 - .../test_delete_in_sentence/6text.txt | 1 - .../test_delete_in_sentence/7head.txt | 1 - .../test_delete_in_sentence/8mode.txt | 1 - .../test_delete_in_sentence/9text.txt | 1 - crates/vim/test_data/test_delete_in_word.json | 1 + .../test_data/test_delete_in_word/0text.txt | 12 - .../test_data/test_delete_in_word/100head.txt | 1 - .../test_data/test_delete_in_word/101mode.txt | 1 - .../test_data/test_delete_in_word/102text.txt | 12 - .../test_data/test_delete_in_word/103head.txt | 1 - .../test_data/test_delete_in_word/104mode.txt | 1 - .../test_data/test_delete_in_word/105text.txt | 12 - .../test_data/test_delete_in_word/106head.txt | 1 - .../test_data/test_delete_in_word/107mode.txt | 1 - .../test_data/test_delete_in_word/108text.txt | 12 - .../test_data/test_delete_in_word/109head.txt | 1 - .../test_data/test_delete_in_word/10head.txt | 1 - .../test_data/test_delete_in_word/110mode.txt | 1 - .../test_data/test_delete_in_word/111text.txt | 12 - .../test_data/test_delete_in_word/112head.txt | 1 - .../test_data/test_delete_in_word/113mode.txt | 1 - .../test_data/test_delete_in_word/114text.txt | 12 - .../test_data/test_delete_in_word/115head.txt | 1 - .../test_data/test_delete_in_word/116mode.txt | 1 - .../test_data/test_delete_in_word/117text.txt | 12 - .../test_data/test_delete_in_word/118head.txt | 1 - .../test_data/test_delete_in_word/119mode.txt | 1 - .../test_data/test_delete_in_word/11mode.txt | 1 - .../test_data/test_delete_in_word/120text.txt | 12 - .../test_data/test_delete_in_word/121head.txt | 1 - .../test_data/test_delete_in_word/122mode.txt | 1 - .../test_data/test_delete_in_word/123text.txt | 12 - .../test_data/test_delete_in_word/124head.txt | 1 - .../test_data/test_delete_in_word/125mode.txt | 1 - .../test_data/test_delete_in_word/126text.txt | 12 - .../test_data/test_delete_in_word/127head.txt | 1 - .../test_data/test_delete_in_word/128mode.txt | 1 - .../test_data/test_delete_in_word/129text.txt | 12 - .../test_data/test_delete_in_word/12text.txt | 12 - .../test_data/test_delete_in_word/130head.txt | 1 - .../test_data/test_delete_in_word/131mode.txt | 1 - .../test_data/test_delete_in_word/132text.txt | 12 - .../test_data/test_delete_in_word/133head.txt | 1 - .../test_data/test_delete_in_word/134mode.txt | 1 - .../test_data/test_delete_in_word/135text.txt | 12 - .../test_data/test_delete_in_word/136head.txt | 1 - .../test_data/test_delete_in_word/137mode.txt | 1 - .../test_data/test_delete_in_word/13head.txt | 1 - .../test_data/test_delete_in_word/14mode.txt | 1 - .../test_data/test_delete_in_word/15text.txt | 12 - .../test_data/test_delete_in_word/16head.txt | 1 - .../test_data/test_delete_in_word/17mode.txt | 1 - .../test_data/test_delete_in_word/18text.txt | 12 - .../test_data/test_delete_in_word/19head.txt | 1 - .../test_data/test_delete_in_word/1head.txt | 1 - .../test_data/test_delete_in_word/20mode.txt | 1 - .../test_data/test_delete_in_word/21text.txt | 12 - .../test_data/test_delete_in_word/22head.txt | 1 - .../test_data/test_delete_in_word/23mode.txt | 1 - .../test_data/test_delete_in_word/24text.txt | 12 - .../test_data/test_delete_in_word/25head.txt | 1 - .../test_data/test_delete_in_word/26mode.txt | 1 - .../test_data/test_delete_in_word/27text.txt | 12 - .../test_data/test_delete_in_word/28head.txt | 1 - .../test_data/test_delete_in_word/29mode.txt | 1 - .../test_data/test_delete_in_word/2mode.txt | 1 - .../test_data/test_delete_in_word/30text.txt | 12 - .../test_data/test_delete_in_word/31head.txt | 1 - .../test_data/test_delete_in_word/32mode.txt | 1 - .../test_data/test_delete_in_word/33text.txt | 12 - .../test_data/test_delete_in_word/34head.txt | 1 - .../test_data/test_delete_in_word/35mode.txt | 1 - .../test_data/test_delete_in_word/36text.txt | 12 - .../test_data/test_delete_in_word/37head.txt | 1 - .../test_data/test_delete_in_word/38mode.txt | 1 - .../test_data/test_delete_in_word/39text.txt | 12 - .../test_data/test_delete_in_word/3text.txt | 12 - .../test_data/test_delete_in_word/40head.txt | 1 - .../test_data/test_delete_in_word/41mode.txt | 1 - .../test_data/test_delete_in_word/42text.txt | 12 - .../test_data/test_delete_in_word/43head.txt | 1 - .../test_data/test_delete_in_word/44mode.txt | 1 - .../test_data/test_delete_in_word/45text.txt | 12 - .../test_data/test_delete_in_word/46head.txt | 1 - .../test_data/test_delete_in_word/47mode.txt | 1 - .../test_data/test_delete_in_word/48text.txt | 12 - .../test_data/test_delete_in_word/49head.txt | 1 - .../test_data/test_delete_in_word/4head.txt | 1 - .../test_data/test_delete_in_word/50mode.txt | 1 - .../test_data/test_delete_in_word/51text.txt | 12 - .../test_data/test_delete_in_word/52head.txt | 1 - .../test_data/test_delete_in_word/53mode.txt | 1 - .../test_data/test_delete_in_word/54text.txt | 12 - .../test_data/test_delete_in_word/55head.txt | 1 - .../test_data/test_delete_in_word/56mode.txt | 1 - .../test_data/test_delete_in_word/57text.txt | 12 - .../test_data/test_delete_in_word/58head.txt | 1 - .../test_data/test_delete_in_word/59mode.txt | 1 - .../test_data/test_delete_in_word/5mode.txt | 1 - .../test_data/test_delete_in_word/60text.txt | 12 - .../test_data/test_delete_in_word/61head.txt | 1 - .../test_data/test_delete_in_word/62mode.txt | 1 - .../test_data/test_delete_in_word/63text.txt | 12 - .../test_data/test_delete_in_word/64head.txt | 1 - .../test_data/test_delete_in_word/65mode.txt | 1 - .../test_data/test_delete_in_word/66text.txt | 12 - .../test_data/test_delete_in_word/67head.txt | 1 - .../test_data/test_delete_in_word/68mode.txt | 1 - .../test_data/test_delete_in_word/69text.txt | 12 - .../test_data/test_delete_in_word/6text.txt | 12 - .../test_data/test_delete_in_word/70head.txt | 1 - .../test_data/test_delete_in_word/71mode.txt | 1 - .../test_data/test_delete_in_word/72text.txt | 12 - .../test_data/test_delete_in_word/73head.txt | 1 - .../test_data/test_delete_in_word/74mode.txt | 1 - .../test_data/test_delete_in_word/75text.txt | 12 - .../test_data/test_delete_in_word/76head.txt | 1 - .../test_data/test_delete_in_word/77mode.txt | 1 - .../test_data/test_delete_in_word/78text.txt | 12 - .../test_data/test_delete_in_word/79head.txt | 1 - .../test_data/test_delete_in_word/7head.txt | 1 - .../test_data/test_delete_in_word/80mode.txt | 1 - .../test_data/test_delete_in_word/81text.txt | 12 - .../test_data/test_delete_in_word/82head.txt | 1 - .../test_data/test_delete_in_word/83mode.txt | 1 - .../test_data/test_delete_in_word/84text.txt | 12 - .../test_data/test_delete_in_word/85head.txt | 1 - .../test_data/test_delete_in_word/86mode.txt | 1 - .../test_data/test_delete_in_word/87text.txt | 12 - .../test_data/test_delete_in_word/88head.txt | 1 - .../test_data/test_delete_in_word/89mode.txt | 1 - .../test_data/test_delete_in_word/8mode.txt | 1 - .../test_data/test_delete_in_word/90text.txt | 12 - .../test_data/test_delete_in_word/91head.txt | 1 - .../test_data/test_delete_in_word/92mode.txt | 1 - .../test_data/test_delete_in_word/93text.txt | 12 - .../test_data/test_delete_in_word/94head.txt | 1 - .../test_data/test_delete_in_word/95mode.txt | 1 - .../test_data/test_delete_in_word/96text.txt | 12 - .../test_data/test_delete_in_word/97head.txt | 1 - .../test_data/test_delete_in_word/98mode.txt | 1 - .../test_data/test_delete_in_word/99text.txt | 12 - .../test_data/test_delete_in_word/9text.txt | 12 - crates/vim/test_data/test_e.json | 1 + crates/vim/test_data/test_gg.json | 1 + crates/vim/test_data/test_h.json | 1 + .../test_data/test_insert_end_of_line.json | 1 + .../vim/test_data/test_insert_line_above.json | 1 + crates/vim/test_data/test_j.json | 1 + crates/vim/test_data/test_jump_to_end.json | 1 + .../test_jump_to_line_boundaries.json | 1 + crates/vim/test_data/test_k.json | 1 + crates/vim/test_data/test_l.json | 1 + crates/vim/test_data/test_neovim.json | 1 + crates/vim/test_data/test_neovim/0text.txt | 1 - crates/vim/test_data/test_neovim/1head.txt | 1 - crates/vim/test_data/test_neovim/2mode.txt | 1 - crates/vim/test_data/test_repeated_cb.json | 1 + crates/vim/test_data/test_repeated_ce.json | 1 + crates/vim/test_data/test_repeated_cj.json | 1 + crates/vim/test_data/test_repeated_cl.json | 1 + crates/vim/test_data/test_repeated_word.json | 1 + crates/vim/test_data/test_w.json | 1 + .../test_data/test_word_text_object/0text.txt | 9 - .../test_word_text_object/100head.txt | 1 - .../test_word_text_object/101mode.txt | 1 - .../test_word_text_object/102text.txt | 9 - .../test_word_text_object/103head.txt | 1 - .../test_word_text_object/104mode.txt | 1 - .../test_word_text_object/105text.txt | 9 - .../test_word_text_object/106head.txt | 1 - .../test_word_text_object/107mode.txt | 1 - .../test_word_text_object/108text.txt | 9 - .../test_word_text_object/109head.txt | 1 - .../test_word_text_object/10head.txt | 1 - .../test_word_text_object/110mode.txt | 1 - .../test_word_text_object/111text.txt | 9 - .../test_word_text_object/112head.txt | 1 - .../test_word_text_object/113mode.txt | 1 - .../test_word_text_object/114text.txt | 9 - .../test_word_text_object/115head.txt | 1 - .../test_word_text_object/116mode.txt | 1 - .../test_word_text_object/117text.txt | 9 - .../test_word_text_object/118head.txt | 1 - .../test_word_text_object/119mode.txt | 1 - .../test_word_text_object/11mode.txt | 1 - .../test_word_text_object/120text.txt | 8 - .../test_word_text_object/121head.txt | 1 - .../test_word_text_object/122mode.txt | 1 - .../test_word_text_object/123text.txt | 9 - .../test_word_text_object/124head.txt | 1 - .../test_word_text_object/125mode.txt | 1 - .../test_word_text_object/126text.txt | 9 - .../test_word_text_object/127head.txt | 1 - .../test_word_text_object/128mode.txt | 1 - .../test_word_text_object/129text.txt | 9 - .../test_word_text_object/12text.txt | 9 - .../test_word_text_object/130head.txt | 1 - .../test_word_text_object/131mode.txt | 1 - .../test_word_text_object/132text.txt | 8 - .../test_word_text_object/133head.txt | 1 - .../test_word_text_object/134mode.txt | 1 - .../test_word_text_object/135text.txt | 8 - .../test_word_text_object/136head.txt | 1 - .../test_word_text_object/137mode.txt | 1 - .../test_word_text_object/138text.txt | 8 - .../test_word_text_object/139head.txt | 1 - .../test_word_text_object/13head.txt | 1 - .../test_word_text_object/140mode.txt | 1 - .../test_word_text_object/141text.txt | 8 - .../test_word_text_object/142head.txt | 1 - .../test_word_text_object/143mode.txt | 1 - .../test_word_text_object/144text.txt | 9 - .../test_word_text_object/145head.txt | 1 - .../test_word_text_object/146mode.txt | 1 - .../test_word_text_object/147text.txt | 9 - .../test_word_text_object/148head.txt | 1 - .../test_word_text_object/149mode.txt | 1 - .../test_word_text_object/14mode.txt | 1 - .../test_word_text_object/150text.txt | 9 - .../test_word_text_object/151head.txt | 1 - .../test_word_text_object/152mode.txt | 1 - .../test_word_text_object/153text.txt | 9 - .../test_word_text_object/154head.txt | 1 - .../test_word_text_object/155mode.txt | 1 - .../test_word_text_object/156text.txt | 9 - .../test_word_text_object/157head.txt | 1 - .../test_word_text_object/158mode.txt | 1 - .../test_word_text_object/159text.txt | 9 - .../test_word_text_object/15text.txt | 9 - .../test_word_text_object/160head.txt | 1 - .../test_word_text_object/161mode.txt | 1 - .../test_word_text_object/162text.txt | 8 - .../test_word_text_object/163head.txt | 1 - .../test_word_text_object/164mode.txt | 1 - .../test_word_text_object/165text.txt | 9 - .../test_word_text_object/166head.txt | 1 - .../test_word_text_object/167mode.txt | 1 - .../test_word_text_object/168text.txt | 9 - .../test_word_text_object/169head.txt | 1 - .../test_word_text_object/16head.txt | 1 - .../test_word_text_object/170mode.txt | 1 - .../test_word_text_object/171text.txt | 9 - .../test_word_text_object/172head.txt | 1 - .../test_word_text_object/173mode.txt | 1 - .../test_word_text_object/174text.txt | 9 - .../test_word_text_object/175head.txt | 1 - .../test_word_text_object/176mode.txt | 1 - .../test_word_text_object/177text.txt | 8 - .../test_word_text_object/178head.txt | 1 - .../test_word_text_object/179mode.txt | 1 - .../test_word_text_object/17mode.txt | 1 - .../test_word_text_object/180text.txt | 9 - .../test_word_text_object/181head.txt | 1 - .../test_word_text_object/182mode.txt | 1 - .../test_word_text_object/183text.txt | 9 - .../test_word_text_object/184head.txt | 1 - .../test_word_text_object/185mode.txt | 1 - .../test_word_text_object/186text.txt | 9 - .../test_word_text_object/187head.txt | 1 - .../test_word_text_object/188mode.txt | 1 - .../test_word_text_object/189text.txt | 8 - .../test_word_text_object/18text.txt | 9 - .../test_word_text_object/190head.txt | 1 - .../test_word_text_object/191mode.txt | 1 - .../test_word_text_object/192text.txt | 8 - .../test_word_text_object/193head.txt | 1 - .../test_word_text_object/194mode.txt | 1 - .../test_word_text_object/195text.txt | 8 - .../test_word_text_object/196head.txt | 1 - .../test_word_text_object/197mode.txt | 1 - .../test_word_text_object/198text.txt | 8 - .../test_word_text_object/199head.txt | 1 - .../test_word_text_object/19head.txt | 1 - .../test_data/test_word_text_object/1head.txt | 1 - .../test_word_text_object/200mode.txt | 1 - .../test_word_text_object/201text.txt | 9 - .../test_word_text_object/202head.txt | 1 - .../test_word_text_object/203mode.txt | 1 - .../test_word_text_object/204text.txt | 9 - .../test_word_text_object/205head.txt | 1 - .../test_word_text_object/206mode.txt | 1 - .../test_word_text_object/207text.txt | 9 - .../test_word_text_object/208head.txt | 1 - .../test_word_text_object/209mode.txt | 1 - .../test_word_text_object/20mode.txt | 1 - .../test_word_text_object/210text.txt | 9 - .../test_word_text_object/211head.txt | 1 - .../test_word_text_object/212mode.txt | 1 - .../test_word_text_object/213text.txt | 9 - .../test_word_text_object/214head.txt | 1 - .../test_word_text_object/215mode.txt | 1 - .../test_word_text_object/216text.txt | 9 - .../test_word_text_object/217head.txt | 1 - .../test_word_text_object/218mode.txt | 1 - .../test_word_text_object/219text.txt | 8 - .../test_word_text_object/21text.txt | 9 - .../test_word_text_object/220head.txt | 1 - .../test_word_text_object/221mode.txt | 1 - .../test_word_text_object/222text.txt | 9 - .../test_word_text_object/223head.txt | 1 - .../test_word_text_object/224mode.txt | 1 - .../test_word_text_object/225text.txt | 9 - .../test_word_text_object/226head.txt | 1 - .../test_word_text_object/227mode.txt | 1 - .../test_word_text_object/228text.txt | 9 - .../test_word_text_object/229head.txt | 1 - .../test_word_text_object/22head.txt | 1 - .../test_word_text_object/230mode.txt | 1 - .../test_word_text_object/231text.txt | 9 - .../test_word_text_object/23mode.txt | 1 - .../test_word_text_object/24text.txt | 9 - .../test_word_text_object/25head.txt | 1 - .../test_word_text_object/26mode.txt | 1 - .../test_word_text_object/27text.txt | 9 - .../test_word_text_object/28head.txt | 1 - .../test_word_text_object/29mode.txt | 1 - .../test_data/test_word_text_object/2mode.txt | 1 - .../test_word_text_object/30text.txt | 9 - .../test_word_text_object/31head.txt | 1 - .../test_word_text_object/32mode.txt | 1 - .../test_word_text_object/33text.txt | 9 - .../test_word_text_object/34head.txt | 1 - .../test_word_text_object/35mode.txt | 1 - .../test_word_text_object/36text.txt | 9 - .../test_word_text_object/37head.txt | 1 - .../test_word_text_object/38mode.txt | 1 - .../test_word_text_object/39text.txt | 9 - .../test_data/test_word_text_object/3text.txt | 9 - .../test_word_text_object/40head.txt | 1 - .../test_word_text_object/41mode.txt | 1 - .../test_word_text_object/42text.txt | 9 - .../test_word_text_object/43head.txt | 1 - .../test_word_text_object/44mode.txt | 1 - .../test_word_text_object/45text.txt | 9 - .../test_word_text_object/46head.txt | 1 - .../test_word_text_object/47mode.txt | 1 - .../test_word_text_object/48text.txt | 9 - .../test_word_text_object/49head.txt | 1 - .../test_data/test_word_text_object/4head.txt | 1 - .../test_word_text_object/50mode.txt | 1 - .../test_word_text_object/51text.txt | 9 - .../test_word_text_object/52head.txt | 1 - .../test_word_text_object/53mode.txt | 1 - .../test_word_text_object/54text.txt | 9 - .../test_word_text_object/55head.txt | 1 - .../test_word_text_object/56mode.txt | 1 - .../test_word_text_object/57text.txt | 9 - .../test_word_text_object/58head.txt | 1 - .../test_word_text_object/59mode.txt | 1 - .../test_data/test_word_text_object/5mode.txt | 1 - .../test_word_text_object/60text.txt | 9 - .../test_word_text_object/61head.txt | 1 - .../test_word_text_object/62mode.txt | 1 - .../test_word_text_object/63text.txt | 9 - .../test_word_text_object/64head.txt | 1 - .../test_word_text_object/65mode.txt | 1 - .../test_word_text_object/66text.txt | 9 - .../test_word_text_object/67head.txt | 1 - .../test_word_text_object/68mode.txt | 1 - .../test_word_text_object/69text.txt | 9 - .../test_data/test_word_text_object/6text.txt | 9 - .../test_word_text_object/70head.txt | 1 - .../test_word_text_object/71mode.txt | 1 - .../test_word_text_object/72text.txt | 9 - .../test_word_text_object/73head.txt | 1 - .../test_word_text_object/74mode.txt | 1 - .../test_word_text_object/75text.txt | 9 - .../test_word_text_object/76head.txt | 1 - .../test_word_text_object/77mode.txt | 1 - .../test_word_text_object/78text.txt | 9 - .../test_word_text_object/79head.txt | 1 - .../test_data/test_word_text_object/7head.txt | 1 - .../test_word_text_object/80mode.txt | 1 - .../test_word_text_object/81text.txt | 9 - .../test_word_text_object/82head.txt | 1 - .../test_word_text_object/83mode.txt | 1 - .../test_word_text_object/84text.txt | 9 - .../test_word_text_object/85head.txt | 1 - .../test_word_text_object/86mode.txt | 1 - .../test_word_text_object/87text.txt | 9 - .../test_word_text_object/88head.txt | 1 - .../test_word_text_object/89mode.txt | 1 - .../test_data/test_word_text_object/8mode.txt | 1 - .../test_word_text_object/90text.txt | 9 - .../test_word_text_object/91head.txt | 1 - .../test_word_text_object/92mode.txt | 1 - .../test_word_text_object/93text.txt | 9 - .../test_word_text_object/94head.txt | 1 - .../test_word_text_object/95mode.txt | 1 - .../test_word_text_object/96text.txt | 9 - .../test_word_text_object/97head.txt | 1 - .../test_word_text_object/98mode.txt | 1 - .../test_word_text_object/99text.txt | 9 - .../test_data/test_word_text_object/9text.txt | 9 - 971 files changed, 838 insertions(+), 11898 deletions(-) delete mode 100644 Cargo.lock create mode 100644 crates/vim/test_data/neovim_backed_test_context_works.json create mode 100644 crates/vim/test_data/test_a.json create mode 100644 crates/vim/test_data/test_backspace.json create mode 100644 crates/vim/test_data/test_change_around_sentence.json delete mode 100644 crates/vim/test_data/test_change_around_sentence/0text.txt delete mode 100644 crates/vim/test_data/test_change_around_sentence/10head.txt delete mode 100644 crates/vim/test_data/test_change_around_sentence/1head.txt delete mode 100644 crates/vim/test_data/test_change_around_sentence/2mode.txt delete mode 100644 crates/vim/test_data/test_change_around_sentence/3text.txt delete mode 100644 crates/vim/test_data/test_change_around_sentence/4head.txt delete mode 100644 crates/vim/test_data/test_change_around_sentence/5mode.txt delete mode 100644 crates/vim/test_data/test_change_around_sentence/6text.txt delete mode 100644 crates/vim/test_data/test_change_around_sentence/7head.txt delete mode 100644 crates/vim/test_data/test_change_around_sentence/8mode.txt delete mode 100644 crates/vim/test_data/test_change_around_sentence/9text.txt create mode 100644 crates/vim/test_data/test_change_around_word.json delete mode 100644 crates/vim/test_data/test_change_around_word/0text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/100head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/101mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/102text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/103head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/104mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/105text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/106head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/107mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/108text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/109head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/10head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/110mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/111text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/112head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/113mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/114text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/115head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/116mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/117text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/118head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/119mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/11mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/120text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/121head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/122mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/123text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/124head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/125mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/126text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/127head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/128mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/129text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/12text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/130head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/131mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/132text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/133head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/134mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/135text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/136head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/137mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/13head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/14mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/15text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/16head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/17mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/18text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/19head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/1head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/20mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/21text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/22head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/23mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/24text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/25head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/26mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/27text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/28head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/29mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/2mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/30text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/31head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/32mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/33text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/34head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/35mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/36text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/37head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/38mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/39text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/3text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/40head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/41mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/42text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/43head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/44mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/45text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/46head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/47mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/48text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/49head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/4head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/50mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/51text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/52head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/53mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/54text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/55head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/56mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/57text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/58head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/59mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/5mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/60text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/61head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/62mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/63text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/64head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/65mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/66text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/67head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/68mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/69text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/6text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/70head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/71mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/72text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/73head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/74mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/75text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/76head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/77mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/78text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/79head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/7head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/80mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/81text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/82head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/83mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/84text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/85head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/86mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/87text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/88head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/89mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/8mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/90text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/91head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/92mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/93text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/94head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/95mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/96text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/97head.txt delete mode 100644 crates/vim/test_data/test_change_around_word/98mode.txt delete mode 100644 crates/vim/test_data/test_change_around_word/99text.txt delete mode 100644 crates/vim/test_data/test_change_around_word/9text.txt create mode 100644 crates/vim/test_data/test_change_in_sentence.json delete mode 100644 crates/vim/test_data/test_change_in_sentence/0text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/10head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/11mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/12text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/13head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/14mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/15text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/16head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/17mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/18text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/19head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/1head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/20mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/21text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/22head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/23mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/24text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/25head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/26mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/27text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/28head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/29mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/2mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/30text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/31head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/32mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/33text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/34head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/35mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/36text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/37head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/38mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/39text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/3text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/40head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/41mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/42text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/43head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/44mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/45text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/46head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/47mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/48text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/49head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/4head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/50mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/51text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/52head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/53mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/54text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/55head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/56mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/5mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/6text.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/7head.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/8mode.txt delete mode 100644 crates/vim/test_data/test_change_in_sentence/9text.txt create mode 100644 crates/vim/test_data/test_change_in_word.json delete mode 100644 crates/vim/test_data/test_change_in_word/0text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/100head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/101mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/102text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/103head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/104mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/105text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/106head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/107mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/108text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/109head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/10head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/110mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/111text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/112head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/113mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/114text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/115head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/116mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/117text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/118head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/119mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/11mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/120text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/121head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/122mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/123text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/124head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/125mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/126text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/127head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/128mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/129text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/12text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/130head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/131mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/132text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/133head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/134mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/135text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/136head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/137mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/13head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/14mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/15text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/16head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/17mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/18text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/19head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/1head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/20mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/21text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/22head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/23mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/24text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/25head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/26mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/27text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/28head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/29mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/2mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/30text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/31head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/32mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/33text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/34head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/35mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/36text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/37head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/38mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/39text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/3text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/40head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/41mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/42text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/43head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/44mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/45text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/46head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/47mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/48text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/49head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/4head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/50mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/51text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/52head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/53mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/54text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/55head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/56mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/57text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/58head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/59mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/5mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/60text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/61head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/62mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/63text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/64head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/65mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/66text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/67head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/68mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/69text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/6text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/70head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/71mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/72text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/73head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/74mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/75text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/76head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/77mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/78text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/79head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/7head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/80mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/81text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/82head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/83mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/84text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/85head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/86mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/87text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/88head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/89mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/8mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/90text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/91head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/92mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/93text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/94head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/95mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/96text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/97head.txt delete mode 100644 crates/vim/test_data/test_change_in_word/98mode.txt delete mode 100644 crates/vim/test_data/test_change_in_word/99text.txt delete mode 100644 crates/vim/test_data/test_change_in_word/9text.txt create mode 100644 crates/vim/test_data/test_delete_around_sentence.json delete mode 100644 crates/vim/test_data/test_delete_around_sentence/0text.txt delete mode 100644 crates/vim/test_data/test_delete_around_sentence/10head.txt delete mode 100644 crates/vim/test_data/test_delete_around_sentence/1head.txt delete mode 100644 crates/vim/test_data/test_delete_around_sentence/2mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_sentence/3text.txt delete mode 100644 crates/vim/test_data/test_delete_around_sentence/4head.txt delete mode 100644 crates/vim/test_data/test_delete_around_sentence/5mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_sentence/6text.txt delete mode 100644 crates/vim/test_data/test_delete_around_sentence/7head.txt delete mode 100644 crates/vim/test_data/test_delete_around_sentence/8mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_sentence/9text.txt create mode 100644 crates/vim/test_data/test_delete_around_word.json delete mode 100644 crates/vim/test_data/test_delete_around_word/0text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/100head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/101mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/102text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/103head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/104mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/105text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/106head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/107mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/108text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/109head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/10head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/110mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/111text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/112head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/113mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/114text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/115head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/116mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/117text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/118head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/119mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/11mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/120text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/121head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/122mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/123text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/124head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/125mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/126text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/127head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/128mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/129text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/12text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/130head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/131mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/132text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/133head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/134mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/135text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/136head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/137mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/13head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/14mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/15text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/16head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/17mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/18text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/19head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/1head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/20mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/21text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/22head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/23mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/24text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/25head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/26mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/27text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/28head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/29mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/2mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/30text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/31head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/32mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/33text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/34head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/35mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/36text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/37head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/38mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/39text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/3text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/40head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/41mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/42text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/43head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/44mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/45text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/46head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/47mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/48text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/49head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/4head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/50mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/51text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/52head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/53mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/54text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/55head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/56mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/57text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/58head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/59mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/5mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/60text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/61head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/62mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/63text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/64head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/65mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/66text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/67head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/68mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/69text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/6text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/70head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/71mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/72text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/73head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/74mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/75text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/76head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/77mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/78text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/79head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/7head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/80mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/81text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/82head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/83mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/84text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/85head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/86mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/87text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/88head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/89mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/8mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/90text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/91head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/92mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/93text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/94head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/95mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/96text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/97head.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/98mode.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/99text.txt delete mode 100644 crates/vim/test_data/test_delete_around_word/9text.txt create mode 100644 crates/vim/test_data/test_delete_in_sentence.json delete mode 100644 crates/vim/test_data/test_delete_in_sentence/0text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/10head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/11mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/12text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/13head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/14mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/15text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/16head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/17mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/18text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/19head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/1head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/20mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/21text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/22head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/23mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/24text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/25head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/26mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/27text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/28head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/29mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/2mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/30text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/31head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/32mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/33text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/34head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/35mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/36text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/37head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/38mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/39text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/3text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/40head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/41mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/42text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/43head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/44mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/45text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/46head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/47mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/48text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/49head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/4head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/50mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/51text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/52head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/53mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/54text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/55head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/56mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/5mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/6text.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/7head.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/8mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_sentence/9text.txt create mode 100644 crates/vim/test_data/test_delete_in_word.json delete mode 100644 crates/vim/test_data/test_delete_in_word/0text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/100head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/101mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/102text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/103head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/104mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/105text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/106head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/107mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/108text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/109head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/10head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/110mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/111text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/112head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/113mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/114text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/115head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/116mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/117text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/118head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/119mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/11mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/120text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/121head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/122mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/123text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/124head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/125mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/126text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/127head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/128mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/129text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/12text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/130head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/131mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/132text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/133head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/134mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/135text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/136head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/137mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/13head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/14mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/15text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/16head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/17mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/18text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/19head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/1head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/20mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/21text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/22head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/23mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/24text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/25head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/26mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/27text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/28head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/29mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/2mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/30text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/31head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/32mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/33text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/34head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/35mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/36text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/37head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/38mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/39text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/3text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/40head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/41mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/42text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/43head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/44mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/45text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/46head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/47mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/48text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/49head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/4head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/50mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/51text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/52head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/53mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/54text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/55head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/56mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/57text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/58head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/59mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/5mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/60text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/61head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/62mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/63text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/64head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/65mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/66text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/67head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/68mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/69text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/6text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/70head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/71mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/72text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/73head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/74mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/75text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/76head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/77mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/78text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/79head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/7head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/80mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/81text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/82head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/83mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/84text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/85head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/86mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/87text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/88head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/89mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/8mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/90text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/91head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/92mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/93text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/94head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/95mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/96text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/97head.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/98mode.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/99text.txt delete mode 100644 crates/vim/test_data/test_delete_in_word/9text.txt create mode 100644 crates/vim/test_data/test_e.json create mode 100644 crates/vim/test_data/test_gg.json create mode 100644 crates/vim/test_data/test_h.json create mode 100644 crates/vim/test_data/test_insert_end_of_line.json create mode 100644 crates/vim/test_data/test_insert_line_above.json create mode 100644 crates/vim/test_data/test_j.json create mode 100644 crates/vim/test_data/test_jump_to_end.json create mode 100644 crates/vim/test_data/test_jump_to_line_boundaries.json create mode 100644 crates/vim/test_data/test_k.json create mode 100644 crates/vim/test_data/test_l.json create mode 100644 crates/vim/test_data/test_neovim.json delete mode 100644 crates/vim/test_data/test_neovim/0text.txt delete mode 100644 crates/vim/test_data/test_neovim/1head.txt delete mode 100644 crates/vim/test_data/test_neovim/2mode.txt create mode 100644 crates/vim/test_data/test_repeated_cb.json create mode 100644 crates/vim/test_data/test_repeated_ce.json create mode 100644 crates/vim/test_data/test_repeated_cj.json create mode 100644 crates/vim/test_data/test_repeated_cl.json create mode 100644 crates/vim/test_data/test_repeated_word.json create mode 100644 crates/vim/test_data/test_w.json delete mode 100644 crates/vim/test_data/test_word_text_object/0text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/100head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/101mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/102text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/103head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/104mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/105text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/106head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/107mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/108text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/109head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/10head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/110mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/111text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/112head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/113mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/114text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/115head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/116mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/117text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/118head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/119mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/11mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/120text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/121head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/122mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/123text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/124head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/125mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/126text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/127head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/128mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/129text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/12text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/130head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/131mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/132text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/133head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/134mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/135text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/136head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/137mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/138text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/139head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/13head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/140mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/141text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/142head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/143mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/144text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/145head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/146mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/147text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/148head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/149mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/14mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/150text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/151head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/152mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/153text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/154head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/155mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/156text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/157head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/158mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/159text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/15text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/160head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/161mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/162text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/163head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/164mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/165text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/166head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/167mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/168text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/169head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/16head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/170mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/171text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/172head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/173mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/174text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/175head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/176mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/177text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/178head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/179mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/17mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/180text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/181head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/182mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/183text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/184head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/185mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/186text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/187head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/188mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/189text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/18text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/190head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/191mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/192text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/193head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/194mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/195text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/196head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/197mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/198text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/199head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/19head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/1head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/200mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/201text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/202head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/203mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/204text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/205head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/206mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/207text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/208head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/209mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/20mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/210text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/211head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/212mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/213text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/214head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/215mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/216text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/217head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/218mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/219text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/21text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/220head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/221mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/222text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/223head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/224mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/225text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/226head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/227mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/228text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/229head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/22head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/230mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/231text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/23mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/24text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/25head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/26mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/27text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/28head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/29mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/2mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/30text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/31head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/32mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/33text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/34head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/35mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/36text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/37head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/38mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/39text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/3text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/40head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/41mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/42text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/43head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/44mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/45text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/46head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/47mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/48text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/49head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/4head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/50mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/51text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/52head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/53mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/54text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/55head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/56mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/57text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/58head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/59mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/5mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/60text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/61head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/62mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/63text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/64head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/65mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/66text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/67head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/68mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/69text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/6text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/70head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/71mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/72text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/73head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/74mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/75text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/76head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/77mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/78text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/79head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/7head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/80mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/81text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/82head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/83mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/84text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/85head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/86mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/87text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/88head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/89mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/8mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/90text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/91head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/92mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/93text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/94head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/95mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/96text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/97head.txt delete mode 100644 crates/vim/test_data/test_word_text_object/98mode.txt delete mode 100644 crates/vim/test_data/test_word_text_object/99text.txt delete mode 100644 crates/vim/test_data/test_word_text_object/9text.txt diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index e5f183c9ef..0000000000 --- a/Cargo.lock +++ /dev/null @@ -1,7629 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "activity_indicator" -version = "0.1.0" -dependencies = [ - "auto_update", - "editor", - "futures 0.3.24", - "gpui", - "language", - "project", - "settings", - "smallvec", - "util", - "workspace", -] - -[[package]] -name = "addr2line" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "adler32" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" - -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom 0.2.7", - "once_cell", - "version_check", -] - -[[package]] -name = "aho-corasick" -version = "0.7.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" -dependencies = [ - "memchr", -] - -[[package]] -name = "alacritty_config" -version = "0.1.1-dev" -source = "git+https://github.com/zed-industries/alacritty?rev=a51dbe25d67e84d6ed4261e640d3954fbdd9be45#a51dbe25d67e84d6ed4261e640d3954fbdd9be45" -dependencies = [ - "log", - "serde", - "serde_yaml", -] - -[[package]] -name = "alacritty_config_derive" -version = "0.2.1-dev" -source = "git+https://github.com/zed-industries/alacritty?rev=a51dbe25d67e84d6ed4261e640d3954fbdd9be45#a51dbe25d67e84d6ed4261e640d3954fbdd9be45" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "alacritty_terminal" -version = "0.17.1-dev" -source = "git+https://github.com/zed-industries/alacritty?rev=a51dbe25d67e84d6ed4261e640d3954fbdd9be45#a51dbe25d67e84d6ed4261e640d3954fbdd9be45" -dependencies = [ - "alacritty_config", - "alacritty_config_derive", - "base64", - "bitflags", - "dirs 4.0.0", - "libc", - "log", - "mio 0.6.23", - "mio-anonymous-pipes", - "mio-extras", - "miow 0.3.7", - "nix", - "parking_lot 0.12.1", - "regex-automata", - "serde", - "serde_yaml", - "signal-hook", - "signal-hook-mio", - "unicode-width", - "vte", - "winapi 0.3.9", -] - -[[package]] -name = "ambient-authority" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8ad6edb4840b78c5c3d88de606b22252d552b55f3a4699fbb10fc070ec3049" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "anyhow" -version = "1.0.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" - -[[package]] -name = "arrayref" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "arrayvec" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" - -[[package]] -name = "ascii" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" - -[[package]] -name = "assets" -version = "0.1.0" -dependencies = [ - "anyhow", - "gpui", - "rust-embed", -] - -[[package]] -name = "async-broadcast" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90622698a1218e0b2fb846c97b5f19a0831f6baddee73d9454156365ccfa473b" -dependencies = [ - "easy-parallel", - "event-listener", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "async-compat" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b48b4ff0c2026db683dea961cd8ea874737f56cffca86fa84415eaddc51c00d" -dependencies = [ - "futures-core", - "futures-io", - "once_cell", - "pin-project-lite 0.2.9", - "tokio", -] - -[[package]] -name = "async-compression" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" -dependencies = [ - "flate2", - "futures-core", - "futures-io", - "memchr", - "pin-project-lite 0.2.9", -] - -[[package]] -name = "async-executor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "once_cell", - "slab", -] - -[[package]] -name = "async-fs" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" -dependencies = [ - "async-lock", - "autocfg 1.1.0", - "blocking", - "futures-lite", -] - -[[package]] -name = "async-io" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7" -dependencies = [ - "autocfg 1.1.0", - "concurrent-queue", - "futures-lite", - "libc", - "log", - "once_cell", - "parking", - "polling", - "slab", - "socket2", - "waker-fn", - "winapi 0.3.9", -] - -[[package]] -name = "async-lock" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6" -dependencies = [ - "event-listener", -] - -[[package]] -name = "async-net" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f" -dependencies = [ - "async-io", - "autocfg 1.1.0", - "blocking", - "futures-lite", -] - -[[package]] -name = "async-pipe" -version = "0.1.3" -source = "git+https://github.com/zed-industries/async-pipe-rs?rev=82d00a04211cf4e1236029aa03e6b6ce2a74c553#82d00a04211cf4e1236029aa03e6b6ce2a74c553" -dependencies = [ - "futures 0.3.24", - "log", -] - -[[package]] -name = "async-process" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" -dependencies = [ - "async-io", - "autocfg 1.1.0", - "blocking", - "cfg-if 1.0.0", - "event-listener", - "futures-lite", - "libc", - "once_cell", - "signal-hook", - "winapi 0.3.9", -] - -[[package]] -name = "async-recursion" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "async-stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" -dependencies = [ - "async-stream-impl", - "futures-core", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "async-task" -version = "4.0.3" -source = "git+https://github.com/zed-industries/async-task?rev=341b57d6de98cdfd7b418567b8de2022ca993a6e#341b57d6de98cdfd7b418567b8de2022ca993a6e" - -[[package]] -name = "async-tls" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f23d769dbf1838d5df5156e7b1ad404f4c463d1ac2c6aeb6cd943630f8a8400" -dependencies = [ - "futures-core", - "futures-io", - "rustls 0.19.1", - "webpki 0.21.4", - "webpki-roots 0.21.1", -] - -[[package]] -name = "async-trait" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "async-tungstenite" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5682ea0913e5c20780fe5785abacb85a411e7437bf52a1bedb93ddb3972cb8dd" -dependencies = [ - "async-tls", - "futures-io", - "futures-util", - "log", - "pin-project-lite 0.2.9", - "tungstenite 0.16.0", -] - -[[package]] -name = "atoi" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c57d12312ff59c811c0643f4d80830505833c9ffaebd193d819392b265be8e" -dependencies = [ - "num-traits", -] - -[[package]] -name = "atomic" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" -dependencies = [ - "autocfg 1.1.0", -] - -[[package]] -name = "atomic-waker" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "auto_update" -version = "0.1.0" -dependencies = [ - "anyhow", - "client", - "gpui", - "isahc", - "lazy_static", - "log", - "menu", - "project", - "serde", - "serde_json", - "settings", - "smol", - "tempdir", - "theme", - "util", - "workspace", -] - -[[package]] -name = "autocfg" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" -dependencies = [ - "autocfg 1.1.0", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "axum" -version = "0.5.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e3356844c4d6a6d6467b8da2cffb4a2820be256f50a3a386c9d152bab31043" -dependencies = [ - "async-trait", - "axum-core", - "base64", - "bitflags", - "bytes 1.2.1", - "futures-util", - "headers", - "http", - "http-body", - "hyper", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite 0.2.9", - "serde", - "serde_json", - "serde_urlencoded", - "sha-1 0.10.0", - "sync_wrapper", - "tokio", - "tokio-tungstenite", - "tower", - "tower-http", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f0c0a60006f2a293d82d571f635042a72edf927539b7685bd62d361963839b" -dependencies = [ - "async-trait", - "bytes 1.2.1", - "futures-util", - "http", - "http-body", - "mime", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-extra" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69034b3b0fd97923eee2ce8a47540edb21e07f48f87f67d44bb4271cec622bdb" -dependencies = [ - "axum", - "bytes 1.2.1", - "futures-util", - "http", - "mime", - "pin-project-lite 0.2.9", - "serde", - "serde_json", - "tokio", - "tower", - "tower-http", - "tower-layer", - "tower-service", -] - -[[package]] -name = "backtrace" -version = "0.3.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" -dependencies = [ - "addr2line", - "cc", - "cfg-if 1.0.0", - "libc", - "miniz_oxide 0.5.4", - "object 0.29.0", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - -[[package]] -name = "base64ct" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2b2456fd614d856680dcd9fcc660a51a820fa09daef2e49772b56a193c8474" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bindgen" -version = "0.59.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8" -dependencies = [ - "bitflags", - "cexpr", - "clang-sys", - "clap 2.34.0", - "env_logger", - "lazy_static", - "lazycell", - "log", - "peeking_take_while", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "which", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blocking" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" -dependencies = [ - "async-channel", - "async-task", - "atomic-waker", - "fastrand", - "futures-lite", - "once_cell", -] - -[[package]] -name = "breadcrumbs" -version = "0.1.0" -dependencies = [ - "collections", - "editor", - "gpui", - "itertools", - "language", - "project", - "search", - "settings", - "theme", - "workspace", -] - -[[package]] -name = "bromberg_sl2" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed88064f69518b7e3ea50ecfc1b61d43f19248618a377b95ae5c8b611134d4d" -dependencies = [ - "digest 0.9.0", - "lazy_static", - "rayon", - "seq-macro", -] - -[[package]] -name = "bstr" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" -dependencies = [ - "memchr", -] - -[[package]] -name = "bumpalo" -version = "3.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" - -[[package]] -name = "bytemuck" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] - -[[package]] -name = "bytes" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "cache-padded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" - -[[package]] -name = "cap-fs-ext" -version = "0.24.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54b86398b5852ddd45784b1d9b196b98beb39171821bad4b8b44534a1e87927" -dependencies = [ - "cap-primitives", - "cap-std", - "io-lifetimes", - "winapi 0.3.9", -] - -[[package]] -name = "cap-primitives" -version = "0.24.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb8fca3e81fae1d91a36e9784ca22a39ef623702b5f7904d89dc31f10184a178" -dependencies = [ - "ambient-authority", - "errno", - "fs-set-times", - "io-extras", - "io-lifetimes", - "ipnet", - "maybe-owned", - "rustix", - "winapi 0.3.9", - "winapi-util", - "winx", -] - -[[package]] -name = "cap-rand" -version = "0.24.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3b27294116983d706f4c8168f6d10c84f9f5daed0c28bc7d0296cf16bcf971" -dependencies = [ - "ambient-authority", - "rand 0.8.5", -] - -[[package]] -name = "cap-std" -version = "0.24.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2247568946095c7765ad2b441a56caffc08027734c634a6d5edda648f04e32eb" -dependencies = [ - "cap-primitives", - "io-extras", - "io-lifetimes", - "ipnet", - "rustix", -] - -[[package]] -name = "cap-time-ext" -version = "0.24.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c50472b6ebc302af0401fa3fb939694cd8ff00e0d4c9182001e434fc822ab83a" -dependencies = [ - "cap-primitives", - "once_cell", - "rustix", - "winx", -] - -[[package]] -name = "capture" -version = "0.1.0" -dependencies = [ - "anyhow", - "bindgen", - "block", - "byteorder", - "bytes 1.2.1", - "cocoa", - "core-foundation", - "core-graphics", - "foreign-types", - "futures 0.3.24", - "gpui", - "hmac 0.12.1", - "jwt", - "live_kit", - "log", - "media", - "objc", - "parking_lot 0.11.2", - "postage", - "serde", - "sha2 0.10.6", - "simplelog", -] - -[[package]] -name = "castaway" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6" - -[[package]] -name = "cc" -version = "1.0.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" -dependencies = [ - "jobserver", -] - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chat_panel" -version = "0.1.0" -dependencies = [ - "client", - "editor", - "gpui", - "menu", - "postage", - "settings", - "theme", - "time 0.3.15", - "util", - "workspace", -] - -[[package]] -name = "chrono" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" -dependencies = [ - "iana-time-zone", - "js-sys", - "num-integer", - "num-traits", - "time 0.1.44", - "wasm-bindgen", - "winapi 0.3.9", -] - -[[package]] -name = "chunked_transfer" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e" - -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array", -] - -[[package]] -name = "clang-sys" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" -dependencies = [ - "glob", - "libc", - "libloading", -] - -[[package]] -name = "clap" -version = "2.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" -dependencies = [ - "ansi_term", - "atty", - "bitflags", - "strsim 0.8.0", - "textwrap 0.11.0", - "unicode-width", - "vec_map", -] - -[[package]] -name = "clap" -version = "3.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750" -dependencies = [ - "atty", - "bitflags", - "clap_derive", - "clap_lex", - "indexmap", - "once_cell", - "strsim 0.10.0", - "termcolor", - "textwrap 0.15.1", -] - -[[package]] -name = "clap_derive" -version = "3.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" -dependencies = [ - "heck 0.4.0", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "clap_lex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] - -[[package]] -name = "cli" -version = "0.1.0" -dependencies = [ - "anyhow", - "clap 3.2.22", - "core-foundation", - "core-services", - "dirs 3.0.2", - "ipc-channel", - "plist", - "serde", -] - -[[package]] -name = "client" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-recursion", - "async-tungstenite", - "collections", - "db", - "futures 0.3.24", - "gpui", - "image", - "isahc", - "lazy_static", - "log", - "parking_lot 0.11.2", - "postage", - "rand 0.8.5", - "rpc", - "serde", - "smol", - "sum_tree", - "tempfile", - "thiserror", - "time 0.3.15", - "tiny_http", - "url", - "util", - "uuid 1.2.1", -] - -[[package]] -name = "clock" -version = "0.1.0" -dependencies = [ - "smallvec", -] - -[[package]] -name = "cmake" -version = "0.1.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" -dependencies = [ - "cc", -] - -[[package]] -name = "cocoa" -version = "0.24.0" -source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" -dependencies = [ - "bitflags", - "block", - "cocoa-foundation", - "core-foundation", - "core-graphics", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.1.1" -source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" -dependencies = [ - "bitflags", - "block", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - -[[package]] -name = "collab" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-trait", - "async-tungstenite", - "axum", - "axum-extra", - "base64", - "clap 3.2.22", - "client", - "collections", - "ctor", - "editor", - "env_logger", - "envy", - "futures 0.3.24", - "git", - "gpui", - "hyper", - "language", - "lazy_static", - "lipsum", - "log", - "lsp", - "nanoid", - "parking_lot 0.11.2", - "project", - "prometheus", - "rand 0.8.5", - "reqwest", - "rpc", - "scrypt", - "serde", - "serde_json", - "settings", - "sha-1 0.9.8", - "sqlx", - "theme", - "time 0.3.15", - "tokio", - "tokio-tungstenite", - "toml", - "tonic", - "tower", - "tracing", - "tracing-log", - "tracing-subscriber", - "unindent", - "util", - "workspace", -] - -[[package]] -name = "collections" -version = "0.1.0" -dependencies = [ - "seahash", -] - -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - -[[package]] -name = "command_palette" -version = "0.1.0" -dependencies = [ - "collections", - "ctor", - "editor", - "env_logger", - "fuzzy", - "gpui", - "picker", - "project", - "serde_json", - "settings", - "theme", - "util", - "workspace", -] - -[[package]] -name = "concurrent-queue" -version = "1.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" -dependencies = [ - "cache-padded", -] - -[[package]] -name = "contacts_panel" -version = "0.1.0" -dependencies = [ - "anyhow", - "client", - "collections", - "editor", - "futures 0.3.24", - "fuzzy", - "gpui", - "language", - "log", - "menu", - "picker", - "postage", - "project", - "serde", - "settings", - "theme", - "util", - "workspace", -] - -[[package]] -name = "contacts_status_item" -version = "0.1.0" -dependencies = [ - "anyhow", - "client", - "collections", - "editor", - "futures 0.3.24", - "fuzzy", - "gpui", - "language", - "log", - "menu", - "picker", - "postage", - "project", - "serde", - "settings", - "theme", - "util", - "workspace", -] - -[[package]] -name = "context_menu" -version = "0.1.0" -dependencies = [ - "gpui", - "menu", - "settings", - "smallvec", - "theme", -] - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" - -[[package]] -name = "core-graphics" -version = "0.22.3" -source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" -dependencies = [ - "bitflags", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", -] - -[[package]] -name = "core-graphics-types" -version = "0.1.1" -source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" -dependencies = [ - "bitflags", - "core-foundation", - "foreign-types", - "libc", -] - -[[package]] -name = "core-services" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b344b958cae90858bf6086f49599ecc5ec8698eacad0ea155509ba11fab347" -dependencies = [ - "core-foundation", -] - -[[package]] -name = "core-text" -version = "19.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25" -dependencies = [ - "core-foundation", - "core-graphics", - "foreign-types", - "libc", -] - -[[package]] -name = "cpp_demangle" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "cpufeatures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" -dependencies = [ - "libc", -] - -[[package]] -name = "cranelift-bforest" -version = "0.85.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "749d0d6022c9038dccf480bdde2a38d435937335bf2bb0f14e815d94517cdce8" -dependencies = [ - "cranelift-entity", -] - -[[package]] -name = "cranelift-codegen" -version = "0.85.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94370cc7b37bf652ccd8bb8f09bd900997f7ccf97520edfc75554bb5c4abbea" -dependencies = [ - "cranelift-bforest", - "cranelift-codegen-meta", - "cranelift-codegen-shared", - "cranelift-entity", - "cranelift-isle", - "gimli", - "log", - "regalloc2", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-codegen-meta" -version = "0.85.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a3cea8fdab90e44018c5b9a1dfd460d8ee265ac354337150222a354628bdb6" -dependencies = [ - "cranelift-codegen-shared", -] - -[[package]] -name = "cranelift-codegen-shared" -version = "0.85.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ac72f76f2698598951ab26d8c96eaa854810e693e7dd52523958b5909fde6b2" - -[[package]] -name = "cranelift-entity" -version = "0.85.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09eaeacfcd2356fe0e66b295e8f9d59fdd1ac3ace53ba50de14d628ec902f72d" -dependencies = [ - "serde", -] - -[[package]] -name = "cranelift-frontend" -version = "0.85.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba69c9980d5ffd62c18a2bde927855fcd7c8dc92f29feaf8636052662cbd99c" -dependencies = [ - "cranelift-codegen", - "log", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-isle" -version = "0.85.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2920dc1e05cac40304456ed3301fde2c09bd6a9b0210bcfa2f101398d628d5b" - -[[package]] -name = "cranelift-native" -version = "0.85.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04dfa45f9b2a6f587c564d6b63388e00cd6589d2df6ea2758cf79e1a13285e6" -dependencies = [ - "cranelift-codegen", - "libc", - "target-lexicon", -] - -[[package]] -name = "cranelift-wasm" -version = "0.85.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31a46513ae6f26f3f267d8d75b5373d555fbbd1e68681f348d99df43f747ec54" -dependencies = [ - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "itertools", - "log", - "smallvec", - "wasmparser", - "wasmtime-types", -] - -[[package]] -name = "crc" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53757d12b596c16c78b83458d732a5d1a17ab3f53f2f7412f6fb57cc8a140ab3" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d0165d2900ae6778e36e80bbc4da3b5eefccee9ba939761f9c2882a5d9af3ff" - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "crossbeam-channel" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" -dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.12", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-epoch", - "crossbeam-utils 0.8.12", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" -dependencies = [ - "autocfg 1.1.0", - "cfg-if 1.0.0", - "crossbeam-utils 0.8.12", - "memoffset", - "scopeguard", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd42583b04998a5363558e5f9291ee5a5ff6b49944332103f251e7479a82aa7" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.12", -] - -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg 1.1.0", - "cfg-if 0.1.10", - "lazy_static", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "crypto-mac" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "ctor" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "curl" -version = "0.4.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22" -dependencies = [ - "curl-sys", - "libc", - "openssl-probe", - "openssl-sys", - "schannel", - "socket2", - "winapi 0.3.9", -] - -[[package]] -name = "curl-sys" -version = "0.4.56+curl-7.83.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6093e169dd4de29e468fa649fbae11cdcd5551c81fe5bf1b0677adad7ef3d26f" -dependencies = [ - "cc", - "libc", - "libnghttp2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", - "winapi 0.3.9", -] - -[[package]] -name = "cxx" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f39818dcfc97d45b03953c1292efc4e80954e1583c4aa770bac1383e2310a4" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e580d70777c116df50c390d1211993f62d40302881e54d4b79727acb83d0199" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56a46460b88d1cec95112c8c363f0e2c39afdb237f60583b0b36343bf627ea9c" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747b608fecf06b0d72d440f27acc99288207324b793be2c17991839f3d4995ea" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "data-url" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a30bfce702bcfa94e906ef82421f2c0e61c076ad76030c16ee5d2e9a32fe193" -dependencies = [ - "matches", -] - -[[package]] -name = "db" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-trait", - "collections", - "gpui", - "parking_lot 0.11.2", - "rocksdb", - "tempdir", -] - -[[package]] -name = "deflate" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" -dependencies = [ - "adler32", - "byteorder", -] - -[[package]] -name = "dhat" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0684eaa19a59be283a6f99369917b679bd4d1d06604b2eb2e2f87b4bbd67668d" -dependencies = [ - "backtrace", - "lazy_static", - "parking_lot 0.12.1", - "rustc-hash", - "serde", - "serde_json", - "thousands", -] - -[[package]] -name = "diagnostics" -version = "0.1.0" -dependencies = [ - "anyhow", - "client", - "collections", - "editor", - "gpui", - "language", - "postage", - "project", - "serde_json", - "settings", - "smallvec", - "theme", - "unindent", - "util", - "workspace", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" -dependencies = [ - "block-buffer 0.10.3", - "crypto-common", - "subtle", -] - -[[package]] -name = "directories-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" -dependencies = [ - "cfg-if 1.0.0", - "dirs-sys-next", -] - -[[package]] -name = "dirs" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if 1.0.0", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users", - "winapi 0.3.9", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi 0.3.9", -] - -[[package]] -name = "dotenvy" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9155c8f4dc55c7470ae9da3f63c6785245093b3f6aeb0f5bf2e968efbba314" -dependencies = [ - "dirs 4.0.0", -] - -[[package]] -name = "drag_and_drop" -version = "0.1.0" -dependencies = [ - "collections", - "gpui", -] - -[[package]] -name = "dwrote" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b" -dependencies = [ - "lazy_static", - "libc", - "winapi 0.3.9", - "wio", -] - -[[package]] -name = "dyn-clone" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" - -[[package]] -name = "easy-parallel" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6907e25393cdcc1f4f3f513d9aac1e840eb1cc341a0fccb01171f7d14d10b946" - -[[package]] -name = "editor" -version = "0.1.0" -dependencies = [ - "aho-corasick", - "anyhow", - "clock", - "collections", - "context_menu", - "ctor", - "env_logger", - "futures 0.3.24", - "fuzzy", - "git", - "gpui", - "indoc", - "itertools", - "language", - "lazy_static", - "log", - "lsp", - "ordered-float", - "parking_lot 0.11.2", - "postage", - "project", - "rand 0.8.5", - "rpc", - "serde", - "settings", - "smallvec", - "smol", - "snippet", - "sum_tree", - "text", - "theme", - "tree-sitter", - "tree-sitter-html", - "tree-sitter-javascript", - "tree-sitter-rust", - "unindent", - "util", - "workspace", -] - -[[package]] -name = "either" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" - -[[package]] -name = "encoding_rs" -version = "0.8.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "env_logger" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "envy" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f47e0157f2cb54f5ae1bd371b30a2ae4311e1c028f575cd4e81de7353215965" -dependencies = [ - "serde", -] - -[[package]] -name = "erased-serde" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54558e0ba96fbe24280072642eceb9d7d442e32c7ec0ea9e7ecd7b4ea2cf4e11" -dependencies = [ - "serde", -] - -[[package]] -name = "errno" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "etagere" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6301151a318f367f392c31395beb1cfba5ccd9abc44d1db0db3a4b27b9601c89" -dependencies = [ - "euclid", - "svg_fmt", -] - -[[package]] -name = "euclid" -version = "0.22.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b52c2ef4a78da0ba68fbe1fd920627411096d2ac478f7f4c9f3a54ba6705bade" -dependencies = [ - "num-traits", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "expat-sys" -version = "2.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa" -dependencies = [ - "cmake", - "pkg-config", -] - -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - -[[package]] -name = "fastrand" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" -dependencies = [ - "instant", -] - -[[package]] -name = "file-per-thread-logger" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f" -dependencies = [ - "env_logger", - "log", -] - -[[package]] -name = "file_finder" -version = "0.1.0" -dependencies = [ - "ctor", - "editor", - "env_logger", - "fuzzy", - "gpui", - "menu", - "picker", - "postage", - "project", - "serde_json", - "settings", - "theme", - "util", - "workspace", -] - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" -dependencies = [ - "crc32fast", - "miniz_oxide 0.5.4", -] - -[[package]] -name = "float-cmp" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75224bec9bfe1a65e2d34132933f2de7fe79900c96a0174307554244ece8150e" - -[[package]] -name = "float-ord" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "font-kit" -version = "0.10.0" -source = "git+https://github.com/zed-industries/font-kit?rev=8eaf7a918eafa28b0a37dc759e2e0e7683fa24f1#8eaf7a918eafa28b0a37dc759e2e0e7683fa24f1" -dependencies = [ - "bitflags", - "byteorder", - "core-foundation", - "core-graphics", - "core-text", - "dirs-next", - "dwrote", - "float-ord", - "freetype", - "lazy_static", - "libc", - "log", - "pathfinder_geometry", - "pathfinder_simd", - "servo-fontconfig", - "walkdir", - "winapi 0.3.9", -] - -[[package]] -name = "fontdb" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e58903f4f8d5b58c7d300908e4ebe5289c1bfdf5587964330f12023b8ff17fd1" -dependencies = [ - "log", - "memmap2", - "ttf-parser 0.12.3", -] - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "freetype" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee38378a9e3db1cc693b4f88d166ae375338a0ff75cb8263e1c601d51f35dc6" -dependencies = [ - "freetype-sys", - "libc", -] - -[[package]] -name = "freetype-sys" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a" -dependencies = [ - "cmake", - "libc", - "pkg-config", -] - -[[package]] -name = "fs-set-times" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df62ee66ee2d532ea8d567b5a3f0d03ecd64636b98bad5be1e93dcc918b92aa" -dependencies = [ - "io-lifetimes", - "rustix", - "winapi 0.3.9", -] - -[[package]] -name = "fsevent" -version = "2.0.2" -dependencies = [ - "bitflags", - "fsevent-sys", - "parking_lot 0.11.2", - "tempdir", -] - -[[package]] -name = "fsevent-sys" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6f5e6817058771c10f0eb0f05ddf1e35844266f972004fe8e4b21fda295bd5" -dependencies = [ - "libc", -] - -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - -[[package]] -name = "futures" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" - -[[package]] -name = "futures" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" - -[[package]] -name = "futures-executor" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-intrusive" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62007592ac46aa7c2b6416f7deb9a8a8f63a01e0f1d6e1787d5630170db2b63e" -dependencies = [ - "futures-core", - "lock_api", - "parking_lot 0.11.2", -] - -[[package]] -name = "futures-io" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" - -[[package]] -name = "futures-lite" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite 0.2.9", - "waker-fn", -] - -[[package]] -name = "futures-macro" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" - -[[package]] -name = "futures-task" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" - -[[package]] -name = "futures-util" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" -dependencies = [ - "futures 0.1.31", - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite 0.2.9", - "pin-utils", - "slab", - "tokio-io", -] - -[[package]] -name = "fuzzy" -version = "0.1.0" -dependencies = [ - "gpui", - "util", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "generic-array" -version = "0.14.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", -] - -[[package]] -name = "gif" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06" -dependencies = [ - "color_quant", - "weezl", -] - -[[package]] -name = "gimli" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" -dependencies = [ - "fallible-iterator", - "indexmap", - "stable_deref_trait", -] - -[[package]] -name = "git" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-trait", - "clock", - "collections", - "futures 0.3.24", - "git2", - "lazy_static", - "log", - "parking_lot 0.11.2", - "smol", - "sum_tree", - "text", - "unindent", - "util", -] - -[[package]] -name = "git2" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2994bee4a3a6a51eb90c218523be382fd7ea09b16380b9312e9dbe955ff7c7d1" -dependencies = [ - "bitflags", - "libc", - "libgit2-sys", - "log", - "url", -] - -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "globset" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" -dependencies = [ - "aho-corasick", - "bstr", - "fnv", - "log", - "regex", -] - -[[package]] -name = "go_to_line" -version = "0.1.0" -dependencies = [ - "editor", - "gpui", - "menu", - "postage", - "settings", - "text", - "workspace", -] - -[[package]] -name = "gpui" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-task", - "backtrace", - "bindgen", - "block", - "cc", - "cocoa", - "collections", - "core-foundation", - "core-graphics", - "core-text", - "ctor", - "dhat", - "env_logger", - "etagere", - "font-kit", - "foreign-types", - "futures 0.3.24", - "gpui_macros", - "image", - "lazy_static", - "log", - "media", - "metal", - "num_cpus", - "objc", - "ordered-float", - "parking", - "parking_lot 0.11.2", - "pathfinder_color", - "pathfinder_geometry", - "png", - "postage", - "rand 0.8.5", - "resvg", - "seahash", - "serde", - "serde_json", - "simplelog", - "smallvec", - "smol", - "sum_tree", - "time 0.3.15", - "tiny-skia", - "tree-sitter", - "usvg", - "util", - "waker-fn", -] - -[[package]] -name = "gpui_macros" -version = "0.1.0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" -dependencies = [ - "bytes 1.2.1", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util 0.7.4", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashlink" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa" -dependencies = [ - "hashbrown 0.12.3", -] - -[[package]] -name = "headers" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" -dependencies = [ - "base64", - "bitflags", - "bytes 1.2.1", - "headers-core", - "http", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" -dependencies = [ - "http", -] - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hkdf" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" -dependencies = [ - "hmac 0.12.1", -] - -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac", - "digest 0.9.0", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.5", -] - -[[package]] -name = "http" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" -dependencies = [ - "bytes 1.2.1", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes 1.2.1", - "http", - "pin-project-lite 0.2.9", -] - -[[package]] -name = "http-range-header" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "0.14.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" -dependencies = [ - "bytes 1.2.1", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite 0.2.9", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-timeout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" -dependencies = [ - "hyper", - "pin-project-lite 0.2.9", - "tokio", - "tokio-io-timeout", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes 1.2.1", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "winapi 0.3.9", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde6edd6cef363e9359ed3c98ba64590ba9eecba2293eb5a723ab32aee8926aa" -dependencies = [ - "cxx", - "cxx-build", -] - -[[package]] -name = "idna" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "ignore" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" -dependencies = [ - "crossbeam-utils 0.8.12", - "globset", - "lazy_static", - "log", - "memchr", - "regex", - "same-file", - "thread_local", - "walkdir", - "winapi-util", -] - -[[package]] -name = "image" -version = "0.23.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "gif", - "jpeg-decoder", - "num-iter", - "num-rational", - "num-traits", - "png", - "scoped_threadpool", - "tiff", -] - -[[package]] -name = "indexmap" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" -dependencies = [ - "autocfg 1.1.0", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indoc" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3" - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "io-extras" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c937cc9891c12eaa8c63ad347e4a288364b1328b924886970b47a14ab8f8f8" -dependencies = [ - "io-lifetimes", - "winapi 0.3.9", -] - -[[package]] -name = "io-lifetimes" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6" -dependencies = [ - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - -[[package]] -name = "ipc-channel" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb1d9211085f0ea6f1379d944b93c4d07e8207aa3bcf49f37eda12b85081887" -dependencies = [ - "bincode", - "crossbeam-channel 0.4.4", - "fnv", - "lazy_static", - "libc", - "mio 0.6.23", - "rand 0.7.3", - "serde", - "tempfile", - "uuid 0.8.2", - "winapi 0.3.9", -] - -[[package]] -name = "ipnet" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" - -[[package]] -name = "is-terminal" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c89a757e762896bdbdfadf2860d0f8b0cea5e363d8cf3e7bdfeb63d1d976352" -dependencies = [ - "hermit-abi 0.2.6", - "io-lifetimes", - "rustix", - "winapi 0.3.9", -] - -[[package]] -name = "isahc" -version = "1.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9" -dependencies = [ - "async-channel", - "castaway", - "crossbeam-utils 0.8.12", - "curl", - "curl-sys", - "encoding_rs", - "event-listener", - "futures-lite", - "http", - "log", - "mime", - "once_cell", - "polling", - "slab", - "sluice", - "tracing", - "tracing-futures", - "url", - "waker-fn", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" - -[[package]] -name = "ittapi-rs" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f712648a1ad72fbfb7adc2772c331e8d90f022f8cf30cbabefba2878dd3172b0" -dependencies = [ - "cc", -] - -[[package]] -name = "jobserver" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" -dependencies = [ - "libc", -] - -[[package]] -name = "journal" -version = "0.1.0" -dependencies = [ - "chrono", - "dirs 4.0.0", - "editor", - "gpui", - "log", - "util", - "workspace", -] - -[[package]] -name = "jpeg-decoder" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" -dependencies = [ - "rayon", -] - -[[package]] -name = "js-sys" -version = "0.3.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "json_comments" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ee439ee368ba4a77ac70d04f14015415af8600d6c894dc1f11bd79758c57d5" - -[[package]] -name = "jwt" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6204285f77fe7d9784db3fdc449ecce1a0114927a51d5a41c4c7a292011c015f" -dependencies = [ - "base64", - "crypto-common", - "digest 0.10.5", - "hmac 0.12.1", - "serde", - "serde_json", - "sha2 0.10.6", -] - -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - -[[package]] -name = "kurbo" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a53776d271cfb873b17c618af0298445c88afc52837f3e948fa3fafd131f449" -dependencies = [ - "arrayvec 0.7.2", -] - -[[package]] -name = "language" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-broadcast", - "async-trait", - "client", - "clock", - "collections", - "ctor", - "env_logger", - "futures 0.3.24", - "fuzzy", - "git", - "gpui", - "lazy_static", - "log", - "lsp", - "parking_lot 0.11.2", - "postage", - "rand 0.8.5", - "regex", - "rpc", - "serde", - "serde_json", - "settings", - "similar", - "smallvec", - "smol", - "sum_tree", - "text", - "theme", - "tree-sitter", - "tree-sitter-html", - "tree-sitter-javascript", - "tree-sitter-json 0.19.0", - "tree-sitter-python", - "tree-sitter-rust", - "tree-sitter-typescript", - "unindent", - "util", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin", -] - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] -name = "leb128" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" - -[[package]] -name = "libc" -version = "0.2.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb" - -[[package]] -name = "libgit2-sys" -version = "0.14.0+1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47a00859c70c8a4f7218e6d1cc32875c4b55f6799445b842b0d8ed5e4c3d959b" -dependencies = [ - "cc", - "libc", - "libz-sys", - "pkg-config", -] - -[[package]] -name = "libloading" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" -dependencies = [ - "cfg-if 1.0.0", - "winapi 0.3.9", -] - -[[package]] -name = "libm" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565" - -[[package]] -name = "libnghttp2-sys" -version = "0.1.7+1.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "librocksdb-sys" -version = "0.7.1+7.3.1" -source = "git+https://github.com/rust-rocksdb/rust-rocksdb?rev=39dc822dde743b2a26eb160b660e8fbdab079d49#39dc822dde743b2a26eb160b660e8fbdab079d49" -dependencies = [ - "bindgen", - "bzip2-sys", - "cc", - "glob", - "libc", - "libz-sys", - "zstd-sys", -] - -[[package]] -name = "libz-sys" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "line-wrap" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" -dependencies = [ - "safemem", -] - -[[package]] -name = "link-cplusplus" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" -dependencies = [ - "cc", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linux-raw-sys" -version = "0.0.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5284f00d480e1c39af34e72f8ad60b94f47007e3481cd3b731c1d67190ddc7b7" - -[[package]] -name = "lipsum" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8451846f1f337e44486666989fbce40be804da139d5a4477d6b88ece5dc69f4" -dependencies = [ - "rand 0.8.5", - "rand_chacha 0.3.1", -] - -[[package]] -name = "live_kit" -version = "0.1.0" -dependencies = [ - "anyhow", - "core-foundation", - "core-graphics", - "futures 0.3.24", - "media", - "parking_lot 0.11.2", - "serde", - "serde_json", -] - -[[package]] -name = "lock_api" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -dependencies = [ - "autocfg 1.1.0", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if 1.0.0", - "serde", - "value-bag", -] - -[[package]] -name = "lsp" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-pipe", - "collections", - "ctor", - "env_logger", - "futures 0.3.24", - "gpui", - "log", - "lsp-types", - "parking_lot 0.11.2", - "postage", - "serde", - "serde_json", - "smol", - "unindent", - "util", -] - -[[package]] -name = "lsp-types" -version = "0.91.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2368312c59425dd133cb9a327afee65be0a633a8ce471d248e2202a48f8f68ae" -dependencies = [ - "bitflags", - "serde", - "serde_json", - "serde_repr", - "url", -] - -[[package]] -name = "mach" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" -dependencies = [ - "libc", -] - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - -[[package]] -name = "matchit" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" - -[[package]] -name = "maybe-owned" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4" - -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - -[[package]] -name = "md-5" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" -dependencies = [ - "digest 0.10.5", -] - -[[package]] -name = "media" -version = "0.1.0" -dependencies = [ - "anyhow", - "bindgen", - "block", - "bytes 1.2.1", - "core-foundation", - "foreign-types", - "metal", - "objc", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memfd" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6627dc657574b49d6ad27105ed671822be56e0d2547d413bfbf3e8d8fa92e7a" -dependencies = [ - "libc", -] - -[[package]] -name = "memmap2" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723e3ebdcdc5c023db1df315364573789f8857c11b631a2fdfad7c00f5c046b4" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg 1.1.0", -] - -[[package]] -name = "menu" -version = "0.1.0" -dependencies = [ - "gpui", -] - -[[package]] -name = "metal" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4598d719460ade24c7d91f335daf055bf2a7eec030728ce751814c50cdd6a26c" -dependencies = [ - "bitflags", - "block", - "cocoa-foundation", - "foreign-types", - "log", - "objc", -] - -[[package]] -name = "mime" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" -dependencies = [ - "adler32", -] - -[[package]] -name = "miniz_oxide" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" -dependencies = [ - "adler", - "autocfg 1.1.0", -] - -[[package]] -name = "miniz_oxide" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow 0.2.2", - "net2", - "slab", - "winapi 0.2.8", -] - -[[package]] -name = "mio" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" -dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", -] - -[[package]] -name = "mio-anonymous-pipes" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bc513025fe5005a3aa561b50fdb2cda5a150b84800ae02acd8aa9ed62ca1a6b" -dependencies = [ - "mio 0.6.23", - "miow 0.3.7", - "parking_lot 0.11.2", - "spsc-buffer", - "winapi 0.3.9", -] - -[[package]] -name = "mio-extras" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" -dependencies = [ - "lazycell", - "log", - "mio 0.6.23", - "slab", -] - -[[package]] -name = "mio-uds" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" -dependencies = [ - "iovec", - "libc", - "mio 0.6.23", -] - -[[package]] -name = "miow" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "more-asserts" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" - -[[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - -[[package]] -name = "nanoid" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" -dependencies = [ - "rand 0.8.5", -] - -[[package]] -name = "native-tls" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "net2" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "nix" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" -dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "libc", - "memoffset", -] - -[[package]] -name = "nom" -version = "7.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "ntapi" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi 0.3.9", -] - -[[package]] -name = "num-bigint" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" -dependencies = [ - "autocfg 1.1.0", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint-dig" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4547ee5541c18742396ae2c895d0717d0f886d8823b8399cdaf7b07d63ad0480" -dependencies = [ - "autocfg 0.1.8", - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.5", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg 1.1.0", - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" -dependencies = [ - "autocfg 1.1.0", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" -dependencies = [ - "autocfg 1.1.0", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg 1.1.0", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" -dependencies = [ - "hermit-abi 0.1.19", - "libc", -] - -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", -] - -[[package]] -name = "nvim-rs" -version = "0.5.0" -source = "git+https://github.com/KillTheMule/nvim-rs?branch=master#d701c2790dcb2579f8f4d7003ba30e2100a7d25b" -dependencies = [ - "async-trait", - "futures 0.3.24", - "log", - "parity-tokio-ipc", - "rmp", - "rmpv", - "tokio", - "tokio-util 0.7.4", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", - "objc_exception", -] - -[[package]] -name = "objc_exception" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" -dependencies = [ - "cc", -] - -[[package]] -name = "object" -version = "0.28.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" -dependencies = [ - "crc32fast", - "hashbrown 0.11.2", - "indexmap", - "memchr", -] - -[[package]] -name = "object" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "openssl" -version = "0.10.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" -dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5230151e44c0f05157effb743e8d517472843121cf9243e8b81393edb5acd9ce" -dependencies = [ - "autocfg 1.1.0", - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-float" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" -dependencies = [ - "num-traits", -] - -[[package]] -name = "os_str_bytes" -version = "6.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" - -[[package]] -name = "outline" -version = "0.1.0" -dependencies = [ - "editor", - "fuzzy", - "gpui", - "language", - "ordered-float", - "picker", - "postage", - "settings", - "smol", - "text", - "workspace", -] - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "parity-tokio-ipc" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" -dependencies = [ - "futures 0.3.24", - "libc", - "log", - "rand 0.7.3", - "tokio", - "winapi 0.3.9", -] - -[[package]] -name = "parking" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.5", -] - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.3", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall", - "smallvec", - "winapi 0.3.9", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "redox_syscall", - "smallvec", - "windows-sys", -] - -[[package]] -name = "password-hash" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e0b28ace46c5a396546bcf443bf422b57049617433d8854227352a4a9b24e7" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" - -[[package]] -name = "pathfinder_color" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69bdc0d277d559e35e1b374de56df9262a6b71e091ca04a8831a239f8c7f0c62" -dependencies = [ - "pathfinder_simd", -] - -[[package]] -name = "pathfinder_geometry" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b7e7b4ea703700ce73ebf128e1450eb69c3a8329199ffbfb9b2a0418e5ad3" -dependencies = [ - "log", - "pathfinder_simd", -] - -[[package]] -name = "pathfinder_simd" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39fe46acc5503595e5949c17b818714d26fdf9b4920eacf3b2947f0199f4a6ff" -dependencies = [ - "rustc_version", -] - -[[package]] -name = "pbkdf2" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" -dependencies = [ - "crypto-mac", -] - -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - -[[package]] -name = "pem" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb" -dependencies = [ - "base64", - "once_cell", - "regex", -] - -[[package]] -name = "percent-encoding" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" - -[[package]] -name = "pest" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" -dependencies = [ - "thiserror", - "ucd-trie", -] - -[[package]] -name = "petgraph" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" -dependencies = [ - "fixedbitset", - "indexmap", -] - -[[package]] -name = "picker" -version = "0.1.0" -dependencies = [ - "ctor", - "editor", - "env_logger", - "gpui", - "menu", - "serde_json", - "settings", - "theme", - "util", - "workspace", -] - -[[package]] -name = "pico-args" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468" - -[[package]] -name = "pin-project" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" - -[[package]] -name = "plist" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" -dependencies = [ - "base64", - "indexmap", - "line-wrap", - "serde", - "time 0.3.15", - "xml-rs", -] - -[[package]] -name = "plugin" -version = "0.1.0" -dependencies = [ - "bincode", - "plugin_macros", - "serde", -] - -[[package]] -name = "plugin_macros" -version = "0.1.0" -dependencies = [ - "bincode", - "proc-macro2", - "quote", - "serde", - "syn", -] - -[[package]] -name = "plugin_runtime" -version = "0.1.0" -dependencies = [ - "anyhow", - "bincode", - "pollster", - "serde", - "serde_json", - "smol", - "wasi-common", - "wasmtime", - "wasmtime-wasi", -] - -[[package]] -name = "png" -version = "0.16.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" -dependencies = [ - "bitflags", - "crc32fast", - "deflate", - "miniz_oxide 0.3.7", -] - -[[package]] -name = "polling" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" -dependencies = [ - "autocfg 1.1.0", - "cfg-if 1.0.0", - "libc", - "log", - "wepoll-ffi", - "winapi 0.3.9", -] - -[[package]] -name = "pollster" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da3b0203fd7ee5720aa0b5e790b591aa5d3f41c3ed2c34a3a393382198af2f7" - -[[package]] -name = "postage" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a63d25391d04a097954b76aba742b6b5b74f213dfe3dbaeeb36e8ddc1c657f0b" -dependencies = [ - "atomic", - "crossbeam-queue", - "futures 0.3.24", - "log", - "pin-project", - "pollster", - "static_assertions", - "thiserror", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "procinfo" -version = "0.1.0" -source = "git+https://github.com/zed-industries/wezterm?rev=5cd757e5f2eb039ed0c6bb6512223e69d5efc64d#5cd757e5f2eb039ed0c6bb6512223e69d5efc64d" -dependencies = [ - "libc", - "log", - "ntapi", - "winapi 0.3.9", -] - -[[package]] -name = "project" -version = "0.1.0" -dependencies = [ - "aho-corasick", - "anyhow", - "async-trait", - "client", - "clock", - "collections", - "db", - "fsevent", - "futures 0.3.24", - "fuzzy", - "git", - "gpui", - "ignore", - "language", - "lazy_static", - "libc", - "log", - "lsp", - "parking_lot 0.11.2", - "postage", - "pulldown-cmark", - "rand 0.8.5", - "regex", - "rocksdb", - "rpc", - "serde", - "serde_json", - "settings", - "sha2 0.10.6", - "similar", - "smol", - "sum_tree", - "tempdir", - "text", - "thiserror", - "toml", - "unindent", - "util", -] - -[[package]] -name = "project_panel" -version = "0.1.0" -dependencies = [ - "context_menu", - "editor", - "futures 0.3.24", - "gpui", - "menu", - "postage", - "project", - "serde_json", - "settings", - "theme", - "unicase", - "util", - "workspace", -] - -[[package]] -name = "project_symbols" -version = "0.1.0" -dependencies = [ - "anyhow", - "editor", - "futures 0.3.24", - "fuzzy", - "gpui", - "language", - "lsp", - "ordered-float", - "picker", - "postage", - "project", - "settings", - "smol", - "text", - "util", - "workspace", -] - -[[package]] -name = "prometheus" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c8babc29389186697fe5a2a4859d697825496b83db5d0b65271cdc0488e88c" -dependencies = [ - "cfg-if 1.0.0", - "fnv", - "lazy_static", - "memchr", - "parking_lot 0.12.1", - "protobuf", - "thiserror", -] - -[[package]] -name = "prost" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020" -dependencies = [ - "bytes 1.2.1", - "prost-derive 0.8.0", -] - -[[package]] -name = "prost" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" -dependencies = [ - "bytes 1.2.1", - "prost-derive 0.9.0", -] - -[[package]] -name = "prost-build" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" -dependencies = [ - "bytes 1.2.1", - "heck 0.3.3", - "itertools", - "lazy_static", - "log", - "multimap", - "petgraph", - "prost 0.9.0", - "prost-types", - "regex", - "tempfile", - "which", -] - -[[package]] -name = "prost-derive" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "prost-derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "prost-types" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" -dependencies = [ - "bytes 1.2.1", - "prost 0.9.0", -] - -[[package]] -name = "protobuf" -version = "2.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" - -[[package]] -name = "psm" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" -dependencies = [ - "cc", -] - -[[package]] -name = "pulldown-cmark" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d9cc634bc78768157b5cbfe988ffcd1dcba95cd2b2f03a88316c08c6d00ed63" -dependencies = [ - "bitflags", - "memchr", - "unicase", -] - -[[package]] -name = "quote" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -dependencies = [ - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "rdrand", - "winapi 0.3.9", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.7", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rayon" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" -dependencies = [ - "autocfg 1.1.0", - "crossbeam-deque", - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" -dependencies = [ - "crossbeam-channel 0.5.6", - "crossbeam-deque", - "crossbeam-utils 0.8.12", - "num_cpus", -] - -[[package]] -name = "rctree" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be9e29cb19c8fe84169fcb07f8f11e66bc9e6e0280efd4715c54818296f8a4a8" - -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom 0.2.7", - "redox_syscall", - "thiserror", -] - -[[package]] -name = "regalloc2" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a8d23b35d7177df3b9d31ed8a9ab4bf625c668be77a319d4f5efd4a5257701c" -dependencies = [ - "fxhash", - "log", - "slice-group-by", - "smallvec", -] - -[[package]] -name = "regex" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.6.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" - -[[package]] -name = "region" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0" -dependencies = [ - "bitflags", - "libc", - "mach", - "winapi 0.3.9", -] - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "reqwest" -version = "0.11.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" -dependencies = [ - "base64", - "bytes 1.2.1", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite 0.2.9", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "resvg" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09697862c5c3f940cbaffef91969c62188b5c8ed385b0aef43a5ff01ddc8000f" -dependencies = [ - "jpeg-decoder", - "log", - "pico-args", - "png", - "rgb", - "svgfilters", - "tiny-skia", - "usvg", -] - -[[package]] -name = "rgb" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3603b7d71ca82644f79b5a06d1220e9a58ede60bd32255f698cb1af8838b8db3" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin", - "untrusted", - "web-sys", - "winapi 0.3.9", -] - -[[package]] -name = "rmp" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmpv" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de8813b3a2f95c5138fe5925bfb8784175d88d6bff059ba8ce090aa891319754" -dependencies = [ - "num-traits", - "rmp", -] - -[[package]] -name = "rocksdb" -version = "0.18.0" -source = "git+https://github.com/rust-rocksdb/rust-rocksdb?rev=39dc822dde743b2a26eb160b660e8fbdab079d49#39dc822dde743b2a26eb160b660e8fbdab079d49" -dependencies = [ - "libc", - "librocksdb-sys", -] - -[[package]] -name = "roxmltree" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b" -dependencies = [ - "xmlparser", -] - -[[package]] -name = "rpc" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-lock", - "async-tungstenite", - "base64", - "clock", - "collections", - "ctor", - "env_logger", - "futures 0.3.24", - "gpui", - "parking_lot 0.11.2", - "prost 0.8.0", - "prost-build", - "rand 0.8.5", - "rsa", - "serde", - "smol", - "smol-timeout", - "tempdir", - "tracing", - "util", - "zstd", -] - -[[package]] -name = "rsa" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0aeddcca1082112a6eeb43bf25fd7820b066aaf6eaef776e19d0a1febe38fe" -dependencies = [ - "byteorder", - "digest 0.9.0", - "lazy_static", - "num-bigint-dig", - "num-integer", - "num-iter", - "num-traits", - "pem", - "rand 0.8.5", - "simple_asn1", - "subtle", - "zeroize", -] - -[[package]] -name = "rust-embed" -version = "6.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e26934cd67a1da1165efe61cba4047cc1b4a526019da609fcce13a1000afb5fa" -dependencies = [ - "rust-embed-impl", - "rust-embed-utils", - "walkdir", -] - -[[package]] -name = "rust-embed-impl" -version = "6.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35d7b402e273544cc08e0824aa3404333fab8a90ac43589d3d5b72f4b346e12" -dependencies = [ - "proc-macro2", - "quote", - "rust-embed-utils", - "syn", - "walkdir", -] - -[[package]] -name = "rust-embed-utils" -version = "7.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1669d81dfabd1b5f8e2856b8bbe146c6192b0ba22162edc738ac0a5de18f054" -dependencies = [ - "globset", - "sha2 0.10.6", - "walkdir", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.33.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938a344304321a9da4973b9ff4f9f8db9caf4597dfd9dda6a60b523340a0fff0" -dependencies = [ - "bitflags", - "errno", - "io-lifetimes", - "itoa", - "libc", - "linux-raw-sys", - "once_cell", - "winapi 0.3.9", -] - -[[package]] -name = "rustls" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" -dependencies = [ - "base64", - "log", - "ring", - "sct 0.6.1", - "webpki 0.21.4", -] - -[[package]] -name = "rustls" -version = "0.20.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" -dependencies = [ - "log", - "ring", - "sct 0.7.0", - "webpki 0.22.0", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" -dependencies = [ - "base64", -] - -[[package]] -name = "rustybuzz" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab463a295d00f3692e0974a0bfd83c7a9bcd119e27e07c2beecdb1b44a09d10" -dependencies = [ - "bitflags", - "bytemuck", - "smallvec", - "ttf-parser 0.9.0", - "unicode-bidi-mirroring", - "unicode-ccc", - "unicode-general-category", - "unicode-script", -] - -[[package]] -name = "ryu" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" - -[[package]] -name = "safe_arch" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ff3d6d9696af502cc3110dacce942840fb06ff4514cad92236ecc455f2ce05" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "safemem" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" - -[[package]] -name = "salsa20" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0" -dependencies = [ - "cipher", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" -dependencies = [ - "lazy_static", - "windows-sys", -] - -[[package]] -name = "schemars" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a5fb6c61f29e723026dc8e923d94c694313212abbecbbe5f55a7748eec5b307" -dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", -] - -[[package]] -name = "schemars_derive" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f188d036977451159430f3b8dc82ec76364a42b7e289c2b18a9a18f4470058e9" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn", -] - -[[package]] -name = "scoped_threadpool" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "scratch" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" - -[[package]] -name = "scrypt" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879588d8f90906e73302547e20fffefdd240eb3e0e744e142321f5d49dea0518" -dependencies = [ - "base64ct", - "hmac 0.11.0", - "password-hash", - "pbkdf2", - "salsa20", - "sha2 0.9.9", -] - -[[package]] -name = "sct" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "sct" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "seahash" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" - -[[package]] -name = "search" -version = "0.1.0" -dependencies = [ - "anyhow", - "collections", - "editor", - "gpui", - "language", - "log", - "menu", - "postage", - "project", - "serde", - "serde_json", - "settings", - "smallvec", - "theme", - "unindent", - "util", - "workspace", -] - -[[package]] -name = "security-framework" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "seq-macro" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9f47faea3cad316faa914d013d24f471cd90bfca1a0c70f05a3f42c6441e99" - -[[package]] -name = "serde" -version = "1.0.145" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.145" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_derive_internals" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_fmt" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2963a69a2b3918c1dc75a45a18bd3fcd1120e31d3f59deb1b2f9b5d5ffb8baa4" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_json" -version = "1.0.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_path_to_error" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "184c643044780f7ceb59104cef98a5a6f12cb2288a7bc701ab93a362b49fd47d" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_yaml" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" -dependencies = [ - "indexmap", - "ryu", - "serde", - "yaml-rust", -] - -[[package]] -name = "servo-fontconfig" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e3e22fe5fd73d04ebf0daa049d3efe3eae55369ce38ab16d07ddd9ac5c217c" -dependencies = [ - "libc", - "servo-fontconfig-sys", -] - -[[package]] -name = "servo-fontconfig-sys" -version = "5.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36b879db9892dfa40f95da1c38a835d41634b825fbd8c4c418093d53c24b388" -dependencies = [ - "expat-sys", - "freetype-sys", - "pkg-config", -] - -[[package]] -name = "settings" -version = "0.1.0" -dependencies = [ - "anyhow", - "assets", - "collections", - "gpui", - "json_comments", - "schemars", - "serde", - "serde_json", - "serde_path_to_error", - "theme", - "toml", - "util", -] - -[[package]] -name = "sha-1" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha-1" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.5", -] - -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.5", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.5", -] - -[[package]] -name = "sharded-slab" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shellexpand" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" -dependencies = [ - "dirs 4.0.0", -] - -[[package]] -name = "shlex" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" - -[[package]] -name = "signal-hook" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" -dependencies = [ - "libc", - "mio 0.6.23", - "mio-uds", - "signal-hook", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" -dependencies = [ - "libc", -] - -[[package]] -name = "similar" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad1d488a557b235fc46dae55512ffbfc429d2482b08b4d9435ab07384ca8aec" - -[[package]] -name = "simple_asn1" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb4ea60fb301dc81dfc113df680571045d375ab7345d171c5dc7d7e13107a80" -dependencies = [ - "chrono", - "num-bigint", - "num-traits", - "thiserror", -] - -[[package]] -name = "simplecss" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d" -dependencies = [ - "log", -] - -[[package]] -name = "simplelog" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc0ffd69814a9b251d43afcabf96dad1b29f5028378056257be9e3fecc9f720" -dependencies = [ - "chrono", - "log", - "termcolor", -] - -[[package]] -name = "siphasher" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" - -[[package]] -name = "slab" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" -dependencies = [ - "autocfg 1.1.0", -] - -[[package]] -name = "slice-group-by" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" - -[[package]] -name = "sluice" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5" -dependencies = [ - "async-channel", - "futures-core", - "futures-io", -] - -[[package]] -name = "smallvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" - -[[package]] -name = "smol" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cf3b5351f3e783c1d79ab5fc604eeed8b8ae9abd36b166e8b87a089efd85e4" -dependencies = [ - "async-channel", - "async-executor", - "async-fs", - "async-io", - "async-lock", - "async-net", - "async-process", - "blocking", - "futures-lite", - "once_cell", -] - -[[package]] -name = "smol-timeout" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "847d777e2c6c166bad26264479e80a9820f3d364fcb4a0e23cd57bbfa8e94961" -dependencies = [ - "async-io", - "pin-project-lite 0.1.12", -] - -[[package]] -name = "snippet" -version = "0.1.0" -dependencies = [ - "anyhow", - "smallvec", -] - -[[package]] -name = "socket2" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" -dependencies = [ - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spsc-buffer" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be6c3f39c37a4283ee4b43d1311c828f2e1fb0541e76ea0cb1a2abd9ef2f5b3b" - -[[package]] -name = "sqlformat" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87e292b4291f154971a43c3774364e2cbcaec599d3f5bf6fa9d122885dbc38a" -dependencies = [ - "itertools", - "nom", - "unicode_categories", -] - -[[package]] -name = "sqlx" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9249290c05928352f71c077cc44a464d880c63f26f7534728cca008e135c0428" -dependencies = [ - "sqlx-core", - "sqlx-macros", -] - -[[package]] -name = "sqlx-core" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbc16ddba161afc99e14d1713a453747a2b07fc097d2009f4c300ec99286105" -dependencies = [ - "ahash", - "atoi", - "base64", - "bitflags", - "byteorder", - "bytes 1.2.1", - "crc", - "crossbeam-queue", - "dirs 4.0.0", - "dotenvy", - "either", - "event-listener", - "futures-channel", - "futures-core", - "futures-intrusive", - "futures-util", - "hashlink", - "hex", - "hkdf", - "hmac 0.12.1", - "indexmap", - "itoa", - "libc", - "log", - "md-5", - "memchr", - "once_cell", - "paste", - "percent-encoding", - "rand 0.8.5", - "rustls 0.20.6", - "rustls-pemfile", - "serde", - "serde_json", - "sha1", - "sha2 0.10.6", - "smallvec", - "sqlformat", - "sqlx-rt", - "stringprep", - "thiserror", - "time 0.3.15", - "tokio-stream", - "url", - "uuid 1.2.1", - "webpki-roots 0.22.5", - "whoami", -] - -[[package]] -name = "sqlx-macros" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b850fa514dc11f2ee85be9d055c512aa866746adfacd1cb42d867d68e6a5b0d9" -dependencies = [ - "dotenvy", - "either", - "heck 0.4.0", - "once_cell", - "proc-macro2", - "quote", - "sha2 0.10.6", - "sqlx-core", - "sqlx-rt", - "syn", - "url", -] - -[[package]] -name = "sqlx-rt" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24c5b2d25fa654cc5f841750b8e1cdedbe21189bf9a9382ee90bfa9dd3562396" -dependencies = [ - "once_cell", - "tokio", - "tokio-rustls", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "stringprep" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - -[[package]] -name = "sum_tree" -version = "0.1.0" -dependencies = [ - "arrayvec 0.7.2", - "ctor", - "env_logger", - "log", - "rand 0.8.5", -] - -[[package]] -name = "sval" -version = "1.0.0-alpha.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45f6ee7c7b87caf59549e9fe45d6a69c75c8019e79e212a835c5da0e92f0ba08" -dependencies = [ - "serde", -] - -[[package]] -name = "svg_fmt" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" - -[[package]] -name = "svgfilters" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb0dce2fee79ac40c21dafba48565ff7a5fa275e23ffe9ce047a40c9574ba34e" -dependencies = [ - "float-cmp", - "rgb", -] - -[[package]] -name = "svgtypes" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c536faaff1a10837cfe373142583f6e27d81e96beba339147e77b67c9f260ff" -dependencies = [ - "float-cmp", - "siphasher", -] - -[[package]] -name = "syn" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", -] - -[[package]] -name = "system-interface" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e09bb3fb4e02ec4b87e182ea9718fadbc0fa3e50085b40a9af9690572b67f9e" -dependencies = [ - "atty", - "bitflags", - "cap-fs-ext", - "cap-std", - "io-lifetimes", - "rustix", - "winapi 0.3.9", - "winx", -] - -[[package]] -name = "target-lexicon" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1" - -[[package]] -name = "tempdir" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -dependencies = [ - "rand 0.4.6", - "remove_dir_all", -] - -[[package]] -name = "tempfile" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" -dependencies = [ - "cfg-if 1.0.0", - "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi 0.3.9", -] - -[[package]] -name = "termcolor" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "terminal" -version = "0.1.0" -dependencies = [ - "alacritty_terminal", - "anyhow", - "client", - "context_menu", - "dirs 4.0.0", - "editor", - "futures 0.3.24", - "gpui", - "itertools", - "lazy_static", - "libc", - "mio-extras", - "ordered-float", - "procinfo", - "project", - "rand 0.8.5", - "serde", - "settings", - "shellexpand", - "smallvec", - "smol", - "theme", - "thiserror", - "util", - "workspace", -] - -[[package]] -name = "text" -version = "0.1.0" -dependencies = [ - "anyhow", - "arrayvec 0.7.2", - "bromberg_sl2", - "clock", - "collections", - "ctor", - "digest 0.9.0", - "env_logger", - "gpui", - "lazy_static", - "log", - "parking_lot 0.11.2", - "postage", - "rand 0.8.5", - "regex", - "smallvec", - "sum_tree", - "util", -] - -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - -[[package]] -name = "textwrap" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16" - -[[package]] -name = "theme" -version = "0.1.0" -dependencies = [ - "anyhow", - "gpui", - "indexmap", - "parking_lot 0.11.2", - "serde", - "serde_json", - "serde_path_to_error", - "toml", -] - -[[package]] -name = "theme_selector" -version = "0.1.0" -dependencies = [ - "editor", - "fuzzy", - "gpui", - "log", - "parking_lot 0.11.2", - "picker", - "postage", - "settings", - "smol", - "theme", - "workspace", -] - -[[package]] -name = "thiserror" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thousands" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" - -[[package]] -name = "thread_local" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" -dependencies = [ - "once_cell", -] - -[[package]] -name = "tiff" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437" -dependencies = [ - "jpeg-decoder", - "miniz_oxide 0.4.4", - "weezl", -] - -[[package]] -name = "time" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi 0.3.9", -] - -[[package]] -name = "time" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" -dependencies = [ - "itoa", - "libc", - "num_threads", - "serde", - "time-macros", -] - -[[package]] -name = "time-macros" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792" - -[[package]] -name = "tiny-skia" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf81f2900d2e235220e6f31ec9f63ade6a7f59090c556d74fe949bb3b15e9fe" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "bytemuck", - "cfg-if 1.0.0", - "png", - "safe_arch", -] - -[[package]] -name = "tiny_http" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce51b50006056f590c9b7c3808c3bd70f0d1101666629713866c227d6e58d39" -dependencies = [ - "ascii", - "chrono", - "chunked_transfer", - "log", - "url", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" - -[[package]] -name = "tokio" -version = "1.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" -dependencies = [ - "autocfg 1.1.0", - "bytes 1.2.1", - "libc", - "memchr", - "mio 0.8.4", - "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite 0.2.9", - "signal-hook-registry", - "socket2", - "tokio-macros", - "winapi 0.3.9", -] - -[[package]] -name = "tokio-io" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", -] - -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite 0.2.9", - "tokio", -] - -[[package]] -name = "tokio-macros" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.23.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" -dependencies = [ - "rustls 0.20.6", - "tokio", - "webpki 0.22.0", -] - -[[package]] -name = "tokio-stream" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6edf2d6bc038a43d31353570e27270603f4648d18f5ed10c0e179abe43255af" -dependencies = [ - "futures-core", - "pin-project-lite 0.2.9", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite 0.17.3", -] - -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes 1.2.1", - "futures-core", - "futures-sink", - "log", - "pin-project-lite 0.2.9", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" -dependencies = [ - "bytes 1.2.1", - "futures-core", - "futures-io", - "futures-sink", - "pin-project-lite 0.2.9", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" -dependencies = [ - "serde", -] - -[[package]] -name = "tonic" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" -dependencies = [ - "async-stream", - "async-trait", - "base64", - "bytes 1.2.1", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost 0.9.0", - "prost-derive 0.9.0", - "tokio", - "tokio-stream", - "tokio-util 0.6.10", - "tower", - "tower-layer", - "tower-service", - "tracing", - "tracing-futures", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap", - "pin-project", - "pin-project-lite 0.2.9", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util 0.7.4", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba" -dependencies = [ - "bitflags", - "bytes 1.2.1", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "pin-project-lite 0.2.9", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if 1.0.0", - "log", - "pin-project-lite 0.2.9", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "tracing-log" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" -dependencies = [ - "lazy_static", - "log", - "tracing-core", -] - -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", - "tracing-serde", -] - -[[package]] -name = "tree-sitter" -version = "0.20.8" -source = "git+https://github.com/tree-sitter/tree-sitter?rev=366210ae925d7ea0891bc7a0c738f60c77c04d7b#366210ae925d7ea0891bc7a0c738f60c77c04d7b" -dependencies = [ - "cc", - "regex", -] - -[[package]] -name = "tree-sitter-c" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cca211f4827d4b4dc79f388bf67b6fa3bc8a8cfa642161ef24f99f371ba34c7b" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-cpp" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a869e3c5cef4e5db4e9ab16a8dc84d73010e60ada14cdc60d2f6d8aed17779d" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-css" -version = "0.19.0" -source = "git+https://github.com/tree-sitter/tree-sitter-css?rev=769203d0f9abe1a9a691ac2b9fe4bb4397a73c51#769203d0f9abe1a9a691ac2b9fe4bb4397a73c51" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-elixir" -version = "0.19.0" -source = "git+https://github.com/elixir-lang/tree-sitter-elixir?rev=05e3631c6a0701c1fa518b0fee7be95a2ceef5e2#05e3631c6a0701c1fa518b0fee7be95a2ceef5e2" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-go" -version = "0.19.1" -source = "git+https://github.com/tree-sitter/tree-sitter-go?rev=aeb2f33b366fd78d5789ff104956ce23508b85db#aeb2f33b366fd78d5789ff104956ce23508b85db" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-html" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "184e6b77953a354303dc87bf5fe36558c83569ce92606e7b382a0dc1b7443443" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-javascript" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2490fab08630b2c8943c320f7b63473cbf65511c8d83aec551beb9b4375906ed" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-json" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90b04c4e1a92139535eb9fca4ec8fa9666cc96b618005d3ae35f3c957fa92f92" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-json" -version = "0.20.0" -source = "git+https://github.com/tree-sitter/tree-sitter-json?rev=137e1ce6a02698fc246cdb9c6b886ed1de9a1ed8#137e1ce6a02698fc246cdb9c6b886ed1de9a1ed8" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-markdown" -version = "0.0.1" -source = "git+https://github.com/MDeiml/tree-sitter-markdown?rev=330ecab87a3e3a7211ac69bbadc19eabecdb1cca#330ecab87a3e3a7211ac69bbadc19eabecdb1cca" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-python" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dda114f58048f5059dcf158aff691dffb8e113e6d2b50d94263fd68711975287" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-rust" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13470fafb7327a3acf96f5bc1013b5539a899a182f01c59b5af53f6b93195717" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-toml" -version = "0.5.1" -source = "git+https://github.com/tree-sitter/tree-sitter-toml?rev=342d9be207c2dba869b9967124c679b5e6fd0ebe#342d9be207c2dba869b9967124c679b5e6fd0ebe" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "tree-sitter-typescript" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e8ed0ecb931cdff13c6a13f45ccd615156e2779d9ffb0395864e05505e6e86d" -dependencies = [ - "cc", - "tree-sitter", -] - -[[package]] -name = "try-lock" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" - -[[package]] -name = "ttf-parser" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ddb402ac6c2af6f7a2844243887631c4e94b51585b229fcfddb43958cd55ca" - -[[package]] -name = "ttf-parser" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ae2f58a822f08abdaf668897e96a5656fe72f5a9ce66422423e8849384872e6" - -[[package]] -name = "tungstenite" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad3713a14ae247f22a728a0456a545df14acf3867f905adff84be99e23b3ad1" -dependencies = [ - "base64", - "byteorder", - "bytes 1.2.1", - "http", - "httparse", - "log", - "rand 0.8.5", - "sha-1 0.9.8", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "tungstenite" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" -dependencies = [ - "base64", - "byteorder", - "bytes 1.2.1", - "http", - "httparse", - "log", - "rand 0.8.5", - "sha-1 0.10.0", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" - -[[package]] -name = "ucd-trie" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" - -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" - -[[package]] -name = "unicode-bidi-mirroring" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694" - -[[package]] -name = "unicode-ccc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1" - -[[package]] -name = "unicode-general-category" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9af028e052a610d99e066b33304625dea9613170a2563314490a4e6ec5cf7f" - -[[package]] -name = "unicode-ident" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-script" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc" - -[[package]] -name = "unicode-segmentation" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" - -[[package]] -name = "unicode-vo" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" - -[[package]] -name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - -[[package]] -name = "unindent" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ee9362deb4a96cef4d437d1ad49cffc9b9e92d202b6995674e928ce684f112" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "url" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "usvg" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8352f317d8f9a918ba5154797fb2a93e2730244041cf7d5be35148266adfa5" -dependencies = [ - "base64", - "data-url", - "flate2", - "fontdb", - "kurbo", - "log", - "memmap2", - "pico-args", - "rctree", - "roxmltree", - "rustybuzz", - "simplecss", - "siphasher", - "svgtypes", - "ttf-parser 0.12.3", - "unicode-bidi", - "unicode-script", - "unicode-vo", - "xmlwriter", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf8parse" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" - -[[package]] -name = "util" -version = "0.1.0" -dependencies = [ - "anyhow", - "futures 0.3.24", - "git2", - "lazy_static", - "log", - "rand 0.8.5", - "serde_json", - "tempdir", -] - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom 0.2.7", -] - -[[package]] -name = "uuid" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb41e78f93363bb2df8b0e86a2ca30eed7806ea16ea0c790d757cf93f79be83" -dependencies = [ - "getrandom 0.2.7", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "value-bag" -version = "1.0.0-alpha.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" -dependencies = [ - "ctor", - "erased-serde", - "serde", - "serde_fmt", - "sval", - "version_check", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "vim" -version = "0.1.0" -dependencies = [ - "assets", - "async-compat", - "async-trait", - "collections", - "command_palette", - "editor", - "gpui", - "indoc", - "itertools", - "language", - "log", - "nvim-rs", - "project", - "search", - "serde", - "serde_json", - "settings", - "tokio", - "util", - "workspace", -] - -[[package]] -name = "vte" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983" -dependencies = [ - "utf8parse", - "vte_generate_state_changes", -] - -[[package]] -name = "vte_generate_state_changes" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "waker-fn" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" - -[[package]] -name = "walkdir" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" -dependencies = [ - "same-file", - "winapi 0.3.9", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasi-cap-std-sync" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f086c5026d2fc3b268d138e65373f46422cc810f46d6e0776859c5027cb18728" -dependencies = [ - "anyhow", - "async-trait", - "cap-fs-ext", - "cap-rand", - "cap-std", - "cap-time-ext", - "fs-set-times", - "io-extras", - "io-lifetimes", - "is-terminal", - "lazy_static", - "rustix", - "system-interface", - "tracing", - "wasi-common", - "winapi 0.3.9", -] - -[[package]] -name = "wasi-common" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e8844fede1c3787cc08853872f47e8bd91f6c939c7406bc7a5dba496b260c08" -dependencies = [ - "anyhow", - "bitflags", - "cap-rand", - "cap-std", - "io-extras", - "rustix", - "thiserror", - "tracing", - "wiggle", - "winapi 0.3.9", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" -dependencies = [ - "cfg-if 1.0.0", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" -dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" - -[[package]] -name = "wasm-encoder" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64ac98d5d61192cc45c701b7e4bd0b9aff91e2edfc7a088406cfe2288581e2c" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasmparser" -version = "0.85.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "570460c58b21e9150d2df0eaaedbb7816c34bcec009ae0dcc976e40ba81463e7" -dependencies = [ - "indexmap", -] - -[[package]] -name = "wasmtime" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f50eadf868ab6a04b7b511460233377d0bfbb92e417b2f6a98b98fef2e098f5" -dependencies = [ - "anyhow", - "async-trait", - "backtrace", - "bincode", - "cfg-if 1.0.0", - "indexmap", - "lazy_static", - "libc", - "log", - "object 0.28.4", - "once_cell", - "paste", - "psm", - "rayon", - "region", - "serde", - "target-lexicon", - "wasmparser", - "wasmtime-cache", - "wasmtime-cranelift", - "wasmtime-environ", - "wasmtime-fiber", - "wasmtime-jit", - "wasmtime-runtime", - "wat", - "winapi 0.3.9", -] - -[[package]] -name = "wasmtime-cache" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1df23c642e1376892f3b72f311596976979cbf8b85469680cdd3a8a063d12a2" -dependencies = [ - "anyhow", - "base64", - "bincode", - "directories-next", - "file-per-thread-logger", - "log", - "rustix", - "serde", - "sha2 0.9.9", - "toml", - "winapi 0.3.9", - "zstd", -] - -[[package]] -name = "wasmtime-cranelift" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f264ff6b4df247d15584f2f53d009fbc90032cfdc2605b52b961bffc71b6eccd" -dependencies = [ - "anyhow", - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "cranelift-native", - "cranelift-wasm", - "gimli", - "log", - "more-asserts", - "object 0.28.4", - "target-lexicon", - "thiserror", - "wasmparser", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-environ" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "839d2820e4b830f4b9e7aa08d4c0acabf4a5036105d639f6dfa1c6891c73bdc6" -dependencies = [ - "anyhow", - "cranelift-entity", - "gimli", - "indexmap", - "log", - "more-asserts", - "object 0.28.4", - "serde", - "target-lexicon", - "thiserror", - "wasmparser", - "wasmtime-types", -] - -[[package]] -name = "wasmtime-fiber" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3248be3c4911233535356025f6562193614a40155ee9094bb6a2b43f0dc82803" -dependencies = [ - "cc", - "rustix", - "winapi 0.3.9", -] - -[[package]] -name = "wasmtime-jit" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef0a0bcbfa18b946d890078ba0e1bc76bcc53eccfb40806c0020ec29dcd1bd49" -dependencies = [ - "addr2line", - "anyhow", - "bincode", - "cfg-if 1.0.0", - "cpp_demangle", - "gimli", - "ittapi-rs", - "log", - "object 0.28.4", - "region", - "rustc-demangle", - "rustix", - "serde", - "target-lexicon", - "thiserror", - "wasmtime-environ", - "wasmtime-jit-debug", - "wasmtime-runtime", - "winapi 0.3.9", -] - -[[package]] -name = "wasmtime-jit-debug" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4779d976206c458edd643d1ac622b6c37e4a0800a8b1d25dfbf245ac2f2cac" -dependencies = [ - "lazy_static", - "object 0.28.4", - "rustix", -] - -[[package]] -name = "wasmtime-runtime" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7eb6ffa169eb5dcd18ac9473c817358cd57bc62c244622210566d473397954a" -dependencies = [ - "anyhow", - "backtrace", - "cc", - "cfg-if 1.0.0", - "indexmap", - "libc", - "log", - "mach", - "memfd", - "memoffset", - "more-asserts", - "rand 0.8.5", - "region", - "rustix", - "thiserror", - "wasmtime-environ", - "wasmtime-fiber", - "wasmtime-jit-debug", - "winapi 0.3.9", -] - -[[package]] -name = "wasmtime-types" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d932b0ac5336f7308d869703dd225610a6a3aeaa8e968c52b43eed96cefb1c2" -dependencies = [ - "cranelift-entity", - "serde", - "thiserror", - "wasmparser", -] - -[[package]] -name = "wasmtime-wasi" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68b7d77fb6f2975a6fe6cc4d0015d6b0cebb65c39fce1dd4cc00880dbf7789c" -dependencies = [ - "anyhow", - "wasi-cap-std-sync", - "wasi-common", - "wasmtime", - "wiggle", -] - -[[package]] -name = "wast" -version = "35.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68" -dependencies = [ - "leb128", -] - -[[package]] -name = "wast" -version = "47.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b98502f3978adea49551e801a6687678e6015317d7d9470a67fe813393f2a8" -dependencies = [ - "leb128", - "memchr", - "unicode-width", - "wasm-encoder", -] - -[[package]] -name = "wat" -version = "1.0.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aab4e20c60429fbba9670a6cae0fff9520046ba0aa3e6d0b1cd2653bea14898" -dependencies = [ - "wast 47.0.1", -] - -[[package]] -name = "web-sys" -version = "0.3.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-roots" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" -dependencies = [ - "webpki 0.21.4", -] - -[[package]] -name = "webpki-roots" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" -dependencies = [ - "webpki 0.22.0", -] - -[[package]] -name = "weezl" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" - -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - -[[package]] -name = "which" -version = "4.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" -dependencies = [ - "either", - "libc", - "once_cell", -] - -[[package]] -name = "whoami" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6631b6a2fd59b1841b622e8f1a7ad241ef0a46f2d580464ce8140ac94cbd571" -dependencies = [ - "bumpalo", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wiggle" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67dadac11343d2aabc8a906a0db0aaf7cb5046ec3d6fffccdaf2847dccdef8d6" -dependencies = [ - "anyhow", - "async-trait", - "bitflags", - "thiserror", - "tracing", - "wasmtime", - "wiggle-macro", -] - -[[package]] -name = "wiggle-generate" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63a1dccd6b3fbd9a27417f5d30ce9aa3ee9cf529aad453abbf88a49c5d605b79" -dependencies = [ - "anyhow", - "heck 0.4.0", - "proc-macro2", - "quote", - "shellexpand", - "syn", - "witx", -] - -[[package]] -name = "wiggle-macro" -version = "0.38.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c368d57d9560c34deaa67e06b0953ccf65edb906c525e5a2c866c849b48ec2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wiggle-generate", -] - -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "winx" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d5973cb8cd94a77d03ad7e23bbe14889cb29805da1cec0e4aff75e21aebded" -dependencies = [ - "bitflags", - "io-lifetimes", - "winapi 0.3.9", -] - -[[package]] -name = "wio" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "witx" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b" -dependencies = [ - "anyhow", - "log", - "thiserror", - "wast 35.0.2", -] - -[[package]] -name = "workspace" -version = "0.1.0" -dependencies = [ - "anyhow", - "client", - "clock", - "collections", - "context_menu", - "drag_and_drop", - "futures 0.3.24", - "gpui", - "language", - "log", - "menu", - "parking_lot 0.11.2", - "postage", - "project", - "serde", - "serde_json", - "settings", - "smallvec", - "theme", - "util", -] - -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - -[[package]] -name = "xml-rs" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" - -[[package]] -name = "xmlparser" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "114ba2b24d2167ef6d67d7d04c8cc86522b87f490025f39f0303b7db5bf5e3d8" - -[[package]] -name = "xmlwriter" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" - -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] - -[[package]] -name = "zed" -version = "0.59.0" -dependencies = [ - "activity_indicator", - "anyhow", - "assets", - "async-compression", - "async-recursion", - "async-trait", - "auto_update", - "backtrace", - "breadcrumbs", - "chat_panel", - "chrono", - "cli", - "client", - "clock", - "collections", - "command_palette", - "contacts_panel", - "contacts_status_item", - "context_menu", - "ctor", - "diagnostics", - "dirs 3.0.2", - "easy-parallel", - "editor", - "env_logger", - "file_finder", - "fsevent", - "futures 0.3.24", - "fuzzy", - "go_to_line", - "gpui", - "ignore", - "image", - "indexmap", - "isahc", - "journal", - "language", - "lazy_static", - "libc", - "log", - "lsp", - "num_cpus", - "outline", - "parking_lot 0.11.2", - "plugin_runtime", - "postage", - "project", - "project_panel", - "project_symbols", - "rand 0.8.5", - "regex", - "rpc", - "rsa", - "rust-embed", - "search", - "serde", - "serde_json", - "serde_path_to_error", - "settings", - "simplelog", - "smallvec", - "smol", - "sum_tree", - "tempdir", - "terminal", - "text", - "theme", - "theme_selector", - "thiserror", - "tiny_http", - "toml", - "tree-sitter", - "tree-sitter-c", - "tree-sitter-cpp", - "tree-sitter-css", - "tree-sitter-elixir", - "tree-sitter-go", - "tree-sitter-html", - "tree-sitter-json 0.20.0", - "tree-sitter-markdown", - "tree-sitter-python", - "tree-sitter-rust", - "tree-sitter-toml", - "tree-sitter-typescript", - "unindent", - "url", - "util", - "vim", - "workspace", -] - -[[package]] -name = "zeroize" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.1+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b" -dependencies = [ - "cc", - "libc", -] diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index 651484afcd..75d0eae5ff 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -9,11 +9,10 @@ } ], "h": "vim::Left", - "backspace": "vim::Left", + "backspace": "vim::Backspace", "j": "vim::Down", "k": "vim::Up", "l": "vim::Right", - "0": "vim::StartOfLine", "$": "vim::EndOfLine", "shift-g": "vim::EndOfDocument", "w": "vim::NextWordStart", @@ -54,6 +53,43 @@ "around": true } } + ], + "0": "vim::StartOfLine", // When no number operator present, use start of line motion + "1": [ + "vim::Number", + 1 + ], + "2": [ + "vim::Number", + 2 + ], + "3": [ + "vim::Number", + 3 + ], + "4": [ + "vim::Number", + 4 + ], + "5": [ + "vim::Number", + 5 + ], + "6": [ + "vim::Number", + 6 + ], + "7": [ + "vim::Number", + 7 + ], + "8": [ + "vim::Number", + 8 + ], + "9": [ + "vim::Number", + 9 ] } }, @@ -114,6 +150,15 @@ ] } }, + { + "context": "Editor && vim_operator == n", + "bindings": { + "0": [ + "vim::Number", + 0 + ] + } + }, { "context": "Editor && vim_operator == g", "bindings": { @@ -128,13 +173,6 @@ { "context": "Editor && vim_operator == c", "bindings": { - "w": "vim::ChangeWord", - "shift-w": [ - "vim::ChangeWord", - { - "ignorePunctuation": true - } - ], "c": "vim::CurrentLine" } }, @@ -160,8 +198,7 @@ "ignorePunctuation": true } ], - "s": "vim::Sentence", - "p": "vim::Paragraph" + "s": "vim::Sentence" } }, { diff --git a/crates/collab/src/integration_tests.rs b/crates/collab/src/integration_tests.rs index 7e84c70601..bc17588133 100644 --- a/crates/collab/src/integration_tests.rs +++ b/crates/collab/src/integration_tests.rs @@ -4961,6 +4961,7 @@ async fn test_random_collaboration( cx.font_cache(), cx.leak_detector(), next_entity_id, + cx.function_name.clone(), ); let host = server.create_client(&mut host_cx, "host").await; let host_project = host_cx.update(|cx| { @@ -5194,6 +5195,7 @@ async fn test_random_collaboration( cx.font_cache(), cx.leak_detector(), next_entity_id, + cx.function_name.clone(), ); deterministic.start_waiting(); diff --git a/crates/editor/src/test.rs b/crates/editor/src/test.rs index 75bc5fe76a..acee1216d1 100644 --- a/crates/editor/src/test.rs +++ b/crates/editor/src/test.rs @@ -4,19 +4,25 @@ use crate::{ AnchorRangeExt, Autoscroll, DisplayPoint, Editor, EditorMode, MultiBuffer, ToPoint, }; use anyhow::Result; +use collections::BTreeMap; use futures::{Future, StreamExt}; use gpui::{ json, keymap::Keystroke, AppContext, ModelContext, ModelHandle, ViewContext, ViewHandle, }; use indoc::indoc; +use itertools::Itertools; use language::{point_to_lsp, Buffer, BufferSnapshot, FakeLspAdapter, Language, LanguageConfig}; use lsp::{notification, request}; +use parking_lot::RwLock; use project::Project; use settings::Settings; use std::{ any::TypeId, ops::{Deref, DerefMut, Range}, - sync::Arc, + sync::{ + atomic::{AtomicUsize, Ordering}, + Arc, + }, }; use util::{ assert_set_eq, set_eq, @@ -85,6 +91,7 @@ pub struct EditorTestContext<'a> { pub cx: &'a mut gpui::TestAppContext, pub window_id: usize, pub editor: ViewHandle, + pub assertion_context: AssertionContextManager, } impl<'a> EditorTestContext<'a> { @@ -106,9 +113,14 @@ impl<'a> EditorTestContext<'a> { cx, window_id, editor, + assertion_context: AssertionContextManager::new(), } } + pub fn add_assertion_context(&self, context: String) -> ContextHandle { + self.assertion_context.add_context(context) + } + pub fn condition( &self, predicate: impl FnMut(&Editor, &AppContext) -> bool, @@ -394,6 +406,7 @@ impl<'a> EditorLspTestContext<'a> { cx, window_id, editor, + assertion_context: AssertionContextManager::new(), }, lsp, workspace, @@ -507,3 +520,45 @@ impl<'a> DerefMut for EditorLspTestContext<'a> { &mut self.cx } } + +#[derive(Clone)] +pub struct AssertionContextManager { + id: Arc, + contexts: Arc>>, +} + +impl AssertionContextManager { + pub fn new() -> Self { + Self { + id: Arc::new(AtomicUsize::new(0)), + contexts: Arc::new(RwLock::new(BTreeMap::new())), + } + } + + pub fn add_context(&self, context: String) -> ContextHandle { + let id = self.id.fetch_add(1, Ordering::Relaxed); + let mut contexts = self.contexts.write(); + contexts.insert(id, context); + ContextHandle { + id, + manager: self.clone(), + } + } + + pub fn context(&self) -> String { + let contexts = self.contexts.read(); + format!("\n{}\n", contexts.values().join("\n")) + } +} + +pub struct ContextHandle { + id: usize, + manager: AssertionContextManager, +} + +impl Drop for ContextHandle { + fn drop(&mut self) { + let mut contexts = self.manager.contexts.write(); + contexts.remove(&self.id); + } +} diff --git a/crates/gpui/src/app.rs b/crates/gpui/src/app.rs index 308ea6c831..1da9f35dc8 100644 --- a/crates/gpui/src/app.rs +++ b/crates/gpui/src/app.rs @@ -182,6 +182,7 @@ pub struct TestAppContext { cx: Rc>, foreground_platform: Rc, condition_duration: Option, + pub function_name: String, } pub struct WindowInputHandler { @@ -437,6 +438,7 @@ impl TestAppContext { font_cache: Arc, leak_detector: Arc>, first_entity_id: usize, + function_name: String, ) -> Self { let mut cx = MutableAppContext::new( foreground, @@ -456,6 +458,7 @@ impl TestAppContext { cx: Rc::new(RefCell::new(cx)), foreground_platform, condition_duration: None, + function_name, }; cx.cx.borrow_mut().weak_self = Some(Rc::downgrade(&cx.cx)); cx diff --git a/crates/gpui/src/test.rs b/crates/gpui/src/test.rs index 4122ad09b7..ffabafe725 100644 --- a/crates/gpui/src/test.rs +++ b/crates/gpui/src/test.rs @@ -37,6 +37,7 @@ pub fn run_test( u64, bool, )), + fn_name: String, ) { // let _profiler = dhat::Profiler::new_heap(); @@ -78,6 +79,7 @@ pub fn run_test( font_cache.clone(), leak_detector.clone(), 0, + fn_name.clone(), ); cx.update(|cx| { test_fn( diff --git a/crates/gpui_macros/src/gpui_macros.rs b/crates/gpui_macros/src/gpui_macros.rs index a60d385e8f..79bc808154 100644 --- a/crates/gpui_macros/src/gpui_macros.rs +++ b/crates/gpui_macros/src/gpui_macros.rs @@ -117,6 +117,7 @@ pub fn test(args: TokenStream, function: TokenStream) -> TokenStream { cx.font_cache().clone(), cx.leak_detector(), #first_entity_id, + stringify!(#outer_fn_name).to_string(), ); )); cx_teardowns.extend(quote!( @@ -149,7 +150,8 @@ pub fn test(args: TokenStream, function: TokenStream) -> TokenStream { #cx_vars cx.foreground().run(#inner_fn_name(#inner_fn_args)); #cx_teardowns - } + }, + stringify!(#outer_fn_name).to_string(), ); } } @@ -187,7 +189,8 @@ pub fn test(args: TokenStream, function: TokenStream) -> TokenStream { #num_iterations as u64, #starting_seed as u64, #max_retries, - &mut |cx, _, _, seed, is_last_iteration| #inner_fn_name(#inner_fn_args) + &mut |cx, _, _, seed, is_last_iteration| #inner_fn_name(#inner_fn_args), + stringify!(#outer_fn_name).to_string(), ); } } diff --git a/crates/vim/Cargo.toml b/crates/vim/Cargo.toml index 6b72383fdb..3acd3f3a90 100644 --- a/crates/vim/Cargo.toml +++ b/crates/vim/Cargo.toml @@ -33,6 +33,7 @@ workspace = { path = "../workspace" } [dev-dependencies] indoc = "1.0.4" +parking_lot = "0.11.1" editor = { path = "../editor", features = ["test-support"] } gpui = { path = "../gpui", features = ["test-support"] } diff --git a/crates/vim/src/motion.rs b/crates/vim/src/motion.rs index b4457e261b..5d25ece562 100644 --- a/crates/vim/src/motion.rs +++ b/crates/vim/src/motion.rs @@ -18,6 +18,7 @@ use crate::{ #[derive(Copy, Clone, Debug)] pub enum Motion { Left, + Backspace, Down, Up, Right, @@ -58,6 +59,7 @@ actions!( vim, [ Left, + Backspace, Down, Up, Right, @@ -74,6 +76,7 @@ impl_actions!(vim, [NextWordStart, NextWordEnd, PreviousWordStart]); pub fn init(cx: &mut MutableAppContext) { cx.add_action(|_: &mut Workspace, _: &Left, cx: _| motion(Motion::Left, cx)); + cx.add_action(|_: &mut Workspace, _: &Backspace, cx: _| motion(Motion::Backspace, cx)); cx.add_action(|_: &mut Workspace, _: &Down, cx: _| motion(Motion::Down, cx)); cx.add_action(|_: &mut Workspace, _: &Up, cx: _| motion(Motion::Up, cx)); cx.add_action(|_: &mut Workspace, _: &Right, cx: _| motion(Motion::Right, cx)); @@ -106,19 +109,21 @@ pub fn init(cx: &mut MutableAppContext) { ); } -fn motion(motion: Motion, cx: &mut MutableAppContext) { - Vim::update(cx, |vim, cx| { - if let Some(Operator::Namespace(_)) = vim.active_operator() { - vim.pop_operator(cx); - } - }); +pub(crate) fn motion(motion: Motion, cx: &mut MutableAppContext) { + if let Some(Operator::Namespace(_)) = Vim::read(cx).active_operator() { + Vim::update(cx, |vim, cx| vim.pop_operator(cx)); + } + + let times = Vim::update(cx, |vim, cx| vim.pop_number_operator(cx)); + let operator = Vim::read(cx).active_operator(); match Vim::read(cx).state.mode { - Mode::Normal => normal_motion(motion, cx), - Mode::Visual { .. } => visual_motion(motion, cx), + Mode::Normal => normal_motion(motion, operator, times, cx), + Mode::Visual { .. } => visual_motion(motion, times, cx), Mode::Insert => { // Shouldn't execute a motion in insert mode. Ignoring } } + Vim::update(cx, |vim, cx| vim.clear_operator(cx)); } // Motion handling is specified here: @@ -154,6 +159,7 @@ impl Motion { use Motion::*; match self { Left => (left(map, point), SelectionGoal::None), + Backspace => (movement::left(map, point), SelectionGoal::None), Down => movement::down(map, point, goal, true), Up => movement::up(map, point, goal, true), Right => (right(map, point), SelectionGoal::None), @@ -184,10 +190,13 @@ impl Motion { self, map: &DisplaySnapshot, selection: &mut Selection, + times: usize, expand_to_surrounding_newline: bool, ) { - let (head, goal) = self.move_point(map, selection.head(), selection.goal); - selection.set_head(head, goal); + for _ in 0..times { + let (head, goal) = self.move_point(map, selection.head(), selection.goal); + selection.set_head(head, goal); + } if self.linewise() { selection.start = map.prev_line_boundary(selection.start.to_point(map)).1; @@ -272,17 +281,13 @@ fn next_word_end( ignore_punctuation: bool, ) -> DisplayPoint { *point.column_mut() += 1; - dbg!(point); point = movement::find_boundary(map, point, |left, right| { - dbg!(left); let left_kind = char_kind(left).coerce_punctuation(ignore_punctuation); let right_kind = char_kind(right).coerce_punctuation(ignore_punctuation); left_kind != right_kind && left_kind != CharKind::Whitespace }); - dbg!(point); - // find_boundary clips, so if the character after the next character is a newline or at the end of the document, we know // we have backtraced already if !map @@ -293,7 +298,7 @@ fn next_word_end( { *point.column_mut() = point.column().saturating_sub(1); } - dbg!(map.clip_point(point, Bias::Left)) + map.clip_point(point, Bias::Left) } fn previous_word_start( diff --git a/crates/vim/src/normal.rs b/crates/vim/src/normal.rs index 5345586743..f10227de86 100644 --- a/crates/vim/src/normal.rs +++ b/crates/vim/src/normal.rs @@ -10,7 +10,6 @@ use crate::{ state::{Mode, Operator}, Vim, }; -use change::init as change_init; use collections::HashSet; use editor::{Autoscroll, Bias, ClipboardSelection, DisplayPoint}; use gpui::{actions, MutableAppContext, ViewContext}; @@ -48,41 +47,47 @@ pub fn init(cx: &mut MutableAppContext) { cx.add_action(insert_line_below); cx.add_action(|_: &mut Workspace, _: &DeleteLeft, cx| { Vim::update(cx, |vim, cx| { - delete_motion(vim, Motion::Left, cx); + let times = vim.pop_number_operator(cx); + delete_motion(vim, Motion::Left, times, cx); }) }); cx.add_action(|_: &mut Workspace, _: &DeleteRight, cx| { Vim::update(cx, |vim, cx| { - delete_motion(vim, Motion::Right, cx); + let times = vim.pop_number_operator(cx); + delete_motion(vim, Motion::Right, times, cx); }) }); cx.add_action(|_: &mut Workspace, _: &ChangeToEndOfLine, cx| { Vim::update(cx, |vim, cx| { - change_motion(vim, Motion::EndOfLine, cx); + let times = vim.pop_number_operator(cx); + change_motion(vim, Motion::EndOfLine, times, cx); }) }); cx.add_action(|_: &mut Workspace, _: &DeleteToEndOfLine, cx| { Vim::update(cx, |vim, cx| { - delete_motion(vim, Motion::EndOfLine, cx); + let times = vim.pop_number_operator(cx); + delete_motion(vim, Motion::EndOfLine, times, cx); }) }); cx.add_action(paste); - - change_init(cx); } -pub fn normal_motion(motion: Motion, cx: &mut MutableAppContext) { +pub fn normal_motion( + motion: Motion, + operator: Option, + times: usize, + cx: &mut MutableAppContext, +) { Vim::update(cx, |vim, cx| { - match vim.state.operator_stack.pop() { - None => move_cursor(vim, motion, cx), - Some(Operator::Change) => change_motion(vim, motion, cx), - Some(Operator::Delete) => delete_motion(vim, motion, cx), - Some(Operator::Yank) => yank_motion(vim, motion, cx), + match operator { + None => move_cursor(vim, motion, times, cx), + Some(Operator::Change) => change_motion(vim, motion, times, cx), + Some(Operator::Delete) => delete_motion(vim, motion, times, cx), + Some(Operator::Yank) => yank_motion(vim, motion, times, cx), _ => { // Can't do anything for text objects or namespace operators. Ignoring } } - vim.clear_operator(cx); }); } @@ -105,10 +110,16 @@ pub fn normal_object(object: Object, cx: &mut MutableAppContext) { }) } -fn move_cursor(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { +fn move_cursor(vim: &mut Vim, motion: Motion, times: usize, cx: &mut MutableAppContext) { vim.update_active_editor(cx, |editor, cx| { editor.change_selections(Some(Autoscroll::Fit), cx, |s| { - s.move_cursors_with(|map, cursor, goal| motion.move_point(map, cursor, goal)) + s.move_cursors_with(|map, cursor, goal| { + let mut result = (cursor, goal); + for _ in 0..times { + result = motion.move_point(map, result.0, result.1); + } + result + }) }) }); } @@ -328,311 +339,139 @@ mod test { Mode::{self, *}, Namespace, Operator, }, - test_contexts::VimTestContext, + test_contexts::{NeovimBackedTestContext, VimTestContext}, }; #[gpui::test] async fn test_h(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["h"]); - cx.assert("The qˇuick", "The ˇquick"); - cx.assert("ˇThe quick", "ˇThe quick"); - cx.assert( - indoc! {" - The quick - ˇbrown"}, - indoc! {" - The quick - ˇbrown"}, - ); + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["h"]); + cx.assert_all(indoc! {" + ˇThe qˇuick + ˇbrown" + }) + .await; } #[gpui::test] async fn test_backspace(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["backspace"]); - cx.assert("The qˇuick", "The ˇquick"); - cx.assert("ˇThe quick", "ˇThe quick"); - cx.assert( - indoc! {" - The quick - ˇbrown"}, - indoc! {" - The quick - ˇbrown"}, - ); + let mut cx = NeovimBackedTestContext::new(cx) + .await + .binding(["backspace"]); + cx.assert_all(indoc! {" + ˇThe qˇuick + ˇbrown" + }) + .await; } #[gpui::test] async fn test_j(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["j"]); - cx.assert( - indoc! {" - The ˇquick - brown fox"}, - indoc! {" - The quick - browˇn fox"}, - ); - cx.assert( - indoc! {" - The quick - browˇn fox"}, - indoc! {" - The quick - browˇn fox"}, - ); - cx.assert( - indoc! {" - The quicˇk - brown"}, - indoc! {" - The quick - browˇn"}, - ); - cx.assert( - indoc! {" - The quick - ˇbrown"}, - indoc! {" - The quick - ˇbrown"}, - ); + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["j"]); + cx.assert_all(indoc! {" + ˇThe qˇuick broˇwn + ˇfox jumps" + }) + .await; } #[gpui::test] async fn test_k(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["k"]); - cx.assert( - indoc! {" - The ˇquick - brown fox"}, - indoc! {" - The ˇquick - brown fox"}, - ); - cx.assert( - indoc! {" - The quick - browˇn fox"}, - indoc! {" - The ˇquick - brown fox"}, - ); - cx.assert( - indoc! {" - The - quicˇk"}, - indoc! {" - Thˇe - quick"}, - ); + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["k"]); + cx.assert_all(indoc! {" + ˇThe qˇuick + ˇbrown fˇox jumˇps" + }) + .await; } #[gpui::test] async fn test_l(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["l"]); - cx.assert("The qˇuick", "The quˇick"); - cx.assert("The quicˇk", "The quicˇk"); - cx.assert( - indoc! {" - The quicˇk - brown"}, - indoc! {" - The quicˇk - brown"}, - ); + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["l"]); + cx.assert_all(indoc! {" + ˇThe qˇuicˇk + ˇbrowˇn"}) + .await; } #[gpui::test] async fn test_jump_to_line_boundaries(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["$"]); - cx.assert("Tˇest test", "Test tesˇt"); - cx.assert("Test tesˇt", "Test tesˇt"); - cx.assert( + let mut cx = NeovimBackedTestContext::new(cx).await; + cx.assert_binding_matches_all( + ["$"], indoc! {" - The ˇquick - brown"}, + ˇThe qˇuicˇk + ˇbrowˇn"}, + ) + .await; + cx.assert_binding_matches_all( + ["0"], indoc! {" - The quicˇk - brown"}, - ); - cx.assert( - indoc! {" - The quicˇk - brown"}, - indoc! {" - The quicˇk - brown"}, - ); - - let mut cx = cx.binding(["0"]); - cx.assert("Test ˇtest", "ˇTest test"); - cx.assert("ˇTest test", "ˇTest test"); - cx.assert( - indoc! {" - The ˇquick - brown"}, - indoc! {" - ˇThe quick - brown"}, - ); - cx.assert( - indoc! {" - ˇThe quick - brown"}, - indoc! {" - ˇThe quick - brown"}, - ); + ˇThe qˇuicˇk + ˇbrowˇn"}, + ) + .await; } #[gpui::test] async fn test_jump_to_end(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["shift-g"]); + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["shift-g"]); - cx.assert( - indoc! {" + cx.assert_all(indoc! {" The ˇquick brown fox jumps - over the lazy dog"}, - indoc! {" - The quick - - brown fox jumps - overˇ the lazy dog"}, - ); - cx.assert( - indoc! {" - The quick - - brown fox jumps - overˇ the lazy dog"}, - indoc! {" - The quick - - brown fox jumps - overˇ the lazy dog"}, - ); - cx.assert( - indoc! {" + overˇ the lazy doˇg"}) + .await; + cx.assert(indoc! {" The quiˇck - brown"}, - indoc! {" - The quick - - browˇn"}, - ); - cx.assert( - indoc! {" + brown"}) + .await; + cx.assert(indoc! {" The quiˇck - "}, - indoc! {" - The quick - - ˇ"}, - ); + "}) + .await; } #[gpui::test] async fn test_w(cx: &mut gpui::TestAppContext) { - let mut cx = VimTestContext::new(cx, true).await; - let (_, cursor_offsets) = marked_text_offsets(indoc! {" + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["w"]); + cx.assert_all(indoc! {" The ˇquickˇ-ˇbrown ˇ ˇ ˇfox_jumps ˇover - ˇthˇˇe"}); - cx.set_state( - indoc! {" - ˇThe quick-brown - - - fox_jumps over - the"}, - Mode::Normal, - ); - - for cursor_offset in cursor_offsets { - cx.simulate_keystroke("w"); - cx.assert_editor_selections(vec![cursor_offset..cursor_offset]); - } - - // Reset and test ignoring punctuation - let (_, cursor_offsets) = marked_text_offsets(indoc! {" - The ˇquick-brown + ˇthˇe"}) + .await; + let mut cx = cx.binding(["shift-w"]); + cx.assert_all(indoc! {" + The ˇquickˇ-ˇbrown ˇ ˇ ˇfox_jumps ˇover - ˇthˇˇe"}); - cx.set_state( - indoc! {" - ˇThe quick-brown - - - fox_jumps over - the"}, - Mode::Normal, - ); - - for cursor_offset in cursor_offsets { - cx.simulate_keystroke("shift-w"); - cx.assert_editor_selections(vec![cursor_offset..cursor_offset]); - } + ˇthˇe"}) + .await; } #[gpui::test] async fn test_e(cx: &mut gpui::TestAppContext) { - let mut cx = VimTestContext::new(cx, true).await; - let (_, cursor_offsets) = marked_text_offsets(indoc! {" + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["e"]); + cx.assert_all(indoc! {" Thˇe quicˇkˇ-browˇn fox_jumpˇs oveˇr - thˇe"}); - cx.set_state( - indoc! {" - ˇThe quick-brown - - - fox_jumps over - the"}, - Mode::Normal, - ); - - for cursor_offset in cursor_offsets { - cx.simulate_keystroke("e"); - cx.assert_editor_selections(vec![cursor_offset..cursor_offset]); - } - - // Reset and test ignoring punctuation - let (_, cursor_offsets) = marked_text_offsets(indoc! {" - Thˇe quick-browˇn + thˇe"}) + .await; + let mut cx = cx.binding(["shift-e"]); + cx.assert_all(indoc! {" + Thˇe quicˇkˇ-browˇn fox_jumpˇs oveˇr - thˇˇe"}); - cx.set_state( - indoc! {" - ˇThe quick-brown - - - fox_jumps over - the"}, - Mode::Normal, - ); - for cursor_offset in cursor_offsets { - cx.simulate_keystroke("shift-e"); - cx.assert_editor_selections(vec![cursor_offset..cursor_offset]); - } + thˇe"}) + .await; } #[gpui::test] @@ -699,90 +538,35 @@ mod test { #[gpui::test] async fn test_gg(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["g", "g"]); - cx.assert( - indoc! {" - The quick + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["g", "g"]); + cx.assert_all(indoc! {" + The qˇuick + + brown fox jumps + over ˇthe laˇzy dog"}) + .await; + cx.assert(indoc! {" - brown fox jumps - over ˇthe lazy dog"}, - indoc! {" - The qˇuick - - brown fox jumps - over the lazy dog"}, - ); - cx.assert( - indoc! {" - The qˇuick - - brown fox jumps - over the lazy dog"}, - indoc! {" - The qˇuick - - brown fox jumps - over the lazy dog"}, - ); - cx.assert( - indoc! {" - The quick - - brown fox jumps - over the laˇzy dog"}, - indoc! {" - The quicˇk - - brown fox jumps - over the lazy dog"}, - ); - cx.assert( - indoc! {" - - - brown fox jumps - over the laˇzy dog"}, - indoc! {" - ˇ - - brown fox jumps - over the lazy dog"}, - ); + + brown fox jumps + over the laˇzy dog"}) + .await; } #[gpui::test] async fn test_a(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["a"]).mode_after(Mode::Insert); - - cx.assert("The qˇuick", "The quˇick"); - cx.assert("The quicˇk", "The quickˇ"); + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["a"]); + cx.assert_all("The qˇuicˇk").await; } #[gpui::test] async fn test_insert_end_of_line(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["shift-a"]).mode_after(Mode::Insert); - cx.assert("The qˇuick", "The quickˇ"); - cx.assert("The qˇuick ", "The quick ˇ"); - cx.assert("ˇ", "ˇ"); - cx.assert( - indoc! {" - The qˇuick - brown fox"}, - indoc! {" - The quickˇ - brown fox"}, - ); - cx.assert( - indoc! {" - ˇ - The quick"}, - indoc! {" - ˇ - The quick"}, - ); + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["shift-a"]); + cx.assert_all(indoc! {" + ˇ + The qˇuick + brown ˇfox "}) + .await; } #[gpui::test] @@ -984,84 +768,45 @@ mod test { #[gpui::test] async fn test_insert_line_above(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["shift-o"]).mode_after(Mode::Insert); + let cx = NeovimBackedTestContext::new(cx).await; + let mut cx = cx.binding(["shift-o"]); + cx.assert("ˇ").await; + cx.assert("The ˇquick").await; + cx.assert_all(indoc! {" + The qˇuick + brown ˇfox + jumps ˇover"}) + .await; + cx.assert(indoc! {" + The quick + ˇ + brown fox"}) + .await; - cx.assert( - "ˇ", - indoc! {" - ˇ - "}, - ); - cx.assert( - "The ˇquick", - indoc! {" - ˇ - The quick"}, - ); - cx.assert( - indoc! {" - The quick - brown ˇfox - jumps over"}, - indoc! {" - The quick - ˇ - brown fox - jumps over"}, - ); - cx.assert( - indoc! {" - The quick - brown fox - jumps ˇover"}, - indoc! {" - The quick - brown fox - ˇ - jumps over"}, - ); - cx.assert( - indoc! {" - The qˇuick - brown fox - jumps over"}, - indoc! {" - ˇ - The quick - brown fox - jumps over"}, - ); - cx.assert( - indoc! {" - The quick - ˇ - brown fox"}, - indoc! {" - The quick - ˇ - - brown fox"}, - ); - cx.assert( + // Our indentation is smarter than vims. So we don't match here + cx.assert_manual( indoc! {" fn test() println!(ˇ);"}, + Mode::Normal, indoc! {" fn test() ˇ println!();"}, + Mode::Insert, ); - cx.assert( + cx.assert_manual( indoc! {" fn test(ˇ) { println!(); }"}, + Mode::Normal, indoc! {" ˇ fn test() { println!(); }"}, + Mode::Insert, ); } @@ -1208,4 +953,22 @@ mod test { Mode::Normal, ); } + + #[gpui::test] + async fn test_repeated_word(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + + for count in 1..=5 { + cx.assert_binding_matches_all( + [&count.to_string(), "w"], + indoc! {" + ˇThe quˇickˇ browˇn + ˇ + ˇfox ˇjumpsˇ-ˇoˇver + ˇthe lazy dog + "}, + ) + .await; + } + } } diff --git a/crates/vim/src/normal/change.rs b/crates/vim/src/normal/change.rs index 6835ea3b1c..924fc9d708 100644 --- a/crates/vim/src/normal/change.rs +++ b/crates/vim/src/normal/change.rs @@ -1,30 +1,20 @@ use crate::{motion::Motion, object::Object, state::Mode, utils::copy_selections_content, Vim}; -use editor::{char_kind, movement, Autoscroll}; -use gpui::{impl_actions, MutableAppContext, ViewContext}; -use serde::Deserialize; -use workspace::Workspace; +use editor::{char_kind, display_map::DisplaySnapshot, movement, Autoscroll, DisplayPoint}; +use gpui::MutableAppContext; +use language::Selection; -#[derive(Clone, Deserialize, PartialEq)] -#[serde(rename_all = "camelCase")] -struct ChangeWord { - #[serde(default)] - ignore_punctuation: bool, -} - -impl_actions!(vim, [ChangeWord]); - -pub fn init(cx: &mut MutableAppContext) { - cx.add_action(change_word); -} - -pub fn change_motion(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { +pub fn change_motion(vim: &mut Vim, motion: Motion, times: usize, cx: &mut MutableAppContext) { vim.update_active_editor(cx, |editor, cx| { editor.transact(cx, |editor, cx| { // We are swapping to insert mode anyway. Just set the line end clipping behavior now editor.set_clip_at_line_ends(false, cx); editor.change_selections(Some(Autoscroll::Fit), cx, |s| { s.move_with(|map, selection| { - motion.expand_selection(map, selection, false); + if let Motion::NextWordStart { ignore_punctuation } = motion { + expand_changed_word_selection(map, selection, times, ignore_punctuation); + } else { + motion.expand_selection(map, selection, times, false); + } }); }); copy_selections_content(editor, motion.linewise(), cx); @@ -56,38 +46,30 @@ pub fn change_object(vim: &mut Vim, object: Object, around: bool, cx: &mut Mutab // white space after a word, they only change up to the end of the word. This is // because Vim interprets "cw" as change-word, and a word does not include the // following white space. -fn change_word( - _: &mut Workspace, - &ChangeWord { ignore_punctuation }: &ChangeWord, - cx: &mut ViewContext, +fn expand_changed_word_selection( + map: &DisplaySnapshot, + selection: &mut Selection, + times: usize, + ignore_punctuation: bool, ) { - Vim::update(cx, |vim, cx| { - vim.update_active_editor(cx, |editor, cx| { - editor.transact(cx, |editor, cx| { - // We are swapping to insert mode anyway. Just set the line end clipping behavior now - editor.set_clip_at_line_ends(false, cx); - editor.change_selections(Some(Autoscroll::Fit), cx, |s| { - s.move_with(|map, selection| { - if selection.end.column() == map.line_len(selection.end.row()) { - return; - } + if times > 1 { + Motion::NextWordStart { ignore_punctuation }.expand_selection( + map, + selection, + times - 1, + false, + ); + } - selection.end = - movement::find_boundary(map, selection.end, |left, right| { - let left_kind = - char_kind(left).coerce_punctuation(ignore_punctuation); - let right_kind = - char_kind(right).coerce_punctuation(ignore_punctuation); + if times == 1 && selection.end.column() == map.line_len(selection.end.row()) { + return; + } - left_kind != right_kind || left == '\n' || right == '\n' - }); - }); - }); - copy_selections_content(editor, false, cx); - editor.insert("", cx); - }); - }); - vim.switch_mode(Mode::Insert, false, cx); + selection.end = movement::find_boundary(map, selection.end, |left, right| { + let left_kind = char_kind(left).coerce_punctuation(ignore_punctuation); + let right_kind = char_kind(right).coerce_punctuation(ignore_punctuation); + + left_kind != right_kind || left == '\n' || right == '\n' }); } @@ -95,7 +77,10 @@ fn change_word( mod test { use indoc::indoc; - use crate::{state::Mode, test_contexts::VimTestContext}; + use crate::{ + state::Mode, + test_contexts::{NeovimBackedTestContext, VimTestContext}, + }; #[gpui::test] async fn test_change_h(cx: &mut gpui::TestAppContext) { @@ -459,4 +444,85 @@ mod test { the lazy"}, ); } + + #[gpui::test] + async fn test_repeated_cj(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + + for count in 1..=5 { + cx.assert_binding_matches_all( + ["c", &count.to_string(), "j"], + indoc! {" + ˇThe quˇickˇ browˇn + ˇ + ˇfox ˇjumpsˇ-ˇoˇver + ˇthe lazy dog + "}, + ) + .await; + } + } + + #[gpui::test] + async fn test_repeated_cl(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + + for count in 1..=5 { + cx.assert_binding_matches_all( + ["c", &count.to_string(), "l"], + indoc! {" + ˇThe quˇickˇ browˇn + ˇ + ˇfox ˇjumpsˇ-ˇoˇver + ˇthe lazy dog + "}, + ) + .await; + } + } + + #[gpui::test] + async fn test_repeated_cb(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + + // Changing back any number of times from the start of the file doesn't + // switch to insert mode in vim. This is weird and painful to implement + cx.add_initial_state_exemption(indoc! {" + ˇThe quick brown + + fox jumps-over + the lazy dog + "}); + + for count in 1..=5 { + cx.assert_binding_matches_all( + ["c", &count.to_string(), "b"], + indoc! {" + ˇThe quˇickˇ browˇn + ˇ + ˇfox ˇjumpsˇ-ˇoˇver + ˇthe lazy dog + "}, + ) + .await; + } + } + + #[gpui::test] + async fn test_repeated_ce(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + + for count in 1..=5 { + cx.assert_binding_matches_all( + ["c", &count.to_string(), "e"], + indoc! {" + ˇThe quˇickˇ browˇn + ˇ + ˇfox ˇjumpsˇ-ˇoˇver + ˇthe lazy dog + "}, + ) + .await; + } + } } diff --git a/crates/vim/src/normal/delete.rs b/crates/vim/src/normal/delete.rs index e410024aea..b0fd3ea5a1 100644 --- a/crates/vim/src/normal/delete.rs +++ b/crates/vim/src/normal/delete.rs @@ -3,7 +3,7 @@ use collections::{HashMap, HashSet}; use editor::{display_map::ToDisplayPoint, Autoscroll, Bias}; use gpui::MutableAppContext; -pub fn delete_motion(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { +pub fn delete_motion(vim: &mut Vim, motion: Motion, times: usize, cx: &mut MutableAppContext) { vim.update_active_editor(cx, |editor, cx| { editor.transact(cx, |editor, cx| { editor.set_clip_at_line_ends(false, cx); @@ -11,8 +11,8 @@ pub fn delete_motion(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) editor.change_selections(Some(Autoscroll::Fit), cx, |s| { s.move_with(|map, selection| { let original_head = selection.head(); - motion.expand_selection(map, selection, true); original_columns.insert(selection.id, original_head.column()); + motion.expand_selection(map, selection, times, true); }); }); copy_selections_content(editor, motion.linewise(), cx); diff --git a/crates/vim/src/normal/yank.rs b/crates/vim/src/normal/yank.rs index 11f5371cc6..e7d6b3076b 100644 --- a/crates/vim/src/normal/yank.rs +++ b/crates/vim/src/normal/yank.rs @@ -2,7 +2,7 @@ use crate::{motion::Motion, object::Object, utils::copy_selections_content, Vim} use collections::HashMap; use gpui::MutableAppContext; -pub fn yank_motion(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { +pub fn yank_motion(vim: &mut Vim, motion: Motion, times: usize, cx: &mut MutableAppContext) { vim.update_active_editor(cx, |editor, cx| { editor.transact(cx, |editor, cx| { editor.set_clip_at_line_ends(false, cx); @@ -10,8 +10,8 @@ pub fn yank_motion(vim: &mut Vim, motion: Motion, cx: &mut MutableAppContext) { editor.change_selections(None, cx, |s| { s.move_with(|map, selection| { let original_position = (selection.head(), selection.goal); - motion.expand_selection(map, selection, true); original_positions.insert(selection.id, original_position); + motion.expand_selection(map, selection, times, true); }); }); copy_selections_content(editor, motion.linewise(), cx); diff --git a/crates/vim/src/object.rs b/crates/vim/src/object.rs index 5c03bda2d9..b55545682f 100644 --- a/crates/vim/src/object.rs +++ b/crates/vim/src/object.rs @@ -12,7 +12,6 @@ use crate::{motion, normal::normal_object, state::Mode, visual::visual_object, V pub enum Object { Word { ignore_punctuation: bool }, Sentence, - Paragraph, } #[derive(Clone, Deserialize, PartialEq)] @@ -22,7 +21,7 @@ struct Word { ignore_punctuation: bool, } -actions!(vim, [Sentence, Paragraph]); +actions!(vim, [Sentence]); impl_actions!(vim, [Word]); pub fn init(cx: &mut MutableAppContext) { @@ -32,7 +31,6 @@ pub fn init(cx: &mut MutableAppContext) { }, ); cx.add_action(|_: &mut Workspace, _: &Sentence, cx: _| object(Object::Sentence, cx)); - cx.add_action(|_: &mut Workspace, _: &Paragraph, cx: _| object(Object::Paragraph, cx)); } fn object(object: Object, cx: &mut MutableAppContext) { @@ -61,7 +59,6 @@ impl Object { } } Object::Sentence => sentence(map, relative_to, around), - _ => relative_to..relative_to, } } @@ -172,71 +169,19 @@ fn around_next_word( start..end } -// /// Return the range containing a sentence. -// fn sentence(map: &DisplaySnapshot, relative_to: DisplayPoint, around: bool) -> Range { -// let mut previous_end = relative_to; -// let mut start = None; - -// // Seek backwards to find a period or double newline. Record the last non whitespace character as the -// // possible start of the sentence. Alternatively if two newlines are found right after each other, return that. -// let mut rev_chars = map.reverse_chars_at(relative_to).peekable(); -// while let Some((char, point)) = rev_chars.next() { -// dbg!(char, point); -// if char == '.' { -// break; -// } - -// if char == '\n' -// && (rev_chars.peek().map(|(c, _)| c == &'\n').unwrap_or(false) || start.is_none()) -// { -// break; -// } - -// if !char.is_whitespace() { -// start = Some(point); -// } - -// previous_end = point; -// } - -// let mut end = relative_to; -// let mut chars = map.chars_at(relative_to).peekable(); -// while let Some((char, point)) = chars.next() { -// if !char.is_whitespace() { -// if start.is_none() { -// start = Some(point); -// } - -// // Set the end to the point after the current non whitespace character -// end = point; -// *end.column_mut() += char.len_utf8() as u32; -// } - -// if char == '.' { -// break; -// } - -// if char == '\n' { -// if start.is_none() { -// if let Some((_, next_point)) = chars.peek() { -// end = *next_point; -// } -// break; - -// if chars.peek().map(|(c, _)| c == &'\n').unwrap_or(false) { -// break; -// } -// } -// } - -// start.unwrap_or(previous_end)..end -// } - fn sentence(map: &DisplaySnapshot, relative_to: DisplayPoint, around: bool) -> Range { let mut start = None; let mut previous_end = relative_to; - for (char, point) in map.reverse_chars_at(relative_to) { + let mut chars = map.chars_at(relative_to).peekable(); + + // Search backwards for the previous sentence end or current sentence start. Include the character under relative_to + for (char, point) in chars + .peek() + .cloned() + .into_iter() + .chain(map.reverse_chars_at(relative_to)) + { if is_sentence_end(map, point) { break; } @@ -248,36 +193,26 @@ fn sentence(map: &DisplaySnapshot, relative_to: DisplayPoint, around: bool) -> R previous_end = point; } - // Handle case where cursor was before the sentence start - let mut chars = map.chars_at(relative_to).peekable(); - if start.is_none() { - if let Some((char, point)) = chars.peek() { - if is_possible_sentence_start(*char) { - start = Some(*point); - } - } - } - + // Search forward for the end of the current sentence or if we are between sentences, the start of the next one let mut end = relative_to; for (char, point) in chars { - if start.is_some() { - if !char.is_whitespace() { - end = point; - *end.column_mut() += char.len_utf8() as u32; - end = map.clip_point(end, Bias::Left); - } - - if is_sentence_end(map, point) { - break; - } - } else if is_possible_sentence_start(char) { + if start.is_none() && is_possible_sentence_start(char) { if around { start = Some(point); + continue; } else { end = point; break; } } + + end = point; + *end.column_mut() += char.len_utf8() as u32; + end = map.clip_point(end, Bias::Left); + + if is_sentence_end(map, end) { + break; + } } let mut range = start.unwrap_or(previous_end)..end; @@ -296,22 +231,21 @@ const SENTENCE_END_PUNCTUATION: &[char] = &['.', '!', '?']; const SENTENCE_END_FILLERS: &[char] = &[')', ']', '"', '\'']; const SENTENCE_END_WHITESPACE: &[char] = &[' ', '\t', '\n']; fn is_sentence_end(map: &DisplaySnapshot, point: DisplayPoint) -> bool { - let mut chars = map.chars_at(point).peekable(); - - if let Some((char, _)) = chars.next() { - if char == '\n' && chars.peek().map(|(c, _)| c == &'\n').unwrap_or(false) { + let mut next_chars = map.chars_at(point).peekable(); + if let Some((char, _)) = next_chars.next() { + // We are at a double newline. This position is a sentence end. + if char == '\n' && next_chars.peek().map(|(c, _)| c == &'\n').unwrap_or(false) { return true; } - if !SENTENCE_END_PUNCTUATION.contains(&char) { + // The next text is not a valid whitespace. This is not a sentence end + if !SENTENCE_END_WHITESPACE.contains(&char) { return false; } - } else { - return false; } - for (char, _) in chars { - if SENTENCE_END_WHITESPACE.contains(&char) { + for (char, _) in map.reverse_chars_at(point) { + if SENTENCE_END_PUNCTUATION.contains(&char) { return true; } @@ -320,7 +254,7 @@ fn is_sentence_end(map: &DisplaySnapshot, point: DisplayPoint) -> bool { } } - return true; + return false; } /// Expands the passed range to include whitespace on one side or the other in a line. Attempts to add the @@ -331,16 +265,26 @@ fn expand_to_include_whitespace( stop_at_newline: bool, ) -> Range { let mut whitespace_included = false; - for (char, point) in map.chars_at(range.end) { - range.end = point; + let mut chars = map.chars_at(range.end).peekable(); + while let Some((char, point)) = chars.next() { if char == '\n' && stop_at_newline { break; } if char.is_whitespace() { - whitespace_included = true; + // Set end to the next display_point or the character position after the current display_point + range.end = chars.peek().map(|(_, point)| *point).unwrap_or_else(|| { + let mut end = point; + *end.column_mut() += char.len_utf8() as u32; + map.clip_point(end, Bias::Left) + }); + + if char != '\n' { + whitespace_included = true; + } } else { + // Found non whitespace. Quit out. break; } } @@ -385,7 +329,7 @@ mod test { #[gpui::test] async fn test_change_in_word(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new("test_change_in_word", cx) + let mut cx = NeovimBackedTestContext::new(cx) .await .binding(["c", "i", "w"]); cx.assert_all(WORD_LOCATIONS).await; @@ -395,7 +339,7 @@ mod test { #[gpui::test] async fn test_delete_in_word(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new("test_delete_in_word", cx) + let mut cx = NeovimBackedTestContext::new(cx) .await .binding(["d", "i", "w"]); cx.assert_all(WORD_LOCATIONS).await; @@ -405,7 +349,7 @@ mod test { #[gpui::test] async fn test_change_around_word(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new("test_change_around_word", cx) + let mut cx = NeovimBackedTestContext::new(cx) .await .binding(["c", "a", "w"]); cx.assert_all(WORD_LOCATIONS).await; @@ -415,7 +359,7 @@ mod test { #[gpui::test] async fn test_delete_around_word(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new("test_delete_around_word", cx) + let mut cx = NeovimBackedTestContext::new(cx) .await .binding(["d", "a", "w"]); cx.assert_all(WORD_LOCATIONS).await; @@ -431,7 +375,8 @@ mod test { the lazy doˇgˇ.ˇ ˇThe quick ˇ brown fox jumps over "}, - // Double newlines are broken currently + // Position of the cursor after deletion between lines isn't quite right. + // Deletion in a sentence at the start of a line with whitespace is incorrect. // indoc! {" // The quick brown fox jumps. // Over the lazy dog @@ -441,12 +386,12 @@ mod test { // the lazy dog.ˇ // ˇ // "}, - r#"The quick brown.)]'" Brown fox jumps."#, + r#"ˇThe ˇquick brownˇ.)ˇ]ˇ'ˇ" Brown ˇfox jumpsˇ.ˇ "#, ]; #[gpui::test] async fn test_change_in_sentence(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new("test_change_in_sentence", cx) + let mut cx = NeovimBackedTestContext::new(cx) .await .binding(["c", "i", "s"]); for sentence_example in SENTENCE_EXAMPLES { @@ -456,31 +401,42 @@ mod test { #[gpui::test] async fn test_delete_in_sentence(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new("test_delete_in_sentence", cx) + let mut cx = NeovimBackedTestContext::new(cx) .await .binding(["d", "i", "s"]); + for sentence_example in SENTENCE_EXAMPLES { cx.assert_all(sentence_example).await; } } #[gpui::test] - #[ignore] // End cursor position is incorrect async fn test_change_around_sentence(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new("test_change_around_sentence", cx) + let mut cx = NeovimBackedTestContext::new(cx) .await .binding(["c", "a", "s"]); + + // Resulting position is slightly incorrect for unintuitive reasons. + cx.add_initial_state_exemption("The quick brown?ˇ Fox Jumps! Over the lazy."); + // Changing around the sentence at the end of the line doesn't remove whitespace.' + cx.add_initial_state_exemption("The quick brown.)]\'\" Brown fox jumps.ˇ "); + for sentence_example in SENTENCE_EXAMPLES { cx.assert_all(sentence_example).await; } } #[gpui::test] - #[ignore] // End cursor position is incorrect async fn test_delete_around_sentence(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new("test_delete_around_sentence", cx) + let mut cx = NeovimBackedTestContext::new(cx) .await .binding(["d", "a", "s"]); + + // Resulting position is slightly incorrect for unintuitive reasons. + cx.add_initial_state_exemption("The quick brown?ˇ Fox Jumps! Over the lazy."); + // Changing around the sentence at the end of the line doesn't remove whitespace.' + cx.add_initial_state_exemption("The quick brown.)]\'\" Brown fox jumps.ˇ "); + for sentence_example in SENTENCE_EXAMPLES { cx.assert_all(sentence_example).await; } diff --git a/crates/vim/src/state.rs b/crates/vim/src/state.rs index 29a51664ee..fef0da2099 100644 --- a/crates/vim/src/state.rs +++ b/crates/vim/src/state.rs @@ -22,6 +22,7 @@ pub enum Namespace { #[derive(Copy, Clone, Debug, PartialEq, Eq, Deserialize)] pub enum Operator { + Number(usize), Namespace(Namespace), Change, Delete, @@ -92,12 +93,14 @@ impl VimState { impl Operator { pub fn set_context(operator: Option<&Operator>, context: &mut Context) { let operator_context = match operator { + Some(Operator::Number(_)) => "n", Some(Operator::Namespace(Namespace::G)) => "g", Some(Operator::Object { around: false }) => "i", Some(Operator::Object { around: true }) => "a", Some(Operator::Change) => "c", Some(Operator::Delete) => "d", Some(Operator::Yank) => "y", + None => "none", } .to_owned(); diff --git a/crates/vim/src/test_contexts/neovim_backed_binding_test_context.rs b/crates/vim/src/test_contexts/neovim_backed_binding_test_context.rs index b732bfa19c..3f6b8f99f8 100644 --- a/crates/vim/src/test_contexts/neovim_backed_binding_test_context.rs +++ b/crates/vim/src/test_contexts/neovim_backed_binding_test_context.rs @@ -1,6 +1,6 @@ use std::ops::{Deref, DerefMut}; -use util::test::marked_text_offsets; +use crate::state::Mode; use super::NeovimBackedTestContext; @@ -24,20 +24,39 @@ impl<'a, const COUNT: usize> NeovimBackedBindingTestContext<'a, COUNT> { self.cx } - pub async fn assert(&mut self, initial_state: &str) { + pub fn binding( + self, + keystrokes: [&'static str; NEW_COUNT], + ) -> NeovimBackedBindingTestContext<'a, NEW_COUNT> { + self.consume().binding(keystrokes) + } + + pub async fn assert(&mut self, marked_positions: &str) { self.cx - .assert_binding_matches(self.keystrokes_under_test, initial_state) + .assert_binding_matches(self.keystrokes_under_test, marked_positions) .await } - pub async fn assert_all(&mut self, marked_positions: &str) { - let (unmarked_text, cursor_offsets) = marked_text_offsets(marked_positions); + pub fn assert_manual( + &mut self, + initial_state: &str, + mode_before: Mode, + state_after: &str, + mode_after: Mode, + ) { + self.cx.assert_binding( + self.keystrokes_under_test, + initial_state, + mode_before, + state_after, + mode_after, + ); + } - for cursor_offset in cursor_offsets.iter() { - let mut marked_text = unmarked_text.clone(); - marked_text.insert(*cursor_offset, 'ˇ'); - self.assert(&marked_text).await; - } + pub async fn assert_all(&mut self, marked_positions: &str) { + self.cx + .assert_binding_matches_all(self.keystrokes_under_test, marked_positions) + .await } } diff --git a/crates/vim/src/test_contexts/neovim_backed_test_context.rs b/crates/vim/src/test_contexts/neovim_backed_test_context.rs index 12654c7fb9..d537abb530 100644 --- a/crates/vim/src/test_contexts/neovim_backed_test_context.rs +++ b/crates/vim/src/test_contexts/neovim_backed_test_context.rs @@ -3,6 +3,7 @@ use std::{ path::PathBuf, }; +use collections::{HashMap, HashSet, VecDeque}; use editor::DisplayPoint; use gpui::keymap::Keystroke; @@ -14,11 +15,13 @@ use async_trait::async_trait; use nvim_rs::{ create::tokio::new_child_cmd, error::LoopError, Handler, Neovim, UiAttachOptions, Value, }; +use serde::{Deserialize, Serialize}; #[cfg(feature = "neovim")] use tokio::{ process::{Child, ChildStdin, Command}, task::JoinHandle, }; +use util::test::marked_text_offsets; use crate::state::Mode; @@ -26,60 +29,43 @@ use super::{NeovimBackedBindingTestContext, VimTestContext}; pub struct NeovimBackedTestContext<'a> { cx: VimTestContext<'a>, - test_case_id: &'static str, - data_counter: usize, - #[cfg(feature = "neovim")] - nvim: Neovim>, - #[cfg(feature = "neovim")] - _join_handle: JoinHandle>>, - #[cfg(feature = "neovim")] - _child: Child, + // Lookup for exempted assertions. Keyed by the insertion text, and with a value indicating which + // bindings are exempted. If None, all bindings are ignored for that insertion text. + exemptions: HashMap>>, + neovim: NeovimConnection, } impl<'a> NeovimBackedTestContext<'a> { - pub async fn new( - test_case_id: &'static str, - cx: &'a mut gpui::TestAppContext, - ) -> NeovimBackedTestContext<'a> { + pub async fn new(cx: &'a mut gpui::TestAppContext) -> NeovimBackedTestContext<'a> { + let function_name = cx.function_name.clone(); let cx = VimTestContext::new(cx, true).await; - - #[cfg(feature = "neovim")] - let handler = NvimHandler {}; - #[cfg(feature = "neovim")] - let (nvim, join_handle, child) = Compat::new(async { - let (nvim, join_handle, child) = new_child_cmd( - &mut Command::new("nvim").arg("--embed").arg("--clean"), - handler, - ) - .await - .expect("Could not connect to neovim process"); - - nvim.ui_attach(100, 100, &UiAttachOptions::default()) - .await - .expect("Could not attach to ui"); - - (nvim, join_handle, child) - }) - .await; - - let result = Self { + Self { cx, - test_case_id, - data_counter: 0, - #[cfg(feature = "neovim")] - nvim, - #[cfg(feature = "neovim")] - _join_handle: join_handle, - #[cfg(feature = "neovim")] - _child: child, - }; - - #[cfg(feature = "neovim")] - { - result.clear_test_data() + exemptions: Default::default(), + neovim: NeovimConnection::new(function_name).await, } + } - result + pub fn add_initial_state_exemption(&mut self, initial_state: &str) { + let initial_state = initial_state.to_string(); + // None represents all keybindings being exempted for that initial state + self.exemptions.insert(initial_state, None); + } + + pub fn add_keybinding_exemption( + &mut self, + keybinding: [&str; COUNT], + initial_state: &str, + ) { + let initial_state = initial_state.to_string(); + let exempted_keybindings = self + .exemptions + .entry(initial_state) + .or_insert(Some(Default::default())); + + if let Some(exempted_bindings) = exempted_keybindings.as_mut() { + exempted_bindings.insert(format!("{keybinding:?}")); + } } pub async fn simulate_shared_keystroke(&mut self, keystroke_text: &str) { @@ -101,7 +87,7 @@ impl<'a> NeovimBackedTestContext<'a> { let key = format!("{start}{shift}{ctrl}{alt}{cmd}{}{end}", keystroke.key); - self.nvim + self.neovim .input(&key) .await .expect("Could not input keystroke"); @@ -128,37 +114,32 @@ impl<'a> NeovimBackedTestContext<'a> { let cursor_point = self.editor(|editor, cx| editor.selections.newest::(cx)); let nvim_buffer = self - .nvim + .neovim .get_current_buf() .await .expect("Could not get neovim buffer"); let mut lines = self .buffer_text() - .lines() + .split('\n') .map(|line| line.to_string()) .collect::>(); - if lines.len() > 1 { - // Add final newline which is missing from buffer_text - lines.push("".to_string()); - } - nvim_buffer .set_lines(0, -1, false, lines) .await .expect("Could not set nvim buffer text"); - self.nvim + self.neovim .input("") .await .expect("Could not send escape to nvim"); - self.nvim + self.neovim .input("") .await .expect("Could not send escape to nvim"); let nvim_window = self - .nvim + .neovim .get_current_win() .await .expect("Could not get neovim window"); @@ -173,18 +154,161 @@ impl<'a> NeovimBackedTestContext<'a> { } pub async fn assert_state_matches(&mut self) { - assert_eq!(self.neovim_text().await, self.buffer_text()); + assert_eq!( + self.neovim.text().await, + self.buffer_text(), + "{}", + self.assertion_context.context() + ); let zed_head = self.update_editor(|editor, cx| editor.selections.newest_display(cx).head()); - assert_eq!(self.neovim_head().await, zed_head); + assert_eq!( + self.neovim.head().await, + zed_head, + "{}", + self.assertion_context.context() + ); - if let Some(neovim_mode) = self.neovim_mode().await { - assert_eq!(neovim_mode, self.mode()); + if let Some(neovim_mode) = self.neovim.mode().await { + assert_eq!( + neovim_mode, + self.mode(), + "{}", + self.assertion_context.context() + ); + } + } + + pub async fn assert_binding_matches( + &mut self, + keystrokes: [&str; COUNT], + initial_state: &str, + ) { + if let Some(possible_exempted_keystrokes) = self.exemptions.get(initial_state) { + match possible_exempted_keystrokes { + Some(exempted_keystrokes) => { + if exempted_keystrokes.contains(&format!("{keystrokes:?}")) { + // This keystroke was exempted for this insertion text + return; + } + } + None => { + // All keystrokes for this insertion text are exempted + return; + } + } + } + + let _keybinding_context_handle = + self.add_assertion_context(format!("Key Binding Under Test: {:?}", keystrokes)); + let _initial_state_context_handle = self.add_assertion_context(format!( + "Initial State: \"{}\"", + initial_state.escape_debug().to_string() + )); + self.set_shared_state(initial_state).await; + self.simulate_shared_keystrokes(keystrokes).await; + self.assert_state_matches().await; + } + + pub async fn assert_binding_matches_all( + &mut self, + keystrokes: [&str; COUNT], + marked_positions: &str, + ) { + let (unmarked_text, cursor_offsets) = marked_text_offsets(marked_positions); + + for cursor_offset in cursor_offsets.iter() { + let mut marked_text = unmarked_text.clone(); + marked_text.insert(*cursor_offset, 'ˇ'); + + self.assert_binding_matches(keystrokes, &marked_text).await; + } + } + + pub fn binding( + self, + keystrokes: [&'static str; COUNT], + ) -> NeovimBackedBindingTestContext<'a, COUNT> { + NeovimBackedBindingTestContext::new(keystrokes, self) + } +} + +impl<'a> Deref for NeovimBackedTestContext<'a> { + type Target = VimTestContext<'a>; + + fn deref(&self) -> &Self::Target { + &self.cx + } +} + +impl<'a> DerefMut for NeovimBackedTestContext<'a> { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.cx + } +} + +#[derive(Serialize, Deserialize)] +pub enum NeovimData { + Text(String), + Head { row: u32, column: u32 }, + Mode(Option), +} + +struct NeovimConnection { + data: VecDeque, + #[cfg(feature = "neovim")] + test_case_id: String, + #[cfg(feature = "neovim")] + nvim: Neovim>, + #[cfg(feature = "neovim")] + _join_handle: JoinHandle>>, + #[cfg(feature = "neovim")] + _child: Child, +} + +impl NeovimConnection { + async fn new(test_case_id: String) -> Self { + #[cfg(feature = "neovim")] + let handler = NvimHandler {}; + #[cfg(feature = "neovim")] + let (nvim, join_handle, child) = Compat::new(async { + let (nvim, join_handle, child) = new_child_cmd( + &mut Command::new("nvim").arg("--embed").arg("--clean"), + handler, + ) + .await + .expect("Could not connect to neovim process"); + + nvim.ui_attach(100, 100, &UiAttachOptions::default()) + .await + .expect("Could not attach to ui"); + + nvim.set_option("smartindent", nvim_rs::Value::Boolean(true)) + .await + .expect("Could not set smartindent on startup"); + + (nvim, join_handle, child) + }) + .await; + + Self { + #[cfg(feature = "neovim")] + data: Default::default(), + #[cfg(not(feature = "neovim"))] + data: Self::read_test_data(&test_case_id), + #[cfg(feature = "neovim")] + test_case_id, + #[cfg(feature = "neovim")] + nvim, + #[cfg(feature = "neovim")] + _join_handle: join_handle, + #[cfg(feature = "neovim")] + _child: child, } } #[cfg(feature = "neovim")] - pub async fn neovim_text(&mut self) -> String { + pub async fn text(&mut self) -> String { let nvim_buffer = self .nvim .get_current_buf() @@ -196,17 +320,22 @@ impl<'a> NeovimBackedTestContext<'a> { .expect("Could not get buffer text") .join("\n"); - self.write_test_data(text.clone(), "text"); + self.data.push_back(NeovimData::Text(text.clone())); + text } #[cfg(not(feature = "neovim"))] - pub async fn neovim_text(&mut self) -> String { - self.read_test_data("text") + pub async fn text(&mut self) -> String { + if let Some(NeovimData::Text(text)) = self.data.pop_front() { + text + } else { + panic!("Invalid test data. Is test deterministic? Try running with '--features neovim' to regenerate"); + } } #[cfg(feature = "neovim")] - pub async fn neovim_head(&mut self) -> DisplayPoint { + pub async fn head(&mut self) -> DisplayPoint { let nvim_row: u32 = self .nvim .command_output("echo line('.')") @@ -224,24 +353,25 @@ impl<'a> NeovimBackedTestContext<'a> { .unwrap() - 1; // Neovim columns start at 1 - let serialized = format!("{},{}", nvim_row.to_string(), nvim_column.to_string()); - self.write_test_data(serialized, "head"); + self.data.push_back(NeovimData::Head { + row: nvim_row, + column: nvim_column, + }); DisplayPoint::new(nvim_row, nvim_column) } #[cfg(not(feature = "neovim"))] - pub async fn neovim_head(&mut self) -> DisplayPoint { - let serialized = self.read_test_data("head"); - let mut components = serialized.split(','); - let nvim_row = components.next().unwrap().parse::().unwrap(); - let nvim_column = components.next().unwrap().parse::().unwrap(); - - DisplayPoint::new(nvim_row, nvim_column) + pub async fn head(&mut self) -> DisplayPoint { + if let Some(NeovimData::Head { row, column }) = self.data.pop_front() { + DisplayPoint::new(row, column) + } else { + panic!("Invalid test data. Is test deterministic? Try running with '--features neovim' to regenerate"); + } } #[cfg(feature = "neovim")] - pub async fn neovim_mode(&mut self) -> Option { + pub async fn mode(&mut self) -> Option { let nvim_mode_text = self .nvim .get_mode() @@ -265,74 +395,67 @@ impl<'a> NeovimBackedTestContext<'a> { _ => None, }; - let serialized = serde_json::to_string(&mode).expect("Could not serialize mode"); - - self.write_test_data(serialized, "mode"); + self.data.push_back(NeovimData::Mode(mode.clone())); mode } #[cfg(not(feature = "neovim"))] - pub async fn neovim_mode(&mut self) -> Option { - let serialized = self.read_test_data("mode"); - serde_json::from_str(&serialized).expect("Could not deserialize test data") + pub async fn mode(&mut self) -> Option { + if let Some(NeovimData::Mode(mode)) = self.data.pop_front() { + mode + } else { + panic!("Invalid test data. Is test deterministic? Try running with '--features neovim' to regenerate"); + } } - fn test_data_directory(&self) -> PathBuf { + fn test_data_path(test_case_id: &str) -> PathBuf { let mut data_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); data_path.push("test_data"); - data_path.push(self.test_case_id); - data_path - } - - fn next_data_path(&mut self, kind: &str) -> PathBuf { - let mut data_path = self.test_data_directory(); - data_path.push(format!("{}{}.txt", self.data_counter, kind)); - self.data_counter += 1; + data_path.push(format!("{}.json", test_case_id)); data_path } #[cfg(not(feature = "neovim"))] - fn read_test_data(&mut self, kind: &str) -> String { - let path = self.next_data_path(kind); - std::fs::read_to_string(path).expect( + fn read_test_data(test_case_id: &str) -> VecDeque { + let path = Self::test_data_path(test_case_id); + let json = std::fs::read_to_string(path).expect( "Could not read test data. Is it generated? Try running test with '--features neovim'", - ) - } + ); - #[cfg(feature = "neovim")] - fn write_test_data(&mut self, data: String, kind: &str) { - let path = self.next_data_path(kind); - std::fs::create_dir_all(path.parent().unwrap()) - .expect("Could not create test data directory"); - std::fs::write(path, data).expect("Could not write out test data"); - } - - #[cfg(feature = "neovim")] - fn clear_test_data(&self) { - // If the path does not exist, no biggy, we will create it - std::fs::remove_dir_all(self.test_data_directory()).ok(); - } - - pub async fn assert_binding_matches( - &mut self, - keystrokes: [&str; COUNT], - initial_state: &str, - ) { - dbg!(keystrokes, initial_state); - self.set_shared_state(initial_state).await; - self.simulate_shared_keystrokes(keystrokes).await; - self.assert_state_matches().await; - } - - pub fn binding( - self, - keystrokes: [&'static str; COUNT], - ) -> NeovimBackedBindingTestContext<'a, COUNT> { - NeovimBackedBindingTestContext::new(keystrokes, self) + serde_json::from_str(&json) + .expect("Test data corrupted. Try regenerating it with '--features neovim'") } } +#[cfg(feature = "neovim")] +impl Deref for NeovimConnection { + type Target = Neovim>; + + fn deref(&self) -> &Self::Target { + &self.nvim + } +} + +#[cfg(feature = "neovim")] +impl DerefMut for NeovimConnection { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.nvim + } +} + +#[cfg(feature = "neovim")] +impl Drop for NeovimConnection { + fn drop(&mut self) { + let path = Self::test_data_path(&self.test_case_id); + std::fs::create_dir_all(path.parent().unwrap()) + .expect("Could not create test data directory"); + let json = serde_json::to_string(&self.data).expect("Could not serialize test data"); + std::fs::write(path, json).expect("Could not write out test data"); + } +} + +#[cfg(feature = "neovim")] #[derive(Clone)] struct NvimHandler {} @@ -359,16 +482,17 @@ impl Handler for NvimHandler { } } -impl<'a> Deref for NeovimBackedTestContext<'a> { - type Target = VimTestContext<'a>; +#[cfg(test)] +mod test { + use gpui::TestAppContext; - fn deref(&self) -> &Self::Target { - &self.cx - } -} - -impl<'a> DerefMut for NeovimBackedTestContext<'a> { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.cx + use crate::test_contexts::NeovimBackedTestContext; + + #[gpui::test] + async fn neovim_backed_test_context_works(cx: &mut TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + cx.assert_state_matches().await; + cx.set_shared_state("This is a tesˇt").await; + cx.assert_state_matches().await; } } diff --git a/crates/vim/src/test_contexts/vim_test_context.rs b/crates/vim/src/test_contexts/vim_test_context.rs index 229b5e0a8e..711e9d610c 100644 --- a/crates/vim/src/test_contexts/vim_test_context.rs +++ b/crates/vim/src/test_contexts/vim_test_context.rs @@ -1,6 +1,6 @@ use std::ops::{Deref, DerefMut}; -use editor::test::EditorTestContext; +use editor::test::{AssertionContextManager, EditorTestContext}; use gpui::{json::json, AppContext, ViewHandle}; use project::Project; use search::{BufferSearchBar, ProjectSearchBar}; @@ -82,6 +82,7 @@ impl<'a> VimTestContext<'a> { cx, window_id, editor, + assertion_context: AssertionContextManager::new(), }, workspace, } diff --git a/crates/vim/src/vim.rs b/crates/vim/src/vim.rs index 234eb0361b..5c9f23b41f 100644 --- a/crates/vim/src/vim.rs +++ b/crates/vim/src/vim.rs @@ -26,7 +26,10 @@ pub struct SwitchMode(pub Mode); #[derive(Clone, Deserialize, PartialEq)] pub struct PushOperator(pub Operator); -impl_actions!(vim, [SwitchMode, PushOperator]); +#[derive(Clone, Deserialize, PartialEq)] +struct Number(u8); + +impl_actions!(vim, [Number, SwitchMode, PushOperator]); pub fn init(cx: &mut MutableAppContext) { editor_events::init(cx); @@ -45,6 +48,9 @@ pub fn init(cx: &mut MutableAppContext) { Vim::update(cx, |vim, cx| vim.push_operator(operator, cx)) }, ); + cx.add_action(|_: &mut Workspace, n: &Number, cx: _| { + Vim::update(cx, |vim, cx| vim.push_number(n, cx)); + }); // Editor Actions cx.add_action(|_: &mut Editor, _: &Cancel, cx| { @@ -145,6 +151,15 @@ impl Vim { self.sync_vim_settings(cx); } + fn push_number(&mut self, Number(number): &Number, cx: &mut MutableAppContext) { + if let Some(Operator::Number(current_number)) = self.active_operator() { + self.pop_operator(cx); + self.push_operator(Operator::Number(current_number * 10 + *number as usize), cx); + } else { + self.push_operator(Operator::Number(*number as usize), cx); + } + } + fn pop_operator(&mut self, cx: &mut MutableAppContext) -> Operator { let popped_operator = self.state.operator_stack.pop() .expect("Operator popped when no operator was on the stack. This likely means there is an invalid keymap config"); @@ -152,6 +167,15 @@ impl Vim { popped_operator } + fn pop_number_operator(&mut self, cx: &mut MutableAppContext) -> usize { + let mut times = 1; + if let Some(Operator::Number(number)) = self.active_operator() { + times = number; + self.pop_operator(cx); + } + times + } + fn clear_operator(&mut self, cx: &mut MutableAppContext) { self.state.operator_stack.clear(); self.sync_vim_settings(cx); @@ -227,7 +251,7 @@ mod test { #[gpui::test] async fn test_neovim(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new("test_neovim", cx).await; + let mut cx = NeovimBackedTestContext::new(cx).await; cx.simulate_shared_keystroke("i").await; cx.simulate_shared_keystrokes([ diff --git a/crates/vim/src/visual.rs b/crates/vim/src/visual.rs index bbd6c8cfd9..c4c1ddf9a6 100644 --- a/crates/vim/src/visual.rs +++ b/crates/vim/src/visual.rs @@ -17,14 +17,18 @@ pub fn init(cx: &mut MutableAppContext) { cx.add_action(paste); } -pub fn visual_motion(motion: Motion, cx: &mut MutableAppContext) { +pub fn visual_motion(motion: Motion, times: usize, cx: &mut MutableAppContext) { Vim::update(cx, |vim, cx| { vim.update_active_editor(cx, |editor, cx| { editor.change_selections(Some(Autoscroll::Fit), cx, |s| { s.move_with(|map, selection| { - let (new_head, goal) = motion.move_point(map, selection.head(), selection.goal); let was_reversed = selection.reversed; - selection.set_head(new_head, goal); + + for _ in 0..times { + let (new_head, goal) = + motion.move_point(map, selection.head(), selection.goal); + selection.set_head(new_head, goal); + } if was_reversed && !selection.reversed { // Head was at the start of the selection, and now is at the end. We need to move the start diff --git a/crates/vim/test_data/neovim_backed_test_context_works.json b/crates/vim/test_data/neovim_backed_test_context_works.json new file mode 100644 index 0000000000..4b0312565e --- /dev/null +++ b/crates/vim/test_data/neovim_backed_test_context_works.json @@ -0,0 +1 @@ +[{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"This is a test"},{"Head":{"row":0,"column":13}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_a.json b/crates/vim/test_data/test_a.json new file mode 100644 index 0000000000..fc9d170879 --- /dev/null +++ b/crates/vim/test_data/test_a.json @@ -0,0 +1 @@ +[{"Text":"The quick"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quick"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_backspace.json b/crates/vim/test_data/test_backspace.json new file mode 100644 index 0000000000..3659773665 --- /dev/null +++ b/crates/vim/test_data/test_backspace.json @@ -0,0 +1 @@ +[{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":4}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence.json b/crates/vim/test_data/test_change_around_sentence.json new file mode 100644 index 0000000000..9e01890d9f --- /dev/null +++ b/crates/vim/test_data/test_change_around_sentence.json @@ -0,0 +1 @@ +[{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":27}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":27}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":27}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":27}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":13}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":13}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":13}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/0text.txt b/crates/vim/test_data/test_change_around_sentence/0text.txt deleted file mode 100644 index d2b92e8000..0000000000 --- a/crates/vim/test_data/test_change_around_sentence/0text.txt +++ /dev/null @@ -1 +0,0 @@ -Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/10head.txt b/crates/vim/test_data/test_change_around_sentence/10head.txt deleted file mode 100644 index 5df80e23c6..0000000000 --- a/crates/vim/test_data/test_change_around_sentence/10head.txt +++ /dev/null @@ -1 +0,0 @@ -0,16 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/1head.txt b/crates/vim/test_data/test_change_around_sentence/1head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_change_around_sentence/1head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/2mode.txt b/crates/vim/test_data/test_change_around_sentence/2mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_sentence/2mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/3text.txt b/crates/vim/test_data/test_change_around_sentence/3text.txt deleted file mode 100644 index d2b92e8000..0000000000 --- a/crates/vim/test_data/test_change_around_sentence/3text.txt +++ /dev/null @@ -1 +0,0 @@ -Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/4head.txt b/crates/vim/test_data/test_change_around_sentence/4head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_change_around_sentence/4head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/5mode.txt b/crates/vim/test_data/test_change_around_sentence/5mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_sentence/5mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/6text.txt b/crates/vim/test_data/test_change_around_sentence/6text.txt deleted file mode 100644 index d2b92e8000..0000000000 --- a/crates/vim/test_data/test_change_around_sentence/6text.txt +++ /dev/null @@ -1 +0,0 @@ -Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/7head.txt b/crates/vim/test_data/test_change_around_sentence/7head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_change_around_sentence/7head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/8mode.txt b/crates/vim/test_data/test_change_around_sentence/8mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_sentence/8mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence/9text.txt b/crates/vim/test_data/test_change_around_sentence/9text.txt deleted file mode 100644 index 5e3a12964d..0000000000 --- a/crates/vim/test_data/test_change_around_sentence/9text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word.json b/crates/vim/test_data/test_change_around_word.json new file mode 100644 index 0000000000..c8724a6810 --- /dev/null +++ b/crates/vim/test_data/test_change_around_word.json @@ -0,0 +1 @@ +[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":3}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":6}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Head":{"row":10,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n"},{"Head":{"row":11,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":2}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Head":{"row":10,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n"},{"Head":{"row":11,"column":0}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/0text.txt b/crates/vim/test_data/test_change_around_word/0text.txt deleted file mode 100644 index 366beed733..0000000000 --- a/crates/vim/test_data/test_change_around_word/0text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/100head.txt b/crates/vim/test_data/test_change_around_word/100head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_change_around_word/100head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/101mode.txt b/crates/vim/test_data/test_change_around_word/101mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/101mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/102text.txt b/crates/vim/test_data/test_change_around_word/102text.txt deleted file mode 100644 index c8a5876179..0000000000 --- a/crates/vim/test_data/test_change_around_word/102text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/103head.txt b/crates/vim/test_data/test_change_around_word/103head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_change_around_word/103head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/104mode.txt b/crates/vim/test_data/test_change_around_word/104mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/104mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/105text.txt b/crates/vim/test_data/test_change_around_word/105text.txt deleted file mode 100644 index c8a5876179..0000000000 --- a/crates/vim/test_data/test_change_around_word/105text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/106head.txt b/crates/vim/test_data/test_change_around_word/106head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_change_around_word/106head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/107mode.txt b/crates/vim/test_data/test_change_around_word/107mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/107mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/108text.txt b/crates/vim/test_data/test_change_around_word/108text.txt deleted file mode 100644 index c8a5876179..0000000000 --- a/crates/vim/test_data/test_change_around_word/108text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/109head.txt b/crates/vim/test_data/test_change_around_word/109head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_change_around_word/109head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/10head.txt b/crates/vim/test_data/test_change_around_word/10head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_change_around_word/10head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/110mode.txt b/crates/vim/test_data/test_change_around_word/110mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/110mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/111text.txt b/crates/vim/test_data/test_change_around_word/111text.txt deleted file mode 100644 index f05cdd88c1..0000000000 --- a/crates/vim/test_data/test_change_around_word/111text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/112head.txt b/crates/vim/test_data/test_change_around_word/112head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_change_around_word/112head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/113mode.txt b/crates/vim/test_data/test_change_around_word/113mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/113mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/114text.txt b/crates/vim/test_data/test_change_around_word/114text.txt deleted file mode 100644 index f05cdd88c1..0000000000 --- a/crates/vim/test_data/test_change_around_word/114text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/115head.txt b/crates/vim/test_data/test_change_around_word/115head.txt deleted file mode 100644 index c5a50698dd..0000000000 --- a/crates/vim/test_data/test_change_around_word/115head.txt +++ /dev/null @@ -1 +0,0 @@ -6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/116mode.txt b/crates/vim/test_data/test_change_around_word/116mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/116mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/117text.txt b/crates/vim/test_data/test_change_around_word/117text.txt deleted file mode 100644 index 0e9094161a..0000000000 --- a/crates/vim/test_data/test_change_around_word/117text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/118head.txt b/crates/vim/test_data/test_change_around_word/118head.txt deleted file mode 100644 index d933eb81fa..0000000000 --- a/crates/vim/test_data/test_change_around_word/118head.txt +++ /dev/null @@ -1 +0,0 @@ -6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/119mode.txt b/crates/vim/test_data/test_change_around_word/119mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/119mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/11mode.txt b/crates/vim/test_data/test_change_around_word/11mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/11mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/120text.txt b/crates/vim/test_data/test_change_around_word/120text.txt deleted file mode 100644 index fa73eb37b8..0000000000 --- a/crates/vim/test_data/test_change_around_word/120text.txt +++ /dev/null @@ -1,10 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/121head.txt b/crates/vim/test_data/test_change_around_word/121head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_change_around_word/121head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/122mode.txt b/crates/vim/test_data/test_change_around_word/122mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/122mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/123text.txt b/crates/vim/test_data/test_change_around_word/123text.txt deleted file mode 100644 index 4fe33b47eb..0000000000 --- a/crates/vim/test_data/test_change_around_word/123text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/124head.txt b/crates/vim/test_data/test_change_around_word/124head.txt deleted file mode 100644 index ded56a5926..0000000000 --- a/crates/vim/test_data/test_change_around_word/124head.txt +++ /dev/null @@ -1 +0,0 @@ -8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/125mode.txt b/crates/vim/test_data/test_change_around_word/125mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/125mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/126text.txt b/crates/vim/test_data/test_change_around_word/126text.txt deleted file mode 100644 index 35dd5816fc..0000000000 --- a/crates/vim/test_data/test_change_around_word/126text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/127head.txt b/crates/vim/test_data/test_change_around_word/127head.txt deleted file mode 100644 index 8e69e0ad79..0000000000 --- a/crates/vim/test_data/test_change_around_word/127head.txt +++ /dev/null @@ -1 +0,0 @@ -9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/128mode.txt b/crates/vim/test_data/test_change_around_word/128mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/128mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/129text.txt b/crates/vim/test_data/test_change_around_word/129text.txt deleted file mode 100644 index 1bac4587a7..0000000000 --- a/crates/vim/test_data/test_change_around_word/129text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/12text.txt b/crates/vim/test_data/test_change_around_word/12text.txt deleted file mode 100644 index 2feb66cfb9..0000000000 --- a/crates/vim/test_data/test_change_around_word/12text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/130head.txt b/crates/vim/test_data/test_change_around_word/130head.txt deleted file mode 100644 index edb3544f9a..0000000000 --- a/crates/vim/test_data/test_change_around_word/130head.txt +++ /dev/null @@ -1 +0,0 @@ -9,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/131mode.txt b/crates/vim/test_data/test_change_around_word/131mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/131mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/132text.txt b/crates/vim/test_data/test_change_around_word/132text.txt deleted file mode 100644 index 912316a9f7..0000000000 --- a/crates/vim/test_data/test_change_around_word/132text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_change_around_word/133head.txt b/crates/vim/test_data/test_change_around_word/133head.txt deleted file mode 100644 index 00f5ae6cbb..0000000000 --- a/crates/vim/test_data/test_change_around_word/133head.txt +++ /dev/null @@ -1 +0,0 @@ -10,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/134mode.txt b/crates/vim/test_data/test_change_around_word/134mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/134mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/135text.txt b/crates/vim/test_data/test_change_around_word/135text.txt deleted file mode 100644 index 1563710058..0000000000 --- a/crates/vim/test_data/test_change_around_word/135text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_change_around_word/136head.txt b/crates/vim/test_data/test_change_around_word/136head.txt deleted file mode 100644 index 94dbddc699..0000000000 --- a/crates/vim/test_data/test_change_around_word/136head.txt +++ /dev/null @@ -1 +0,0 @@ -11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/137mode.txt b/crates/vim/test_data/test_change_around_word/137mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/137mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/13head.txt b/crates/vim/test_data/test_change_around_word/13head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_change_around_word/13head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/14mode.txt b/crates/vim/test_data/test_change_around_word/14mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/14mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/15text.txt b/crates/vim/test_data/test_change_around_word/15text.txt deleted file mode 100644 index 262feeae96..0000000000 --- a/crates/vim/test_data/test_change_around_word/15text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/16head.txt b/crates/vim/test_data/test_change_around_word/16head.txt deleted file mode 100644 index bd712da63a..0000000000 --- a/crates/vim/test_data/test_change_around_word/16head.txt +++ /dev/null @@ -1 +0,0 @@ -1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/17mode.txt b/crates/vim/test_data/test_change_around_word/17mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/17mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/18text.txt b/crates/vim/test_data/test_change_around_word/18text.txt deleted file mode 100644 index ba0aea82d9..0000000000 --- a/crates/vim/test_data/test_change_around_word/18text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/19head.txt b/crates/vim/test_data/test_change_around_word/19head.txt deleted file mode 100644 index 28ce8bcc5c..0000000000 --- a/crates/vim/test_data/test_change_around_word/19head.txt +++ /dev/null @@ -1 +0,0 @@ -2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/1head.txt b/crates/vim/test_data/test_change_around_word/1head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_change_around_word/1head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/20mode.txt b/crates/vim/test_data/test_change_around_word/20mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/20mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/21text.txt b/crates/vim/test_data/test_change_around_word/21text.txt deleted file mode 100644 index 783e049f86..0000000000 --- a/crates/vim/test_data/test_change_around_word/21text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/22head.txt b/crates/vim/test_data/test_change_around_word/22head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_change_around_word/22head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/23mode.txt b/crates/vim/test_data/test_change_around_word/23mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/23mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/24text.txt b/crates/vim/test_data/test_change_around_word/24text.txt deleted file mode 100644 index 783e049f86..0000000000 --- a/crates/vim/test_data/test_change_around_word/24text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/25head.txt b/crates/vim/test_data/test_change_around_word/25head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_change_around_word/25head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/26mode.txt b/crates/vim/test_data/test_change_around_word/26mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/26mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/27text.txt b/crates/vim/test_data/test_change_around_word/27text.txt deleted file mode 100644 index 252419d291..0000000000 --- a/crates/vim/test_data/test_change_around_word/27text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - --quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/28head.txt b/crates/vim/test_data/test_change_around_word/28head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_change_around_word/28head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/29mode.txt b/crates/vim/test_data/test_change_around_word/29mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/29mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/2mode.txt b/crates/vim/test_data/test_change_around_word/2mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/2mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/30text.txt b/crates/vim/test_data/test_change_around_word/30text.txt deleted file mode 100644 index 609747299b..0000000000 --- a/crates/vim/test_data/test_change_around_word/30text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - --quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/31head.txt b/crates/vim/test_data/test_change_around_word/31head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_change_around_word/31head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/32mode.txt b/crates/vim/test_data/test_change_around_word/32mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/32mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/33text.txt b/crates/vim/test_data/test_change_around_word/33text.txt deleted file mode 100644 index 12ede0f513..0000000000 --- a/crates/vim/test_data/test_change_around_word/33text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -Thequick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/34head.txt b/crates/vim/test_data/test_change_around_word/34head.txt deleted file mode 100644 index c20df71d5e..0000000000 --- a/crates/vim/test_data/test_change_around_word/34head.txt +++ /dev/null @@ -1 +0,0 @@ -6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/35mode.txt b/crates/vim/test_data/test_change_around_word/35mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/35mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/36text.txt b/crates/vim/test_data/test_change_around_word/36text.txt deleted file mode 100644 index 4a6d943982..0000000000 --- a/crates/vim/test_data/test_change_around_word/36text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/37head.txt b/crates/vim/test_data/test_change_around_word/37head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_change_around_word/37head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/38mode.txt b/crates/vim/test_data/test_change_around_word/38mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/38mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/39text.txt b/crates/vim/test_data/test_change_around_word/39text.txt deleted file mode 100644 index 4a6d943982..0000000000 --- a/crates/vim/test_data/test_change_around_word/39text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/3text.txt b/crates/vim/test_data/test_change_around_word/3text.txt deleted file mode 100644 index 366beed733..0000000000 --- a/crates/vim/test_data/test_change_around_word/3text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/40head.txt b/crates/vim/test_data/test_change_around_word/40head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_change_around_word/40head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/41mode.txt b/crates/vim/test_data/test_change_around_word/41mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/41mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/42text.txt b/crates/vim/test_data/test_change_around_word/42text.txt deleted file mode 100644 index f05cdd88c1..0000000000 --- a/crates/vim/test_data/test_change_around_word/42text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/43head.txt b/crates/vim/test_data/test_change_around_word/43head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_change_around_word/43head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/44mode.txt b/crates/vim/test_data/test_change_around_word/44mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/44mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/45text.txt b/crates/vim/test_data/test_change_around_word/45text.txt deleted file mode 100644 index f05cdd88c1..0000000000 --- a/crates/vim/test_data/test_change_around_word/45text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/46head.txt b/crates/vim/test_data/test_change_around_word/46head.txt deleted file mode 100644 index c5a50698dd..0000000000 --- a/crates/vim/test_data/test_change_around_word/46head.txt +++ /dev/null @@ -1 +0,0 @@ -6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/47mode.txt b/crates/vim/test_data/test_change_around_word/47mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/47mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/48text.txt b/crates/vim/test_data/test_change_around_word/48text.txt deleted file mode 100644 index 13b7d1cb51..0000000000 --- a/crates/vim/test_data/test_change_around_word/48text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/49head.txt b/crates/vim/test_data/test_change_around_word/49head.txt deleted file mode 100644 index d933eb81fa..0000000000 --- a/crates/vim/test_data/test_change_around_word/49head.txt +++ /dev/null @@ -1 +0,0 @@ -6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/4head.txt b/crates/vim/test_data/test_change_around_word/4head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_change_around_word/4head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/50mode.txt b/crates/vim/test_data/test_change_around_word/50mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/50mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/51text.txt b/crates/vim/test_data/test_change_around_word/51text.txt deleted file mode 100644 index 3976ef9c85..0000000000 --- a/crates/vim/test_data/test_change_around_word/51text.txt +++ /dev/null @@ -1,10 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown --jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/52head.txt b/crates/vim/test_data/test_change_around_word/52head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_change_around_word/52head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/53mode.txt b/crates/vim/test_data/test_change_around_word/53mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/53mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/54text.txt b/crates/vim/test_data/test_change_around_word/54text.txt deleted file mode 100644 index b5ca31babe..0000000000 --- a/crates/vim/test_data/test_change_around_word/54text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - --jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/55head.txt b/crates/vim/test_data/test_change_around_word/55head.txt deleted file mode 100644 index ded56a5926..0000000000 --- a/crates/vim/test_data/test_change_around_word/55head.txt +++ /dev/null @@ -1 +0,0 @@ -8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/56mode.txt b/crates/vim/test_data/test_change_around_word/56mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/56mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/57text.txt b/crates/vim/test_data/test_change_around_word/57text.txt deleted file mode 100644 index 0eaface506..0000000000 --- a/crates/vim/test_data/test_change_around_word/57text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - --jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/58head.txt b/crates/vim/test_data/test_change_around_word/58head.txt deleted file mode 100644 index 8e69e0ad79..0000000000 --- a/crates/vim/test_data/test_change_around_word/58head.txt +++ /dev/null @@ -1 +0,0 @@ -9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/59mode.txt b/crates/vim/test_data/test_change_around_word/59mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/59mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/5mode.txt b/crates/vim/test_data/test_change_around_word/5mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/5mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/60text.txt b/crates/vim/test_data/test_change_around_word/60text.txt deleted file mode 100644 index d8b9b05b79..0000000000 --- a/crates/vim/test_data/test_change_around_word/60text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/61head.txt b/crates/vim/test_data/test_change_around_word/61head.txt deleted file mode 100644 index e0460d1bc5..0000000000 --- a/crates/vim/test_data/test_change_around_word/61head.txt +++ /dev/null @@ -1 +0,0 @@ -9,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/62mode.txt b/crates/vim/test_data/test_change_around_word/62mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/62mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/63text.txt b/crates/vim/test_data/test_change_around_word/63text.txt deleted file mode 100644 index 912316a9f7..0000000000 --- a/crates/vim/test_data/test_change_around_word/63text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_change_around_word/64head.txt b/crates/vim/test_data/test_change_around_word/64head.txt deleted file mode 100644 index 00f5ae6cbb..0000000000 --- a/crates/vim/test_data/test_change_around_word/64head.txt +++ /dev/null @@ -1 +0,0 @@ -10,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/65mode.txt b/crates/vim/test_data/test_change_around_word/65mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/65mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/66text.txt b/crates/vim/test_data/test_change_around_word/66text.txt deleted file mode 100644 index 1563710058..0000000000 --- a/crates/vim/test_data/test_change_around_word/66text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_change_around_word/67head.txt b/crates/vim/test_data/test_change_around_word/67head.txt deleted file mode 100644 index 94dbddc699..0000000000 --- a/crates/vim/test_data/test_change_around_word/67head.txt +++ /dev/null @@ -1 +0,0 @@ -11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/68mode.txt b/crates/vim/test_data/test_change_around_word/68mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/68mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/69text.txt b/crates/vim/test_data/test_change_around_word/69text.txt deleted file mode 100644 index 366beed733..0000000000 --- a/crates/vim/test_data/test_change_around_word/69text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/6text.txt b/crates/vim/test_data/test_change_around_word/6text.txt deleted file mode 100644 index 3678c219a3..0000000000 --- a/crates/vim/test_data/test_change_around_word/6text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/70head.txt b/crates/vim/test_data/test_change_around_word/70head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_change_around_word/70head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/71mode.txt b/crates/vim/test_data/test_change_around_word/71mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/71mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/72text.txt b/crates/vim/test_data/test_change_around_word/72text.txt deleted file mode 100644 index 366beed733..0000000000 --- a/crates/vim/test_data/test_change_around_word/72text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/73head.txt b/crates/vim/test_data/test_change_around_word/73head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_change_around_word/73head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/74mode.txt b/crates/vim/test_data/test_change_around_word/74mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/74mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/75text.txt b/crates/vim/test_data/test_change_around_word/75text.txt deleted file mode 100644 index 3678c219a3..0000000000 --- a/crates/vim/test_data/test_change_around_word/75text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/76head.txt b/crates/vim/test_data/test_change_around_word/76head.txt deleted file mode 100644 index 5f7b20f0d9..0000000000 --- a/crates/vim/test_data/test_change_around_word/76head.txt +++ /dev/null @@ -1 +0,0 @@ -0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/77mode.txt b/crates/vim/test_data/test_change_around_word/77mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/77mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/78text.txt b/crates/vim/test_data/test_change_around_word/78text.txt deleted file mode 100644 index 2feb66cfb9..0000000000 --- a/crates/vim/test_data/test_change_around_word/78text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/79head.txt b/crates/vim/test_data/test_change_around_word/79head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_change_around_word/79head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/7head.txt b/crates/vim/test_data/test_change_around_word/7head.txt deleted file mode 100644 index 5f7b20f0d9..0000000000 --- a/crates/vim/test_data/test_change_around_word/7head.txt +++ /dev/null @@ -1 +0,0 @@ -0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/80mode.txt b/crates/vim/test_data/test_change_around_word/80mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/80mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/81text.txt b/crates/vim/test_data/test_change_around_word/81text.txt deleted file mode 100644 index 2feb66cfb9..0000000000 --- a/crates/vim/test_data/test_change_around_word/81text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/82head.txt b/crates/vim/test_data/test_change_around_word/82head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_change_around_word/82head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/83mode.txt b/crates/vim/test_data/test_change_around_word/83mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/83mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/84text.txt b/crates/vim/test_data/test_change_around_word/84text.txt deleted file mode 100644 index 262feeae96..0000000000 --- a/crates/vim/test_data/test_change_around_word/84text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/85head.txt b/crates/vim/test_data/test_change_around_word/85head.txt deleted file mode 100644 index bd712da63a..0000000000 --- a/crates/vim/test_data/test_change_around_word/85head.txt +++ /dev/null @@ -1 +0,0 @@ -1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/86mode.txt b/crates/vim/test_data/test_change_around_word/86mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/86mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/87text.txt b/crates/vim/test_data/test_change_around_word/87text.txt deleted file mode 100644 index ba0aea82d9..0000000000 --- a/crates/vim/test_data/test_change_around_word/87text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/88head.txt b/crates/vim/test_data/test_change_around_word/88head.txt deleted file mode 100644 index 28ce8bcc5c..0000000000 --- a/crates/vim/test_data/test_change_around_word/88head.txt +++ /dev/null @@ -1 +0,0 @@ -2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/89mode.txt b/crates/vim/test_data/test_change_around_word/89mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/89mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/8mode.txt b/crates/vim/test_data/test_change_around_word/8mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/8mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/90text.txt b/crates/vim/test_data/test_change_around_word/90text.txt deleted file mode 100644 index 783e049f86..0000000000 --- a/crates/vim/test_data/test_change_around_word/90text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/91head.txt b/crates/vim/test_data/test_change_around_word/91head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_change_around_word/91head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/92mode.txt b/crates/vim/test_data/test_change_around_word/92mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/92mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/93text.txt b/crates/vim/test_data/test_change_around_word/93text.txt deleted file mode 100644 index 783e049f86..0000000000 --- a/crates/vim/test_data/test_change_around_word/93text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/94head.txt b/crates/vim/test_data/test_change_around_word/94head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_change_around_word/94head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/95mode.txt b/crates/vim/test_data/test_change_around_word/95mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/95mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/96text.txt b/crates/vim/test_data/test_change_around_word/96text.txt deleted file mode 100644 index 523f6002f4..0000000000 --- a/crates/vim/test_data/test_change_around_word/96text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/97head.txt b/crates/vim/test_data/test_change_around_word/97head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_change_around_word/97head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/98mode.txt b/crates/vim/test_data/test_change_around_word/98mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_around_word/98mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word/99text.txt b/crates/vim/test_data/test_change_around_word/99text.txt deleted file mode 100644 index c8a5876179..0000000000 --- a/crates/vim/test_data/test_change_around_word/99text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_around_word/9text.txt b/crates/vim/test_data/test_change_around_word/9text.txt deleted file mode 100644 index 2feb66cfb9..0000000000 --- a/crates/vim/test_data/test_change_around_word/9text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_sentence.json b/crates/vim/test_data/test_change_in_sentence.json new file mode 100644 index 0000000000..08dbca368a --- /dev/null +++ b/crates/vim/test_data/test_change_in_sentence.json @@ -0,0 +1 @@ +[{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown?Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":16}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!Over the lazy."},{"Head":{"row":0,"column":27}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":28}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":28}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":28}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.The quick \nbrown fox jumps over\n"},{"Head":{"row":2,"column":13}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Head":{"row":2,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Head":{"row":2,"column":14}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" Brown fox jumps."},{"Head":{"row":0,"column":37}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/0text.txt b/crates/vim/test_data/test_change_in_sentence/0text.txt deleted file mode 100644 index fd36730b8d..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/0text.txt +++ /dev/null @@ -1 +0,0 @@ - Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/10head.txt b/crates/vim/test_data/test_change_in_sentence/10head.txt deleted file mode 100644 index 5df80e23c6..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/10head.txt +++ /dev/null @@ -1 +0,0 @@ -0,16 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/11mode.txt b/crates/vim/test_data/test_change_in_sentence/11mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/11mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/12text.txt b/crates/vim/test_data/test_change_in_sentence/12text.txt deleted file mode 100644 index 40eacc6489..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/12text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/13head.txt b/crates/vim/test_data/test_change_in_sentence/13head.txt deleted file mode 100644 index 40d2f2ab55..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/13head.txt +++ /dev/null @@ -1 +0,0 @@ -0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/14mode.txt b/crates/vim/test_data/test_change_in_sentence/14mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/14mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/15text.txt b/crates/vim/test_data/test_change_in_sentence/15text.txt deleted file mode 100644 index 40eacc6489..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/15text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/16head.txt b/crates/vim/test_data/test_change_in_sentence/16head.txt deleted file mode 100644 index 40d2f2ab55..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/16head.txt +++ /dev/null @@ -1 +0,0 @@ -0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/17mode.txt b/crates/vim/test_data/test_change_in_sentence/17mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/17mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/18text.txt b/crates/vim/test_data/test_change_in_sentence/18text.txt deleted file mode 100644 index 40eacc6489..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/18text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/19head.txt b/crates/vim/test_data/test_change_in_sentence/19head.txt deleted file mode 100644 index 40d2f2ab55..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/19head.txt +++ /dev/null @@ -1 +0,0 @@ -0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/1head.txt b/crates/vim/test_data/test_change_in_sentence/1head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/1head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/20mode.txt b/crates/vim/test_data/test_change_in_sentence/20mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/20mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/21text.txt b/crates/vim/test_data/test_change_in_sentence/21text.txt deleted file mode 100644 index ef17a5f7fb..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/21text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Fox Jumps!Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/22head.txt b/crates/vim/test_data/test_change_in_sentence/22head.txt deleted file mode 100644 index 17beb4d83f..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/22head.txt +++ /dev/null @@ -1 +0,0 @@ -0,27 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/23mode.txt b/crates/vim/test_data/test_change_in_sentence/23mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/23mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/24text.txt b/crates/vim/test_data/test_change_in_sentence/24text.txt deleted file mode 100644 index d81c10974f..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/24text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/25head.txt b/crates/vim/test_data/test_change_in_sentence/25head.txt deleted file mode 100644 index 588ae97095..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/25head.txt +++ /dev/null @@ -1 +0,0 @@ -0,28 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/26mode.txt b/crates/vim/test_data/test_change_in_sentence/26mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/26mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/27text.txt b/crates/vim/test_data/test_change_in_sentence/27text.txt deleted file mode 100644 index d81c10974f..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/27text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/28head.txt b/crates/vim/test_data/test_change_in_sentence/28head.txt deleted file mode 100644 index 588ae97095..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/28head.txt +++ /dev/null @@ -1 +0,0 @@ -0,28 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/29mode.txt b/crates/vim/test_data/test_change_in_sentence/29mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/29mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/2mode.txt b/crates/vim/test_data/test_change_in_sentence/2mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/2mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/30text.txt b/crates/vim/test_data/test_change_in_sentence/30text.txt deleted file mode 100644 index d81c10974f..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/30text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/31head.txt b/crates/vim/test_data/test_change_in_sentence/31head.txt deleted file mode 100644 index 588ae97095..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/31head.txt +++ /dev/null @@ -1 +0,0 @@ -0,28 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/32mode.txt b/crates/vim/test_data/test_change_in_sentence/32mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/32mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/33text.txt b/crates/vim/test_data/test_change_in_sentence/33text.txt deleted file mode 100644 index 561ed0800c..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/33text.txt +++ /dev/null @@ -1,2 +0,0 @@ - The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/34head.txt b/crates/vim/test_data/test_change_in_sentence/34head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/34head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/35mode.txt b/crates/vim/test_data/test_change_in_sentence/35mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/35mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/36text.txt b/crates/vim/test_data/test_change_in_sentence/36text.txt deleted file mode 100644 index 561ed0800c..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/36text.txt +++ /dev/null @@ -1,2 +0,0 @@ - The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/37head.txt b/crates/vim/test_data/test_change_in_sentence/37head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/37head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/38mode.txt b/crates/vim/test_data/test_change_in_sentence/38mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/38mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/39text.txt b/crates/vim/test_data/test_change_in_sentence/39text.txt deleted file mode 100644 index 561ed0800c..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/39text.txt +++ /dev/null @@ -1,2 +0,0 @@ - The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/3text.txt b/crates/vim/test_data/test_change_in_sentence/3text.txt deleted file mode 100644 index fd36730b8d..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/3text.txt +++ /dev/null @@ -1 +0,0 @@ - Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/40head.txt b/crates/vim/test_data/test_change_in_sentence/40head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/40head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/41mode.txt b/crates/vim/test_data/test_change_in_sentence/41mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/41mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/42text.txt b/crates/vim/test_data/test_change_in_sentence/42text.txt deleted file mode 100644 index 561ed0800c..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/42text.txt +++ /dev/null @@ -1,2 +0,0 @@ - The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/43head.txt b/crates/vim/test_data/test_change_in_sentence/43head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/43head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/44mode.txt b/crates/vim/test_data/test_change_in_sentence/44mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/44mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/45text.txt b/crates/vim/test_data/test_change_in_sentence/45text.txt deleted file mode 100644 index 561ed0800c..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/45text.txt +++ /dev/null @@ -1,2 +0,0 @@ - The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/46head.txt b/crates/vim/test_data/test_change_in_sentence/46head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/46head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/47mode.txt b/crates/vim/test_data/test_change_in_sentence/47mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/47mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/48text.txt b/crates/vim/test_data/test_change_in_sentence/48text.txt deleted file mode 100644 index bbf10c5693..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/48text.txt +++ /dev/null @@ -1,4 +0,0 @@ -The quick brown -fox jumps over -the lazy dog.The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_change_in_sentence/49head.txt b/crates/vim/test_data/test_change_in_sentence/49head.txt deleted file mode 100644 index 26560586d9..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/49head.txt +++ /dev/null @@ -1 +0,0 @@ -2,13 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/4head.txt b/crates/vim/test_data/test_change_in_sentence/4head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/4head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/50mode.txt b/crates/vim/test_data/test_change_in_sentence/50mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/50mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/51text.txt b/crates/vim/test_data/test_change_in_sentence/51text.txt deleted file mode 100644 index 0b535bbbaf..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/51text.txt +++ /dev/null @@ -1,3 +0,0 @@ -The quick brown -fox jumps over -the lazy dog. diff --git a/crates/vim/test_data/test_change_in_sentence/52head.txt b/crates/vim/test_data/test_change_in_sentence/52head.txt deleted file mode 100644 index e9aafafade..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/52head.txt +++ /dev/null @@ -1 +0,0 @@ -2,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/53mode.txt b/crates/vim/test_data/test_change_in_sentence/53mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/53mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/54text.txt b/crates/vim/test_data/test_change_in_sentence/54text.txt deleted file mode 100644 index 0b535bbbaf..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/54text.txt +++ /dev/null @@ -1,3 +0,0 @@ -The quick brown -fox jumps over -the lazy dog. diff --git a/crates/vim/test_data/test_change_in_sentence/55head.txt b/crates/vim/test_data/test_change_in_sentence/55head.txt deleted file mode 100644 index e9aafafade..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/55head.txt +++ /dev/null @@ -1 +0,0 @@ -2,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/56mode.txt b/crates/vim/test_data/test_change_in_sentence/56mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/56mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/5mode.txt b/crates/vim/test_data/test_change_in_sentence/5mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/5mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/6text.txt b/crates/vim/test_data/test_change_in_sentence/6text.txt deleted file mode 100644 index fd36730b8d..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/6text.txt +++ /dev/null @@ -1 +0,0 @@ - Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/7head.txt b/crates/vim/test_data/test_change_in_sentence/7head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/7head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/8mode.txt b/crates/vim/test_data/test_change_in_sentence/8mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/8mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence/9text.txt b/crates/vim/test_data/test_change_in_sentence/9text.txt deleted file mode 100644 index 9e4b6dcc50..0000000000 --- a/crates/vim/test_data/test_change_in_sentence/9text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown?Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word.json b/crates/vim/test_data/test_change_in_word.json new file mode 100644 index 0000000000..eaa390e50f --- /dev/null +++ b/crates/vim/test_data/test_change_in_word.json @@ -0,0 +1 @@ +[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":3}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox- over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":6}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Head":{"row":10,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":11,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":2}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Head":{"row":10,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":11,"column":0}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/0text.txt b/crates/vim/test_data/test_change_in_word/0text.txt deleted file mode 100644 index 481389e676..0000000000 --- a/crates/vim/test_data/test_change_in_word/0text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/100head.txt b/crates/vim/test_data/test_change_in_word/100head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_change_in_word/100head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/101mode.txt b/crates/vim/test_data/test_change_in_word/101mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/101mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/102text.txt b/crates/vim/test_data/test_change_in_word/102text.txt deleted file mode 100644 index d90b2c4e48..0000000000 --- a/crates/vim/test_data/test_change_in_word/102text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/103head.txt b/crates/vim/test_data/test_change_in_word/103head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_change_in_word/103head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/104mode.txt b/crates/vim/test_data/test_change_in_word/104mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/104mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/105text.txt b/crates/vim/test_data/test_change_in_word/105text.txt deleted file mode 100644 index d90b2c4e48..0000000000 --- a/crates/vim/test_data/test_change_in_word/105text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/106head.txt b/crates/vim/test_data/test_change_in_word/106head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_change_in_word/106head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/107mode.txt b/crates/vim/test_data/test_change_in_word/107mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/107mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/108text.txt b/crates/vim/test_data/test_change_in_word/108text.txt deleted file mode 100644 index d90b2c4e48..0000000000 --- a/crates/vim/test_data/test_change_in_word/108text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/109head.txt b/crates/vim/test_data/test_change_in_word/109head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_change_in_word/109head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/10head.txt b/crates/vim/test_data/test_change_in_word/10head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_change_in_word/10head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/110mode.txt b/crates/vim/test_data/test_change_in_word/110mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/110mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/111text.txt b/crates/vim/test_data/test_change_in_word/111text.txt deleted file mode 100644 index 7d13d92d35..0000000000 --- a/crates/vim/test_data/test_change_in_word/111text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quickbrown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/112head.txt b/crates/vim/test_data/test_change_in_word/112head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_change_in_word/112head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/113mode.txt b/crates/vim/test_data/test_change_in_word/113mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/113mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/114text.txt b/crates/vim/test_data/test_change_in_word/114text.txt deleted file mode 100644 index 95b76ce25b..0000000000 --- a/crates/vim/test_data/test_change_in_word/114text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/115head.txt b/crates/vim/test_data/test_change_in_word/115head.txt deleted file mode 100644 index c5a50698dd..0000000000 --- a/crates/vim/test_data/test_change_in_word/115head.txt +++ /dev/null @@ -1 +0,0 @@ -6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/116mode.txt b/crates/vim/test_data/test_change_in_word/116mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/116mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/117text.txt b/crates/vim/test_data/test_change_in_word/117text.txt deleted file mode 100644 index 805a5ebe4c..0000000000 --- a/crates/vim/test_data/test_change_in_word/117text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/118head.txt b/crates/vim/test_data/test_change_in_word/118head.txt deleted file mode 100644 index d933eb81fa..0000000000 --- a/crates/vim/test_data/test_change_in_word/118head.txt +++ /dev/null @@ -1 +0,0 @@ -6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/119mode.txt b/crates/vim/test_data/test_change_in_word/119mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/119mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/11mode.txt b/crates/vim/test_data/test_change_in_word/11mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/11mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/120text.txt b/crates/vim/test_data/test_change_in_word/120text.txt deleted file mode 100644 index 1d797e34b8..0000000000 --- a/crates/vim/test_data/test_change_in_word/120text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/121head.txt b/crates/vim/test_data/test_change_in_word/121head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_change_in_word/121head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/122mode.txt b/crates/vim/test_data/test_change_in_word/122mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/122mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/123text.txt b/crates/vim/test_data/test_change_in_word/123text.txt deleted file mode 100644 index 8a35adfa26..0000000000 --- a/crates/vim/test_data/test_change_in_word/123text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/124head.txt b/crates/vim/test_data/test_change_in_word/124head.txt deleted file mode 100644 index ded56a5926..0000000000 --- a/crates/vim/test_data/test_change_in_word/124head.txt +++ /dev/null @@ -1 +0,0 @@ -8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/125mode.txt b/crates/vim/test_data/test_change_in_word/125mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/125mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/126text.txt b/crates/vim/test_data/test_change_in_word/126text.txt deleted file mode 100644 index 26e9d0a1b6..0000000000 --- a/crates/vim/test_data/test_change_in_word/126text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - -fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/127head.txt b/crates/vim/test_data/test_change_in_word/127head.txt deleted file mode 100644 index 8e69e0ad79..0000000000 --- a/crates/vim/test_data/test_change_in_word/127head.txt +++ /dev/null @@ -1 +0,0 @@ -9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/128mode.txt b/crates/vim/test_data/test_change_in_word/128mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/128mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/129text.txt b/crates/vim/test_data/test_change_in_word/129text.txt deleted file mode 100644 index c2c9c0edb0..0000000000 --- a/crates/vim/test_data/test_change_in_word/129text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/12text.txt b/crates/vim/test_data/test_change_in_word/12text.txt deleted file mode 100644 index 38c6ccbeac..0000000000 --- a/crates/vim/test_data/test_change_in_word/12text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/130head.txt b/crates/vim/test_data/test_change_in_word/130head.txt deleted file mode 100644 index edb3544f9a..0000000000 --- a/crates/vim/test_data/test_change_in_word/130head.txt +++ /dev/null @@ -1 +0,0 @@ -9,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/131mode.txt b/crates/vim/test_data/test_change_in_word/131mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/131mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/132text.txt b/crates/vim/test_data/test_change_in_word/132text.txt deleted file mode 100644 index 4b2cd80611..0000000000 --- a/crates/vim/test_data/test_change_in_word/132text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/133head.txt b/crates/vim/test_data/test_change_in_word/133head.txt deleted file mode 100644 index 00f5ae6cbb..0000000000 --- a/crates/vim/test_data/test_change_in_word/133head.txt +++ /dev/null @@ -1 +0,0 @@ -10,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/134mode.txt b/crates/vim/test_data/test_change_in_word/134mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/134mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/135text.txt b/crates/vim/test_data/test_change_in_word/135text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_change_in_word/135text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/136head.txt b/crates/vim/test_data/test_change_in_word/136head.txt deleted file mode 100644 index 94dbddc699..0000000000 --- a/crates/vim/test_data/test_change_in_word/136head.txt +++ /dev/null @@ -1 +0,0 @@ -11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/137mode.txt b/crates/vim/test_data/test_change_in_word/137mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/137mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/13head.txt b/crates/vim/test_data/test_change_in_word/13head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_change_in_word/13head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/14mode.txt b/crates/vim/test_data/test_change_in_word/14mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/14mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/15text.txt b/crates/vim/test_data/test_change_in_word/15text.txt deleted file mode 100644 index 282218da91..0000000000 --- a/crates/vim/test_data/test_change_in_word/15text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumpsover -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/16head.txt b/crates/vim/test_data/test_change_in_word/16head.txt deleted file mode 100644 index bd712da63a..0000000000 --- a/crates/vim/test_data/test_change_in_word/16head.txt +++ /dev/null @@ -1 +0,0 @@ -1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/17mode.txt b/crates/vim/test_data/test_change_in_word/17mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/17mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/18text.txt b/crates/vim/test_data/test_change_in_word/18text.txt deleted file mode 100644 index 0b042b7c39..0000000000 --- a/crates/vim/test_data/test_change_in_word/18text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/19head.txt b/crates/vim/test_data/test_change_in_word/19head.txt deleted file mode 100644 index 28ce8bcc5c..0000000000 --- a/crates/vim/test_data/test_change_in_word/19head.txt +++ /dev/null @@ -1 +0,0 @@ -2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/1head.txt b/crates/vim/test_data/test_change_in_word/1head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_change_in_word/1head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/20mode.txt b/crates/vim/test_data/test_change_in_word/20mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/20mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/21text.txt b/crates/vim/test_data/test_change_in_word/21text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_change_in_word/21text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/22head.txt b/crates/vim/test_data/test_change_in_word/22head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_change_in_word/22head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/23mode.txt b/crates/vim/test_data/test_change_in_word/23mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/23mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/24text.txt b/crates/vim/test_data/test_change_in_word/24text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_change_in_word/24text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/25head.txt b/crates/vim/test_data/test_change_in_word/25head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_change_in_word/25head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/26mode.txt b/crates/vim/test_data/test_change_in_word/26mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/26mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/27text.txt b/crates/vim/test_data/test_change_in_word/27text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_change_in_word/27text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/28head.txt b/crates/vim/test_data/test_change_in_word/28head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_change_in_word/28head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/29mode.txt b/crates/vim/test_data/test_change_in_word/29mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/29mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/2mode.txt b/crates/vim/test_data/test_change_in_word/2mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/2mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/30text.txt b/crates/vim/test_data/test_change_in_word/30text.txt deleted file mode 100644 index 609747299b..0000000000 --- a/crates/vim/test_data/test_change_in_word/30text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - --quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/31head.txt b/crates/vim/test_data/test_change_in_word/31head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_change_in_word/31head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/32mode.txt b/crates/vim/test_data/test_change_in_word/32mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/32mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/33text.txt b/crates/vim/test_data/test_change_in_word/33text.txt deleted file mode 100644 index 12ede0f513..0000000000 --- a/crates/vim/test_data/test_change_in_word/33text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -Thequick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/34head.txt b/crates/vim/test_data/test_change_in_word/34head.txt deleted file mode 100644 index c20df71d5e..0000000000 --- a/crates/vim/test_data/test_change_in_word/34head.txt +++ /dev/null @@ -1 +0,0 @@ -6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/35mode.txt b/crates/vim/test_data/test_change_in_word/35mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/35mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/36text.txt b/crates/vim/test_data/test_change_in_word/36text.txt deleted file mode 100644 index 3b3f900a05..0000000000 --- a/crates/vim/test_data/test_change_in_word/36text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The- brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/37head.txt b/crates/vim/test_data/test_change_in_word/37head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_change_in_word/37head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/38mode.txt b/crates/vim/test_data/test_change_in_word/38mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/38mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/39text.txt b/crates/vim/test_data/test_change_in_word/39text.txt deleted file mode 100644 index 3b3f900a05..0000000000 --- a/crates/vim/test_data/test_change_in_word/39text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The- brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/3text.txt b/crates/vim/test_data/test_change_in_word/3text.txt deleted file mode 100644 index 481389e676..0000000000 --- a/crates/vim/test_data/test_change_in_word/3text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/40head.txt b/crates/vim/test_data/test_change_in_word/40head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_change_in_word/40head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/41mode.txt b/crates/vim/test_data/test_change_in_word/41mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/41mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/42text.txt b/crates/vim/test_data/test_change_in_word/42text.txt deleted file mode 100644 index 7d13d92d35..0000000000 --- a/crates/vim/test_data/test_change_in_word/42text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quickbrown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/43head.txt b/crates/vim/test_data/test_change_in_word/43head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_change_in_word/43head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/44mode.txt b/crates/vim/test_data/test_change_in_word/44mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/44mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/45text.txt b/crates/vim/test_data/test_change_in_word/45text.txt deleted file mode 100644 index 95b76ce25b..0000000000 --- a/crates/vim/test_data/test_change_in_word/45text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/46head.txt b/crates/vim/test_data/test_change_in_word/46head.txt deleted file mode 100644 index c5a50698dd..0000000000 --- a/crates/vim/test_data/test_change_in_word/46head.txt +++ /dev/null @@ -1 +0,0 @@ -6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/47mode.txt b/crates/vim/test_data/test_change_in_word/47mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/47mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/48text.txt b/crates/vim/test_data/test_change_in_word/48text.txt deleted file mode 100644 index 805a5ebe4c..0000000000 --- a/crates/vim/test_data/test_change_in_word/48text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/49head.txt b/crates/vim/test_data/test_change_in_word/49head.txt deleted file mode 100644 index d933eb81fa..0000000000 --- a/crates/vim/test_data/test_change_in_word/49head.txt +++ /dev/null @@ -1 +0,0 @@ -6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/4head.txt b/crates/vim/test_data/test_change_in_word/4head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_change_in_word/4head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/50mode.txt b/crates/vim/test_data/test_change_in_word/50mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/50mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/51text.txt b/crates/vim/test_data/test_change_in_word/51text.txt deleted file mode 100644 index 1d797e34b8..0000000000 --- a/crates/vim/test_data/test_change_in_word/51text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/52head.txt b/crates/vim/test_data/test_change_in_word/52head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_change_in_word/52head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/53mode.txt b/crates/vim/test_data/test_change_in_word/53mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/53mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/54text.txt b/crates/vim/test_data/test_change_in_word/54text.txt deleted file mode 100644 index 8a35adfa26..0000000000 --- a/crates/vim/test_data/test_change_in_word/54text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/55head.txt b/crates/vim/test_data/test_change_in_word/55head.txt deleted file mode 100644 index ded56a5926..0000000000 --- a/crates/vim/test_data/test_change_in_word/55head.txt +++ /dev/null @@ -1 +0,0 @@ -8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/56mode.txt b/crates/vim/test_data/test_change_in_word/56mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/56mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/57text.txt b/crates/vim/test_data/test_change_in_word/57text.txt deleted file mode 100644 index 26e9d0a1b6..0000000000 --- a/crates/vim/test_data/test_change_in_word/57text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - -fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/58head.txt b/crates/vim/test_data/test_change_in_word/58head.txt deleted file mode 100644 index 8e69e0ad79..0000000000 --- a/crates/vim/test_data/test_change_in_word/58head.txt +++ /dev/null @@ -1 +0,0 @@ -9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/59mode.txt b/crates/vim/test_data/test_change_in_word/59mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/59mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/5mode.txt b/crates/vim/test_data/test_change_in_word/5mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/5mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/60text.txt b/crates/vim/test_data/test_change_in_word/60text.txt deleted file mode 100644 index 816bf47cf0..0000000000 --- a/crates/vim/test_data/test_change_in_word/60text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox- over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/61head.txt b/crates/vim/test_data/test_change_in_word/61head.txt deleted file mode 100644 index e0460d1bc5..0000000000 --- a/crates/vim/test_data/test_change_in_word/61head.txt +++ /dev/null @@ -1 +0,0 @@ -9,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/62mode.txt b/crates/vim/test_data/test_change_in_word/62mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/62mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/63text.txt b/crates/vim/test_data/test_change_in_word/63text.txt deleted file mode 100644 index 4b2cd80611..0000000000 --- a/crates/vim/test_data/test_change_in_word/63text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/64head.txt b/crates/vim/test_data/test_change_in_word/64head.txt deleted file mode 100644 index 00f5ae6cbb..0000000000 --- a/crates/vim/test_data/test_change_in_word/64head.txt +++ /dev/null @@ -1 +0,0 @@ -10,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/65mode.txt b/crates/vim/test_data/test_change_in_word/65mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/65mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/66text.txt b/crates/vim/test_data/test_change_in_word/66text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_change_in_word/66text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/67head.txt b/crates/vim/test_data/test_change_in_word/67head.txt deleted file mode 100644 index 94dbddc699..0000000000 --- a/crates/vim/test_data/test_change_in_word/67head.txt +++ /dev/null @@ -1 +0,0 @@ -11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/68mode.txt b/crates/vim/test_data/test_change_in_word/68mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/68mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/69text.txt b/crates/vim/test_data/test_change_in_word/69text.txt deleted file mode 100644 index 481389e676..0000000000 --- a/crates/vim/test_data/test_change_in_word/69text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/6text.txt b/crates/vim/test_data/test_change_in_word/6text.txt deleted file mode 100644 index 35fd5c89ba..0000000000 --- a/crates/vim/test_data/test_change_in_word/6text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/70head.txt b/crates/vim/test_data/test_change_in_word/70head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_change_in_word/70head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/71mode.txt b/crates/vim/test_data/test_change_in_word/71mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/71mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/72text.txt b/crates/vim/test_data/test_change_in_word/72text.txt deleted file mode 100644 index 481389e676..0000000000 --- a/crates/vim/test_data/test_change_in_word/72text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/73head.txt b/crates/vim/test_data/test_change_in_word/73head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_change_in_word/73head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/74mode.txt b/crates/vim/test_data/test_change_in_word/74mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/74mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/75text.txt b/crates/vim/test_data/test_change_in_word/75text.txt deleted file mode 100644 index 35fd5c89ba..0000000000 --- a/crates/vim/test_data/test_change_in_word/75text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/76head.txt b/crates/vim/test_data/test_change_in_word/76head.txt deleted file mode 100644 index 5f7b20f0d9..0000000000 --- a/crates/vim/test_data/test_change_in_word/76head.txt +++ /dev/null @@ -1 +0,0 @@ -0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/77mode.txt b/crates/vim/test_data/test_change_in_word/77mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/77mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/78text.txt b/crates/vim/test_data/test_change_in_word/78text.txt deleted file mode 100644 index 38c6ccbeac..0000000000 --- a/crates/vim/test_data/test_change_in_word/78text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/79head.txt b/crates/vim/test_data/test_change_in_word/79head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_change_in_word/79head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/7head.txt b/crates/vim/test_data/test_change_in_word/7head.txt deleted file mode 100644 index 5f7b20f0d9..0000000000 --- a/crates/vim/test_data/test_change_in_word/7head.txt +++ /dev/null @@ -1 +0,0 @@ -0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/80mode.txt b/crates/vim/test_data/test_change_in_word/80mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/80mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/81text.txt b/crates/vim/test_data/test_change_in_word/81text.txt deleted file mode 100644 index 38c6ccbeac..0000000000 --- a/crates/vim/test_data/test_change_in_word/81text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/82head.txt b/crates/vim/test_data/test_change_in_word/82head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_change_in_word/82head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/83mode.txt b/crates/vim/test_data/test_change_in_word/83mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/83mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/84text.txt b/crates/vim/test_data/test_change_in_word/84text.txt deleted file mode 100644 index 282218da91..0000000000 --- a/crates/vim/test_data/test_change_in_word/84text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumpsover -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/85head.txt b/crates/vim/test_data/test_change_in_word/85head.txt deleted file mode 100644 index bd712da63a..0000000000 --- a/crates/vim/test_data/test_change_in_word/85head.txt +++ /dev/null @@ -1 +0,0 @@ -1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/86mode.txt b/crates/vim/test_data/test_change_in_word/86mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/86mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/87text.txt b/crates/vim/test_data/test_change_in_word/87text.txt deleted file mode 100644 index 0b042b7c39..0000000000 --- a/crates/vim/test_data/test_change_in_word/87text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/88head.txt b/crates/vim/test_data/test_change_in_word/88head.txt deleted file mode 100644 index 28ce8bcc5c..0000000000 --- a/crates/vim/test_data/test_change_in_word/88head.txt +++ /dev/null @@ -1 +0,0 @@ -2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/89mode.txt b/crates/vim/test_data/test_change_in_word/89mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/89mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/8mode.txt b/crates/vim/test_data/test_change_in_word/8mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/8mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/90text.txt b/crates/vim/test_data/test_change_in_word/90text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_change_in_word/90text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/91head.txt b/crates/vim/test_data/test_change_in_word/91head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_change_in_word/91head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/92mode.txt b/crates/vim/test_data/test_change_in_word/92mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/92mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/93text.txt b/crates/vim/test_data/test_change_in_word/93text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_change_in_word/93text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/94head.txt b/crates/vim/test_data/test_change_in_word/94head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_change_in_word/94head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/95mode.txt b/crates/vim/test_data/test_change_in_word/95mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/95mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/96text.txt b/crates/vim/test_data/test_change_in_word/96text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_change_in_word/96text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/97head.txt b/crates/vim/test_data/test_change_in_word/97head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_change_in_word/97head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/98mode.txt b/crates/vim/test_data/test_change_in_word/98mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_change_in_word/98mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word/99text.txt b/crates/vim/test_data/test_change_in_word/99text.txt deleted file mode 100644 index d90b2c4e48..0000000000 --- a/crates/vim/test_data/test_change_in_word/99text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_change_in_word/9text.txt b/crates/vim/test_data/test_change_in_word/9text.txt deleted file mode 100644 index 38c6ccbeac..0000000000 --- a/crates/vim/test_data/test_change_in_word/9text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_sentence.json b/crates/vim/test_data/test_delete_around_sentence.json new file mode 100644 index 0000000000..479f0cc77c --- /dev/null +++ b/crates/vim/test_data/test_delete_around_sentence.json @@ -0,0 +1 @@ +[{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":26}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":26}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":26}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":26}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":12}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":12}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":12}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":20}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":20}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/0text.txt b/crates/vim/test_data/test_delete_around_sentence/0text.txt deleted file mode 100644 index d2b92e8000..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence/0text.txt +++ /dev/null @@ -1 +0,0 @@ -Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/10head.txt b/crates/vim/test_data/test_delete_around_sentence/10head.txt deleted file mode 100644 index 5df80e23c6..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence/10head.txt +++ /dev/null @@ -1 +0,0 @@ -0,16 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/1head.txt b/crates/vim/test_data/test_delete_around_sentence/1head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence/1head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/2mode.txt b/crates/vim/test_data/test_delete_around_sentence/2mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence/2mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/3text.txt b/crates/vim/test_data/test_delete_around_sentence/3text.txt deleted file mode 100644 index d2b92e8000..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence/3text.txt +++ /dev/null @@ -1 +0,0 @@ -Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/4head.txt b/crates/vim/test_data/test_delete_around_sentence/4head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence/4head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/5mode.txt b/crates/vim/test_data/test_delete_around_sentence/5mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence/5mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/6text.txt b/crates/vim/test_data/test_delete_around_sentence/6text.txt deleted file mode 100644 index d2b92e8000..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence/6text.txt +++ /dev/null @@ -1 +0,0 @@ -Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/7head.txt b/crates/vim/test_data/test_delete_around_sentence/7head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence/7head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/8mode.txt b/crates/vim/test_data/test_delete_around_sentence/8mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence/8mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence/9text.txt b/crates/vim/test_data/test_delete_around_sentence/9text.txt deleted file mode 100644 index 5e3a12964d..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence/9text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word.json b/crates/vim/test_data/test_delete_around_word.json new file mode 100644 index 0000000000..37e370d3bd --- /dev/null +++ b/crates/vim/test_data/test_delete_around_word.json @@ -0,0 +1 @@ +[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":8}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":3}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":6}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Head":{"row":10,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog "},{"Head":{"row":10,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":8}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":2}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Head":{"row":10,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog "},{"Head":{"row":10,"column":0}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/0text.txt b/crates/vim/test_data/test_delete_around_word/0text.txt deleted file mode 100644 index 366beed733..0000000000 --- a/crates/vim/test_data/test_delete_around_word/0text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/100head.txt b/crates/vim/test_data/test_delete_around_word/100head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_delete_around_word/100head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/101mode.txt b/crates/vim/test_data/test_delete_around_word/101mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/101mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/102text.txt b/crates/vim/test_data/test_delete_around_word/102text.txt deleted file mode 100644 index c8a5876179..0000000000 --- a/crates/vim/test_data/test_delete_around_word/102text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/103head.txt b/crates/vim/test_data/test_delete_around_word/103head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_delete_around_word/103head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/104mode.txt b/crates/vim/test_data/test_delete_around_word/104mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/104mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/105text.txt b/crates/vim/test_data/test_delete_around_word/105text.txt deleted file mode 100644 index c8a5876179..0000000000 --- a/crates/vim/test_data/test_delete_around_word/105text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/106head.txt b/crates/vim/test_data/test_delete_around_word/106head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_delete_around_word/106head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/107mode.txt b/crates/vim/test_data/test_delete_around_word/107mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/107mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/108text.txt b/crates/vim/test_data/test_delete_around_word/108text.txt deleted file mode 100644 index c8a5876179..0000000000 --- a/crates/vim/test_data/test_delete_around_word/108text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/109head.txt b/crates/vim/test_data/test_delete_around_word/109head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_delete_around_word/109head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/10head.txt b/crates/vim/test_data/test_delete_around_word/10head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/10head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/110mode.txt b/crates/vim/test_data/test_delete_around_word/110mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/110mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/111text.txt b/crates/vim/test_data/test_delete_around_word/111text.txt deleted file mode 100644 index f05cdd88c1..0000000000 --- a/crates/vim/test_data/test_delete_around_word/111text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/112head.txt b/crates/vim/test_data/test_delete_around_word/112head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_delete_around_word/112head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/113mode.txt b/crates/vim/test_data/test_delete_around_word/113mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/113mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/114text.txt b/crates/vim/test_data/test_delete_around_word/114text.txt deleted file mode 100644 index f05cdd88c1..0000000000 --- a/crates/vim/test_data/test_delete_around_word/114text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/115head.txt b/crates/vim/test_data/test_delete_around_word/115head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_delete_around_word/115head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/116mode.txt b/crates/vim/test_data/test_delete_around_word/116mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/116mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/117text.txt b/crates/vim/test_data/test_delete_around_word/117text.txt deleted file mode 100644 index 0e9094161a..0000000000 --- a/crates/vim/test_data/test_delete_around_word/117text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/118head.txt b/crates/vim/test_data/test_delete_around_word/118head.txt deleted file mode 100644 index d933eb81fa..0000000000 --- a/crates/vim/test_data/test_delete_around_word/118head.txt +++ /dev/null @@ -1 +0,0 @@ -6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/119mode.txt b/crates/vim/test_data/test_delete_around_word/119mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/119mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/11mode.txt b/crates/vim/test_data/test_delete_around_word/11mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/11mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/120text.txt b/crates/vim/test_data/test_delete_around_word/120text.txt deleted file mode 100644 index fa73eb37b8..0000000000 --- a/crates/vim/test_data/test_delete_around_word/120text.txt +++ /dev/null @@ -1,10 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/121head.txt b/crates/vim/test_data/test_delete_around_word/121head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_delete_around_word/121head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/122mode.txt b/crates/vim/test_data/test_delete_around_word/122mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/122mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/123text.txt b/crates/vim/test_data/test_delete_around_word/123text.txt deleted file mode 100644 index 4fe33b47eb..0000000000 --- a/crates/vim/test_data/test_delete_around_word/123text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/124head.txt b/crates/vim/test_data/test_delete_around_word/124head.txt deleted file mode 100644 index ded56a5926..0000000000 --- a/crates/vim/test_data/test_delete_around_word/124head.txt +++ /dev/null @@ -1 +0,0 @@ -8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/125mode.txt b/crates/vim/test_data/test_delete_around_word/125mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/125mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/126text.txt b/crates/vim/test_data/test_delete_around_word/126text.txt deleted file mode 100644 index 35dd5816fc..0000000000 --- a/crates/vim/test_data/test_delete_around_word/126text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/127head.txt b/crates/vim/test_data/test_delete_around_word/127head.txt deleted file mode 100644 index 8e69e0ad79..0000000000 --- a/crates/vim/test_data/test_delete_around_word/127head.txt +++ /dev/null @@ -1 +0,0 @@ -9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/128mode.txt b/crates/vim/test_data/test_delete_around_word/128mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/128mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/129text.txt b/crates/vim/test_data/test_delete_around_word/129text.txt deleted file mode 100644 index 1bac4587a7..0000000000 --- a/crates/vim/test_data/test_delete_around_word/129text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/12text.txt b/crates/vim/test_data/test_delete_around_word/12text.txt deleted file mode 100644 index 2feb66cfb9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/12text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/130head.txt b/crates/vim/test_data/test_delete_around_word/130head.txt deleted file mode 100644 index edb3544f9a..0000000000 --- a/crates/vim/test_data/test_delete_around_word/130head.txt +++ /dev/null @@ -1 +0,0 @@ -9,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/131mode.txt b/crates/vim/test_data/test_delete_around_word/131mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/131mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/132text.txt b/crates/vim/test_data/test_delete_around_word/132text.txt deleted file mode 100644 index 912316a9f7..0000000000 --- a/crates/vim/test_data/test_delete_around_word/132text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_delete_around_word/133head.txt b/crates/vim/test_data/test_delete_around_word/133head.txt deleted file mode 100644 index 63ee4f53ac..0000000000 --- a/crates/vim/test_data/test_delete_around_word/133head.txt +++ /dev/null @@ -1 +0,0 @@ -10,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/134mode.txt b/crates/vim/test_data/test_delete_around_word/134mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/134mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/135text.txt b/crates/vim/test_data/test_delete_around_word/135text.txt deleted file mode 100644 index 3c4e8c2398..0000000000 --- a/crates/vim/test_data/test_delete_around_word/135text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/136head.txt b/crates/vim/test_data/test_delete_around_word/136head.txt deleted file mode 100644 index ec50c7d44f..0000000000 --- a/crates/vim/test_data/test_delete_around_word/136head.txt +++ /dev/null @@ -1 +0,0 @@ -10,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/137mode.txt b/crates/vim/test_data/test_delete_around_word/137mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/137mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/13head.txt b/crates/vim/test_data/test_delete_around_word/13head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/13head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/14mode.txt b/crates/vim/test_data/test_delete_around_word/14mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/14mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/15text.txt b/crates/vim/test_data/test_delete_around_word/15text.txt deleted file mode 100644 index 262feeae96..0000000000 --- a/crates/vim/test_data/test_delete_around_word/15text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/16head.txt b/crates/vim/test_data/test_delete_around_word/16head.txt deleted file mode 100644 index 413d7dd4d2..0000000000 --- a/crates/vim/test_data/test_delete_around_word/16head.txt +++ /dev/null @@ -1 +0,0 @@ -1,8 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/17mode.txt b/crates/vim/test_data/test_delete_around_word/17mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/17mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/18text.txt b/crates/vim/test_data/test_delete_around_word/18text.txt deleted file mode 100644 index ba0aea82d9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/18text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/19head.txt b/crates/vim/test_data/test_delete_around_word/19head.txt deleted file mode 100644 index 06ce34087d..0000000000 --- a/crates/vim/test_data/test_delete_around_word/19head.txt +++ /dev/null @@ -1 +0,0 @@ -2,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/1head.txt b/crates/vim/test_data/test_delete_around_word/1head.txt deleted file mode 100644 index 2871b36925..0000000000 --- a/crates/vim/test_data/test_delete_around_word/1head.txt +++ /dev/null @@ -1 +0,0 @@ -0,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/20mode.txt b/crates/vim/test_data/test_delete_around_word/20mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/20mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/21text.txt b/crates/vim/test_data/test_delete_around_word/21text.txt deleted file mode 100644 index ead25fb9d0..0000000000 --- a/crates/vim/test_data/test_delete_around_word/21text.txt +++ /dev/null @@ -1,10 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/22head.txt b/crates/vim/test_data/test_delete_around_word/22head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_delete_around_word/22head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/23mode.txt b/crates/vim/test_data/test_delete_around_word/23mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/23mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/24text.txt b/crates/vim/test_data/test_delete_around_word/24text.txt deleted file mode 100644 index ead25fb9d0..0000000000 --- a/crates/vim/test_data/test_delete_around_word/24text.txt +++ /dev/null @@ -1,10 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/25head.txt b/crates/vim/test_data/test_delete_around_word/25head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_delete_around_word/25head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/26mode.txt b/crates/vim/test_data/test_delete_around_word/26mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/26mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/27text.txt b/crates/vim/test_data/test_delete_around_word/27text.txt deleted file mode 100644 index 252419d291..0000000000 --- a/crates/vim/test_data/test_delete_around_word/27text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - --quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/28head.txt b/crates/vim/test_data/test_delete_around_word/28head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_delete_around_word/28head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/29mode.txt b/crates/vim/test_data/test_delete_around_word/29mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/29mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/2mode.txt b/crates/vim/test_data/test_delete_around_word/2mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/2mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/30text.txt b/crates/vim/test_data/test_delete_around_word/30text.txt deleted file mode 100644 index 609747299b..0000000000 --- a/crates/vim/test_data/test_delete_around_word/30text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - --quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/31head.txt b/crates/vim/test_data/test_delete_around_word/31head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_delete_around_word/31head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/32mode.txt b/crates/vim/test_data/test_delete_around_word/32mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/32mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/33text.txt b/crates/vim/test_data/test_delete_around_word/33text.txt deleted file mode 100644 index 12ede0f513..0000000000 --- a/crates/vim/test_data/test_delete_around_word/33text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -Thequick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/34head.txt b/crates/vim/test_data/test_delete_around_word/34head.txt deleted file mode 100644 index c20df71d5e..0000000000 --- a/crates/vim/test_data/test_delete_around_word/34head.txt +++ /dev/null @@ -1 +0,0 @@ -6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/35mode.txt b/crates/vim/test_data/test_delete_around_word/35mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/35mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/36text.txt b/crates/vim/test_data/test_delete_around_word/36text.txt deleted file mode 100644 index 4a6d943982..0000000000 --- a/crates/vim/test_data/test_delete_around_word/36text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/37head.txt b/crates/vim/test_data/test_delete_around_word/37head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_delete_around_word/37head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/38mode.txt b/crates/vim/test_data/test_delete_around_word/38mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/38mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/39text.txt b/crates/vim/test_data/test_delete_around_word/39text.txt deleted file mode 100644 index 4a6d943982..0000000000 --- a/crates/vim/test_data/test_delete_around_word/39text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/3text.txt b/crates/vim/test_data/test_delete_around_word/3text.txt deleted file mode 100644 index 366beed733..0000000000 --- a/crates/vim/test_data/test_delete_around_word/3text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/40head.txt b/crates/vim/test_data/test_delete_around_word/40head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_delete_around_word/40head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/41mode.txt b/crates/vim/test_data/test_delete_around_word/41mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/41mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/42text.txt b/crates/vim/test_data/test_delete_around_word/42text.txt deleted file mode 100644 index f05cdd88c1..0000000000 --- a/crates/vim/test_data/test_delete_around_word/42text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/43head.txt b/crates/vim/test_data/test_delete_around_word/43head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_delete_around_word/43head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/44mode.txt b/crates/vim/test_data/test_delete_around_word/44mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/44mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/45text.txt b/crates/vim/test_data/test_delete_around_word/45text.txt deleted file mode 100644 index f05cdd88c1..0000000000 --- a/crates/vim/test_data/test_delete_around_word/45text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/46head.txt b/crates/vim/test_data/test_delete_around_word/46head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_delete_around_word/46head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/47mode.txt b/crates/vim/test_data/test_delete_around_word/47mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/47mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/48text.txt b/crates/vim/test_data/test_delete_around_word/48text.txt deleted file mode 100644 index 13b7d1cb51..0000000000 --- a/crates/vim/test_data/test_delete_around_word/48text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/49head.txt b/crates/vim/test_data/test_delete_around_word/49head.txt deleted file mode 100644 index d933eb81fa..0000000000 --- a/crates/vim/test_data/test_delete_around_word/49head.txt +++ /dev/null @@ -1 +0,0 @@ -6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/4head.txt b/crates/vim/test_data/test_delete_around_word/4head.txt deleted file mode 100644 index 2871b36925..0000000000 --- a/crates/vim/test_data/test_delete_around_word/4head.txt +++ /dev/null @@ -1 +0,0 @@ -0,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/50mode.txt b/crates/vim/test_data/test_delete_around_word/50mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/50mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/51text.txt b/crates/vim/test_data/test_delete_around_word/51text.txt deleted file mode 100644 index 3976ef9c85..0000000000 --- a/crates/vim/test_data/test_delete_around_word/51text.txt +++ /dev/null @@ -1,10 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown --jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/52head.txt b/crates/vim/test_data/test_delete_around_word/52head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_delete_around_word/52head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/53mode.txt b/crates/vim/test_data/test_delete_around_word/53mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/53mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/54text.txt b/crates/vim/test_data/test_delete_around_word/54text.txt deleted file mode 100644 index b5ca31babe..0000000000 --- a/crates/vim/test_data/test_delete_around_word/54text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - --jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/55head.txt b/crates/vim/test_data/test_delete_around_word/55head.txt deleted file mode 100644 index ded56a5926..0000000000 --- a/crates/vim/test_data/test_delete_around_word/55head.txt +++ /dev/null @@ -1 +0,0 @@ -8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/56mode.txt b/crates/vim/test_data/test_delete_around_word/56mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/56mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/57text.txt b/crates/vim/test_data/test_delete_around_word/57text.txt deleted file mode 100644 index 0eaface506..0000000000 --- a/crates/vim/test_data/test_delete_around_word/57text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - --jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/58head.txt b/crates/vim/test_data/test_delete_around_word/58head.txt deleted file mode 100644 index 8e69e0ad79..0000000000 --- a/crates/vim/test_data/test_delete_around_word/58head.txt +++ /dev/null @@ -1 +0,0 @@ -9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/59mode.txt b/crates/vim/test_data/test_delete_around_word/59mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/59mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/5mode.txt b/crates/vim/test_data/test_delete_around_word/5mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/5mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/60text.txt b/crates/vim/test_data/test_delete_around_word/60text.txt deleted file mode 100644 index d8b9b05b79..0000000000 --- a/crates/vim/test_data/test_delete_around_word/60text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/61head.txt b/crates/vim/test_data/test_delete_around_word/61head.txt deleted file mode 100644 index e0460d1bc5..0000000000 --- a/crates/vim/test_data/test_delete_around_word/61head.txt +++ /dev/null @@ -1 +0,0 @@ -9,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/62mode.txt b/crates/vim/test_data/test_delete_around_word/62mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/62mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/63text.txt b/crates/vim/test_data/test_delete_around_word/63text.txt deleted file mode 100644 index 912316a9f7..0000000000 --- a/crates/vim/test_data/test_delete_around_word/63text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_delete_around_word/64head.txt b/crates/vim/test_data/test_delete_around_word/64head.txt deleted file mode 100644 index 63ee4f53ac..0000000000 --- a/crates/vim/test_data/test_delete_around_word/64head.txt +++ /dev/null @@ -1 +0,0 @@ -10,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/65mode.txt b/crates/vim/test_data/test_delete_around_word/65mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/65mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/66text.txt b/crates/vim/test_data/test_delete_around_word/66text.txt deleted file mode 100644 index 3c4e8c2398..0000000000 --- a/crates/vim/test_data/test_delete_around_word/66text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/67head.txt b/crates/vim/test_data/test_delete_around_word/67head.txt deleted file mode 100644 index ec50c7d44f..0000000000 --- a/crates/vim/test_data/test_delete_around_word/67head.txt +++ /dev/null @@ -1 +0,0 @@ -10,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/68mode.txt b/crates/vim/test_data/test_delete_around_word/68mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/68mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/69text.txt b/crates/vim/test_data/test_delete_around_word/69text.txt deleted file mode 100644 index 366beed733..0000000000 --- a/crates/vim/test_data/test_delete_around_word/69text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/6text.txt b/crates/vim/test_data/test_delete_around_word/6text.txt deleted file mode 100644 index 3678c219a3..0000000000 --- a/crates/vim/test_data/test_delete_around_word/6text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/70head.txt b/crates/vim/test_data/test_delete_around_word/70head.txt deleted file mode 100644 index 2871b36925..0000000000 --- a/crates/vim/test_data/test_delete_around_word/70head.txt +++ /dev/null @@ -1 +0,0 @@ -0,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/71mode.txt b/crates/vim/test_data/test_delete_around_word/71mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/71mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/72text.txt b/crates/vim/test_data/test_delete_around_word/72text.txt deleted file mode 100644 index 366beed733..0000000000 --- a/crates/vim/test_data/test_delete_around_word/72text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/73head.txt b/crates/vim/test_data/test_delete_around_word/73head.txt deleted file mode 100644 index 2871b36925..0000000000 --- a/crates/vim/test_data/test_delete_around_word/73head.txt +++ /dev/null @@ -1 +0,0 @@ -0,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/74mode.txt b/crates/vim/test_data/test_delete_around_word/74mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/74mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/75text.txt b/crates/vim/test_data/test_delete_around_word/75text.txt deleted file mode 100644 index 3678c219a3..0000000000 --- a/crates/vim/test_data/test_delete_around_word/75text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/76head.txt b/crates/vim/test_data/test_delete_around_word/76head.txt deleted file mode 100644 index 5f7b20f0d9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/76head.txt +++ /dev/null @@ -1 +0,0 @@ -0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/77mode.txt b/crates/vim/test_data/test_delete_around_word/77mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/77mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/78text.txt b/crates/vim/test_data/test_delete_around_word/78text.txt deleted file mode 100644 index 2feb66cfb9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/78text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/79head.txt b/crates/vim/test_data/test_delete_around_word/79head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/79head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/7head.txt b/crates/vim/test_data/test_delete_around_word/7head.txt deleted file mode 100644 index 5f7b20f0d9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/7head.txt +++ /dev/null @@ -1 +0,0 @@ -0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/80mode.txt b/crates/vim/test_data/test_delete_around_word/80mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/80mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/81text.txt b/crates/vim/test_data/test_delete_around_word/81text.txt deleted file mode 100644 index 2feb66cfb9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/81text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/82head.txt b/crates/vim/test_data/test_delete_around_word/82head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/82head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/83mode.txt b/crates/vim/test_data/test_delete_around_word/83mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/83mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/84text.txt b/crates/vim/test_data/test_delete_around_word/84text.txt deleted file mode 100644 index 262feeae96..0000000000 --- a/crates/vim/test_data/test_delete_around_word/84text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/85head.txt b/crates/vim/test_data/test_delete_around_word/85head.txt deleted file mode 100644 index 413d7dd4d2..0000000000 --- a/crates/vim/test_data/test_delete_around_word/85head.txt +++ /dev/null @@ -1 +0,0 @@ -1,8 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/86mode.txt b/crates/vim/test_data/test_delete_around_word/86mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/86mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/87text.txt b/crates/vim/test_data/test_delete_around_word/87text.txt deleted file mode 100644 index ba0aea82d9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/87text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/88head.txt b/crates/vim/test_data/test_delete_around_word/88head.txt deleted file mode 100644 index 06ce34087d..0000000000 --- a/crates/vim/test_data/test_delete_around_word/88head.txt +++ /dev/null @@ -1 +0,0 @@ -2,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/89mode.txt b/crates/vim/test_data/test_delete_around_word/89mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/89mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/8mode.txt b/crates/vim/test_data/test_delete_around_word/8mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/8mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/90text.txt b/crates/vim/test_data/test_delete_around_word/90text.txt deleted file mode 100644 index ead25fb9d0..0000000000 --- a/crates/vim/test_data/test_delete_around_word/90text.txt +++ /dev/null @@ -1,10 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/91head.txt b/crates/vim/test_data/test_delete_around_word/91head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_delete_around_word/91head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/92mode.txt b/crates/vim/test_data/test_delete_around_word/92mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/92mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/93text.txt b/crates/vim/test_data/test_delete_around_word/93text.txt deleted file mode 100644 index ead25fb9d0..0000000000 --- a/crates/vim/test_data/test_delete_around_word/93text.txt +++ /dev/null @@ -1,10 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/94head.txt b/crates/vim/test_data/test_delete_around_word/94head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_delete_around_word/94head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/95mode.txt b/crates/vim/test_data/test_delete_around_word/95mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/95mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/96text.txt b/crates/vim/test_data/test_delete_around_word/96text.txt deleted file mode 100644 index 523f6002f4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/96text.txt +++ /dev/null @@ -1,11 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/97head.txt b/crates/vim/test_data/test_delete_around_word/97head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_delete_around_word/97head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/98mode.txt b/crates/vim/test_data/test_delete_around_word/98mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_around_word/98mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word/99text.txt b/crates/vim/test_data/test_delete_around_word/99text.txt deleted file mode 100644 index c8a5876179..0000000000 --- a/crates/vim/test_data/test_delete_around_word/99text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_around_word/9text.txt b/crates/vim/test_data/test_delete_around_word/9text.txt deleted file mode 100644 index 2feb66cfb9..0000000000 --- a/crates/vim/test_data/test_delete_around_word/9text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_sentence.json b/crates/vim/test_data/test_delete_in_sentence.json new file mode 100644 index 0000000000..1ecaa01ee6 --- /dev/null +++ b/crates/vim/test_data/test_delete_in_sentence.json @@ -0,0 +1 @@ +[{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown?Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":16}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!Over the lazy."},{"Head":{"row":0,"column":27}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":27}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":27}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":27}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.The quick \nbrown fox jumps over\n"},{"Head":{"row":2,"column":13}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Head":{"row":2,"column":13}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Head":{"row":2,"column":13}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" Brown fox jumps."},{"Head":{"row":0,"column":36}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/0text.txt b/crates/vim/test_data/test_delete_in_sentence/0text.txt deleted file mode 100644 index fd36730b8d..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/0text.txt +++ /dev/null @@ -1 +0,0 @@ - Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/10head.txt b/crates/vim/test_data/test_delete_in_sentence/10head.txt deleted file mode 100644 index 5df80e23c6..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/10head.txt +++ /dev/null @@ -1 +0,0 @@ -0,16 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/11mode.txt b/crates/vim/test_data/test_delete_in_sentence/11mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/11mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/12text.txt b/crates/vim/test_data/test_delete_in_sentence/12text.txt deleted file mode 100644 index 40eacc6489..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/12text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/13head.txt b/crates/vim/test_data/test_delete_in_sentence/13head.txt deleted file mode 100644 index 40d2f2ab55..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/13head.txt +++ /dev/null @@ -1 +0,0 @@ -0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/14mode.txt b/crates/vim/test_data/test_delete_in_sentence/14mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/14mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/15text.txt b/crates/vim/test_data/test_delete_in_sentence/15text.txt deleted file mode 100644 index 40eacc6489..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/15text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/16head.txt b/crates/vim/test_data/test_delete_in_sentence/16head.txt deleted file mode 100644 index 40d2f2ab55..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/16head.txt +++ /dev/null @@ -1 +0,0 @@ -0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/17mode.txt b/crates/vim/test_data/test_delete_in_sentence/17mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/17mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/18text.txt b/crates/vim/test_data/test_delete_in_sentence/18text.txt deleted file mode 100644 index 40eacc6489..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/18text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/19head.txt b/crates/vim/test_data/test_delete_in_sentence/19head.txt deleted file mode 100644 index 40d2f2ab55..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/19head.txt +++ /dev/null @@ -1 +0,0 @@ -0,17 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/1head.txt b/crates/vim/test_data/test_delete_in_sentence/1head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/1head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/20mode.txt b/crates/vim/test_data/test_delete_in_sentence/20mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/20mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/21text.txt b/crates/vim/test_data/test_delete_in_sentence/21text.txt deleted file mode 100644 index ef17a5f7fb..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/21text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Fox Jumps!Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/22head.txt b/crates/vim/test_data/test_delete_in_sentence/22head.txt deleted file mode 100644 index 17beb4d83f..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/22head.txt +++ /dev/null @@ -1 +0,0 @@ -0,27 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/23mode.txt b/crates/vim/test_data/test_delete_in_sentence/23mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/23mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/24text.txt b/crates/vim/test_data/test_delete_in_sentence/24text.txt deleted file mode 100644 index d81c10974f..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/24text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/25head.txt b/crates/vim/test_data/test_delete_in_sentence/25head.txt deleted file mode 100644 index 17beb4d83f..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/25head.txt +++ /dev/null @@ -1 +0,0 @@ -0,27 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/26mode.txt b/crates/vim/test_data/test_delete_in_sentence/26mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/26mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/27text.txt b/crates/vim/test_data/test_delete_in_sentence/27text.txt deleted file mode 100644 index d81c10974f..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/27text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/28head.txt b/crates/vim/test_data/test_delete_in_sentence/28head.txt deleted file mode 100644 index 17beb4d83f..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/28head.txt +++ /dev/null @@ -1 +0,0 @@ -0,27 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/29mode.txt b/crates/vim/test_data/test_delete_in_sentence/29mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/29mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/2mode.txt b/crates/vim/test_data/test_delete_in_sentence/2mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/2mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/30text.txt b/crates/vim/test_data/test_delete_in_sentence/30text.txt deleted file mode 100644 index d81c10974f..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/30text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown? Fox Jumps! \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/31head.txt b/crates/vim/test_data/test_delete_in_sentence/31head.txt deleted file mode 100644 index 17beb4d83f..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/31head.txt +++ /dev/null @@ -1 +0,0 @@ -0,27 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/32mode.txt b/crates/vim/test_data/test_delete_in_sentence/32mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/32mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/33text.txt b/crates/vim/test_data/test_delete_in_sentence/33text.txt deleted file mode 100644 index 561ed0800c..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/33text.txt +++ /dev/null @@ -1,2 +0,0 @@ - The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/34head.txt b/crates/vim/test_data/test_delete_in_sentence/34head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/34head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/35mode.txt b/crates/vim/test_data/test_delete_in_sentence/35mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/35mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/36text.txt b/crates/vim/test_data/test_delete_in_sentence/36text.txt deleted file mode 100644 index 561ed0800c..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/36text.txt +++ /dev/null @@ -1,2 +0,0 @@ - The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/37head.txt b/crates/vim/test_data/test_delete_in_sentence/37head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/37head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/38mode.txt b/crates/vim/test_data/test_delete_in_sentence/38mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/38mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/39text.txt b/crates/vim/test_data/test_delete_in_sentence/39text.txt deleted file mode 100644 index 561ed0800c..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/39text.txt +++ /dev/null @@ -1,2 +0,0 @@ - The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/3text.txt b/crates/vim/test_data/test_delete_in_sentence/3text.txt deleted file mode 100644 index fd36730b8d..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/3text.txt +++ /dev/null @@ -1 +0,0 @@ - Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/40head.txt b/crates/vim/test_data/test_delete_in_sentence/40head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/40head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/41mode.txt b/crates/vim/test_data/test_delete_in_sentence/41mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/41mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/42text.txt b/crates/vim/test_data/test_delete_in_sentence/42text.txt deleted file mode 100644 index 561ed0800c..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/42text.txt +++ /dev/null @@ -1,2 +0,0 @@ - The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/43head.txt b/crates/vim/test_data/test_delete_in_sentence/43head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/43head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/44mode.txt b/crates/vim/test_data/test_delete_in_sentence/44mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/44mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/45text.txt b/crates/vim/test_data/test_delete_in_sentence/45text.txt deleted file mode 100644 index 561ed0800c..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/45text.txt +++ /dev/null @@ -1,2 +0,0 @@ - The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/46head.txt b/crates/vim/test_data/test_delete_in_sentence/46head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/46head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/47mode.txt b/crates/vim/test_data/test_delete_in_sentence/47mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/47mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/48text.txt b/crates/vim/test_data/test_delete_in_sentence/48text.txt deleted file mode 100644 index bbf10c5693..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/48text.txt +++ /dev/null @@ -1,4 +0,0 @@ -The quick brown -fox jumps over -the lazy dog.The quick -brown fox jumps over diff --git a/crates/vim/test_data/test_delete_in_sentence/49head.txt b/crates/vim/test_data/test_delete_in_sentence/49head.txt deleted file mode 100644 index 26560586d9..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/49head.txt +++ /dev/null @@ -1 +0,0 @@ -2,13 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/4head.txt b/crates/vim/test_data/test_delete_in_sentence/4head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/4head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/50mode.txt b/crates/vim/test_data/test_delete_in_sentence/50mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/50mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/51text.txt b/crates/vim/test_data/test_delete_in_sentence/51text.txt deleted file mode 100644 index 0b535bbbaf..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/51text.txt +++ /dev/null @@ -1,3 +0,0 @@ -The quick brown -fox jumps over -the lazy dog. diff --git a/crates/vim/test_data/test_delete_in_sentence/52head.txt b/crates/vim/test_data/test_delete_in_sentence/52head.txt deleted file mode 100644 index 26560586d9..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/52head.txt +++ /dev/null @@ -1 +0,0 @@ -2,13 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/53mode.txt b/crates/vim/test_data/test_delete_in_sentence/53mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/53mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/54text.txt b/crates/vim/test_data/test_delete_in_sentence/54text.txt deleted file mode 100644 index 0b535bbbaf..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/54text.txt +++ /dev/null @@ -1,3 +0,0 @@ -The quick brown -fox jumps over -the lazy dog. diff --git a/crates/vim/test_data/test_delete_in_sentence/55head.txt b/crates/vim/test_data/test_delete_in_sentence/55head.txt deleted file mode 100644 index 26560586d9..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/55head.txt +++ /dev/null @@ -1 +0,0 @@ -2,13 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/56mode.txt b/crates/vim/test_data/test_delete_in_sentence/56mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/56mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/5mode.txt b/crates/vim/test_data/test_delete_in_sentence/5mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/5mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/6text.txt b/crates/vim/test_data/test_delete_in_sentence/6text.txt deleted file mode 100644 index fd36730b8d..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/6text.txt +++ /dev/null @@ -1 +0,0 @@ - Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/7head.txt b/crates/vim/test_data/test_delete_in_sentence/7head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/7head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/8mode.txt b/crates/vim/test_data/test_delete_in_sentence/8mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/8mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence/9text.txt b/crates/vim/test_data/test_delete_in_sentence/9text.txt deleted file mode 100644 index 9e4b6dcc50..0000000000 --- a/crates/vim/test_data/test_delete_in_sentence/9text.txt +++ /dev/null @@ -1 +0,0 @@ -The quick brown?Fox Jumps! Over the lazy. \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word.json b/crates/vim/test_data/test_delete_in_word.json new file mode 100644 index 0000000000..1960dce67a --- /dev/null +++ b/crates/vim/test_data/test_delete_in_word.json @@ -0,0 +1 @@ +[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":3}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":14}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox- over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":6}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Head":{"row":10,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":11,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":14}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":2}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Head":{"row":10,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":11,"column":0}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/0text.txt b/crates/vim/test_data/test_delete_in_word/0text.txt deleted file mode 100644 index 481389e676..0000000000 --- a/crates/vim/test_data/test_delete_in_word/0text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/100head.txt b/crates/vim/test_data/test_delete_in_word/100head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_delete_in_word/100head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/101mode.txt b/crates/vim/test_data/test_delete_in_word/101mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/101mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/102text.txt b/crates/vim/test_data/test_delete_in_word/102text.txt deleted file mode 100644 index d90b2c4e48..0000000000 --- a/crates/vim/test_data/test_delete_in_word/102text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/103head.txt b/crates/vim/test_data/test_delete_in_word/103head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_delete_in_word/103head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/104mode.txt b/crates/vim/test_data/test_delete_in_word/104mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/104mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/105text.txt b/crates/vim/test_data/test_delete_in_word/105text.txt deleted file mode 100644 index d90b2c4e48..0000000000 --- a/crates/vim/test_data/test_delete_in_word/105text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/106head.txt b/crates/vim/test_data/test_delete_in_word/106head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_delete_in_word/106head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/107mode.txt b/crates/vim/test_data/test_delete_in_word/107mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/107mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/108text.txt b/crates/vim/test_data/test_delete_in_word/108text.txt deleted file mode 100644 index d90b2c4e48..0000000000 --- a/crates/vim/test_data/test_delete_in_word/108text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/109head.txt b/crates/vim/test_data/test_delete_in_word/109head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_delete_in_word/109head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/10head.txt b/crates/vim/test_data/test_delete_in_word/10head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_delete_in_word/10head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/110mode.txt b/crates/vim/test_data/test_delete_in_word/110mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/110mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/111text.txt b/crates/vim/test_data/test_delete_in_word/111text.txt deleted file mode 100644 index 7d13d92d35..0000000000 --- a/crates/vim/test_data/test_delete_in_word/111text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quickbrown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/112head.txt b/crates/vim/test_data/test_delete_in_word/112head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_delete_in_word/112head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/113mode.txt b/crates/vim/test_data/test_delete_in_word/113mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/113mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/114text.txt b/crates/vim/test_data/test_delete_in_word/114text.txt deleted file mode 100644 index 95b76ce25b..0000000000 --- a/crates/vim/test_data/test_delete_in_word/114text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/115head.txt b/crates/vim/test_data/test_delete_in_word/115head.txt deleted file mode 100644 index c5a50698dd..0000000000 --- a/crates/vim/test_data/test_delete_in_word/115head.txt +++ /dev/null @@ -1 +0,0 @@ -6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/116mode.txt b/crates/vim/test_data/test_delete_in_word/116mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/116mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/117text.txt b/crates/vim/test_data/test_delete_in_word/117text.txt deleted file mode 100644 index 805a5ebe4c..0000000000 --- a/crates/vim/test_data/test_delete_in_word/117text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/118head.txt b/crates/vim/test_data/test_delete_in_word/118head.txt deleted file mode 100644 index afce6fe58c..0000000000 --- a/crates/vim/test_data/test_delete_in_word/118head.txt +++ /dev/null @@ -1 +0,0 @@ -6,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/119mode.txt b/crates/vim/test_data/test_delete_in_word/119mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/119mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/11mode.txt b/crates/vim/test_data/test_delete_in_word/11mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/11mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/120text.txt b/crates/vim/test_data/test_delete_in_word/120text.txt deleted file mode 100644 index 1d797e34b8..0000000000 --- a/crates/vim/test_data/test_delete_in_word/120text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/121head.txt b/crates/vim/test_data/test_delete_in_word/121head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_delete_in_word/121head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/122mode.txt b/crates/vim/test_data/test_delete_in_word/122mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/122mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/123text.txt b/crates/vim/test_data/test_delete_in_word/123text.txt deleted file mode 100644 index 8a35adfa26..0000000000 --- a/crates/vim/test_data/test_delete_in_word/123text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/124head.txt b/crates/vim/test_data/test_delete_in_word/124head.txt deleted file mode 100644 index ded56a5926..0000000000 --- a/crates/vim/test_data/test_delete_in_word/124head.txt +++ /dev/null @@ -1 +0,0 @@ -8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/125mode.txt b/crates/vim/test_data/test_delete_in_word/125mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/125mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/126text.txt b/crates/vim/test_data/test_delete_in_word/126text.txt deleted file mode 100644 index 26e9d0a1b6..0000000000 --- a/crates/vim/test_data/test_delete_in_word/126text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - -fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/127head.txt b/crates/vim/test_data/test_delete_in_word/127head.txt deleted file mode 100644 index 8e69e0ad79..0000000000 --- a/crates/vim/test_data/test_delete_in_word/127head.txt +++ /dev/null @@ -1 +0,0 @@ -9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/128mode.txt b/crates/vim/test_data/test_delete_in_word/128mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/128mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/129text.txt b/crates/vim/test_data/test_delete_in_word/129text.txt deleted file mode 100644 index c2c9c0edb0..0000000000 --- a/crates/vim/test_data/test_delete_in_word/129text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/12text.txt b/crates/vim/test_data/test_delete_in_word/12text.txt deleted file mode 100644 index 38c6ccbeac..0000000000 --- a/crates/vim/test_data/test_delete_in_word/12text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/130head.txt b/crates/vim/test_data/test_delete_in_word/130head.txt deleted file mode 100644 index edb3544f9a..0000000000 --- a/crates/vim/test_data/test_delete_in_word/130head.txt +++ /dev/null @@ -1 +0,0 @@ -9,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/131mode.txt b/crates/vim/test_data/test_delete_in_word/131mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/131mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/132text.txt b/crates/vim/test_data/test_delete_in_word/132text.txt deleted file mode 100644 index 4b2cd80611..0000000000 --- a/crates/vim/test_data/test_delete_in_word/132text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/133head.txt b/crates/vim/test_data/test_delete_in_word/133head.txt deleted file mode 100644 index 63ee4f53ac..0000000000 --- a/crates/vim/test_data/test_delete_in_word/133head.txt +++ /dev/null @@ -1 +0,0 @@ -10,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/134mode.txt b/crates/vim/test_data/test_delete_in_word/134mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/134mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/135text.txt b/crates/vim/test_data/test_delete_in_word/135text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_delete_in_word/135text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/136head.txt b/crates/vim/test_data/test_delete_in_word/136head.txt deleted file mode 100644 index 94dbddc699..0000000000 --- a/crates/vim/test_data/test_delete_in_word/136head.txt +++ /dev/null @@ -1 +0,0 @@ -11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/137mode.txt b/crates/vim/test_data/test_delete_in_word/137mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/137mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/13head.txt b/crates/vim/test_data/test_delete_in_word/13head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_delete_in_word/13head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/14mode.txt b/crates/vim/test_data/test_delete_in_word/14mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/14mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/15text.txt b/crates/vim/test_data/test_delete_in_word/15text.txt deleted file mode 100644 index 282218da91..0000000000 --- a/crates/vim/test_data/test_delete_in_word/15text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumpsover -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/16head.txt b/crates/vim/test_data/test_delete_in_word/16head.txt deleted file mode 100644 index bd712da63a..0000000000 --- a/crates/vim/test_data/test_delete_in_word/16head.txt +++ /dev/null @@ -1 +0,0 @@ -1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/17mode.txt b/crates/vim/test_data/test_delete_in_word/17mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/17mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/18text.txt b/crates/vim/test_data/test_delete_in_word/18text.txt deleted file mode 100644 index 0b042b7c39..0000000000 --- a/crates/vim/test_data/test_delete_in_word/18text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/19head.txt b/crates/vim/test_data/test_delete_in_word/19head.txt deleted file mode 100644 index 06ce34087d..0000000000 --- a/crates/vim/test_data/test_delete_in_word/19head.txt +++ /dev/null @@ -1 +0,0 @@ -2,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/1head.txt b/crates/vim/test_data/test_delete_in_word/1head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_delete_in_word/1head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/20mode.txt b/crates/vim/test_data/test_delete_in_word/20mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/20mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/21text.txt b/crates/vim/test_data/test_delete_in_word/21text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_delete_in_word/21text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/22head.txt b/crates/vim/test_data/test_delete_in_word/22head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_delete_in_word/22head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/23mode.txt b/crates/vim/test_data/test_delete_in_word/23mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/23mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/24text.txt b/crates/vim/test_data/test_delete_in_word/24text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_delete_in_word/24text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/25head.txt b/crates/vim/test_data/test_delete_in_word/25head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_delete_in_word/25head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/26mode.txt b/crates/vim/test_data/test_delete_in_word/26mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/26mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/27text.txt b/crates/vim/test_data/test_delete_in_word/27text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_delete_in_word/27text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/28head.txt b/crates/vim/test_data/test_delete_in_word/28head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_delete_in_word/28head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/29mode.txt b/crates/vim/test_data/test_delete_in_word/29mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/29mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/2mode.txt b/crates/vim/test_data/test_delete_in_word/2mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/2mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/30text.txt b/crates/vim/test_data/test_delete_in_word/30text.txt deleted file mode 100644 index 609747299b..0000000000 --- a/crates/vim/test_data/test_delete_in_word/30text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - --quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/31head.txt b/crates/vim/test_data/test_delete_in_word/31head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_delete_in_word/31head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/32mode.txt b/crates/vim/test_data/test_delete_in_word/32mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/32mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/33text.txt b/crates/vim/test_data/test_delete_in_word/33text.txt deleted file mode 100644 index 12ede0f513..0000000000 --- a/crates/vim/test_data/test_delete_in_word/33text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -Thequick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/34head.txt b/crates/vim/test_data/test_delete_in_word/34head.txt deleted file mode 100644 index c20df71d5e..0000000000 --- a/crates/vim/test_data/test_delete_in_word/34head.txt +++ /dev/null @@ -1 +0,0 @@ -6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/35mode.txt b/crates/vim/test_data/test_delete_in_word/35mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/35mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/36text.txt b/crates/vim/test_data/test_delete_in_word/36text.txt deleted file mode 100644 index 3b3f900a05..0000000000 --- a/crates/vim/test_data/test_delete_in_word/36text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The- brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/37head.txt b/crates/vim/test_data/test_delete_in_word/37head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_delete_in_word/37head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/38mode.txt b/crates/vim/test_data/test_delete_in_word/38mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/38mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/39text.txt b/crates/vim/test_data/test_delete_in_word/39text.txt deleted file mode 100644 index 3b3f900a05..0000000000 --- a/crates/vim/test_data/test_delete_in_word/39text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The- brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/3text.txt b/crates/vim/test_data/test_delete_in_word/3text.txt deleted file mode 100644 index 481389e676..0000000000 --- a/crates/vim/test_data/test_delete_in_word/3text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/40head.txt b/crates/vim/test_data/test_delete_in_word/40head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_delete_in_word/40head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/41mode.txt b/crates/vim/test_data/test_delete_in_word/41mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/41mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/42text.txt b/crates/vim/test_data/test_delete_in_word/42text.txt deleted file mode 100644 index 7d13d92d35..0000000000 --- a/crates/vim/test_data/test_delete_in_word/42text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quickbrown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/43head.txt b/crates/vim/test_data/test_delete_in_word/43head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_delete_in_word/43head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/44mode.txt b/crates/vim/test_data/test_delete_in_word/44mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/44mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/45text.txt b/crates/vim/test_data/test_delete_in_word/45text.txt deleted file mode 100644 index 95b76ce25b..0000000000 --- a/crates/vim/test_data/test_delete_in_word/45text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/46head.txt b/crates/vim/test_data/test_delete_in_word/46head.txt deleted file mode 100644 index c5a50698dd..0000000000 --- a/crates/vim/test_data/test_delete_in_word/46head.txt +++ /dev/null @@ -1 +0,0 @@ -6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/47mode.txt b/crates/vim/test_data/test_delete_in_word/47mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/47mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/48text.txt b/crates/vim/test_data/test_delete_in_word/48text.txt deleted file mode 100644 index 805a5ebe4c..0000000000 --- a/crates/vim/test_data/test_delete_in_word/48text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/49head.txt b/crates/vim/test_data/test_delete_in_word/49head.txt deleted file mode 100644 index afce6fe58c..0000000000 --- a/crates/vim/test_data/test_delete_in_word/49head.txt +++ /dev/null @@ -1 +0,0 @@ -6,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/4head.txt b/crates/vim/test_data/test_delete_in_word/4head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_delete_in_word/4head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/50mode.txt b/crates/vim/test_data/test_delete_in_word/50mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/50mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/51text.txt b/crates/vim/test_data/test_delete_in_word/51text.txt deleted file mode 100644 index 1d797e34b8..0000000000 --- a/crates/vim/test_data/test_delete_in_word/51text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/52head.txt b/crates/vim/test_data/test_delete_in_word/52head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_delete_in_word/52head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/53mode.txt b/crates/vim/test_data/test_delete_in_word/53mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/53mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/54text.txt b/crates/vim/test_data/test_delete_in_word/54text.txt deleted file mode 100644 index 8a35adfa26..0000000000 --- a/crates/vim/test_data/test_delete_in_word/54text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/55head.txt b/crates/vim/test_data/test_delete_in_word/55head.txt deleted file mode 100644 index ded56a5926..0000000000 --- a/crates/vim/test_data/test_delete_in_word/55head.txt +++ /dev/null @@ -1 +0,0 @@ -8,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/56mode.txt b/crates/vim/test_data/test_delete_in_word/56mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/56mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/57text.txt b/crates/vim/test_data/test_delete_in_word/57text.txt deleted file mode 100644 index 26e9d0a1b6..0000000000 --- a/crates/vim/test_data/test_delete_in_word/57text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - -fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/58head.txt b/crates/vim/test_data/test_delete_in_word/58head.txt deleted file mode 100644 index 8e69e0ad79..0000000000 --- a/crates/vim/test_data/test_delete_in_word/58head.txt +++ /dev/null @@ -1 +0,0 @@ -9,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/59mode.txt b/crates/vim/test_data/test_delete_in_word/59mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/59mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/5mode.txt b/crates/vim/test_data/test_delete_in_word/5mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/5mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/60text.txt b/crates/vim/test_data/test_delete_in_word/60text.txt deleted file mode 100644 index 816bf47cf0..0000000000 --- a/crates/vim/test_data/test_delete_in_word/60text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox- over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/61head.txt b/crates/vim/test_data/test_delete_in_word/61head.txt deleted file mode 100644 index e0460d1bc5..0000000000 --- a/crates/vim/test_data/test_delete_in_word/61head.txt +++ /dev/null @@ -1 +0,0 @@ -9,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/62mode.txt b/crates/vim/test_data/test_delete_in_word/62mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/62mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/63text.txt b/crates/vim/test_data/test_delete_in_word/63text.txt deleted file mode 100644 index 4b2cd80611..0000000000 --- a/crates/vim/test_data/test_delete_in_word/63text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/64head.txt b/crates/vim/test_data/test_delete_in_word/64head.txt deleted file mode 100644 index 63ee4f53ac..0000000000 --- a/crates/vim/test_data/test_delete_in_word/64head.txt +++ /dev/null @@ -1 +0,0 @@ -10,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/65mode.txt b/crates/vim/test_data/test_delete_in_word/65mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/65mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/66text.txt b/crates/vim/test_data/test_delete_in_word/66text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_delete_in_word/66text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/67head.txt b/crates/vim/test_data/test_delete_in_word/67head.txt deleted file mode 100644 index 94dbddc699..0000000000 --- a/crates/vim/test_data/test_delete_in_word/67head.txt +++ /dev/null @@ -1 +0,0 @@ -11,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/68mode.txt b/crates/vim/test_data/test_delete_in_word/68mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/68mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/69text.txt b/crates/vim/test_data/test_delete_in_word/69text.txt deleted file mode 100644 index 481389e676..0000000000 --- a/crates/vim/test_data/test_delete_in_word/69text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/6text.txt b/crates/vim/test_data/test_delete_in_word/6text.txt deleted file mode 100644 index 35fd5c89ba..0000000000 --- a/crates/vim/test_data/test_delete_in_word/6text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/70head.txt b/crates/vim/test_data/test_delete_in_word/70head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_delete_in_word/70head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/71mode.txt b/crates/vim/test_data/test_delete_in_word/71mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/71mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/72text.txt b/crates/vim/test_data/test_delete_in_word/72text.txt deleted file mode 100644 index 481389e676..0000000000 --- a/crates/vim/test_data/test_delete_in_word/72text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/73head.txt b/crates/vim/test_data/test_delete_in_word/73head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_delete_in_word/73head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/74mode.txt b/crates/vim/test_data/test_delete_in_word/74mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/74mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/75text.txt b/crates/vim/test_data/test_delete_in_word/75text.txt deleted file mode 100644 index 35fd5c89ba..0000000000 --- a/crates/vim/test_data/test_delete_in_word/75text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/76head.txt b/crates/vim/test_data/test_delete_in_word/76head.txt deleted file mode 100644 index 8b208cec2d..0000000000 --- a/crates/vim/test_data/test_delete_in_word/76head.txt +++ /dev/null @@ -1 +0,0 @@ -0,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/77mode.txt b/crates/vim/test_data/test_delete_in_word/77mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/77mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/78text.txt b/crates/vim/test_data/test_delete_in_word/78text.txt deleted file mode 100644 index 38c6ccbeac..0000000000 --- a/crates/vim/test_data/test_delete_in_word/78text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/79head.txt b/crates/vim/test_data/test_delete_in_word/79head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_delete_in_word/79head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/7head.txt b/crates/vim/test_data/test_delete_in_word/7head.txt deleted file mode 100644 index 8b208cec2d..0000000000 --- a/crates/vim/test_data/test_delete_in_word/7head.txt +++ /dev/null @@ -1 +0,0 @@ -0,14 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/80mode.txt b/crates/vim/test_data/test_delete_in_word/80mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/80mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/81text.txt b/crates/vim/test_data/test_delete_in_word/81text.txt deleted file mode 100644 index 38c6ccbeac..0000000000 --- a/crates/vim/test_data/test_delete_in_word/81text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/82head.txt b/crates/vim/test_data/test_delete_in_word/82head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_delete_in_word/82head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/83mode.txt b/crates/vim/test_data/test_delete_in_word/83mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/83mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/84text.txt b/crates/vim/test_data/test_delete_in_word/84text.txt deleted file mode 100644 index 282218da91..0000000000 --- a/crates/vim/test_data/test_delete_in_word/84text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumpsover -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/85head.txt b/crates/vim/test_data/test_delete_in_word/85head.txt deleted file mode 100644 index bd712da63a..0000000000 --- a/crates/vim/test_data/test_delete_in_word/85head.txt +++ /dev/null @@ -1 +0,0 @@ -1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/86mode.txt b/crates/vim/test_data/test_delete_in_word/86mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/86mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/87text.txt b/crates/vim/test_data/test_delete_in_word/87text.txt deleted file mode 100644 index 0b042b7c39..0000000000 --- a/crates/vim/test_data/test_delete_in_word/87text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/88head.txt b/crates/vim/test_data/test_delete_in_word/88head.txt deleted file mode 100644 index 06ce34087d..0000000000 --- a/crates/vim/test_data/test_delete_in_word/88head.txt +++ /dev/null @@ -1 +0,0 @@ -2,11 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/89mode.txt b/crates/vim/test_data/test_delete_in_word/89mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/89mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/8mode.txt b/crates/vim/test_data/test_delete_in_word/8mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/8mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/90text.txt b/crates/vim/test_data/test_delete_in_word/90text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_delete_in_word/90text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/91head.txt b/crates/vim/test_data/test_delete_in_word/91head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_delete_in_word/91head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/92mode.txt b/crates/vim/test_data/test_delete_in_word/92mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/92mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/93text.txt b/crates/vim/test_data/test_delete_in_word/93text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_delete_in_word/93text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/94head.txt b/crates/vim/test_data/test_delete_in_word/94head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_delete_in_word/94head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/95mode.txt b/crates/vim/test_data/test_delete_in_word/95mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/95mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/96text.txt b/crates/vim/test_data/test_delete_in_word/96text.txt deleted file mode 100644 index e971227436..0000000000 --- a/crates/vim/test_data/test_delete_in_word/96text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/97head.txt b/crates/vim/test_data/test_delete_in_word/97head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_delete_in_word/97head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/98mode.txt b/crates/vim/test_data/test_delete_in_word/98mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_delete_in_word/98mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word/99text.txt b/crates/vim/test_data/test_delete_in_word/99text.txt deleted file mode 100644 index d90b2c4e48..0000000000 --- a/crates/vim/test_data/test_delete_in_word/99text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_delete_in_word/9text.txt b/crates/vim/test_data/test_delete_in_word/9text.txt deleted file mode 100644 index 38c6ccbeac..0000000000 --- a/crates/vim/test_data/test_delete_in_word/9text.txt +++ /dev/null @@ -1,12 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - - - fox-jumps over -the lazy dog - diff --git a/crates/vim/test_data/test_e.json b/crates/vim/test_data/test_e.json new file mode 100644 index 0000000000..bd3c513846 --- /dev/null +++ b/crates/vim/test_data/test_e.json @@ -0,0 +1 @@ +[{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":8}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":13}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":8}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":13}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_gg.json b/crates/vim/test_data/test_gg.json new file mode 100644 index 0000000000..7ce13ba6cb --- /dev/null +++ b/crates/vim/test_data/test_gg.json @@ -0,0 +1 @@ +[{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":0,"column":5}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":0,"column":5}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_h.json b/crates/vim/test_data/test_h.json new file mode 100644 index 0000000000..7626f1b121 --- /dev/null +++ b/crates/vim/test_data/test_h.json @@ -0,0 +1 @@ +[{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":4}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_insert_end_of_line.json b/crates/vim/test_data/test_insert_end_of_line.json new file mode 100644 index 0000000000..887ba4dabc --- /dev/null +++ b/crates/vim/test_data/test_insert_end_of_line.json @@ -0,0 +1 @@ +[{"Text":"\nThe quick\nbrown fox "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nThe quick\nbrown fox "},{"Head":{"row":1,"column":9}},{"Mode":"Insert"},{"Text":"\nThe quick\nbrown fox "},{"Head":{"row":2,"column":10}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_insert_line_above.json b/crates/vim/test_data/test_insert_line_above.json new file mode 100644 index 0000000000..0dc54b6f88 --- /dev/null +++ b/crates/vim/test_data/test_insert_line_above.json @@ -0,0 +1 @@ +[{"Text":"\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nThe quick"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nThe quick\nbrown fox\njumps over"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick\n\nbrown fox\njumps over"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick\nbrown fox\n\njumps over"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick\n\n\nbrown fox"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_j.json b/crates/vim/test_data/test_j.json new file mode 100644 index 0000000000..b3202075f5 --- /dev/null +++ b/crates/vim/test_data/test_j.json @@ -0,0 +1 @@ +[{"Text":"The quick brown\nfox jumps"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps"},{"Head":{"row":1,"column":5}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps"},{"Head":{"row":1,"column":8}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_jump_to_end.json b/crates/vim/test_data/test_jump_to_end.json new file mode 100644 index 0000000000..71bd396efe --- /dev/null +++ b/crates/vim/test_data/test_jump_to_end.json @@ -0,0 +1 @@ +[{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":3,"column":16}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_jump_to_line_boundaries.json b/crates/vim/test_data/test_jump_to_line_boundaries.json new file mode 100644 index 0000000000..48dd51a219 --- /dev/null +++ b/crates/vim/test_data/test_jump_to_line_boundaries.json @@ -0,0 +1 @@ +[{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_k.json b/crates/vim/test_data/test_k.json new file mode 100644 index 0000000000..d99237d71a --- /dev/null +++ b/crates/vim/test_data/test_k.json @@ -0,0 +1 @@ +[{"Text":"The quick\nbrown fox jumps"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Head":{"row":0,"column":5}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Head":{"row":0,"column":7}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_l.json b/crates/vim/test_data/test_l.json new file mode 100644 index 0000000000..33f70e2ee9 --- /dev/null +++ b/crates/vim/test_data/test_l.json @@ -0,0 +1 @@ +[{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":1}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":6}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":1}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_neovim.json b/crates/vim/test_data/test_neovim.json new file mode 100644 index 0000000000..678e4f7852 --- /dev/null +++ b/crates/vim/test_data/test_neovim.json @@ -0,0 +1 @@ +[{"Text":"test"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_neovim/0text.txt b/crates/vim/test_data/test_neovim/0text.txt deleted file mode 100644 index 30d74d2584..0000000000 --- a/crates/vim/test_data/test_neovim/0text.txt +++ /dev/null @@ -1 +0,0 @@ -test \ No newline at end of file diff --git a/crates/vim/test_data/test_neovim/1head.txt b/crates/vim/test_data/test_neovim/1head.txt deleted file mode 100644 index 7de346d2f5..0000000000 --- a/crates/vim/test_data/test_neovim/1head.txt +++ /dev/null @@ -1 +0,0 @@ -0,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_neovim/2mode.txt b/crates/vim/test_data/test_neovim/2mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_neovim/2mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_repeated_cb.json b/crates/vim/test_data/test_repeated_cb.json new file mode 100644 index 0000000000..357e37a8c9 --- /dev/null +++ b/crates/vim/test_data/test_repeated_cb.json @@ -0,0 +1 @@ +[{"Text":"The ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The quick n\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick \n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\njumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox -over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsover\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-ver\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The n\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The \n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\njumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsver\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"n\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The \nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The quick jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nover\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox ver\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox \nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"n\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The quick -over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\nover\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nver\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"n\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The -over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The quick over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\nver\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_repeated_ce.json b/crates/vim/test_data/test_repeated_ce.json new file mode 100644 index 0000000000..32394077e6 --- /dev/null +++ b/crates/vim/test_data/test_repeated_ce.json @@ -0,0 +1 @@ +[{"Text":" quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qu brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quick\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox -over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qu\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quick jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps- lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qu jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quick-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick browover\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\nover\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nover\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox \nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps- dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":" jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qu-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickover\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quover\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quick\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_repeated_cj.json b/crates/vim/test_data/test_repeated_cj.json new file mode 100644 index 0000000000..f6c81c9a4a --- /dev/null +++ b/crates/vim/test_data/test_repeated_cj.json @@ -0,0 +1 @@ +[{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_repeated_cl.json b/crates/vim/test_data/test_repeated_cl.json new file mode 100644 index 0000000000..7eaf17b24a --- /dev/null +++ b/crates/vim/test_data/test_repeated_cl.json @@ -0,0 +1 @@ +[{"Text":"he quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quck brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickbrown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox umps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsover\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-ver\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-oer\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nhe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"e quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quk brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickrown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nx jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox mps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsver\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-er\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-or\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\ne lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":" quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qu brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox ps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpser\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-r\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qubrown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickwn\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\njumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox s-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsr\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nlazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"uick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qurown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickn\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\numps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox -over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_repeated_word.json b/crates/vim/test_data/test_repeated_word.json new file mode 100644 index 0000000000..330ada2013 --- /dev/null +++ b/crates/vim/test_data/test_repeated_word.json @@ -0,0 +1 @@ +[{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_w.json b/crates/vim/test_data/test_w.json new file mode 100644 index 0000000000..73954548f9 --- /dev/null +++ b/crates/vim/test_data/test_w.json @@ -0,0 +1 @@ +[{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":10}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":10}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/0text.txt b/crates/vim/test_data/test_word_text_object/0text.txt deleted file mode 100644 index 456c2b1038..0000000000 --- a/crates/vim/test_data/test_word_text_object/0text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/100head.txt b/crates/vim/test_data/test_word_text_object/100head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_word_text_object/100head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/101mode.txt b/crates/vim/test_data/test_word_text_object/101mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/101mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/102text.txt b/crates/vim/test_data/test_word_text_object/102text.txt deleted file mode 100644 index fb34ebac01..0000000000 --- a/crates/vim/test_data/test_word_text_object/102text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/103head.txt b/crates/vim/test_data/test_word_text_object/103head.txt deleted file mode 100644 index c5a50698dd..0000000000 --- a/crates/vim/test_data/test_word_text_object/103head.txt +++ /dev/null @@ -1 +0,0 @@ -6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/104mode.txt b/crates/vim/test_data/test_word_text_object/104mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/104mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/105text.txt b/crates/vim/test_data/test_word_text_object/105text.txt deleted file mode 100644 index de6c722fe0..0000000000 --- a/crates/vim/test_data/test_word_text_object/105text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/106head.txt b/crates/vim/test_data/test_word_text_object/106head.txt deleted file mode 100644 index d933eb81fa..0000000000 --- a/crates/vim/test_data/test_word_text_object/106head.txt +++ /dev/null @@ -1 +0,0 @@ -6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/107mode.txt b/crates/vim/test_data/test_word_text_object/107mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/107mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/108text.txt b/crates/vim/test_data/test_word_text_object/108text.txt deleted file mode 100644 index 6d1c944902..0000000000 --- a/crates/vim/test_data/test_word_text_object/108text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown -fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/109head.txt b/crates/vim/test_data/test_word_text_object/109head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_word_text_object/109head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/10head.txt b/crates/vim/test_data/test_word_text_object/10head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_word_text_object/10head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/110mode.txt b/crates/vim/test_data/test_word_text_object/110mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/110mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/111text.txt b/crates/vim/test_data/test_word_text_object/111text.txt deleted file mode 100644 index a4effc421e..0000000000 --- a/crates/vim/test_data/test_word_text_object/111text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/112head.txt b/crates/vim/test_data/test_word_text_object/112head.txt deleted file mode 100644 index 60ada3d5d5..0000000000 --- a/crates/vim/test_data/test_word_text_object/112head.txt +++ /dev/null @@ -1 +0,0 @@ -7,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/113mode.txt b/crates/vim/test_data/test_word_text_object/113mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/113mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/114text.txt b/crates/vim/test_data/test_word_text_object/114text.txt deleted file mode 100644 index 41651c8e63..0000000000 --- a/crates/vim/test_data/test_word_text_object/114text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/115head.txt b/crates/vim/test_data/test_word_text_object/115head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_word_text_object/115head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/116mode.txt b/crates/vim/test_data/test_word_text_object/116mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/116mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/117text.txt b/crates/vim/test_data/test_word_text_object/117text.txt deleted file mode 100644 index 41651c8e63..0000000000 --- a/crates/vim/test_data/test_word_text_object/117text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/118head.txt b/crates/vim/test_data/test_word_text_object/118head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_word_text_object/118head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/119mode.txt b/crates/vim/test_data/test_word_text_object/119mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/119mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/11mode.txt b/crates/vim/test_data/test_word_text_object/11mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/11mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/120text.txt b/crates/vim/test_data/test_word_text_object/120text.txt deleted file mode 100644 index f4e4cfe812..0000000000 --- a/crates/vim/test_data/test_word_text_object/120text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/121head.txt b/crates/vim/test_data/test_word_text_object/121head.txt deleted file mode 100644 index 5f7b20f0d9..0000000000 --- a/crates/vim/test_data/test_word_text_object/121head.txt +++ /dev/null @@ -1 +0,0 @@ -0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/122mode.txt b/crates/vim/test_data/test_word_text_object/122mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/122mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/123text.txt b/crates/vim/test_data/test_word_text_object/123text.txt deleted file mode 100644 index 1a715d7a9d..0000000000 --- a/crates/vim/test_data/test_word_text_object/123text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/124head.txt b/crates/vim/test_data/test_word_text_object/124head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_word_text_object/124head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/125mode.txt b/crates/vim/test_data/test_word_text_object/125mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/125mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/126text.txt b/crates/vim/test_data/test_word_text_object/126text.txt deleted file mode 100644 index 1a715d7a9d..0000000000 --- a/crates/vim/test_data/test_word_text_object/126text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/127head.txt b/crates/vim/test_data/test_word_text_object/127head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_word_text_object/127head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/128mode.txt b/crates/vim/test_data/test_word_text_object/128mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/128mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/129text.txt b/crates/vim/test_data/test_word_text_object/129text.txt deleted file mode 100644 index cfeeac1a14..0000000000 --- a/crates/vim/test_data/test_word_text_object/129text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/12text.txt b/crates/vim/test_data/test_word_text_object/12text.txt deleted file mode 100644 index bffcedd2db..0000000000 --- a/crates/vim/test_data/test_word_text_object/12text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/130head.txt b/crates/vim/test_data/test_word_text_object/130head.txt deleted file mode 100644 index bd712da63a..0000000000 --- a/crates/vim/test_data/test_word_text_object/130head.txt +++ /dev/null @@ -1 +0,0 @@ -1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/131mode.txt b/crates/vim/test_data/test_word_text_object/131mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/131mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/132text.txt b/crates/vim/test_data/test_word_text_object/132text.txt deleted file mode 100644 index b57b97d090..0000000000 --- a/crates/vim/test_data/test_word_text_object/132text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/133head.txt b/crates/vim/test_data/test_word_text_object/133head.txt deleted file mode 100644 index 28ce8bcc5c..0000000000 --- a/crates/vim/test_data/test_word_text_object/133head.txt +++ /dev/null @@ -1 +0,0 @@ -2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/134mode.txt b/crates/vim/test_data/test_word_text_object/134mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/134mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/135text.txt b/crates/vim/test_data/test_word_text_object/135text.txt deleted file mode 100644 index e2405acd79..0000000000 --- a/crates/vim/test_data/test_word_text_object/135text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/136head.txt b/crates/vim/test_data/test_word_text_object/136head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_word_text_object/136head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/137mode.txt b/crates/vim/test_data/test_word_text_object/137mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/137mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/138text.txt b/crates/vim/test_data/test_word_text_object/138text.txt deleted file mode 100644 index e2405acd79..0000000000 --- a/crates/vim/test_data/test_word_text_object/138text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/139head.txt b/crates/vim/test_data/test_word_text_object/139head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_word_text_object/139head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/13head.txt b/crates/vim/test_data/test_word_text_object/13head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_word_text_object/13head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/140mode.txt b/crates/vim/test_data/test_word_text_object/140mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/140mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/141text.txt b/crates/vim/test_data/test_word_text_object/141text.txt deleted file mode 100644 index e075f5e01a..0000000000 --- a/crates/vim/test_data/test_word_text_object/141text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - --quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/142head.txt b/crates/vim/test_data/test_word_text_object/142head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_word_text_object/142head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/143mode.txt b/crates/vim/test_data/test_word_text_object/143mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/143mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/144text.txt b/crates/vim/test_data/test_word_text_object/144text.txt deleted file mode 100644 index 6042949b9a..0000000000 --- a/crates/vim/test_data/test_word_text_object/144text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - --quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/145head.txt b/crates/vim/test_data/test_word_text_object/145head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_word_text_object/145head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/146mode.txt b/crates/vim/test_data/test_word_text_object/146mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/146mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/147text.txt b/crates/vim/test_data/test_word_text_object/147text.txt deleted file mode 100644 index edc3de8e10..0000000000 --- a/crates/vim/test_data/test_word_text_object/147text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -Thequick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/148head.txt b/crates/vim/test_data/test_word_text_object/148head.txt deleted file mode 100644 index c20df71d5e..0000000000 --- a/crates/vim/test_data/test_word_text_object/148head.txt +++ /dev/null @@ -1 +0,0 @@ -6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/149mode.txt b/crates/vim/test_data/test_word_text_object/149mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/149mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/14mode.txt b/crates/vim/test_data/test_word_text_object/14mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/14mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/150text.txt b/crates/vim/test_data/test_word_text_object/150text.txt deleted file mode 100644 index 44972e7628..0000000000 --- a/crates/vim/test_data/test_word_text_object/150text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/151head.txt b/crates/vim/test_data/test_word_text_object/151head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_word_text_object/151head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/152mode.txt b/crates/vim/test_data/test_word_text_object/152mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/152mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/153text.txt b/crates/vim/test_data/test_word_text_object/153text.txt deleted file mode 100644 index 44972e7628..0000000000 --- a/crates/vim/test_data/test_word_text_object/153text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/154head.txt b/crates/vim/test_data/test_word_text_object/154head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_word_text_object/154head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/155mode.txt b/crates/vim/test_data/test_word_text_object/155mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/155mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/156text.txt b/crates/vim/test_data/test_word_text_object/156text.txt deleted file mode 100644 index d7c8eebb49..0000000000 --- a/crates/vim/test_data/test_word_text_object/156text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/157head.txt b/crates/vim/test_data/test_word_text_object/157head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_word_text_object/157head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/158mode.txt b/crates/vim/test_data/test_word_text_object/158mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/158mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/159text.txt b/crates/vim/test_data/test_word_text_object/159text.txt deleted file mode 100644 index d7c8eebb49..0000000000 --- a/crates/vim/test_data/test_word_text_object/159text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/15text.txt b/crates/vim/test_data/test_word_text_object/15text.txt deleted file mode 100644 index 3abea644f1..0000000000 --- a/crates/vim/test_data/test_word_text_object/15text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumpsover -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/160head.txt b/crates/vim/test_data/test_word_text_object/160head.txt deleted file mode 100644 index c5a50698dd..0000000000 --- a/crates/vim/test_data/test_word_text_object/160head.txt +++ /dev/null @@ -1 +0,0 @@ -6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/161mode.txt b/crates/vim/test_data/test_word_text_object/161mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/161mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/162text.txt b/crates/vim/test_data/test_word_text_object/162text.txt deleted file mode 100644 index f0f447c8fa..0000000000 --- a/crates/vim/test_data/test_word_text_object/162text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/163head.txt b/crates/vim/test_data/test_word_text_object/163head.txt deleted file mode 100644 index d933eb81fa..0000000000 --- a/crates/vim/test_data/test_word_text_object/163head.txt +++ /dev/null @@ -1 +0,0 @@ -6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/164mode.txt b/crates/vim/test_data/test_word_text_object/164mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/164mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/165text.txt b/crates/vim/test_data/test_word_text_object/165text.txt deleted file mode 100644 index 3fcf6c5682..0000000000 --- a/crates/vim/test_data/test_word_text_object/165text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown --jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/166head.txt b/crates/vim/test_data/test_word_text_object/166head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_word_text_object/166head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/167mode.txt b/crates/vim/test_data/test_word_text_object/167mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/167mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/168text.txt b/crates/vim/test_data/test_word_text_object/168text.txt deleted file mode 100644 index 88098b63df..0000000000 --- a/crates/vim/test_data/test_word_text_object/168text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/169head.txt b/crates/vim/test_data/test_word_text_object/169head.txt deleted file mode 100644 index 6cf0fedea6..0000000000 --- a/crates/vim/test_data/test_word_text_object/169head.txt +++ /dev/null @@ -1 +0,0 @@ -7,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/16head.txt b/crates/vim/test_data/test_word_text_object/16head.txt deleted file mode 100644 index bd712da63a..0000000000 --- a/crates/vim/test_data/test_word_text_object/16head.txt +++ /dev/null @@ -1 +0,0 @@ -1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/170mode.txt b/crates/vim/test_data/test_word_text_object/170mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/170mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/171text.txt b/crates/vim/test_data/test_word_text_object/171text.txt deleted file mode 100644 index 41651c8e63..0000000000 --- a/crates/vim/test_data/test_word_text_object/171text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/172head.txt b/crates/vim/test_data/test_word_text_object/172head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_word_text_object/172head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/173mode.txt b/crates/vim/test_data/test_word_text_object/173mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/173mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/174text.txt b/crates/vim/test_data/test_word_text_object/174text.txt deleted file mode 100644 index 41651c8e63..0000000000 --- a/crates/vim/test_data/test_word_text_object/174text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/175head.txt b/crates/vim/test_data/test_word_text_object/175head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_word_text_object/175head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/176mode.txt b/crates/vim/test_data/test_word_text_object/176mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/176mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/177text.txt b/crates/vim/test_data/test_word_text_object/177text.txt deleted file mode 100644 index f4e4cfe812..0000000000 --- a/crates/vim/test_data/test_word_text_object/177text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/178head.txt b/crates/vim/test_data/test_word_text_object/178head.txt deleted file mode 100644 index 5f7b20f0d9..0000000000 --- a/crates/vim/test_data/test_word_text_object/178head.txt +++ /dev/null @@ -1 +0,0 @@ -0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/179mode.txt b/crates/vim/test_data/test_word_text_object/179mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/179mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/17mode.txt b/crates/vim/test_data/test_word_text_object/17mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/17mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/180text.txt b/crates/vim/test_data/test_word_text_object/180text.txt deleted file mode 100644 index 1a715d7a9d..0000000000 --- a/crates/vim/test_data/test_word_text_object/180text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/181head.txt b/crates/vim/test_data/test_word_text_object/181head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_word_text_object/181head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/182mode.txt b/crates/vim/test_data/test_word_text_object/182mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/182mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/183text.txt b/crates/vim/test_data/test_word_text_object/183text.txt deleted file mode 100644 index 1a715d7a9d..0000000000 --- a/crates/vim/test_data/test_word_text_object/183text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/184head.txt b/crates/vim/test_data/test_word_text_object/184head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_word_text_object/184head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/185mode.txt b/crates/vim/test_data/test_word_text_object/185mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/185mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/186text.txt b/crates/vim/test_data/test_word_text_object/186text.txt deleted file mode 100644 index cfeeac1a14..0000000000 --- a/crates/vim/test_data/test_word_text_object/186text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/187head.txt b/crates/vim/test_data/test_word_text_object/187head.txt deleted file mode 100644 index bd712da63a..0000000000 --- a/crates/vim/test_data/test_word_text_object/187head.txt +++ /dev/null @@ -1 +0,0 @@ -1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/188mode.txt b/crates/vim/test_data/test_word_text_object/188mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/188mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/189text.txt b/crates/vim/test_data/test_word_text_object/189text.txt deleted file mode 100644 index b57b97d090..0000000000 --- a/crates/vim/test_data/test_word_text_object/189text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/18text.txt b/crates/vim/test_data/test_word_text_object/18text.txt deleted file mode 100644 index ebac2acd25..0000000000 --- a/crates/vim/test_data/test_word_text_object/18text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/190head.txt b/crates/vim/test_data/test_word_text_object/190head.txt deleted file mode 100644 index 28ce8bcc5c..0000000000 --- a/crates/vim/test_data/test_word_text_object/190head.txt +++ /dev/null @@ -1 +0,0 @@ -2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/191mode.txt b/crates/vim/test_data/test_word_text_object/191mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/191mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/192text.txt b/crates/vim/test_data/test_word_text_object/192text.txt deleted file mode 100644 index e2405acd79..0000000000 --- a/crates/vim/test_data/test_word_text_object/192text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/193head.txt b/crates/vim/test_data/test_word_text_object/193head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_word_text_object/193head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/194mode.txt b/crates/vim/test_data/test_word_text_object/194mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/194mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/195text.txt b/crates/vim/test_data/test_word_text_object/195text.txt deleted file mode 100644 index e2405acd79..0000000000 --- a/crates/vim/test_data/test_word_text_object/195text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/196head.txt b/crates/vim/test_data/test_word_text_object/196head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_word_text_object/196head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/197mode.txt b/crates/vim/test_data/test_word_text_object/197mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/197mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/198text.txt b/crates/vim/test_data/test_word_text_object/198text.txt deleted file mode 100644 index 4363975ac2..0000000000 --- a/crates/vim/test_data/test_word_text_object/198text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/199head.txt b/crates/vim/test_data/test_word_text_object/199head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_word_text_object/199head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/19head.txt b/crates/vim/test_data/test_word_text_object/19head.txt deleted file mode 100644 index 28ce8bcc5c..0000000000 --- a/crates/vim/test_data/test_word_text_object/19head.txt +++ /dev/null @@ -1 +0,0 @@ -2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/1head.txt b/crates/vim/test_data/test_word_text_object/1head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_word_text_object/1head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/200mode.txt b/crates/vim/test_data/test_word_text_object/200mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/200mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/201text.txt b/crates/vim/test_data/test_word_text_object/201text.txt deleted file mode 100644 index 7c0186083e..0000000000 --- a/crates/vim/test_data/test_word_text_object/201text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/202head.txt b/crates/vim/test_data/test_word_text_object/202head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_word_text_object/202head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/203mode.txt b/crates/vim/test_data/test_word_text_object/203mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/203mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/204text.txt b/crates/vim/test_data/test_word_text_object/204text.txt deleted file mode 100644 index 7c0186083e..0000000000 --- a/crates/vim/test_data/test_word_text_object/204text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/205head.txt b/crates/vim/test_data/test_word_text_object/205head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_word_text_object/205head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/206mode.txt b/crates/vim/test_data/test_word_text_object/206mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/206mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/207text.txt b/crates/vim/test_data/test_word_text_object/207text.txt deleted file mode 100644 index 7c0186083e..0000000000 --- a/crates/vim/test_data/test_word_text_object/207text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/208head.txt b/crates/vim/test_data/test_word_text_object/208head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_word_text_object/208head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/209mode.txt b/crates/vim/test_data/test_word_text_object/209mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/209mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/20mode.txt b/crates/vim/test_data/test_word_text_object/20mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/20mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/210text.txt b/crates/vim/test_data/test_word_text_object/210text.txt deleted file mode 100644 index 7c0186083e..0000000000 --- a/crates/vim/test_data/test_word_text_object/210text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/211head.txt b/crates/vim/test_data/test_word_text_object/211head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_word_text_object/211head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/212mode.txt b/crates/vim/test_data/test_word_text_object/212mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/212mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/213text.txt b/crates/vim/test_data/test_word_text_object/213text.txt deleted file mode 100644 index d7c8eebb49..0000000000 --- a/crates/vim/test_data/test_word_text_object/213text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/214head.txt b/crates/vim/test_data/test_word_text_object/214head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_word_text_object/214head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/215mode.txt b/crates/vim/test_data/test_word_text_object/215mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/215mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/216text.txt b/crates/vim/test_data/test_word_text_object/216text.txt deleted file mode 100644 index d7c8eebb49..0000000000 --- a/crates/vim/test_data/test_word_text_object/216text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/217head.txt b/crates/vim/test_data/test_word_text_object/217head.txt deleted file mode 100644 index c5a50698dd..0000000000 --- a/crates/vim/test_data/test_word_text_object/217head.txt +++ /dev/null @@ -1 +0,0 @@ -6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/218mode.txt b/crates/vim/test_data/test_word_text_object/218mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/218mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/219text.txt b/crates/vim/test_data/test_word_text_object/219text.txt deleted file mode 100644 index 1cbb0c4272..0000000000 --- a/crates/vim/test_data/test_word_text_object/219text.txt +++ /dev/null @@ -1,8 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/21text.txt b/crates/vim/test_data/test_word_text_object/21text.txt deleted file mode 100644 index 3b33deb2ae..0000000000 --- a/crates/vim/test_data/test_word_text_object/21text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/220head.txt b/crates/vim/test_data/test_word_text_object/220head.txt deleted file mode 100644 index d933eb81fa..0000000000 --- a/crates/vim/test_data/test_word_text_object/220head.txt +++ /dev/null @@ -1 +0,0 @@ -6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/221mode.txt b/crates/vim/test_data/test_word_text_object/221mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/221mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/222text.txt b/crates/vim/test_data/test_word_text_object/222text.txt deleted file mode 100644 index bc43fca8a1..0000000000 --- a/crates/vim/test_data/test_word_text_object/222text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/223head.txt b/crates/vim/test_data/test_word_text_object/223head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_word_text_object/223head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/224mode.txt b/crates/vim/test_data/test_word_text_object/224mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/224mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/225text.txt b/crates/vim/test_data/test_word_text_object/225text.txt deleted file mode 100644 index 3fa4fd5f45..0000000000 --- a/crates/vim/test_data/test_word_text_object/225text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/226head.txt b/crates/vim/test_data/test_word_text_object/226head.txt deleted file mode 100644 index 60ada3d5d5..0000000000 --- a/crates/vim/test_data/test_word_text_object/226head.txt +++ /dev/null @@ -1 +0,0 @@ -7,2 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/227mode.txt b/crates/vim/test_data/test_word_text_object/227mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/227mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/228text.txt b/crates/vim/test_data/test_word_text_object/228text.txt deleted file mode 100644 index 456c2b1038..0000000000 --- a/crates/vim/test_data/test_word_text_object/228text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/229head.txt b/crates/vim/test_data/test_word_text_object/229head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_word_text_object/229head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/22head.txt b/crates/vim/test_data/test_word_text_object/22head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_word_text_object/22head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/230mode.txt b/crates/vim/test_data/test_word_text_object/230mode.txt deleted file mode 100644 index ab75e91dc4..0000000000 --- a/crates/vim/test_data/test_word_text_object/230mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Normal" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/231text.txt b/crates/vim/test_data/test_word_text_object/231text.txt deleted file mode 100644 index 286752a955..0000000000 --- a/crates/vim/test_data/test_word_text_object/231text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/23mode.txt b/crates/vim/test_data/test_word_text_object/23mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/23mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/24text.txt b/crates/vim/test_data/test_word_text_object/24text.txt deleted file mode 100644 index 3b33deb2ae..0000000000 --- a/crates/vim/test_data/test_word_text_object/24text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/25head.txt b/crates/vim/test_data/test_word_text_object/25head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_word_text_object/25head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/26mode.txt b/crates/vim/test_data/test_word_text_object/26mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/26mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/27text.txt b/crates/vim/test_data/test_word_text_object/27text.txt deleted file mode 100644 index 3b33deb2ae..0000000000 --- a/crates/vim/test_data/test_word_text_object/27text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/28head.txt b/crates/vim/test_data/test_word_text_object/28head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_word_text_object/28head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/29mode.txt b/crates/vim/test_data/test_word_text_object/29mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/29mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/2mode.txt b/crates/vim/test_data/test_word_text_object/2mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/2mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/30text.txt b/crates/vim/test_data/test_word_text_object/30text.txt deleted file mode 100644 index 6042949b9a..0000000000 --- a/crates/vim/test_data/test_word_text_object/30text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - --quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/31head.txt b/crates/vim/test_data/test_word_text_object/31head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_word_text_object/31head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/32mode.txt b/crates/vim/test_data/test_word_text_object/32mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/32mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/33text.txt b/crates/vim/test_data/test_word_text_object/33text.txt deleted file mode 100644 index edc3de8e10..0000000000 --- a/crates/vim/test_data/test_word_text_object/33text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -Thequick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/34head.txt b/crates/vim/test_data/test_word_text_object/34head.txt deleted file mode 100644 index c20df71d5e..0000000000 --- a/crates/vim/test_data/test_word_text_object/34head.txt +++ /dev/null @@ -1 +0,0 @@ -6,3 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/35mode.txt b/crates/vim/test_data/test_word_text_object/35mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/35mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/36text.txt b/crates/vim/test_data/test_word_text_object/36text.txt deleted file mode 100644 index dedd4d92b7..0000000000 --- a/crates/vim/test_data/test_word_text_object/36text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The- brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/37head.txt b/crates/vim/test_data/test_word_text_object/37head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_word_text_object/37head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/38mode.txt b/crates/vim/test_data/test_word_text_object/38mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/38mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/39text.txt b/crates/vim/test_data/test_word_text_object/39text.txt deleted file mode 100644 index dedd4d92b7..0000000000 --- a/crates/vim/test_data/test_word_text_object/39text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The- brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/3text.txt b/crates/vim/test_data/test_word_text_object/3text.txt deleted file mode 100644 index 456c2b1038..0000000000 --- a/crates/vim/test_data/test_word_text_object/3text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/40head.txt b/crates/vim/test_data/test_word_text_object/40head.txt deleted file mode 100644 index 95fb9c638e..0000000000 --- a/crates/vim/test_data/test_word_text_object/40head.txt +++ /dev/null @@ -1 +0,0 @@ -6,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/41mode.txt b/crates/vim/test_data/test_word_text_object/41mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/41mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/42text.txt b/crates/vim/test_data/test_word_text_object/42text.txt deleted file mode 100644 index 5bb4f4effb..0000000000 --- a/crates/vim/test_data/test_word_text_object/42text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quickbrown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/43head.txt b/crates/vim/test_data/test_word_text_object/43head.txt deleted file mode 100644 index da809253d8..0000000000 --- a/crates/vim/test_data/test_word_text_object/43head.txt +++ /dev/null @@ -1 +0,0 @@ -6,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/44mode.txt b/crates/vim/test_data/test_word_text_object/44mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/44mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/45text.txt b/crates/vim/test_data/test_word_text_object/45text.txt deleted file mode 100644 index fb34ebac01..0000000000 --- a/crates/vim/test_data/test_word_text_object/45text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/46head.txt b/crates/vim/test_data/test_word_text_object/46head.txt deleted file mode 100644 index c5a50698dd..0000000000 --- a/crates/vim/test_data/test_word_text_object/46head.txt +++ /dev/null @@ -1 +0,0 @@ -6,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/47mode.txt b/crates/vim/test_data/test_word_text_object/47mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/47mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/48text.txt b/crates/vim/test_data/test_word_text_object/48text.txt deleted file mode 100644 index de6c722fe0..0000000000 --- a/crates/vim/test_data/test_word_text_object/48text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/49head.txt b/crates/vim/test_data/test_word_text_object/49head.txt deleted file mode 100644 index d933eb81fa..0000000000 --- a/crates/vim/test_data/test_word_text_object/49head.txt +++ /dev/null @@ -1 +0,0 @@ -6,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/4head.txt b/crates/vim/test_data/test_word_text_object/4head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_word_text_object/4head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/50mode.txt b/crates/vim/test_data/test_word_text_object/50mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/50mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/51text.txt b/crates/vim/test_data/test_word_text_object/51text.txt deleted file mode 100644 index 6d1c944902..0000000000 --- a/crates/vim/test_data/test_word_text_object/51text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown -fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/52head.txt b/crates/vim/test_data/test_word_text_object/52head.txt deleted file mode 100644 index 72c23ba506..0000000000 --- a/crates/vim/test_data/test_word_text_object/52head.txt +++ /dev/null @@ -1 +0,0 @@ -7,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/53mode.txt b/crates/vim/test_data/test_word_text_object/53mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/53mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/54text.txt b/crates/vim/test_data/test_word_text_object/54text.txt deleted file mode 100644 index 0f7af08f72..0000000000 --- a/crates/vim/test_data/test_word_text_object/54text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox- over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/55head.txt b/crates/vim/test_data/test_word_text_object/55head.txt deleted file mode 100644 index 6cf0fedea6..0000000000 --- a/crates/vim/test_data/test_word_text_object/55head.txt +++ /dev/null @@ -1 +0,0 @@ -7,6 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/56mode.txt b/crates/vim/test_data/test_word_text_object/56mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/56mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/57text.txt b/crates/vim/test_data/test_word_text_object/57text.txt deleted file mode 100644 index 456c2b1038..0000000000 --- a/crates/vim/test_data/test_word_text_object/57text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/58head.txt b/crates/vim/test_data/test_word_text_object/58head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_word_text_object/58head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/59mode.txt b/crates/vim/test_data/test_word_text_object/59mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/59mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/5mode.txt b/crates/vim/test_data/test_word_text_object/5mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/5mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/60text.txt b/crates/vim/test_data/test_word_text_object/60text.txt deleted file mode 100644 index 456c2b1038..0000000000 --- a/crates/vim/test_data/test_word_text_object/60text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/61head.txt b/crates/vim/test_data/test_word_text_object/61head.txt deleted file mode 100644 index 352f6067e6..0000000000 --- a/crates/vim/test_data/test_word_text_object/61head.txt +++ /dev/null @@ -1 +0,0 @@ -0,10 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/62mode.txt b/crates/vim/test_data/test_word_text_object/62mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/62mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/63text.txt b/crates/vim/test_data/test_word_text_object/63text.txt deleted file mode 100644 index 286752a955..0000000000 --- a/crates/vim/test_data/test_word_text_object/63text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/64head.txt b/crates/vim/test_data/test_word_text_object/64head.txt deleted file mode 100644 index 5f7b20f0d9..0000000000 --- a/crates/vim/test_data/test_word_text_object/64head.txt +++ /dev/null @@ -1 +0,0 @@ -0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/65mode.txt b/crates/vim/test_data/test_word_text_object/65mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/65mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/66text.txt b/crates/vim/test_data/test_word_text_object/66text.txt deleted file mode 100644 index bffcedd2db..0000000000 --- a/crates/vim/test_data/test_word_text_object/66text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/67head.txt b/crates/vim/test_data/test_word_text_object/67head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_word_text_object/67head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/68mode.txt b/crates/vim/test_data/test_word_text_object/68mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/68mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/69text.txt b/crates/vim/test_data/test_word_text_object/69text.txt deleted file mode 100644 index bffcedd2db..0000000000 --- a/crates/vim/test_data/test_word_text_object/69text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/6text.txt b/crates/vim/test_data/test_word_text_object/6text.txt deleted file mode 100644 index 286752a955..0000000000 --- a/crates/vim/test_data/test_word_text_object/6text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/70head.txt b/crates/vim/test_data/test_word_text_object/70head.txt deleted file mode 100644 index 28f7acb8c9..0000000000 --- a/crates/vim/test_data/test_word_text_object/70head.txt +++ /dev/null @@ -1 +0,0 @@ -1,4 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/71mode.txt b/crates/vim/test_data/test_word_text_object/71mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/71mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/72text.txt b/crates/vim/test_data/test_word_text_object/72text.txt deleted file mode 100644 index 3abea644f1..0000000000 --- a/crates/vim/test_data/test_word_text_object/72text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumpsover -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/73head.txt b/crates/vim/test_data/test_word_text_object/73head.txt deleted file mode 100644 index bd712da63a..0000000000 --- a/crates/vim/test_data/test_word_text_object/73head.txt +++ /dev/null @@ -1 +0,0 @@ -1,9 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/74mode.txt b/crates/vim/test_data/test_word_text_object/74mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/74mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/75text.txt b/crates/vim/test_data/test_word_text_object/75text.txt deleted file mode 100644 index ebac2acd25..0000000000 --- a/crates/vim/test_data/test_word_text_object/75text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/76head.txt b/crates/vim/test_data/test_word_text_object/76head.txt deleted file mode 100644 index 28ce8bcc5c..0000000000 --- a/crates/vim/test_data/test_word_text_object/76head.txt +++ /dev/null @@ -1 +0,0 @@ -2,12 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/77mode.txt b/crates/vim/test_data/test_word_text_object/77mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/77mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/78text.txt b/crates/vim/test_data/test_word_text_object/78text.txt deleted file mode 100644 index 3b33deb2ae..0000000000 --- a/crates/vim/test_data/test_word_text_object/78text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/79head.txt b/crates/vim/test_data/test_word_text_object/79head.txt deleted file mode 100644 index 7cad756336..0000000000 --- a/crates/vim/test_data/test_word_text_object/79head.txt +++ /dev/null @@ -1 +0,0 @@ -3,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/7head.txt b/crates/vim/test_data/test_word_text_object/7head.txt deleted file mode 100644 index 5f7b20f0d9..0000000000 --- a/crates/vim/test_data/test_word_text_object/7head.txt +++ /dev/null @@ -1 +0,0 @@ -0,15 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/80mode.txt b/crates/vim/test_data/test_word_text_object/80mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/80mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/81text.txt b/crates/vim/test_data/test_word_text_object/81text.txt deleted file mode 100644 index 3b33deb2ae..0000000000 --- a/crates/vim/test_data/test_word_text_object/81text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/82head.txt b/crates/vim/test_data/test_word_text_object/82head.txt deleted file mode 100644 index b26cd1f1d3..0000000000 --- a/crates/vim/test_data/test_word_text_object/82head.txt +++ /dev/null @@ -1 +0,0 @@ -4,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/83mode.txt b/crates/vim/test_data/test_word_text_object/83mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/83mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/84text.txt b/crates/vim/test_data/test_word_text_object/84text.txt deleted file mode 100644 index 3b33deb2ae..0000000000 --- a/crates/vim/test_data/test_word_text_object/84text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/85head.txt b/crates/vim/test_data/test_word_text_object/85head.txt deleted file mode 100644 index 880fda949a..0000000000 --- a/crates/vim/test_data/test_word_text_object/85head.txt +++ /dev/null @@ -1 +0,0 @@ -5,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/86mode.txt b/crates/vim/test_data/test_word_text_object/86mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/86mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/87text.txt b/crates/vim/test_data/test_word_text_object/87text.txt deleted file mode 100644 index a647811a26..0000000000 --- a/crates/vim/test_data/test_word_text_object/87text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/88head.txt b/crates/vim/test_data/test_word_text_object/88head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_word_text_object/88head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/89mode.txt b/crates/vim/test_data/test_word_text_object/89mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/89mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/8mode.txt b/crates/vim/test_data/test_word_text_object/8mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/8mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/90text.txt b/crates/vim/test_data/test_word_text_object/90text.txt deleted file mode 100644 index a647811a26..0000000000 --- a/crates/vim/test_data/test_word_text_object/90text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/91head.txt b/crates/vim/test_data/test_word_text_object/91head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_word_text_object/91head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/92mode.txt b/crates/vim/test_data/test_word_text_object/92mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/92mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/93text.txt b/crates/vim/test_data/test_word_text_object/93text.txt deleted file mode 100644 index a647811a26..0000000000 --- a/crates/vim/test_data/test_word_text_object/93text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/94head.txt b/crates/vim/test_data/test_word_text_object/94head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_word_text_object/94head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/95mode.txt b/crates/vim/test_data/test_word_text_object/95mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/95mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/96text.txt b/crates/vim/test_data/test_word_text_object/96text.txt deleted file mode 100644 index a647811a26..0000000000 --- a/crates/vim/test_data/test_word_text_object/96text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - - brown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/97head.txt b/crates/vim/test_data/test_word_text_object/97head.txt deleted file mode 100644 index f7c508be16..0000000000 --- a/crates/vim/test_data/test_word_text_object/97head.txt +++ /dev/null @@ -1 +0,0 @@ -6,0 \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/98mode.txt b/crates/vim/test_data/test_word_text_object/98mode.txt deleted file mode 100644 index d0d2c59887..0000000000 --- a/crates/vim/test_data/test_word_text_object/98mode.txt +++ /dev/null @@ -1 +0,0 @@ -"Insert" \ No newline at end of file diff --git a/crates/vim/test_data/test_word_text_object/99text.txt b/crates/vim/test_data/test_word_text_object/99text.txt deleted file mode 100644 index 5bb4f4effb..0000000000 --- a/crates/vim/test_data/test_word_text_object/99text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox jumps over -the lazy dog - - - -The-quickbrown - fox-jumps over -the lazy dog diff --git a/crates/vim/test_data/test_word_text_object/9text.txt b/crates/vim/test_data/test_word_text_object/9text.txt deleted file mode 100644 index bffcedd2db..0000000000 --- a/crates/vim/test_data/test_word_text_object/9text.txt +++ /dev/null @@ -1,9 +0,0 @@ -The quick brown -fox over -the lazy dog - - - -The-quick brown - fox-jumps over -the lazy dog From f90b693ed52c54d24598d760398c2710422a418c Mon Sep 17 00:00:00 2001 From: K Simmons Date: Sat, 8 Oct 2022 23:49:04 -0700 Subject: [PATCH 03/24] fix some warnings and merge errors --- Cargo.lock | 7630 +++++++++++++++++ .../neovim_backed_test_context.rs | 18 +- 2 files changed, 7631 insertions(+), 17 deletions(-) create mode 100644 Cargo.lock diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000000..1da2348ff9 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7630 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "activity_indicator" +version = "0.1.0" +dependencies = [ + "auto_update", + "editor", + "futures 0.3.24", + "gpui", + "language", + "project", + "settings", + "smallvec", + "util", + "workspace", +] + +[[package]] +name = "addr2line" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.7", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +dependencies = [ + "memchr", +] + +[[package]] +name = "alacritty_config" +version = "0.1.1-dev" +source = "git+https://github.com/zed-industries/alacritty?rev=a51dbe25d67e84d6ed4261e640d3954fbdd9be45#a51dbe25d67e84d6ed4261e640d3954fbdd9be45" +dependencies = [ + "log", + "serde", + "serde_yaml", +] + +[[package]] +name = "alacritty_config_derive" +version = "0.2.1-dev" +source = "git+https://github.com/zed-industries/alacritty?rev=a51dbe25d67e84d6ed4261e640d3954fbdd9be45#a51dbe25d67e84d6ed4261e640d3954fbdd9be45" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "alacritty_terminal" +version = "0.17.1-dev" +source = "git+https://github.com/zed-industries/alacritty?rev=a51dbe25d67e84d6ed4261e640d3954fbdd9be45#a51dbe25d67e84d6ed4261e640d3954fbdd9be45" +dependencies = [ + "alacritty_config", + "alacritty_config_derive", + "base64", + "bitflags", + "dirs 4.0.0", + "libc", + "log", + "mio 0.6.23", + "mio-anonymous-pipes", + "mio-extras", + "miow 0.3.7", + "nix", + "parking_lot 0.12.1", + "regex-automata", + "serde", + "serde_yaml", + "signal-hook", + "signal-hook-mio", + "unicode-width", + "vte", + "winapi 0.3.9", +] + +[[package]] +name = "ambient-authority" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec8ad6edb4840b78c5c3d88de606b22252d552b55f3a4699fbb10fc070ec3049" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "anyhow" +version = "1.0.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + +[[package]] +name = "ascii" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" + +[[package]] +name = "assets" +version = "0.1.0" +dependencies = [ + "anyhow", + "gpui", + "rust-embed", +] + +[[package]] +name = "async-broadcast" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90622698a1218e0b2fb846c97b5f19a0831f6baddee73d9454156365ccfa473b" +dependencies = [ + "easy-parallel", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-compat" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b48b4ff0c2026db683dea961cd8ea874737f56cffca86fa84415eaddc51c00d" +dependencies = [ + "futures-core", + "futures-io", + "once_cell", + "pin-project-lite 0.2.9", + "tokio", +] + +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +dependencies = [ + "flate2", + "futures-core", + "futures-io", + "memchr", + "pin-project-lite 0.2.9", +] + +[[package]] +name = "async-executor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "once_cell", + "slab", +] + +[[package]] +name = "async-fs" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock", + "autocfg 1.1.0", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-io" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7" +dependencies = [ + "autocfg 1.1.0", + "concurrent-queue", + "futures-lite", + "libc", + "log", + "once_cell", + "parking", + "polling", + "slab", + "socket2", + "waker-fn", + "winapi 0.3.9", +] + +[[package]] +name = "async-lock" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-net" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f" +dependencies = [ + "async-io", + "autocfg 1.1.0", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-pipe" +version = "0.1.3" +source = "git+https://github.com/zed-industries/async-pipe-rs?rev=82d00a04211cf4e1236029aa03e6b6ce2a74c553#82d00a04211cf4e1236029aa03e6b6ce2a74c553" +dependencies = [ + "futures 0.3.24", + "log", +] + +[[package]] +name = "async-process" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" +dependencies = [ + "async-io", + "autocfg 1.1.0", + "blocking", + "cfg-if 1.0.0", + "event-listener", + "futures-lite", + "libc", + "once_cell", + "signal-hook", + "winapi 0.3.9", +] + +[[package]] +name = "async-recursion" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async-stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" +dependencies = [ + "async-stream-impl", + "futures-core", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async-task" +version = "4.0.3" +source = "git+https://github.com/zed-industries/async-task?rev=341b57d6de98cdfd7b418567b8de2022ca993a6e#341b57d6de98cdfd7b418567b8de2022ca993a6e" + +[[package]] +name = "async-tls" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f23d769dbf1838d5df5156e7b1ad404f4c463d1ac2c6aeb6cd943630f8a8400" +dependencies = [ + "futures-core", + "futures-io", + "rustls 0.19.1", + "webpki 0.21.4", + "webpki-roots 0.21.1", +] + +[[package]] +name = "async-trait" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async-tungstenite" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5682ea0913e5c20780fe5785abacb85a411e7437bf52a1bedb93ddb3972cb8dd" +dependencies = [ + "async-tls", + "futures-io", + "futures-util", + "log", + "pin-project-lite 0.2.9", + "tungstenite 0.16.0", +] + +[[package]] +name = "atoi" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7c57d12312ff59c811c0643f4d80830505833c9ffaebd193d819392b265be8e" +dependencies = [ + "num-traits", +] + +[[package]] +name = "atomic" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "atomic-waker" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "auto_update" +version = "0.1.0" +dependencies = [ + "anyhow", + "client", + "gpui", + "isahc", + "lazy_static", + "log", + "menu", + "project", + "serde", + "serde_json", + "settings", + "smol", + "tempdir", + "theme", + "util", + "workspace", +] + +[[package]] +name = "autocfg" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "axum" +version = "0.5.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e3356844c4d6a6d6467b8da2cffb4a2820be256f50a3a386c9d152bab31043" +dependencies = [ + "async-trait", + "axum-core", + "base64", + "bitflags", + "bytes 1.2.1", + "futures-util", + "headers", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite 0.2.9", + "serde", + "serde_json", + "serde_urlencoded", + "sha-1 0.10.0", + "sync_wrapper", + "tokio", + "tokio-tungstenite", + "tower", + "tower-http", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f0c0a60006f2a293d82d571f635042a72edf927539b7685bd62d361963839b" +dependencies = [ + "async-trait", + "bytes 1.2.1", + "futures-util", + "http", + "http-body", + "mime", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-extra" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69034b3b0fd97923eee2ce8a47540edb21e07f48f87f67d44bb4271cec622bdb" +dependencies = [ + "axum", + "bytes 1.2.1", + "futures-util", + "http", + "mime", + "pin-project-lite 0.2.9", + "serde", + "serde_json", + "tokio", + "tower", + "tower-http", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" +dependencies = [ + "addr2line", + "cc", + "cfg-if 1.0.0", + "libc", + "miniz_oxide 0.5.4", + "object 0.29.0", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "base64ct" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2b2456fd614d856680dcd9fcc660a51a820fa09daef2e49772b56a193c8474" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.59.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8" +dependencies = [ + "bitflags", + "cexpr", + "clang-sys", + "clap 2.34.0", + "env_logger", + "lazy_static", + "lazycell", + "log", + "peeking_take_while", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "which", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" +dependencies = [ + "async-channel", + "async-task", + "atomic-waker", + "fastrand", + "futures-lite", + "once_cell", +] + +[[package]] +name = "breadcrumbs" +version = "0.1.0" +dependencies = [ + "collections", + "editor", + "gpui", + "itertools", + "language", + "project", + "search", + "settings", + "theme", + "workspace", +] + +[[package]] +name = "bromberg_sl2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ed88064f69518b7e3ea50ecfc1b61d43f19248618a377b95ae5c8b611134d4d" +dependencies = [ + "digest 0.9.0", + "lazy_static", + "rayon", + "seq-macro", +] + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "memchr", +] + +[[package]] +name = "bumpalo" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" + +[[package]] +name = "bytemuck" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +dependencies = [ + "byteorder", + "iovec", +] + +[[package]] +name = "bytes" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cache-padded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" + +[[package]] +name = "cap-fs-ext" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e54b86398b5852ddd45784b1d9b196b98beb39171821bad4b8b44534a1e87927" +dependencies = [ + "cap-primitives", + "cap-std", + "io-lifetimes", + "winapi 0.3.9", +] + +[[package]] +name = "cap-primitives" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb8fca3e81fae1d91a36e9784ca22a39ef623702b5f7904d89dc31f10184a178" +dependencies = [ + "ambient-authority", + "errno", + "fs-set-times", + "io-extras", + "io-lifetimes", + "ipnet", + "maybe-owned", + "rustix", + "winapi 0.3.9", + "winapi-util", + "winx", +] + +[[package]] +name = "cap-rand" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3b27294116983d706f4c8168f6d10c84f9f5daed0c28bc7d0296cf16bcf971" +dependencies = [ + "ambient-authority", + "rand 0.8.5", +] + +[[package]] +name = "cap-std" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2247568946095c7765ad2b441a56caffc08027734c634a6d5edda648f04e32eb" +dependencies = [ + "cap-primitives", + "io-extras", + "io-lifetimes", + "ipnet", + "rustix", +] + +[[package]] +name = "cap-time-ext" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c50472b6ebc302af0401fa3fb939694cd8ff00e0d4c9182001e434fc822ab83a" +dependencies = [ + "cap-primitives", + "once_cell", + "rustix", + "winx", +] + +[[package]] +name = "capture" +version = "0.1.0" +dependencies = [ + "anyhow", + "bindgen", + "block", + "byteorder", + "bytes 1.2.1", + "cocoa", + "core-foundation", + "core-graphics", + "foreign-types", + "futures 0.3.24", + "gpui", + "hmac 0.12.1", + "jwt", + "live_kit", + "log", + "media", + "objc", + "parking_lot 0.11.2", + "postage", + "serde", + "sha2 0.10.6", + "simplelog", +] + +[[package]] +name = "castaway" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6" + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chat_panel" +version = "0.1.0" +dependencies = [ + "client", + "editor", + "gpui", + "menu", + "postage", + "settings", + "theme", + "time 0.3.15", + "util", + "workspace", +] + +[[package]] +name = "chrono" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-integer", + "num-traits", + "time 0.1.44", + "wasm-bindgen", + "winapi 0.3.9", +] + +[[package]] +name = "chunked_transfer" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e" + +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array", +] + +[[package]] +name = "clang-sys" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim 0.8.0", + "textwrap 0.11.0", + "unicode-width", + "vec_map", +] + +[[package]] +name = "clap" +version = "3.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750" +dependencies = [ + "atty", + "bitflags", + "clap_derive", + "clap_lex", + "indexmap", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap 0.15.1", +] + +[[package]] +name = "clap_derive" +version = "3.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" +dependencies = [ + "heck 0.4.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "cli" +version = "0.1.0" +dependencies = [ + "anyhow", + "clap 3.2.22", + "core-foundation", + "core-services", + "dirs 3.0.2", + "ipc-channel", + "plist", + "serde", +] + +[[package]] +name = "client" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-recursion", + "async-tungstenite", + "collections", + "db", + "futures 0.3.24", + "gpui", + "image", + "isahc", + "lazy_static", + "log", + "parking_lot 0.11.2", + "postage", + "rand 0.8.5", + "rpc", + "serde", + "smol", + "sum_tree", + "tempfile", + "thiserror", + "time 0.3.15", + "tiny_http", + "url", + "util", + "uuid 1.2.1", +] + +[[package]] +name = "clock" +version = "0.1.0" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cmake" +version = "0.1.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" +dependencies = [ + "cc", +] + +[[package]] +name = "cocoa" +version = "0.24.0" +source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.1" +source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" +dependencies = [ + "bitflags", + "block", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "collab" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "async-tungstenite", + "axum", + "axum-extra", + "base64", + "clap 3.2.22", + "client", + "collections", + "ctor", + "editor", + "env_logger", + "envy", + "futures 0.3.24", + "git", + "gpui", + "hyper", + "language", + "lazy_static", + "lipsum", + "log", + "lsp", + "nanoid", + "parking_lot 0.11.2", + "project", + "prometheus", + "rand 0.8.5", + "reqwest", + "rpc", + "scrypt", + "serde", + "serde_json", + "settings", + "sha-1 0.9.8", + "sqlx", + "theme", + "time 0.3.15", + "tokio", + "tokio-tungstenite", + "toml", + "tonic", + "tower", + "tracing", + "tracing-log", + "tracing-subscriber", + "unindent", + "util", + "workspace", +] + +[[package]] +name = "collections" +version = "0.1.0" +dependencies = [ + "seahash", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "command_palette" +version = "0.1.0" +dependencies = [ + "collections", + "ctor", + "editor", + "env_logger", + "fuzzy", + "gpui", + "picker", + "project", + "serde_json", + "settings", + "theme", + "util", + "workspace", +] + +[[package]] +name = "concurrent-queue" +version = "1.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" +dependencies = [ + "cache-padded", +] + +[[package]] +name = "contacts_panel" +version = "0.1.0" +dependencies = [ + "anyhow", + "client", + "collections", + "editor", + "futures 0.3.24", + "fuzzy", + "gpui", + "language", + "log", + "menu", + "picker", + "postage", + "project", + "serde", + "settings", + "theme", + "util", + "workspace", +] + +[[package]] +name = "contacts_status_item" +version = "0.1.0" +dependencies = [ + "anyhow", + "client", + "collections", + "editor", + "futures 0.3.24", + "fuzzy", + "gpui", + "language", + "log", + "menu", + "picker", + "postage", + "project", + "serde", + "settings", + "theme", + "util", + "workspace", +] + +[[package]] +name = "context_menu" +version = "0.1.0" +dependencies = [ + "gpui", + "menu", + "settings", + "smallvec", + "theme", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" +dependencies = [ + "bitflags", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "git+https://github.com/servo/core-foundation-rs?rev=079665882507dd5e2ff77db3de5070c1f6c0fb85#079665882507dd5e2ff77db3de5070c1f6c0fb85" +dependencies = [ + "bitflags", + "core-foundation", + "foreign-types", + "libc", +] + +[[package]] +name = "core-services" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b344b958cae90858bf6086f49599ecc5ec8698eacad0ea155509ba11fab347" +dependencies = [ + "core-foundation", +] + +[[package]] +name = "core-text" +version = "19.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25" +dependencies = [ + "core-foundation", + "core-graphics", + "foreign-types", + "libc", +] + +[[package]] +name = "cpp_demangle" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-bforest" +version = "0.85.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "749d0d6022c9038dccf480bdde2a38d435937335bf2bb0f14e815d94517cdce8" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.85.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94370cc7b37bf652ccd8bb8f09bd900997f7ccf97520edfc75554bb5c4abbea" +dependencies = [ + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "cranelift-isle", + "gimli", + "log", + "regalloc2", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.85.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a3cea8fdab90e44018c5b9a1dfd460d8ee265ac354337150222a354628bdb6" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.85.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ac72f76f2698598951ab26d8c96eaa854810e693e7dd52523958b5909fde6b2" + +[[package]] +name = "cranelift-entity" +version = "0.85.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09eaeacfcd2356fe0e66b295e8f9d59fdd1ac3ace53ba50de14d628ec902f72d" +dependencies = [ + "serde", +] + +[[package]] +name = "cranelift-frontend" +version = "0.85.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dba69c9980d5ffd62c18a2bde927855fcd7c8dc92f29feaf8636052662cbd99c" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-isle" +version = "0.85.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2920dc1e05cac40304456ed3301fde2c09bd6a9b0210bcfa2f101398d628d5b" + +[[package]] +name = "cranelift-native" +version = "0.85.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04dfa45f9b2a6f587c564d6b63388e00cd6589d2df6ea2758cf79e1a13285e6" +dependencies = [ + "cranelift-codegen", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-wasm" +version = "0.85.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31a46513ae6f26f3f267d8d75b5373d555fbbd1e68681f348d99df43f747ec54" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "itertools", + "log", + "smallvec", + "wasmparser", + "wasmtime-types", +] + +[[package]] +name = "crc" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53757d12b596c16c78b83458d732a5d1a17ab3f53f2f7412f6fb57cc8a140ab3" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d0165d2900ae6778e36e80bbc4da3b5eefccee9ba939761f9c2882a5d9af3ff" + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam-channel" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" +dependencies = [ + "crossbeam-utils 0.7.2", + "maybe-uninit", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils 0.8.12", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch", + "crossbeam-utils 0.8.12", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" +dependencies = [ + "autocfg 1.1.0", + "cfg-if 1.0.0", + "crossbeam-utils 0.8.12", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd42583b04998a5363558e5f9291ee5a5ff6b49944332103f251e7479a82aa7" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils 0.8.12", +] + +[[package]] +name = "crossbeam-utils" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +dependencies = [ + "autocfg 1.1.0", + "cfg-if 0.1.10", + "lazy_static", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "crypto-mac" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "ctor" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "curl" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22" +dependencies = [ + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2", + "winapi 0.3.9", +] + +[[package]] +name = "curl-sys" +version = "0.4.56+curl-7.83.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6093e169dd4de29e468fa649fbae11cdcd5551c81fe5bf1b0677adad7ef3d26f" +dependencies = [ + "cc", + "libc", + "libnghttp2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "winapi 0.3.9", +] + +[[package]] +name = "cxx" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f39818dcfc97d45b03953c1292efc4e80954e1583c4aa770bac1383e2310a4" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e580d70777c116df50c390d1211993f62d40302881e54d4b79727acb83d0199" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56a46460b88d1cec95112c8c363f0e2c39afdb237f60583b0b36343bf627ea9c" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747b608fecf06b0d72d440f27acc99288207324b793be2c17991839f3d4995ea" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "data-url" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a30bfce702bcfa94e906ef82421f2c0e61c076ad76030c16ee5d2e9a32fe193" +dependencies = [ + "matches", +] + +[[package]] +name = "db" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "collections", + "gpui", + "parking_lot 0.11.2", + "rocksdb", + "tempdir", +] + +[[package]] +name = "deflate" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "dhat" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0684eaa19a59be283a6f99369917b679bd4d1d06604b2eb2e2f87b4bbd67668d" +dependencies = [ + "backtrace", + "lazy_static", + "parking_lot 0.12.1", + "rustc-hash", + "serde", + "serde_json", + "thousands", +] + +[[package]] +name = "diagnostics" +version = "0.1.0" +dependencies = [ + "anyhow", + "client", + "collections", + "editor", + "gpui", + "language", + "postage", + "project", + "serde_json", + "settings", + "smallvec", + "theme", + "unindent", + "util", + "workspace", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +dependencies = [ + "block-buffer 0.10.3", + "crypto-common", + "subtle", +] + +[[package]] +name = "directories-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" +dependencies = [ + "cfg-if 1.0.0", + "dirs-sys-next", +] + +[[package]] +name = "dirs" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if 1.0.0", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] + +[[package]] +name = "dotenvy" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9155c8f4dc55c7470ae9da3f63c6785245093b3f6aeb0f5bf2e968efbba314" +dependencies = [ + "dirs 4.0.0", +] + +[[package]] +name = "drag_and_drop" +version = "0.1.0" +dependencies = [ + "collections", + "gpui", +] + +[[package]] +name = "dwrote" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b" +dependencies = [ + "lazy_static", + "libc", + "winapi 0.3.9", + "wio", +] + +[[package]] +name = "dyn-clone" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" + +[[package]] +name = "easy-parallel" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6907e25393cdcc1f4f3f513d9aac1e840eb1cc341a0fccb01171f7d14d10b946" + +[[package]] +name = "editor" +version = "0.1.0" +dependencies = [ + "aho-corasick", + "anyhow", + "clock", + "collections", + "context_menu", + "ctor", + "env_logger", + "futures 0.3.24", + "fuzzy", + "git", + "gpui", + "indoc", + "itertools", + "language", + "lazy_static", + "log", + "lsp", + "ordered-float", + "parking_lot 0.11.2", + "postage", + "project", + "rand 0.8.5", + "rpc", + "serde", + "settings", + "smallvec", + "smol", + "snippet", + "sum_tree", + "text", + "theme", + "tree-sitter", + "tree-sitter-html", + "tree-sitter-javascript", + "tree-sitter-rust", + "unindent", + "util", + "workspace", +] + +[[package]] +name = "either" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" + +[[package]] +name = "encoding_rs" +version = "0.8.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "env_logger" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "envy" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f47e0157f2cb54f5ae1bd371b30a2ae4311e1c028f575cd4e81de7353215965" +dependencies = [ + "serde", +] + +[[package]] +name = "erased-serde" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54558e0ba96fbe24280072642eceb9d7d442e32c7ec0ea9e7ecd7b4ea2cf4e11" +dependencies = [ + "serde", +] + +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "etagere" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6301151a318f367f392c31395beb1cfba5ccd9abc44d1db0db3a4b27b9601c89" +dependencies = [ + "euclid", + "svg_fmt", +] + +[[package]] +name = "euclid" +version = "0.22.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b52c2ef4a78da0ba68fbe1fd920627411096d2ac478f7f4c9f3a54ba6705bade" +dependencies = [ + "num-traits", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "expat-sys" +version = "2.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa" +dependencies = [ + "cmake", + "pkg-config", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "file-per-thread-logger" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f" +dependencies = [ + "env_logger", + "log", +] + +[[package]] +name = "file_finder" +version = "0.1.0" +dependencies = [ + "ctor", + "editor", + "env_logger", + "fuzzy", + "gpui", + "menu", + "picker", + "postage", + "project", + "serde_json", + "settings", + "theme", + "util", + "workspace", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +dependencies = [ + "crc32fast", + "miniz_oxide 0.5.4", +] + +[[package]] +name = "float-cmp" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75224bec9bfe1a65e2d34132933f2de7fe79900c96a0174307554244ece8150e" + +[[package]] +name = "float-ord" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "font-kit" +version = "0.10.0" +source = "git+https://github.com/zed-industries/font-kit?rev=8eaf7a918eafa28b0a37dc759e2e0e7683fa24f1#8eaf7a918eafa28b0a37dc759e2e0e7683fa24f1" +dependencies = [ + "bitflags", + "byteorder", + "core-foundation", + "core-graphics", + "core-text", + "dirs-next", + "dwrote", + "float-ord", + "freetype", + "lazy_static", + "libc", + "log", + "pathfinder_geometry", + "pathfinder_simd", + "servo-fontconfig", + "walkdir", + "winapi 0.3.9", +] + +[[package]] +name = "fontdb" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e58903f4f8d5b58c7d300908e4ebe5289c1bfdf5587964330f12023b8ff17fd1" +dependencies = [ + "log", + "memmap2", + "ttf-parser 0.12.3", +] + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "freetype" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee38378a9e3db1cc693b4f88d166ae375338a0ff75cb8263e1c601d51f35dc6" +dependencies = [ + "freetype-sys", + "libc", +] + +[[package]] +name = "freetype-sys" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a" +dependencies = [ + "cmake", + "libc", + "pkg-config", +] + +[[package]] +name = "fs-set-times" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7df62ee66ee2d532ea8d567b5a3f0d03ecd64636b98bad5be1e93dcc918b92aa" +dependencies = [ + "io-lifetimes", + "rustix", + "winapi 0.3.9", +] + +[[package]] +name = "fsevent" +version = "2.0.2" +dependencies = [ + "bitflags", + "fsevent-sys", + "parking_lot 0.11.2", + "tempdir", +] + +[[package]] +name = "fsevent-sys" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6f5e6817058771c10f0eb0f05ddf1e35844266f972004fe8e4b21fda295bd5" +dependencies = [ + "libc", +] + +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + +[[package]] +name = "futures" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" + +[[package]] +name = "futures" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" + +[[package]] +name = "futures-executor" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-intrusive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62007592ac46aa7c2b6416f7deb9a8a8f63a01e0f1d6e1787d5630170db2b63e" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot 0.11.2", +] + +[[package]] +name = "futures-io" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" + +[[package]] +name = "futures-lite" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite 0.2.9", + "waker-fn", +] + +[[package]] +name = "futures-macro" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" + +[[package]] +name = "futures-task" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" + +[[package]] +name = "futures-util" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" +dependencies = [ + "futures 0.1.31", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite 0.2.9", + "pin-utils", + "slab", + "tokio-io", +] + +[[package]] +name = "fuzzy" +version = "0.1.0" +dependencies = [ + "gpui", + "util", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gif" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gimli" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +dependencies = [ + "fallible-iterator", + "indexmap", + "stable_deref_trait", +] + +[[package]] +name = "git" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "clock", + "collections", + "futures 0.3.24", + "git2", + "lazy_static", + "log", + "parking_lot 0.11.2", + "smol", + "sum_tree", + "text", + "unindent", + "util", +] + +[[package]] +name = "git2" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2994bee4a3a6a51eb90c218523be382fd7ea09b16380b9312e9dbe955ff7c7d1" +dependencies = [ + "bitflags", + "libc", + "libgit2-sys", + "log", + "url", +] + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + +[[package]] +name = "globset" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "go_to_line" +version = "0.1.0" +dependencies = [ + "editor", + "gpui", + "menu", + "postage", + "settings", + "text", + "workspace", +] + +[[package]] +name = "gpui" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-task", + "backtrace", + "bindgen", + "block", + "cc", + "cocoa", + "collections", + "core-foundation", + "core-graphics", + "core-text", + "ctor", + "dhat", + "env_logger", + "etagere", + "font-kit", + "foreign-types", + "futures 0.3.24", + "gpui_macros", + "image", + "lazy_static", + "log", + "media", + "metal", + "num_cpus", + "objc", + "ordered-float", + "parking", + "parking_lot 0.11.2", + "pathfinder_color", + "pathfinder_geometry", + "png", + "postage", + "rand 0.8.5", + "resvg", + "seahash", + "serde", + "serde_json", + "simplelog", + "smallvec", + "smol", + "sum_tree", + "time 0.3.15", + "tiny-skia", + "tree-sitter", + "usvg", + "util", + "waker-fn", +] + +[[package]] +name = "gpui_macros" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "h2" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" +dependencies = [ + "bytes 1.2.1", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util 0.7.4", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashlink" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa" +dependencies = [ + "hashbrown 0.12.3", +] + +[[package]] +name = "headers" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" +dependencies = [ + "base64", + "bitflags", + "bytes 1.2.1", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +dependencies = [ + "hmac 0.12.1", +] + +[[package]] +name = "hmac" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +dependencies = [ + "crypto-mac", + "digest 0.9.0", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.5", +] + +[[package]] +name = "http" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +dependencies = [ + "bytes 1.2.1", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes 1.2.1", + "http", + "pin-project-lite 0.2.9", +] + +[[package]] +name = "http-range-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" +dependencies = [ + "bytes 1.2.1", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite 0.2.9", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite 0.2.9", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes 1.2.1", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi 0.3.9", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fde6edd6cef363e9359ed3c98ba64590ba9eecba2293eb5a723ab32aee8926aa" +dependencies = [ + "cxx", + "cxx-build", +] + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +dependencies = [ + "crossbeam-utils 0.8.12", + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "image" +version = "0.23.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "gif", + "jpeg-decoder", + "num-iter", + "num-rational", + "num-traits", + "png", + "scoped_threadpool", + "tiff", +] + +[[package]] +name = "indexmap" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +dependencies = [ + "autocfg 1.1.0", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indoc" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3" + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "io-extras" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0c937cc9891c12eaa8c63ad347e4a288364b1328b924886970b47a14ab8f8f8" +dependencies = [ + "io-lifetimes", + "winapi 0.3.9", +] + +[[package]] +name = "io-lifetimes" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + +[[package]] +name = "ipc-channel" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cb1d9211085f0ea6f1379d944b93c4d07e8207aa3bcf49f37eda12b85081887" +dependencies = [ + "bincode", + "crossbeam-channel 0.4.4", + "fnv", + "lazy_static", + "libc", + "mio 0.6.23", + "rand 0.7.3", + "serde", + "tempfile", + "uuid 0.8.2", + "winapi 0.3.9", +] + +[[package]] +name = "ipnet" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" + +[[package]] +name = "is-terminal" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c89a757e762896bdbdfadf2860d0f8b0cea5e363d8cf3e7bdfeb63d1d976352" +dependencies = [ + "hermit-abi 0.2.6", + "io-lifetimes", + "rustix", + "winapi 0.3.9", +] + +[[package]] +name = "isahc" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9" +dependencies = [ + "async-channel", + "castaway", + "crossbeam-utils 0.8.12", + "curl", + "curl-sys", + "encoding_rs", + "event-listener", + "futures-lite", + "http", + "log", + "mime", + "once_cell", + "polling", + "slab", + "sluice", + "tracing", + "tracing-futures", + "url", + "waker-fn", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" + +[[package]] +name = "ittapi-rs" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f712648a1ad72fbfb7adc2772c331e8d90f022f8cf30cbabefba2878dd3172b0" +dependencies = [ + "cc", +] + +[[package]] +name = "jobserver" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +dependencies = [ + "libc", +] + +[[package]] +name = "journal" +version = "0.1.0" +dependencies = [ + "chrono", + "dirs 4.0.0", + "editor", + "gpui", + "log", + "util", + "workspace", +] + +[[package]] +name = "jpeg-decoder" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" +dependencies = [ + "rayon", +] + +[[package]] +name = "js-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json_comments" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ee439ee368ba4a77ac70d04f14015415af8600d6c894dc1f11bd79758c57d5" + +[[package]] +name = "jwt" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6204285f77fe7d9784db3fdc449ecce1a0114927a51d5a41c4c7a292011c015f" +dependencies = [ + "base64", + "crypto-common", + "digest 0.10.5", + "hmac 0.12.1", + "serde", + "serde_json", + "sha2 0.10.6", +] + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "kurbo" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a53776d271cfb873b17c618af0298445c88afc52837f3e948fa3fafd131f449" +dependencies = [ + "arrayvec 0.7.2", +] + +[[package]] +name = "language" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-broadcast", + "async-trait", + "client", + "clock", + "collections", + "ctor", + "env_logger", + "futures 0.3.24", + "fuzzy", + "git", + "gpui", + "lazy_static", + "log", + "lsp", + "parking_lot 0.11.2", + "postage", + "rand 0.8.5", + "regex", + "rpc", + "serde", + "serde_json", + "settings", + "similar", + "smallvec", + "smol", + "sum_tree", + "text", + "theme", + "tree-sitter", + "tree-sitter-html", + "tree-sitter-javascript", + "tree-sitter-json 0.19.0", + "tree-sitter-python", + "tree-sitter-rust", + "tree-sitter-typescript", + "unindent", + "util", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.134" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb" + +[[package]] +name = "libgit2-sys" +version = "0.14.0+1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a00859c70c8a4f7218e6d1cc32875c4b55f6799445b842b0d8ed5e4c3d959b" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" +dependencies = [ + "cfg-if 1.0.0", + "winapi 0.3.9", +] + +[[package]] +name = "libm" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565" + +[[package]] +name = "libnghttp2-sys" +version = "0.1.7+1.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "librocksdb-sys" +version = "0.7.1+7.3.1" +source = "git+https://github.com/rust-rocksdb/rust-rocksdb?rev=39dc822dde743b2a26eb160b660e8fbdab079d49#39dc822dde743b2a26eb160b660e8fbdab079d49" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "zstd-sys", +] + +[[package]] +name = "libz-sys" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "line-wrap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +dependencies = [ + "safemem", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.0.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5284f00d480e1c39af34e72f8ad60b94f47007e3481cd3b731c1d67190ddc7b7" + +[[package]] +name = "lipsum" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8451846f1f337e44486666989fbce40be804da139d5a4477d6b88ece5dc69f4" +dependencies = [ + "rand 0.8.5", + "rand_chacha 0.3.1", +] + +[[package]] +name = "live_kit" +version = "0.1.0" +dependencies = [ + "anyhow", + "core-foundation", + "core-graphics", + "futures 0.3.24", + "media", + "parking_lot 0.11.2", + "serde", + "serde_json", +] + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg 1.1.0", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if 1.0.0", + "serde", + "value-bag", +] + +[[package]] +name = "lsp" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-pipe", + "collections", + "ctor", + "env_logger", + "futures 0.3.24", + "gpui", + "log", + "lsp-types", + "parking_lot 0.11.2", + "postage", + "serde", + "serde_json", + "smol", + "unindent", + "util", +] + +[[package]] +name = "lsp-types" +version = "0.91.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2368312c59425dd133cb9a327afee65be0a633a8ce471d248e2202a48f8f68ae" +dependencies = [ + "bitflags", + "serde", + "serde_json", + "serde_repr", + "url", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "matchit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" + +[[package]] +name = "maybe-owned" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4" + +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + +[[package]] +name = "md-5" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +dependencies = [ + "digest 0.10.5", +] + +[[package]] +name = "media" +version = "0.1.0" +dependencies = [ + "anyhow", + "bindgen", + "block", + "bytes 1.2.1", + "core-foundation", + "foreign-types", + "metal", + "objc", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memfd" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6627dc657574b49d6ad27105ed671822be56e0d2547d413bfbf3e8d8fa92e7a" +dependencies = [ + "libc", +] + +[[package]] +name = "memmap2" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723e3ebdcdc5c023db1df315364573789f8857c11b631a2fdfad7c00f5c046b4" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "menu" +version = "0.1.0" +dependencies = [ + "gpui", +] + +[[package]] +name = "metal" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4598d719460ade24c7d91f335daf055bf2a7eec030728ce751814c50cdd6a26c" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "foreign-types", + "log", + "objc", +] + +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" +dependencies = [ + "adler32", +] + +[[package]] +name = "miniz_oxide" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" +dependencies = [ + "adler", + "autocfg 1.1.0", +] + +[[package]] +name = "miniz_oxide" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +dependencies = [ + "cfg-if 0.1.10", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow 0.2.2", + "net2", + "slab", + "winapi 0.2.8", +] + +[[package]] +name = "mio" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys", +] + +[[package]] +name = "mio-anonymous-pipes" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bc513025fe5005a3aa561b50fdb2cda5a150b84800ae02acd8aa9ed62ca1a6b" +dependencies = [ + "mio 0.6.23", + "miow 0.3.7", + "parking_lot 0.11.2", + "spsc-buffer", + "winapi 0.3.9", +] + +[[package]] +name = "mio-extras" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" +dependencies = [ + "lazycell", + "log", + "mio 0.6.23", + "slab", +] + +[[package]] +name = "mio-uds" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" +dependencies = [ + "iovec", + "libc", + "mio 0.6.23", +] + +[[package]] +name = "miow" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +dependencies = [ + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", +] + +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "more-asserts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "nanoid" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "native-tls" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "net2" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "nix" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "libc", + "memoffset", +] + +[[package]] +name = "nom" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "ntapi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi 0.3.9", +] + +[[package]] +name = "num-bigint" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg 1.1.0", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint-dig" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4547ee5541c18742396ae2c895d0717d0f886d8823b8399cdaf7b07d63ad0480" +dependencies = [ + "autocfg 0.1.8", + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg 1.1.0", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg 1.1.0", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg 1.1.0", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg 1.1.0", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi 0.1.19", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + +[[package]] +name = "nvim-rs" +version = "0.5.0" +source = "git+https://github.com/KillTheMule/nvim-rs?branch=master#d701c2790dcb2579f8f4d7003ba30e2100a7d25b" +dependencies = [ + "async-trait", + "futures 0.3.24", + "log", + "parity-tokio-ipc", + "rmp", + "rmpv", + "tokio", + "tokio-util 0.7.4", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "object" +version = "0.28.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" +dependencies = [ + "crc32fast", + "hashbrown 0.11.2", + "indexmap", + "memchr", +] + +[[package]] +name = "object" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "openssl" +version = "0.10.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5230151e44c0f05157effb743e8d517472843121cf9243e8b81393edb5acd9ce" +dependencies = [ + "autocfg 1.1.0", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "ordered-float" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +dependencies = [ + "num-traits", +] + +[[package]] +name = "os_str_bytes" +version = "6.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" + +[[package]] +name = "outline" +version = "0.1.0" +dependencies = [ + "editor", + "fuzzy", + "gpui", + "language", + "ordered-float", + "picker", + "postage", + "settings", + "smol", + "text", + "workspace", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parity-tokio-ipc" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" +dependencies = [ + "futures 0.3.24", + "libc", + "log", + "rand 0.7.3", + "tokio", + "winapi 0.3.9", +] + +[[package]] +name = "parking" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.5", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.3", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "password-hash" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e0b28ace46c5a396546bcf443bf422b57049617433d8854227352a4a9b24e7" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" + +[[package]] +name = "pathfinder_color" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69bdc0d277d559e35e1b374de56df9262a6b71e091ca04a8831a239f8c7f0c62" +dependencies = [ + "pathfinder_simd", +] + +[[package]] +name = "pathfinder_geometry" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b7e7b4ea703700ce73ebf128e1450eb69c3a8329199ffbfb9b2a0418e5ad3" +dependencies = [ + "log", + "pathfinder_simd", +] + +[[package]] +name = "pathfinder_simd" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39fe46acc5503595e5949c17b818714d26fdf9b4920eacf3b2947f0199f4a6ff" +dependencies = [ + "rustc_version", +] + +[[package]] +name = "pbkdf2" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" +dependencies = [ + "crypto-mac", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pem" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb" +dependencies = [ + "base64", + "once_cell", + "regex", +] + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pest" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "petgraph" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "picker" +version = "0.1.0" +dependencies = [ + "ctor", + "editor", + "env_logger", + "gpui", + "menu", + "serde_json", + "settings", + "theme", + "util", + "workspace", +] + +[[package]] +name = "pico-args" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468" + +[[package]] +name = "pin-project" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" + +[[package]] +name = "plist" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" +dependencies = [ + "base64", + "indexmap", + "line-wrap", + "serde", + "time 0.3.15", + "xml-rs", +] + +[[package]] +name = "plugin" +version = "0.1.0" +dependencies = [ + "bincode", + "plugin_macros", + "serde", +] + +[[package]] +name = "plugin_macros" +version = "0.1.0" +dependencies = [ + "bincode", + "proc-macro2", + "quote", + "serde", + "syn", +] + +[[package]] +name = "plugin_runtime" +version = "0.1.0" +dependencies = [ + "anyhow", + "bincode", + "pollster", + "serde", + "serde_json", + "smol", + "wasi-common", + "wasmtime", + "wasmtime-wasi", +] + +[[package]] +name = "png" +version = "0.16.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" +dependencies = [ + "bitflags", + "crc32fast", + "deflate", + "miniz_oxide 0.3.7", +] + +[[package]] +name = "polling" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" +dependencies = [ + "autocfg 1.1.0", + "cfg-if 1.0.0", + "libc", + "log", + "wepoll-ffi", + "winapi 0.3.9", +] + +[[package]] +name = "pollster" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5da3b0203fd7ee5720aa0b5e790b591aa5d3f41c3ed2c34a3a393382198af2f7" + +[[package]] +name = "postage" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a63d25391d04a097954b76aba742b6b5b74f213dfe3dbaeeb36e8ddc1c657f0b" +dependencies = [ + "atomic", + "crossbeam-queue", + "futures 0.3.24", + "log", + "pin-project", + "pollster", + "static_assertions", + "thiserror", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "procinfo" +version = "0.1.0" +source = "git+https://github.com/zed-industries/wezterm?rev=5cd757e5f2eb039ed0c6bb6512223e69d5efc64d#5cd757e5f2eb039ed0c6bb6512223e69d5efc64d" +dependencies = [ + "libc", + "log", + "ntapi", + "winapi 0.3.9", +] + +[[package]] +name = "project" +version = "0.1.0" +dependencies = [ + "aho-corasick", + "anyhow", + "async-trait", + "client", + "clock", + "collections", + "db", + "fsevent", + "futures 0.3.24", + "fuzzy", + "git", + "gpui", + "ignore", + "language", + "lazy_static", + "libc", + "log", + "lsp", + "parking_lot 0.11.2", + "postage", + "pulldown-cmark", + "rand 0.8.5", + "regex", + "rocksdb", + "rpc", + "serde", + "serde_json", + "settings", + "sha2 0.10.6", + "similar", + "smol", + "sum_tree", + "tempdir", + "text", + "thiserror", + "toml", + "unindent", + "util", +] + +[[package]] +name = "project_panel" +version = "0.1.0" +dependencies = [ + "context_menu", + "editor", + "futures 0.3.24", + "gpui", + "menu", + "postage", + "project", + "serde_json", + "settings", + "theme", + "unicase", + "util", + "workspace", +] + +[[package]] +name = "project_symbols" +version = "0.1.0" +dependencies = [ + "anyhow", + "editor", + "futures 0.3.24", + "fuzzy", + "gpui", + "language", + "lsp", + "ordered-float", + "picker", + "postage", + "project", + "settings", + "smol", + "text", + "util", + "workspace", +] + +[[package]] +name = "prometheus" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45c8babc29389186697fe5a2a4859d697825496b83db5d0b65271cdc0488e88c" +dependencies = [ + "cfg-if 1.0.0", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.1", + "protobuf", + "thiserror", +] + +[[package]] +name = "prost" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020" +dependencies = [ + "bytes 1.2.1", + "prost-derive 0.8.0", +] + +[[package]] +name = "prost" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +dependencies = [ + "bytes 1.2.1", + "prost-derive 0.9.0", +] + +[[package]] +name = "prost-build" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +dependencies = [ + "bytes 1.2.1", + "heck 0.3.3", + "itertools", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost 0.9.0", + "prost-types", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "prost-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "prost-types" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +dependencies = [ + "bytes 1.2.1", + "prost 0.9.0", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "pulldown-cmark" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d9cc634bc78768157b5cbfe988ffcd1dcba95cd2b2f03a88316c08c6d00ed63" +dependencies = [ + "bitflags", + "memchr", + "unicase", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi 0.3.9", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.7", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rayon" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +dependencies = [ + "autocfg 1.1.0", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +dependencies = [ + "crossbeam-channel 0.5.6", + "crossbeam-deque", + "crossbeam-utils 0.8.12", + "num_cpus", +] + +[[package]] +name = "rctree" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be9e29cb19c8fe84169fcb07f8f11e66bc9e6e0280efd4715c54818296f8a4a8" + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.7", + "redox_syscall", + "thiserror", +] + +[[package]] +name = "regalloc2" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a8d23b35d7177df3b9d31ed8a9ab4bf625c668be77a319d4f5efd4a5257701c" +dependencies = [ + "fxhash", + "log", + "slice-group-by", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" + +[[package]] +name = "region" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0" +dependencies = [ + "bitflags", + "libc", + "mach", + "winapi 0.3.9", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "reqwest" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" +dependencies = [ + "base64", + "bytes 1.2.1", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite 0.2.9", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "resvg" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09697862c5c3f940cbaffef91969c62188b5c8ed385b0aef43a5ff01ddc8000f" +dependencies = [ + "jpeg-decoder", + "log", + "pico-args", + "png", + "rgb", + "svgfilters", + "tiny-skia", + "usvg", +] + +[[package]] +name = "rgb" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3603b7d71ca82644f79b5a06d1220e9a58ede60bd32255f698cb1af8838b8db3" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi 0.3.9", +] + +[[package]] +name = "rmp" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmpv" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de8813b3a2f95c5138fe5925bfb8784175d88d6bff059ba8ce090aa891319754" +dependencies = [ + "num-traits", + "rmp", +] + +[[package]] +name = "rocksdb" +version = "0.18.0" +source = "git+https://github.com/rust-rocksdb/rust-rocksdb?rev=39dc822dde743b2a26eb160b660e8fbdab079d49#39dc822dde743b2a26eb160b660e8fbdab079d49" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "roxmltree" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "rpc" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-lock", + "async-tungstenite", + "base64", + "clock", + "collections", + "ctor", + "env_logger", + "futures 0.3.24", + "gpui", + "parking_lot 0.11.2", + "prost 0.8.0", + "prost-build", + "rand 0.8.5", + "rsa", + "serde", + "smol", + "smol-timeout", + "tempdir", + "tracing", + "util", + "zstd", +] + +[[package]] +name = "rsa" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b0aeddcca1082112a6eeb43bf25fd7820b066aaf6eaef776e19d0a1febe38fe" +dependencies = [ + "byteorder", + "digest 0.9.0", + "lazy_static", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pem", + "rand 0.8.5", + "simple_asn1", + "subtle", + "zeroize", +] + +[[package]] +name = "rust-embed" +version = "6.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e26934cd67a1da1165efe61cba4047cc1b4a526019da609fcce13a1000afb5fa" +dependencies = [ + "rust-embed-impl", + "rust-embed-utils", + "walkdir", +] + +[[package]] +name = "rust-embed-impl" +version = "6.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35d7b402e273544cc08e0824aa3404333fab8a90ac43589d3d5b72f4b346e12" +dependencies = [ + "proc-macro2", + "quote", + "rust-embed-utils", + "syn", + "walkdir", +] + +[[package]] +name = "rust-embed-utils" +version = "7.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1669d81dfabd1b5f8e2856b8bbe146c6192b0ba22162edc738ac0a5de18f054" +dependencies = [ + "globset", + "sha2 0.10.6", + "walkdir", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.33.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "938a344304321a9da4973b9ff4f9f8db9caf4597dfd9dda6a60b523340a0fff0" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "itoa", + "libc", + "linux-raw-sys", + "once_cell", + "winapi 0.3.9", +] + +[[package]] +name = "rustls" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +dependencies = [ + "base64", + "log", + "ring", + "sct 0.6.1", + "webpki 0.21.4", +] + +[[package]] +name = "rustls" +version = "0.20.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" +dependencies = [ + "log", + "ring", + "sct 0.7.0", + "webpki 0.22.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" +dependencies = [ + "base64", +] + +[[package]] +name = "rustybuzz" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab463a295d00f3692e0974a0bfd83c7a9bcd119e27e07c2beecdb1b44a09d10" +dependencies = [ + "bitflags", + "bytemuck", + "smallvec", + "ttf-parser 0.9.0", + "unicode-bidi-mirroring", + "unicode-ccc", + "unicode-general-category", + "unicode-script", +] + +[[package]] +name = "ryu" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" + +[[package]] +name = "safe_arch" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ff3d6d9696af502cc3110dacce942840fb06ff4514cad92236ecc455f2ce05" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "salsa20" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +dependencies = [ + "lazy_static", + "windows-sys", +] + +[[package]] +name = "schemars" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a5fb6c61f29e723026dc8e923d94c694313212abbecbbe5f55a7748eec5b307" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f188d036977451159430f3b8dc82ec76364a42b7e289c2b18a9a18f4470058e9" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn", +] + +[[package]] +name = "scoped_threadpool" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + +[[package]] +name = "scrypt" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879588d8f90906e73302547e20fffefdd240eb3e0e744e142321f5d49dea0518" +dependencies = [ + "base64ct", + "hmac 0.11.0", + "password-hash", + "pbkdf2", + "salsa20", + "sha2 0.9.9", +] + +[[package]] +name = "sct" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "search" +version = "0.1.0" +dependencies = [ + "anyhow", + "collections", + "editor", + "gpui", + "language", + "log", + "menu", + "postage", + "project", + "serde", + "serde_json", + "settings", + "smallvec", + "theme", + "unindent", + "util", + "workspace", +] + +[[package]] +name = "security-framework" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "seq-macro" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9f47faea3cad316faa914d013d24f471cd90bfca1a0c70f05a3f42c6441e99" + +[[package]] +name = "serde" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_fmt" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2963a69a2b3918c1dc75a45a18bd3fcd1120e31d3f59deb1b2f9b5d5ffb8baa4" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_json" +version = "1.0.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "184c643044780f7ceb59104cef98a5a6f12cb2288a7bc701ab93a362b49fd47d" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +dependencies = [ + "indexmap", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "servo-fontconfig" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e3e22fe5fd73d04ebf0daa049d3efe3eae55369ce38ab16d07ddd9ac5c217c" +dependencies = [ + "libc", + "servo-fontconfig-sys", +] + +[[package]] +name = "servo-fontconfig-sys" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36b879db9892dfa40f95da1c38a835d41634b825fbd8c4c418093d53c24b388" +dependencies = [ + "expat-sys", + "freetype-sys", + "pkg-config", +] + +[[package]] +name = "settings" +version = "0.1.0" +dependencies = [ + "anyhow", + "assets", + "collections", + "gpui", + "json_comments", + "schemars", + "serde", + "serde_json", + "serde_path_to_error", + "theme", + "toml", + "util", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha-1" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.5", +] + +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.5", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.5", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shellexpand" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" +dependencies = [ + "dirs 4.0.0", +] + +[[package]] +name = "shlex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" + +[[package]] +name = "signal-hook" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio 0.6.23", + "mio-uds", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "similar" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad1d488a557b235fc46dae55512ffbfc429d2482b08b4d9435ab07384ca8aec" + +[[package]] +name = "simple_asn1" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb4ea60fb301dc81dfc113df680571045d375ab7345d171c5dc7d7e13107a80" +dependencies = [ + "chrono", + "num-bigint", + "num-traits", + "thiserror", +] + +[[package]] +name = "simplecss" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d" +dependencies = [ + "log", +] + +[[package]] +name = "simplelog" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bc0ffd69814a9b251d43afcabf96dad1b29f5028378056257be9e3fecc9f720" +dependencies = [ + "chrono", + "log", + "termcolor", +] + +[[package]] +name = "siphasher" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "slice-group-by" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" + +[[package]] +name = "sluice" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5" +dependencies = [ + "async-channel", + "futures-core", + "futures-io", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "smol" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cf3b5351f3e783c1d79ab5fc604eeed8b8ae9abd36b166e8b87a089efd85e4" +dependencies = [ + "async-channel", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-net", + "async-process", + "blocking", + "futures-lite", + "once_cell", +] + +[[package]] +name = "smol-timeout" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "847d777e2c6c166bad26264479e80a9820f3d364fcb4a0e23cd57bbfa8e94961" +dependencies = [ + "async-io", + "pin-project-lite 0.1.12", +] + +[[package]] +name = "snippet" +version = "0.1.0" +dependencies = [ + "anyhow", + "smallvec", +] + +[[package]] +name = "socket2" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spsc-buffer" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be6c3f39c37a4283ee4b43d1311c828f2e1fb0541e76ea0cb1a2abd9ef2f5b3b" + +[[package]] +name = "sqlformat" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87e292b4291f154971a43c3774364e2cbcaec599d3f5bf6fa9d122885dbc38a" +dependencies = [ + "itertools", + "nom", + "unicode_categories", +] + +[[package]] +name = "sqlx" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9249290c05928352f71c077cc44a464d880c63f26f7534728cca008e135c0428" +dependencies = [ + "sqlx-core", + "sqlx-macros", +] + +[[package]] +name = "sqlx-core" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbc16ddba161afc99e14d1713a453747a2b07fc097d2009f4c300ec99286105" +dependencies = [ + "ahash", + "atoi", + "base64", + "bitflags", + "byteorder", + "bytes 1.2.1", + "crc", + "crossbeam-queue", + "dirs 4.0.0", + "dotenvy", + "either", + "event-listener", + "futures-channel", + "futures-core", + "futures-intrusive", + "futures-util", + "hashlink", + "hex", + "hkdf", + "hmac 0.12.1", + "indexmap", + "itoa", + "libc", + "log", + "md-5", + "memchr", + "once_cell", + "paste", + "percent-encoding", + "rand 0.8.5", + "rustls 0.20.6", + "rustls-pemfile", + "serde", + "serde_json", + "sha1", + "sha2 0.10.6", + "smallvec", + "sqlformat", + "sqlx-rt", + "stringprep", + "thiserror", + "time 0.3.15", + "tokio-stream", + "url", + "uuid 1.2.1", + "webpki-roots 0.22.5", + "whoami", +] + +[[package]] +name = "sqlx-macros" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b850fa514dc11f2ee85be9d055c512aa866746adfacd1cb42d867d68e6a5b0d9" +dependencies = [ + "dotenvy", + "either", + "heck 0.4.0", + "once_cell", + "proc-macro2", + "quote", + "sha2 0.10.6", + "sqlx-core", + "sqlx-rt", + "syn", + "url", +] + +[[package]] +name = "sqlx-rt" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24c5b2d25fa654cc5f841750b8e1cdedbe21189bf9a9382ee90bfa9dd3562396" +dependencies = [ + "once_cell", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "stringprep" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "sum_tree" +version = "0.1.0" +dependencies = [ + "arrayvec 0.7.2", + "ctor", + "env_logger", + "log", + "rand 0.8.5", +] + +[[package]] +name = "sval" +version = "1.0.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45f6ee7c7b87caf59549e9fe45d6a69c75c8019e79e212a835c5da0e92f0ba08" +dependencies = [ + "serde", +] + +[[package]] +name = "svg_fmt" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" + +[[package]] +name = "svgfilters" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb0dce2fee79ac40c21dafba48565ff7a5fa275e23ffe9ce047a40c9574ba34e" +dependencies = [ + "float-cmp", + "rgb", +] + +[[package]] +name = "svgtypes" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c536faaff1a10837cfe373142583f6e27d81e96beba339147e77b67c9f260ff" +dependencies = [ + "float-cmp", + "siphasher", +] + +[[package]] +name = "syn" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + +[[package]] +name = "system-interface" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e09bb3fb4e02ec4b87e182ea9718fadbc0fa3e50085b40a9af9690572b67f9e" +dependencies = [ + "atty", + "bitflags", + "cap-fs-ext", + "cap-std", + "io-lifetimes", + "rustix", + "winapi 0.3.9", + "winx", +] + +[[package]] +name = "target-lexicon" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1" + +[[package]] +name = "tempdir" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" +dependencies = [ + "rand 0.4.6", + "remove_dir_all", +] + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if 1.0.0", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi 0.3.9", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal" +version = "0.1.0" +dependencies = [ + "alacritty_terminal", + "anyhow", + "client", + "context_menu", + "dirs 4.0.0", + "editor", + "futures 0.3.24", + "gpui", + "itertools", + "lazy_static", + "libc", + "mio-extras", + "ordered-float", + "procinfo", + "project", + "rand 0.8.5", + "serde", + "settings", + "shellexpand", + "smallvec", + "smol", + "theme", + "thiserror", + "util", + "workspace", +] + +[[package]] +name = "text" +version = "0.1.0" +dependencies = [ + "anyhow", + "arrayvec 0.7.2", + "bromberg_sl2", + "clock", + "collections", + "ctor", + "digest 0.9.0", + "env_logger", + "gpui", + "lazy_static", + "log", + "parking_lot 0.11.2", + "postage", + "rand 0.8.5", + "regex", + "smallvec", + "sum_tree", + "util", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "textwrap" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16" + +[[package]] +name = "theme" +version = "0.1.0" +dependencies = [ + "anyhow", + "gpui", + "indexmap", + "parking_lot 0.11.2", + "serde", + "serde_json", + "serde_path_to_error", + "toml", +] + +[[package]] +name = "theme_selector" +version = "0.1.0" +dependencies = [ + "editor", + "fuzzy", + "gpui", + "log", + "parking_lot 0.11.2", + "picker", + "postage", + "settings", + "smol", + "theme", + "workspace", +] + +[[package]] +name = "thiserror" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thousands" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" + +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tiff" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437" +dependencies = [ + "jpeg-decoder", + "miniz_oxide 0.4.4", + "weezl", +] + +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi 0.3.9", +] + +[[package]] +name = "time" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" +dependencies = [ + "itoa", + "libc", + "num_threads", + "serde", + "time-macros", +] + +[[package]] +name = "time-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792" + +[[package]] +name = "tiny-skia" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf81f2900d2e235220e6f31ec9f63ade6a7f59090c556d74fe949bb3b15e9fe" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "bytemuck", + "cfg-if 1.0.0", + "png", + "safe_arch", +] + +[[package]] +name = "tiny_http" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce51b50006056f590c9b7c3808c3bd70f0d1101666629713866c227d6e58d39" +dependencies = [ + "ascii", + "chrono", + "chunked_transfer", + "log", + "url", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +dependencies = [ + "autocfg 1.1.0", + "bytes 1.2.1", + "libc", + "memchr", + "mio 0.8.4", + "num_cpus", + "parking_lot 0.12.1", + "pin-project-lite 0.2.9", + "signal-hook-registry", + "socket2", + "tokio-macros", + "winapi 0.3.9", +] + +[[package]] +name = "tokio-io" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.31", + "log", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite 0.2.9", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.6", + "tokio", + "webpki 0.22.0", +] + +[[package]] +name = "tokio-stream" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6edf2d6bc038a43d31353570e27270603f4648d18f5ed10c0e179abe43255af" +dependencies = [ + "futures-core", + "pin-project-lite 0.2.9", + "tokio", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite 0.17.3", +] + +[[package]] +name = "tokio-util" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +dependencies = [ + "bytes 1.2.1", + "futures-core", + "futures-sink", + "log", + "pin-project-lite 0.2.9", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +dependencies = [ + "bytes 1.2.1", + "futures-core", + "futures-io", + "futures-sink", + "pin-project-lite 0.2.9", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +dependencies = [ + "serde", +] + +[[package]] +name = "tonic" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +dependencies = [ + "async-stream", + "async-trait", + "base64", + "bytes 1.2.1", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.9.0", + "prost-derive 0.9.0", + "tokio", + "tokio-stream", + "tokio-util 0.6.10", + "tower", + "tower-layer", + "tower-service", + "tracing", + "tracing-futures", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap", + "pin-project", + "pin-project-lite 0.2.9", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.4", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba" +dependencies = [ + "bitflags", + "bytes 1.2.1", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite 0.2.9", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if 1.0.0", + "log", + "pin-project-lite 0.2.9", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", + "tracing-serde", +] + +[[package]] +name = "tree-sitter" +version = "0.20.8" +source = "git+https://github.com/tree-sitter/tree-sitter?rev=366210ae925d7ea0891bc7a0c738f60c77c04d7b#366210ae925d7ea0891bc7a0c738f60c77c04d7b" +dependencies = [ + "cc", + "regex", +] + +[[package]] +name = "tree-sitter-c" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cca211f4827d4b4dc79f388bf67b6fa3bc8a8cfa642161ef24f99f371ba34c7b" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-cpp" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a869e3c5cef4e5db4e9ab16a8dc84d73010e60ada14cdc60d2f6d8aed17779d" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-css" +version = "0.19.0" +source = "git+https://github.com/tree-sitter/tree-sitter-css?rev=769203d0f9abe1a9a691ac2b9fe4bb4397a73c51#769203d0f9abe1a9a691ac2b9fe4bb4397a73c51" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-elixir" +version = "0.19.0" +source = "git+https://github.com/elixir-lang/tree-sitter-elixir?rev=05e3631c6a0701c1fa518b0fee7be95a2ceef5e2#05e3631c6a0701c1fa518b0fee7be95a2ceef5e2" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-go" +version = "0.19.1" +source = "git+https://github.com/tree-sitter/tree-sitter-go?rev=aeb2f33b366fd78d5789ff104956ce23508b85db#aeb2f33b366fd78d5789ff104956ce23508b85db" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-html" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "184e6b77953a354303dc87bf5fe36558c83569ce92606e7b382a0dc1b7443443" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-javascript" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2490fab08630b2c8943c320f7b63473cbf65511c8d83aec551beb9b4375906ed" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-json" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90b04c4e1a92139535eb9fca4ec8fa9666cc96b618005d3ae35f3c957fa92f92" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-json" +version = "0.20.0" +source = "git+https://github.com/tree-sitter/tree-sitter-json?rev=137e1ce6a02698fc246cdb9c6b886ed1de9a1ed8#137e1ce6a02698fc246cdb9c6b886ed1de9a1ed8" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-markdown" +version = "0.0.1" +source = "git+https://github.com/MDeiml/tree-sitter-markdown?rev=330ecab87a3e3a7211ac69bbadc19eabecdb1cca#330ecab87a3e3a7211ac69bbadc19eabecdb1cca" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-python" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dda114f58048f5059dcf158aff691dffb8e113e6d2b50d94263fd68711975287" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-rust" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13470fafb7327a3acf96f5bc1013b5539a899a182f01c59b5af53f6b93195717" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-toml" +version = "0.5.1" +source = "git+https://github.com/tree-sitter/tree-sitter-toml?rev=342d9be207c2dba869b9967124c679b5e6fd0ebe#342d9be207c2dba869b9967124c679b5e6fd0ebe" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-typescript" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e8ed0ecb931cdff13c6a13f45ccd615156e2779d9ffb0395864e05505e6e86d" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "ttf-parser" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ddb402ac6c2af6f7a2844243887631c4e94b51585b229fcfddb43958cd55ca" + +[[package]] +name = "ttf-parser" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ae2f58a822f08abdaf668897e96a5656fe72f5a9ce66422423e8849384872e6" + +[[package]] +name = "tungstenite" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ad3713a14ae247f22a728a0456a545df14acf3867f905adff84be99e23b3ad1" +dependencies = [ + "base64", + "byteorder", + "bytes 1.2.1", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha-1 0.9.8", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "tungstenite" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" +dependencies = [ + "base64", + "byteorder", + "bytes 1.2.1", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha-1 0.10.0", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-bidi-mirroring" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694" + +[[package]] +name = "unicode-ccc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1" + +[[package]] +name = "unicode-general-category" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9af028e052a610d99e066b33304625dea9613170a2563314490a4e6ec5cf7f" + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-script" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc" + +[[package]] +name = "unicode-segmentation" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" + +[[package]] +name = "unicode-vo" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + +[[package]] +name = "unindent" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58ee9362deb4a96cef4d437d1ad49cffc9b9e92d202b6995674e928ce684f112" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "usvg" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef8352f317d8f9a918ba5154797fb2a93e2730244041cf7d5be35148266adfa5" +dependencies = [ + "base64", + "data-url", + "flate2", + "fontdb", + "kurbo", + "log", + "memmap2", + "pico-args", + "rctree", + "roxmltree", + "rustybuzz", + "simplecss", + "siphasher", + "svgtypes", + "ttf-parser 0.12.3", + "unicode-bidi", + "unicode-script", + "unicode-vo", + "xmlwriter", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" + +[[package]] +name = "util" +version = "0.1.0" +dependencies = [ + "anyhow", + "futures 0.3.24", + "git2", + "lazy_static", + "log", + "rand 0.8.5", + "serde_json", + "tempdir", +] + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.7", +] + +[[package]] +name = "uuid" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feb41e78f93363bb2df8b0e86a2ca30eed7806ea16ea0c790d757cf93f79be83" +dependencies = [ + "getrandom 0.2.7", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "value-bag" +version = "1.0.0-alpha.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" +dependencies = [ + "ctor", + "erased-serde", + "serde", + "serde_fmt", + "sval", + "version_check", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "vim" +version = "0.1.0" +dependencies = [ + "assets", + "async-compat", + "async-trait", + "collections", + "command_palette", + "editor", + "gpui", + "indoc", + "itertools", + "language", + "log", + "nvim-rs", + "parking_lot 0.11.2", + "project", + "search", + "serde", + "serde_json", + "settings", + "tokio", + "util", + "workspace", +] + +[[package]] +name = "vte" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983" +dependencies = [ + "utf8parse", + "vte_generate_state_changes", +] + +[[package]] +name = "vte_generate_state_changes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi 0.3.9", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi-cap-std-sync" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f086c5026d2fc3b268d138e65373f46422cc810f46d6e0776859c5027cb18728" +dependencies = [ + "anyhow", + "async-trait", + "cap-fs-ext", + "cap-rand", + "cap-std", + "cap-time-ext", + "fs-set-times", + "io-extras", + "io-lifetimes", + "is-terminal", + "lazy_static", + "rustix", + "system-interface", + "tracing", + "wasi-common", + "winapi 0.3.9", +] + +[[package]] +name = "wasi-common" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e8844fede1c3787cc08853872f47e8bd91f6c939c7406bc7a5dba496b260c08" +dependencies = [ + "anyhow", + "bitflags", + "cap-rand", + "cap-std", + "io-extras", + "rustix", + "thiserror", + "tracing", + "wiggle", + "winapi 0.3.9", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" + +[[package]] +name = "wasm-encoder" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64ac98d5d61192cc45c701b7e4bd0b9aff91e2edfc7a088406cfe2288581e2c" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasmparser" +version = "0.85.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "570460c58b21e9150d2df0eaaedbb7816c34bcec009ae0dcc976e40ba81463e7" +dependencies = [ + "indexmap", +] + +[[package]] +name = "wasmtime" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f50eadf868ab6a04b7b511460233377d0bfbb92e417b2f6a98b98fef2e098f5" +dependencies = [ + "anyhow", + "async-trait", + "backtrace", + "bincode", + "cfg-if 1.0.0", + "indexmap", + "lazy_static", + "libc", + "log", + "object 0.28.4", + "once_cell", + "paste", + "psm", + "rayon", + "region", + "serde", + "target-lexicon", + "wasmparser", + "wasmtime-cache", + "wasmtime-cranelift", + "wasmtime-environ", + "wasmtime-fiber", + "wasmtime-jit", + "wasmtime-runtime", + "wat", + "winapi 0.3.9", +] + +[[package]] +name = "wasmtime-cache" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1df23c642e1376892f3b72f311596976979cbf8b85469680cdd3a8a063d12a2" +dependencies = [ + "anyhow", + "base64", + "bincode", + "directories-next", + "file-per-thread-logger", + "log", + "rustix", + "serde", + "sha2 0.9.9", + "toml", + "winapi 0.3.9", + "zstd", +] + +[[package]] +name = "wasmtime-cranelift" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f264ff6b4df247d15584f2f53d009fbc90032cfdc2605b52b961bffc71b6eccd" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", + "gimli", + "log", + "more-asserts", + "object 0.28.4", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-environ" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "839d2820e4b830f4b9e7aa08d4c0acabf4a5036105d639f6dfa1c6891c73bdc6" +dependencies = [ + "anyhow", + "cranelift-entity", + "gimli", + "indexmap", + "log", + "more-asserts", + "object 0.28.4", + "serde", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-types", +] + +[[package]] +name = "wasmtime-fiber" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3248be3c4911233535356025f6562193614a40155ee9094bb6a2b43f0dc82803" +dependencies = [ + "cc", + "rustix", + "winapi 0.3.9", +] + +[[package]] +name = "wasmtime-jit" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef0a0bcbfa18b946d890078ba0e1bc76bcc53eccfb40806c0020ec29dcd1bd49" +dependencies = [ + "addr2line", + "anyhow", + "bincode", + "cfg-if 1.0.0", + "cpp_demangle", + "gimli", + "ittapi-rs", + "log", + "object 0.28.4", + "region", + "rustc-demangle", + "rustix", + "serde", + "target-lexicon", + "thiserror", + "wasmtime-environ", + "wasmtime-jit-debug", + "wasmtime-runtime", + "winapi 0.3.9", +] + +[[package]] +name = "wasmtime-jit-debug" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f4779d976206c458edd643d1ac622b6c37e4a0800a8b1d25dfbf245ac2f2cac" +dependencies = [ + "lazy_static", + "object 0.28.4", + "rustix", +] + +[[package]] +name = "wasmtime-runtime" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7eb6ffa169eb5dcd18ac9473c817358cd57bc62c244622210566d473397954a" +dependencies = [ + "anyhow", + "backtrace", + "cc", + "cfg-if 1.0.0", + "indexmap", + "libc", + "log", + "mach", + "memfd", + "memoffset", + "more-asserts", + "rand 0.8.5", + "region", + "rustix", + "thiserror", + "wasmtime-environ", + "wasmtime-fiber", + "wasmtime-jit-debug", + "winapi 0.3.9", +] + +[[package]] +name = "wasmtime-types" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d932b0ac5336f7308d869703dd225610a6a3aeaa8e968c52b43eed96cefb1c2" +dependencies = [ + "cranelift-entity", + "serde", + "thiserror", + "wasmparser", +] + +[[package]] +name = "wasmtime-wasi" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b68b7d77fb6f2975a6fe6cc4d0015d6b0cebb65c39fce1dd4cc00880dbf7789c" +dependencies = [ + "anyhow", + "wasi-cap-std-sync", + "wasi-common", + "wasmtime", + "wiggle", +] + +[[package]] +name = "wast" +version = "35.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68" +dependencies = [ + "leb128", +] + +[[package]] +name = "wast" +version = "47.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b98502f3978adea49551e801a6687678e6015317d7d9470a67fe813393f2a8" +dependencies = [ + "leb128", + "memchr", + "unicode-width", + "wasm-encoder", +] + +[[package]] +name = "wat" +version = "1.0.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aab4e20c60429fbba9670a6cae0fff9520046ba0aa3e6d0b1cd2653bea14898" +dependencies = [ + "wast 47.0.1", +] + +[[package]] +name = "web-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +dependencies = [ + "webpki 0.21.4", +] + +[[package]] +name = "webpki-roots" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" +dependencies = [ + "webpki 0.22.0", +] + +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "wepoll-ffi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" +dependencies = [ + "cc", +] + +[[package]] +name = "which" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" +dependencies = [ + "either", + "libc", + "once_cell", +] + +[[package]] +name = "whoami" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6631b6a2fd59b1841b622e8f1a7ad241ef0a46f2d580464ce8140ac94cbd571" +dependencies = [ + "bumpalo", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wiggle" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dadac11343d2aabc8a906a0db0aaf7cb5046ec3d6fffccdaf2847dccdef8d6" +dependencies = [ + "anyhow", + "async-trait", + "bitflags", + "thiserror", + "tracing", + "wasmtime", + "wiggle-macro", +] + +[[package]] +name = "wiggle-generate" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63a1dccd6b3fbd9a27417f5d30ce9aa3ee9cf529aad453abbf88a49c5d605b79" +dependencies = [ + "anyhow", + "heck 0.4.0", + "proc-macro2", + "quote", + "shellexpand", + "syn", + "witx", +] + +[[package]] +name = "wiggle-macro" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1c368d57d9560c34deaa67e06b0953ccf65edb906c525e5a2c866c849b48ec2" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wiggle-generate", +] + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "winx" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d5973cb8cd94a77d03ad7e23bbe14889cb29805da1cec0e4aff75e21aebded" +dependencies = [ + "bitflags", + "io-lifetimes", + "winapi 0.3.9", +] + +[[package]] +name = "wio" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "witx" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b" +dependencies = [ + "anyhow", + "log", + "thiserror", + "wast 35.0.2", +] + +[[package]] +name = "workspace" +version = "0.1.0" +dependencies = [ + "anyhow", + "client", + "clock", + "collections", + "context_menu", + "drag_and_drop", + "futures 0.3.24", + "gpui", + "language", + "log", + "menu", + "parking_lot 0.11.2", + "postage", + "project", + "serde", + "serde_json", + "settings", + "smallvec", + "theme", + "util", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "xml-rs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" + +[[package]] +name = "xmlparser" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "114ba2b24d2167ef6d67d7d04c8cc86522b87f490025f39f0303b7db5bf5e3d8" + +[[package]] +name = "xmlwriter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "zed" +version = "0.59.0" +dependencies = [ + "activity_indicator", + "anyhow", + "assets", + "async-compression", + "async-recursion", + "async-trait", + "auto_update", + "backtrace", + "breadcrumbs", + "chat_panel", + "chrono", + "cli", + "client", + "clock", + "collections", + "command_palette", + "contacts_panel", + "contacts_status_item", + "context_menu", + "ctor", + "diagnostics", + "dirs 3.0.2", + "easy-parallel", + "editor", + "env_logger", + "file_finder", + "fsevent", + "futures 0.3.24", + "fuzzy", + "go_to_line", + "gpui", + "ignore", + "image", + "indexmap", + "isahc", + "journal", + "language", + "lazy_static", + "libc", + "log", + "lsp", + "num_cpus", + "outline", + "parking_lot 0.11.2", + "plugin_runtime", + "postage", + "project", + "project_panel", + "project_symbols", + "rand 0.8.5", + "regex", + "rpc", + "rsa", + "rust-embed", + "search", + "serde", + "serde_json", + "serde_path_to_error", + "settings", + "simplelog", + "smallvec", + "smol", + "sum_tree", + "tempdir", + "terminal", + "text", + "theme", + "theme_selector", + "thiserror", + "tiny_http", + "toml", + "tree-sitter", + "tree-sitter-c", + "tree-sitter-cpp", + "tree-sitter-css", + "tree-sitter-elixir", + "tree-sitter-go", + "tree-sitter-html", + "tree-sitter-json 0.20.0", + "tree-sitter-markdown", + "tree-sitter-python", + "tree-sitter-rust", + "tree-sitter-toml", + "tree-sitter-typescript", + "unindent", + "url", + "util", + "vim", + "workspace", +] + +[[package]] +name = "zeroize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.1+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b" +dependencies = [ + "cc", + "libc", +] diff --git a/crates/vim/src/test_contexts/neovim_backed_test_context.rs b/crates/vim/src/test_contexts/neovim_backed_test_context.rs index d537abb530..6eea30e7f7 100644 --- a/crates/vim/src/test_contexts/neovim_backed_test_context.rs +++ b/crates/vim/src/test_contexts/neovim_backed_test_context.rs @@ -52,22 +52,6 @@ impl<'a> NeovimBackedTestContext<'a> { self.exemptions.insert(initial_state, None); } - pub fn add_keybinding_exemption( - &mut self, - keybinding: [&str; COUNT], - initial_state: &str, - ) { - let initial_state = initial_state.to_string(); - let exempted_keybindings = self - .exemptions - .entry(initial_state) - .or_insert(Some(Default::default())); - - if let Some(exempted_bindings) = exempted_keybindings.as_mut() { - exempted_bindings.insert(format!("{keybinding:?}")); - } - } - pub async fn simulate_shared_keystroke(&mut self, keystroke_text: &str) { let keystroke = Keystroke::parse(keystroke_text).unwrap(); @@ -118,7 +102,7 @@ impl<'a> NeovimBackedTestContext<'a> { .get_current_buf() .await .expect("Could not get neovim buffer"); - let mut lines = self + let lines = self .buffer_text() .split('\n') .map(|line| line.to_string()) From 5fec8c8bfdf0f0e55a7ee84399fb8869f0d5d1eb Mon Sep 17 00:00:00 2001 From: K Simmons Date: Sun, 9 Oct 2022 01:19:22 -0700 Subject: [PATCH 04/24] Enable verifying of visual mode selections in neovim backed tests --- .../neovim_backed_test_context.rs | 96 +++++--- crates/vim/src/visual.rs | 228 ++++-------------- .../neovim_backed_test_context_works.json | 2 +- crates/vim/test_data/test_a.json | 2 +- crates/vim/test_data/test_backspace.json | 2 +- .../test_change_around_sentence.json | 2 +- .../test_data/test_change_around_word.json | 2 +- .../test_data/test_change_in_sentence.json | 2 +- crates/vim/test_data/test_change_in_word.json | 2 +- .../test_delete_around_sentence.json | 2 +- .../test_data/test_delete_around_word.json | 2 +- .../test_data/test_delete_in_sentence.json | 2 +- crates/vim/test_data/test_delete_in_word.json | 2 +- crates/vim/test_data/test_e.json | 2 +- .../vim/test_data/test_enter_visual_mode.json | 1 + crates/vim/test_data/test_gg.json | 2 +- crates/vim/test_data/test_h.json | 2 +- .../test_data/test_insert_end_of_line.json | 2 +- .../vim/test_data/test_insert_line_above.json | 2 +- crates/vim/test_data/test_j.json | 2 +- crates/vim/test_data/test_jump_to_end.json | 2 +- .../test_jump_to_line_boundaries.json | 2 +- crates/vim/test_data/test_k.json | 2 +- crates/vim/test_data/test_l.json | 2 +- crates/vim/test_data/test_neovim.json | 2 +- crates/vim/test_data/test_repeated_cb.json | 2 +- crates/vim/test_data/test_repeated_ce.json | 2 +- crates/vim/test_data/test_repeated_cj.json | 2 +- crates/vim/test_data/test_repeated_cl.json | 2 +- crates/vim/test_data/test_repeated_word.json | 2 +- crates/vim/test_data/test_visual_delete.json | 1 + .../test_data/test_visual_line_delete.json | 1 + crates/vim/test_data/test_w.json | 2 +- 33 files changed, 147 insertions(+), 236 deletions(-) create mode 100644 crates/vim/test_data/test_enter_visual_mode.json create mode 100644 crates/vim/test_data/test_visual_delete.json create mode 100644 crates/vim/test_data/test_visual_line_delete.json diff --git a/crates/vim/src/test_contexts/neovim_backed_test_context.rs b/crates/vim/src/test_contexts/neovim_backed_test_context.rs index 6eea30e7f7..aa52f0c40b 100644 --- a/crates/vim/src/test_contexts/neovim_backed_test_context.rs +++ b/crates/vim/src/test_contexts/neovim_backed_test_context.rs @@ -1,5 +1,5 @@ use std::{ - ops::{Deref, DerefMut}, + ops::{Deref, DerefMut, Range}, path::PathBuf, }; @@ -145,10 +145,17 @@ impl<'a> NeovimBackedTestContext<'a> { self.assertion_context.context() ); - let zed_head = self.update_editor(|editor, cx| editor.selections.newest_display(cx).head()); + let zed_selection = self.update_editor(|editor, cx| editor.selections.newest_display(cx)); + let mut zed_selection_range = zed_selection.range(); + // Zed selections adjust themselves to make the end point visually make sense + if zed_selection.reversed { + *zed_selection_range.end.column_mut() = + zed_selection_range.end.column().saturating_sub(1); + } + let neovim_selection = self.neovim.selection().await; assert_eq!( - self.neovim.head().await, - zed_head, + neovim_selection, + zed_selection_range, "{}", self.assertion_context.context() ); @@ -234,7 +241,7 @@ impl<'a> DerefMut for NeovimBackedTestContext<'a> { #[derive(Serialize, Deserialize)] pub enum NeovimData { Text(String), - Head { row: u32, column: u32 }, + Selection { start: (u32, u32), end: (u32, u32) }, Mode(Option), } @@ -267,6 +274,7 @@ impl NeovimConnection { .await .expect("Could not attach to ui"); + // Makes system act a little more like zed in terms of indentation nvim.set_option("smartindent", nvim_rs::Value::Boolean(true)) .await .expect("Could not set smartindent on startup"); @@ -319,36 +327,64 @@ impl NeovimConnection { } #[cfg(feature = "neovim")] - pub async fn head(&mut self) -> DisplayPoint { - let nvim_row: u32 = self - .nvim - .command_output("echo line('.')") - .await - .unwrap() - .parse::() - .unwrap() - - 1; // Neovim rows start at 1 - let nvim_column: u32 = self - .nvim - .command_output("echo col('.')") - .await - .unwrap() - .parse::() - .unwrap() - - 1; // Neovim columns start at 1 + pub async fn selection(&mut self) -> Range { + let (start, end) = if let Some(Mode::Visual { .. }) = self.mode().await { + self.nvim + .input("") + .await + .expect("Could not exit visual mode"); + let nvim_buffer = self + .nvim + .get_current_buf() + .await + .expect("Could not get neovim buffer"); + let (start_row, start_col) = nvim_buffer + .get_mark("<") + .await + .expect("Could not get selection start"); + let (end_row, end_col) = nvim_buffer + .get_mark(">") + .await + .expect("Could not get selection end"); + self.nvim + .input("gv") + .await + .expect("Could not reselect visual selection"); - self.data.push_back(NeovimData::Head { - row: nvim_row, - column: nvim_column, - }); + ( + (start_row as u32 - 1, start_col as u32), + (end_row as u32 - 1, end_col as u32), + ) + } else { + let nvim_row: u32 = self + .nvim + .command_output("echo line('.')") + .await + .unwrap() + .parse::() + .unwrap() + - 1; // Neovim rows start at 1 + let nvim_column: u32 = self + .nvim + .command_output("echo col('.')") + .await + .unwrap() + .parse::() + .unwrap() + - 1; // Neovim columns start at 1 - DisplayPoint::new(nvim_row, nvim_column) + ((nvim_row, nvim_column), (nvim_row, nvim_column)) + }; + + self.data.push_back(NeovimData::Selection { start, end }); + + DisplayPoint::new(start.0, start.1)..DisplayPoint::new(end.0, end.1) } #[cfg(not(feature = "neovim"))] - pub async fn head(&mut self) -> DisplayPoint { - if let Some(NeovimData::Head { row, column }) = self.data.pop_front() { - DisplayPoint::new(row, column) + pub async fn selection(&mut self) -> Range { + if let Some(NeovimData::Selection { start, end }) = self.data.pop_front() { + DisplayPoint::new(start.0, start.1)..DisplayPoint::new(end.0, end.1) } else { panic!("Invalid test data. Is test deterministic? Try running with '--features neovim' to regenerate"); } diff --git a/crates/vim/src/visual.rs b/crates/vim/src/visual.rs index c4c1ddf9a6..eb222346ce 100644 --- a/crates/vim/src/visual.rs +++ b/crates/vim/src/visual.rs @@ -280,220 +280,92 @@ pub fn paste(_: &mut Workspace, _: &VisualPaste, cx: &mut ViewContext mod test { use indoc::indoc; - use crate::{state::Mode, test_contexts::VimTestContext}; + use crate::{ + state::Mode, + test_contexts::{NeovimBackedTestContext, VimTestContext}, + }; #[gpui::test] async fn test_enter_visual_mode(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx - .binding(["v", "w", "j"]) - .mode_after(Mode::Visual { line: false }); - cx.assert( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx) + .await + .binding(["v", "w", "j"]); + cx.assert_all(indoc! {" The ˇquick brown - fox jumps over - the lazy dog"}, - indoc! {" - The «quick brown - fox jumps ˇ»over - the lazy dog"}, - ); - cx.assert( - indoc! {" - The quick brown - fox jumps over - the ˇlazy dog"}, - indoc! {" - The quick brown - fox jumps over - the «lazy ˇ»dog"}, - ); - cx.assert( - indoc! {" - The quick brown fox jumps ˇover - the lazy dog"}, - indoc! {" - The quick brown - fox jumps «over - ˇ»the lazy dog"}, - ); - let mut cx = cx - .binding(["v", "b", "k"]) - .mode_after(Mode::Visual { line: false }); - cx.assert( - indoc! {" + the ˇlazy dog"}) + .await; + let mut cx = cx.binding(["v", "b", "k"]); + cx.assert_all(indoc! {" The ˇquick brown - fox jumps over - the lazy dog"}, - indoc! {" - «ˇThe q»uick brown - fox jumps over - the lazy dog"}, - ); - cx.assert( - indoc! {" - The quick brown - fox jumps over - the ˇlazy dog"}, - indoc! {" - The quick brown - «ˇfox jumps over - the l»azy dog"}, - ); - cx.assert( - indoc! {" - The quick brown fox jumps ˇover - the lazy dog"}, - indoc! {" - The «ˇquick brown - fox jumps o»ver - the lazy dog"}, - ); + the ˇlazy dog"}) + .await; } #[gpui::test] async fn test_visual_delete(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["v", "w", "x"]); - cx.assert("The quick ˇbrown", "The quickˇ "); + let mut cx = NeovimBackedTestContext::new(cx) + .await + .binding(["v", "w", "x"]); + cx.assert("The quick ˇbrown").await; let mut cx = cx.binding(["v", "w", "j", "x"]); - cx.assert( - indoc! {" + cx.assert(indoc! {" The ˇquick brown fox jumps over - the lazy dog"}, - indoc! {" - The ˇver - the lazy dog"}, - ); + the lazy dog"}) + .await; // Test pasting code copied on delete - cx.simulate_keystrokes(["j", "p"]); - cx.assert_editor_state(indoc! {" - The ver - the lˇquick brown - fox jumps oazy dog"}); + cx.simulate_shared_keystrokes(["j", "p"]).await; + cx.assert_state_matches().await; - cx.assert( - indoc! {" - The quick brown - fox jumps over - the ˇlazy dog"}, - indoc! {" - The quick brown - fox jumps over - the ˇog"}, - ); - cx.assert( - indoc! {" - The quick brown - fox jumps ˇover - the lazy dog"}, - indoc! {" - The quick brown - fox jumps ˇhe lazy dog"}, - ); - let mut cx = cx.binding(["v", "b", "k", "x"]); - cx.assert( - indoc! {" + cx.assert_all(indoc! {" The ˇquick brown fox jumps over - the lazy dog"}, - indoc! {" - ˇuick brown - fox jumps over - the lazy dog"}, - ); - cx.assert( - indoc! {" - The quick brown - fox jumps over - the ˇlazy dog"}, - indoc! {" - The quick brown - ˇazy dog"}, - ); - cx.assert( - indoc! {" - The quick brown + the ˇlazy dog"}) + .await; + let mut cx = cx.binding(["v", "b", "k", "x"]); + cx.assert_all(indoc! {" + The ˇquick brown fox jumps ˇover - the lazy dog"}, - indoc! {" - The ˇver - the lazy dog"}, - ); + the ˇlazy dog"}) + .await; } #[gpui::test] async fn test_visual_line_delete(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["shift-v", "x"]); - cx.assert( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx) + .await + .binding(["shift-v", "x"]); + cx.assert(indoc! {" The quˇick brown fox jumps over - the lazy dog"}, - indoc! {" - fox juˇmps over - the lazy dog"}, - ); + the lazy dog"}) + .await; // Test pasting code copied on delete - cx.simulate_keystroke("p"); - cx.assert_editor_state(indoc! {" - fox jumps over - ˇThe quick brown - the lazy dog"}); + cx.simulate_shared_keystroke("p").await; + cx.assert_state_matches().await; - cx.assert( - indoc! {" + cx.assert_all(indoc! {" The quick brown fox juˇmps over - the lazy dog"}, - indoc! {" - The quick brown - the laˇzy dog"}, - ); - cx.assert( - indoc! {" - The quick brown - fox jumps over - the laˇzy dog"}, - indoc! {" - The quick brown - fox juˇmps over"}, - ); + the laˇzy dog"}) + .await; let mut cx = cx.binding(["shift-v", "j", "x"]); - cx.assert( - indoc! {" + cx.assert(indoc! {" The quˇick brown fox jumps over - the lazy dog"}, - "the laˇzy dog", - ); + the lazy dog"}) + .await; // Test pasting code copied on delete - cx.simulate_keystroke("p"); - cx.assert_editor_state(indoc! {" - the lazy dog - ˇThe quick brown - fox jumps over"}); + cx.simulate_shared_keystroke("p").await; + cx.assert_state_matches().await; - cx.assert( - indoc! {" + cx.assert_all(indoc! {" The quick brown fox juˇmps over - the lazy dog"}, - "The quˇick brown", - ); - cx.assert( - indoc! {" - The quick brown - fox jumps over - the laˇzy dog"}, - indoc! {" - The quick brown - fox juˇmps over"}, - ); + the laˇzy dog"}) + .await; } #[gpui::test] diff --git a/crates/vim/test_data/neovim_backed_test_context_works.json b/crates/vim/test_data/neovim_backed_test_context_works.json index 4b0312565e..807c9010e8 100644 --- a/crates/vim/test_data/neovim_backed_test_context_works.json +++ b/crates/vim/test_data/neovim_backed_test_context_works.json @@ -1 +1 @@ -[{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"This is a test"},{"Head":{"row":0,"column":13}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":""},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"This is a test"},{"Mode":"Normal"},{"Selection":{"start":[0,13],"end":[0,13]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_a.json b/crates/vim/test_data/test_a.json index fc9d170879..32ea8ac6a6 100644 --- a/crates/vim/test_data/test_a.json +++ b/crates/vim/test_data/test_a.json @@ -1 +1 @@ -[{"Text":"The quick"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quick"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":"The quick"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"The quick"},{"Mode":"Insert"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_backspace.json b/crates/vim/test_data/test_backspace.json index 3659773665..d002dfa718 100644 --- a/crates/vim/test_data/test_backspace.json +++ b/crates/vim/test_data/test_backspace.json @@ -1 +1 @@ -[{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":4}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,8],"end":[0,8]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_sentence.json b/crates/vim/test_data/test_change_around_sentence.json index 9e01890d9f..187e766f11 100644 --- a/crates/vim/test_data/test_change_around_sentence.json +++ b/crates/vim/test_data/test_change_around_sentence.json @@ -1 +1 @@ -[{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":27}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":27}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":27}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":27}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":13}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":13}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":13}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word.json b/crates/vim/test_data/test_change_around_word.json index c8724a6810..3463c5c6d6 100644 --- a/crates/vim/test_data/test_change_around_word.json +++ b/crates/vim/test_data/test_change_around_word.json @@ -1 +1 @@ -[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":3}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":6}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Head":{"row":10,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n"},{"Head":{"row":11,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":2}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Head":{"row":10,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n"},{"Head":{"row":11,"column":0}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence.json b/crates/vim/test_data/test_change_in_sentence.json index 08dbca368a..5058d5b569 100644 --- a/crates/vim/test_data/test_change_in_sentence.json +++ b/crates/vim/test_data/test_change_in_sentence.json @@ -1 +1 @@ -[{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown?Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":16}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!Over the lazy."},{"Head":{"row":0,"column":27}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":28}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":28}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":28}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.The quick \nbrown fox jumps over\n"},{"Head":{"row":2,"column":13}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Head":{"row":2,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Head":{"row":2,"column":14}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" Brown fox jumps."},{"Head":{"row":0,"column":37}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown?Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,16],"end":[0,16]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Insert"},{"Selection":{"start":[0,28],"end":[0,28]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Insert"},{"Selection":{"start":[0,28],"end":[0,28]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Insert"},{"Selection":{"start":[0,28],"end":[0,28]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Insert"},{"Selection":{"start":[2,14],"end":[2,14]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Insert"},{"Selection":{"start":[2,14],"end":[2,14]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" Brown fox jumps."},{"Mode":"Insert"},{"Selection":{"start":[0,37],"end":[0,37]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word.json b/crates/vim/test_data/test_change_in_word.json index eaa390e50f..ef65a09291 100644 --- a/crates/vim/test_data/test_change_in_word.json +++ b/crates/vim/test_data/test_change_in_word.json @@ -1 +1 @@ -[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":3}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox- over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":6}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Head":{"row":10,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":11,"column":0}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":2}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Head":{"row":10,"column":12}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":11,"column":0}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox- over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence.json b/crates/vim/test_data/test_delete_around_sentence.json index 479f0cc77c..b18c6ffa76 100644 --- a/crates/vim/test_data/test_delete_around_sentence.json +++ b/crates/vim/test_data/test_delete_around_sentence.json @@ -1 +1 @@ -[{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":26}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":26}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":26}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Head":{"row":0,"column":26}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":12}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":12}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Head":{"row":2,"column":12}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":20}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":20}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,20],"end":[0,20]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,20],"end":[0,20]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word.json b/crates/vim/test_data/test_delete_around_word.json index 37e370d3bd..aec3fdd39a 100644 --- a/crates/vim/test_data/test_delete_around_word.json +++ b/crates/vim/test_data/test_delete_around_word.json @@ -1 +1 @@ -[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":8}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":3}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":6}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Head":{"row":10,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog "},{"Head":{"row":10,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":15}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":8}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":15}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":2}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Head":{"row":10,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog "},{"Head":{"row":10,"column":0}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,8],"end":[1,8]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog "},{"Mode":"Normal"},{"Selection":{"start":[10,0],"end":[10,0]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,8],"end":[1,8]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog "},{"Mode":"Normal"},{"Selection":{"start":[10,0],"end":[10,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence.json b/crates/vim/test_data/test_delete_in_sentence.json index 1ecaa01ee6..31891d19cb 100644 --- a/crates/vim/test_data/test_delete_in_sentence.json +++ b/crates/vim/test_data/test_delete_in_sentence.json @@ -1 +1 @@ -[{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown?Fox Jumps! Over the lazy."},{"Head":{"row":0,"column":16}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Head":{"row":0,"column":17}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!Over the lazy."},{"Head":{"row":0,"column":27}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":27}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":27}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Head":{"row":0,"column":27}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.The quick \nbrown fox jumps over\n"},{"Head":{"row":2,"column":13}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Head":{"row":2,"column":13}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Head":{"row":2,"column":13}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Head":{"row":0,"column":21}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" Brown fox jumps."},{"Head":{"row":0,"column":36}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown?Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,16],"end":[0,16]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" Brown fox jumps."},{"Mode":"Normal"},{"Selection":{"start":[0,36],"end":[0,36]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word.json b/crates/vim/test_data/test_delete_in_word.json index 1960dce67a..c15c6ce208 100644 --- a/crates/vim/test_data/test_delete_in_word.json +++ b/crates/vim/test_data/test_delete_in_word.json @@ -1 +1 @@ -[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":3}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":14}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox- over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":6}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Head":{"row":10,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":11,"column":0}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":1,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":2,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":5,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":6,"column":14}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":7,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":8,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Head":{"row":9,"column":2}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Head":{"row":10,"column":11}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Head":{"row":11,"column":0}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,14],"end":[6,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox- over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,14],"end":[6,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_e.json b/crates/vim/test_data/test_e.json index bd3c513846..c4650284dd 100644 --- a/crates/vim/test_data/test_e.json +++ b/crates/vim/test_data/test_e.json @@ -1 +1 @@ -[{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":8}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":13}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":14}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":8}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":13}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,8],"end":[0,8]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,8],"end":[3,8]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,13],"end":[3,13]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[4,2],"end":[4,2]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[4,2],"end":[4,2]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,8],"end":[3,8]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,13],"end":[3,13]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[4,2],"end":[4,2]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[4,2],"end":[4,2]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_enter_visual_mode.json b/crates/vim/test_data/test_enter_visual_mode.json new file mode 100644 index 0000000000..43d1e0559a --- /dev/null +++ b/crates/vim/test_data/test_enter_visual_mode.json @@ -0,0 +1 @@ +[{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,4],"end":[1,10]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,10],"end":[2,0]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[2,4],"end":[2,9]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[0,4]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,4],"end":[1,10]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,0],"end":[2,4]}},{"Mode":{"Visual":{"line":false}}}] \ No newline at end of file diff --git a/crates/vim/test_data/test_gg.json b/crates/vim/test_data/test_gg.json index 7ce13ba6cb..ef301ba221 100644 --- a/crates/vim/test_data/test_gg.json +++ b/crates/vim/test_data/test_gg.json @@ -1 +1 @@ -[{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":0,"column":5}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":0,"column":5}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[0,8],"end":[0,8]}},{"Mode":"Normal"},{"Text":"\n\nbrown fox jumps\nover the lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_h.json b/crates/vim/test_data/test_h.json index 7626f1b121..6eeff7997f 100644 --- a/crates/vim/test_data/test_h.json +++ b/crates/vim/test_data/test_h.json @@ -1 +1 @@ -[{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":4}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_insert_end_of_line.json b/crates/vim/test_data/test_insert_end_of_line.json index 887ba4dabc..6b377b0d20 100644 --- a/crates/vim/test_data/test_insert_end_of_line.json +++ b/crates/vim/test_data/test_insert_end_of_line.json @@ -1 +1 @@ -[{"Text":"\nThe quick\nbrown fox "},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nThe quick\nbrown fox "},{"Head":{"row":1,"column":9}},{"Mode":"Insert"},{"Text":"\nThe quick\nbrown fox "},{"Head":{"row":2,"column":10}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":"\nThe quick\nbrown fox "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nThe quick\nbrown fox "},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"\nThe quick\nbrown fox "},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_insert_line_above.json b/crates/vim/test_data/test_insert_line_above.json index 0dc54b6f88..45854367ae 100644 --- a/crates/vim/test_data/test_insert_line_above.json +++ b/crates/vim/test_data/test_insert_line_above.json @@ -1 +1 @@ -[{"Text":"\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nThe quick"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nThe quick\nbrown fox\njumps over"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick\n\nbrown fox\njumps over"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick\nbrown fox\n\njumps over"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick\n\n\nbrown fox"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":"\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nThe quick"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nThe quick\nbrown fox\njumps over"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick\n\nbrown fox\njumps over"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick\nbrown fox\n\njumps over"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick\n\n\nbrown fox"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_j.json b/crates/vim/test_data/test_j.json index b3202075f5..da373bbcad 100644 --- a/crates/vim/test_data/test_j.json +++ b/crates/vim/test_data/test_j.json @@ -1 +1 @@ -[{"Text":"The quick brown\nfox jumps"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps"},{"Head":{"row":1,"column":5}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps"},{"Head":{"row":1,"column":8}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick brown\nfox jumps"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps"},{"Mode":"Normal"},{"Selection":{"start":[1,5],"end":[1,5]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps"},{"Mode":"Normal"},{"Selection":{"start":[1,8],"end":[1,8]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_jump_to_end.json b/crates/vim/test_data/test_jump_to_end.json index 71bd396efe..c556c7cb16 100644 --- a/crates/vim/test_data/test_jump_to_end.json +++ b/crates/vim/test_data/test_jump_to_end.json @@ -1 +1 @@ -[{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Head":{"row":3,"column":16}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[3,4],"end":[3,4]}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[3,4],"end":[3,4]}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox jumps\nover the lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[3,16],"end":[3,16]}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Normal"},{"Text":"The quick\n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_jump_to_line_boundaries.json b/crates/vim/test_data/test_jump_to_line_boundaries.json index 48dd51a219..386a2db23f 100644 --- a/crates/vim/test_data/test_jump_to_line_boundaries.json +++ b/crates/vim/test_data/test_jump_to_line_boundaries.json @@ -1 +1 @@ -[{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,8],"end":[0,8]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,8],"end":[0,8]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,8],"end":[0,8]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_k.json b/crates/vim/test_data/test_k.json index d99237d71a..cd5242c0f3 100644 --- a/crates/vim/test_data/test_k.json +++ b/crates/vim/test_data/test_k.json @@ -1 +1 @@ -[{"Text":"The quick\nbrown fox jumps"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Head":{"row":0,"column":5}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Head":{"row":0,"column":7}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick\nbrown fox jumps"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Mode":"Normal"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Mode":"Normal"},{"Selection":{"start":[0,7],"end":[0,7]}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox jumps"},{"Mode":"Normal"},{"Selection":{"start":[0,8],"end":[0,8]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_l.json b/crates/vim/test_data/test_l.json index 33f70e2ee9..3d6c4b3493 100644 --- a/crates/vim/test_data/test_l.json +++ b/crates/vim/test_data/test_l.json @@ -1 +1 @@ -[{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":1}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":6}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":0,"column":8}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":1}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Head":{"row":1,"column":4}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,1],"end":[0,1]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[0,8],"end":[0,8]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[1,1],"end":[1,1]}},{"Mode":"Normal"},{"Text":"The quick\nbrown"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_neovim.json b/crates/vim/test_data/test_neovim.json index 678e4f7852..eba763f676 100644 --- a/crates/vim/test_data/test_neovim.json +++ b/crates/vim/test_data/test_neovim.json @@ -1 +1 @@ -[{"Text":"test"},{"Head":{"row":0,"column":0}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"test"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_repeated_cb.json b/crates/vim/test_data/test_repeated_cb.json index 357e37a8c9..b00195b2d9 100644 --- a/crates/vim/test_data/test_repeated_cb.json +++ b/crates/vim/test_data/test_repeated_cb.json @@ -1 +1 @@ -[{"Text":"The ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The quick n\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick \n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\njumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox -over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsover\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-ver\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The n\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The \n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\njumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsver\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"n\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The \nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The quick jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nover\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox ver\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox \nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"n\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The quick -over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\nover\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nver\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"n\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The -over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Insert"},{"Text":"The quick over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\nver\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":"The ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Insert"},{"Text":"The brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Insert"},{"Text":"The quick n\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\njumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox -over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsover\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-ver\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The n\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Insert"},{"Text":"The \n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown\njumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsver\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"n\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The \nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Insert"},{"Text":"The quick jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nover\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox ver\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox \nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"n\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Insert"},{"Text":"The quick -over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown\nover\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nver\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"ick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"n\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The -over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Insert"},{"Text":"The quick over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown\nver\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_repeated_ce.json b/crates/vim/test_data/test_repeated_ce.json index 32394077e6..3251127aed 100644 --- a/crates/vim/test_data/test_repeated_ce.json +++ b/crates/vim/test_data/test_repeated_ce.json @@ -1 +1 @@ -[{"Text":" quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qu brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quick\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox -over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qu\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quick jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps- lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qu jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quick-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick browover\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\nover\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nover\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox \nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps- dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":" jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qu-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickover\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quover\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quick\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":" quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The qu brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"The quick\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Insert"},{"Text":"The quick brow jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Insert"},{"Text":"The quick brown\n jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox -over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":" brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The qu\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"The quick jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Insert"},{"Text":"The quick brow-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Insert"},{"Text":"The quick brown\n-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps- lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n dog\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The qu jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"The quick-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Insert"},{"Text":"The quick browover\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Insert"},{"Text":"The quick brown\nover\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nover\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox \nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps- dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":" jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The qu-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"The quickover\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Insert"},{"Text":"The quick brow\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\n"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\n"},{"Mode":"Insert"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quover\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"The quick\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Insert"},{"Text":"The quick brow lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Insert"},{"Text":"The quick brown\n lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o"},{"Mode":"Insert"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_repeated_cj.json b/crates/vim/test_data/test_repeated_cj.json index f6c81c9a4a..0b8ac80442 100644 --- a/crates/vim/test_data/test_repeated_cj.json +++ b/crates/vim/test_data/test_repeated_cj.json @@ -1 +1 @@ -[{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":""},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_repeated_cl.json b/crates/vim/test_data/test_repeated_cl.json index 7eaf17b24a..89f6a104af 100644 --- a/crates/vim/test_data/test_repeated_cl.json +++ b/crates/vim/test_data/test_repeated_cl.json @@ -1 +1 @@ -[{"Text":"he quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quck brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickbrown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox umps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsover\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-ver\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-oer\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nhe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"e quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The quk brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickrown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nx jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox mps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsver\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-er\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-or\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\ne lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":" quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qu brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\n jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox ps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpser\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-r\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qubrown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickwn\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\njumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox s-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsr\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nlazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"},{"Text":"uick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":0}},{"Mode":"Insert"},{"Text":"The qurown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":6}},{"Mode":"Insert"},{"Text":"The quickn\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":9}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":14}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\numps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox -over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Head":{"row":2,"column":11}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":"he quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quck brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"The quickbrown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox umps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsover\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-ver\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-oer\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nhe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"e quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quk brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"The quickrown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nx jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox mps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsver\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-er\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-or\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\ne lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":" quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The qu brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"The quickown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\n jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox ps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpser\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-r\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\n lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The qubrown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"The quickwn\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\njumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox s-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumpsr\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nlazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"uick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The qurown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"The quickn\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Insert"},{"Text":"The quick brow\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\numps-over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox -over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-o\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Insert"},{"Text":"The quick brown\n\nfox jumps-over\nazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_repeated_word.json b/crates/vim/test_data/test_repeated_word.json index 330ada2013..54caf22a3e 100644 --- a/crates/vim/test_data/test_repeated_word.json +++ b/crates/vim/test_data/test_repeated_word.json @@ -1 +1 @@ -[{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":2,"column":10}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":4}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":3,"column":9}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,4],"end":[3,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,4],"end":[3,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,4],"end":[3,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,9],"end":[3,9]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,4],"end":[3,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,9],"end":[3,9]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,9],"end":[3,9]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,4],"end":[3,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,9],"end":[3,9]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,9],"end":[2,9]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[2,10],"end":[2,10]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,4],"end":[3,4]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[3,9],"end":[3,9]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nfox jumps-over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_visual_delete.json b/crates/vim/test_data/test_visual_delete.json new file mode 100644 index 0000000000..50750714d0 --- /dev/null +++ b/crates/vim/test_data/test_visual_delete.json @@ -0,0 +1 @@ +[{"Text":"The quick "},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The ver\nthe lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Normal"},{"Text":"The ver\nthe lquick brown\nfox jumps oazy dog"},{"Mode":"Normal"},{"Selection":{"start":[1,5],"end":[1,5]}},{"Mode":"Normal"},{"Text":"The ver\nthe lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over\nthe og"},{"Mode":"Normal"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Normal"},{"Text":"uick brown\nfox jumps over\nthe lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The ver\nthe lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Normal"},{"Text":"The quick brown\nazy dog"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_visual_line_delete.json b/crates/vim/test_data/test_visual_line_delete.json new file mode 100644 index 0000000000..e291fe1034 --- /dev/null +++ b/crates/vim/test_data/test_visual_line_delete.json @@ -0,0 +1 @@ +[{"Text":"fox jumps over\nthe lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Normal"},{"Text":"fox jumps over\nThe quick brown\nthe lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick brown\nthe lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[1,6],"end":[1,6]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over"},{"Mode":"Normal"},{"Selection":{"start":[1,6],"end":[1,6]}},{"Mode":"Normal"},{"Text":"the lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Normal"},{"Text":"the lazy dog\nThe quick brown\nfox jumps over"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick brown"},{"Mode":"Normal"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over"},{"Mode":"Normal"},{"Selection":{"start":[1,6],"end":[1,6]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_w.json b/crates/vim/test_data/test_w.json index 73954548f9..b6fadf7ec1 100644 --- a/crates/vim/test_data/test_w.json +++ b/crates/vim/test_data/test_w.json @@ -1 +1 @@ -[{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":9}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":0,"column":10}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":10}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":1,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":2,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":3,"column":10}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":0}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Head":{"row":4,"column":2}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,10],"end":[3,10]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[4,2],"end":[4,2]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[4,2],"end":[4,2]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,10],"end":[3,10]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[4,2],"end":[4,2]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[4,2],"end":[4,2]}},{"Mode":"Normal"}] \ No newline at end of file From d2494822b006278d3c94c4cd63b676412deff232 Mon Sep 17 00:00:00 2001 From: K Simmons Date: Mon, 10 Oct 2022 14:46:07 -0700 Subject: [PATCH 05/24] Add assertion context manager to TestAppContext and convert existing vim tests to use neovim backed test context --- Cargo.lock | 2 + crates/editor/src/editor_tests.rs | 14 +- .../editor/src/highlight_matching_bracket.rs | 3 +- crates/editor/src/hover_popover.rs | 4 +- crates/editor/src/link_go_to_definition.rs | 2 +- crates/editor/src/mouse_context_menu.rs | 3 +- crates/editor/src/test.rs | 512 +------------- .../src/test/editor_lsp_test_context.rs | 208 ++++++ crates/editor/src/test/editor_test_context.rs | 273 ++++++++ crates/gpui/Cargo.toml | 1 + crates/gpui/src/app.rs | 634 +---------------- crates/gpui/src/app/test_app_context.rs | 655 ++++++++++++++++++ crates/vim/Cargo.toml | 1 + crates/vim/src/insert.rs | 2 +- crates/vim/src/normal.rs | 470 ++++--------- crates/vim/src/normal/change.rs | 2 +- crates/vim/src/normal/delete.rs | 2 +- crates/vim/src/object.rs | 2 +- crates/vim/src/test.rs | 102 +++ .../neovim_backed_binding_test_context.rs | 7 +- .../src/test/neovim_backed_test_context.rs | 158 +++++ crates/vim/src/test/neovim_connection.rs | 383 ++++++++++ .../vim_binding_test_context.rs | 0 .../vim_test_context.rs | 15 +- crates/vim/src/test_contexts.rs | 9 - .../neovim_backed_test_context.rs | 518 -------------- crates/vim/src/vim.rs | 100 +-- crates/vim/src/visual.rs | 178 ++--- crates/vim/test_data/test_b.json | 1 + crates/vim/test_data/test_cc.json | 1 + crates/vim/test_data/test_dd.json | 1 + crates/vim/test_data/test_delete_left.json | 1 + .../test_data/test_delete_to_end_of_line.json | 1 + .../vim/test_data/test_enter_visual_mode.json | 2 +- .../test_insert_first_non_whitespace.json | 1 + .../test_jump_to_first_non_whitespace.json | 1 + crates/vim/test_data/test_o.json | 1 + crates/vim/test_data/test_p.json | 1 + crates/vim/test_data/test_visual_change.json | 1 + .../test_data/test_visual_line_change.json | 1 + crates/vim/test_data/test_x.json | 1 + 41 files changed, 2062 insertions(+), 2212 deletions(-) create mode 100644 crates/editor/src/test/editor_lsp_test_context.rs create mode 100644 crates/editor/src/test/editor_test_context.rs create mode 100644 crates/gpui/src/app/test_app_context.rs create mode 100644 crates/vim/src/test.rs rename crates/vim/src/{test_contexts => test}/neovim_backed_binding_test_context.rs (92%) create mode 100644 crates/vim/src/test/neovim_backed_test_context.rs create mode 100644 crates/vim/src/test/neovim_connection.rs rename crates/vim/src/{test_contexts => test}/vim_binding_test_context.rs (100%) rename crates/vim/src/{test_contexts => test}/vim_test_context.rs (91%) delete mode 100644 crates/vim/src/test_contexts.rs delete mode 100644 crates/vim/src/test_contexts/neovim_backed_test_context.rs create mode 100644 crates/vim/test_data/test_b.json create mode 100644 crates/vim/test_data/test_cc.json create mode 100644 crates/vim/test_data/test_dd.json create mode 100644 crates/vim/test_data/test_delete_left.json create mode 100644 crates/vim/test_data/test_delete_to_end_of_line.json create mode 100644 crates/vim/test_data/test_insert_first_non_whitespace.json create mode 100644 crates/vim/test_data/test_jump_to_first_non_whitespace.json create mode 100644 crates/vim/test_data/test_o.json create mode 100644 crates/vim/test_data/test_p.json create mode 100644 crates/vim/test_data/test_visual_change.json create mode 100644 crates/vim/test_data/test_visual_line_change.json create mode 100644 crates/vim/test_data/test_x.json diff --git a/Cargo.lock b/Cargo.lock index 1da2348ff9..aa9ad80001 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2420,6 +2420,7 @@ dependencies = [ "futures 0.3.24", "gpui_macros", "image", + "itertools", "lazy_static", "log", "media", @@ -6736,6 +6737,7 @@ dependencies = [ "indoc", "itertools", "language", + "lazy_static", "log", "nvim-rs", "parking_lot 0.11.2", diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 430b958407..d2d7a9dfef 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -1,20 +1,22 @@ +use std::{cell::RefCell, rc::Rc, time::Instant}; + +use futures::StreamExt; +use indoc::indoc; +use unindent::Unindent; + use super::*; use crate::test::{ - assert_text_with_selections, build_editor, select_ranges, EditorLspTestContext, - EditorTestContext, + assert_text_with_selections, build_editor, editor_lsp_test_context::EditorLspTestContext, + editor_test_context::EditorTestContext, select_ranges, }; -use futures::StreamExt; use gpui::{ geometry::rect::RectF, platform::{WindowBounds, WindowOptions}, }; -use indoc::indoc; use language::{FakeLspAdapter, LanguageConfig, LanguageRegistry}; use project::FakeFs; use settings::EditorSettings; -use std::{cell::RefCell, rc::Rc, time::Instant}; use text::Point; -use unindent::Unindent; use util::{ assert_set_eq, test::{marked_text_ranges, marked_text_ranges_by, sample_text, TextRangeMarker}, diff --git a/crates/editor/src/highlight_matching_bracket.rs b/crates/editor/src/highlight_matching_bracket.rs index 789393d70b..043b21db21 100644 --- a/crates/editor/src/highlight_matching_bracket.rs +++ b/crates/editor/src/highlight_matching_bracket.rs @@ -32,8 +32,9 @@ pub fn refresh_matching_bracket_highlights(editor: &mut Editor, cx: &mut ViewCon #[cfg(test)] mod tests { + use crate::test::editor_lsp_test_context::EditorLspTestContext; + use super::*; - use crate::test::EditorLspTestContext; use indoc::indoc; use language::{BracketPair, Language, LanguageConfig}; diff --git a/crates/editor/src/hover_popover.rs b/crates/editor/src/hover_popover.rs index 250f8427a5..38b28f0630 100644 --- a/crates/editor/src/hover_popover.rs +++ b/crates/editor/src/hover_popover.rs @@ -427,13 +427,13 @@ impl DiagnosticPopover { #[cfg(test)] mod tests { - use futures::StreamExt; use indoc::indoc; use language::{Diagnostic, DiagnosticSet}; use project::HoverBlock; + use smol::stream::StreamExt; - use crate::test::EditorLspTestContext; + use crate::test::editor_lsp_test_context::EditorLspTestContext; use super::*; diff --git a/crates/editor/src/link_go_to_definition.rs b/crates/editor/src/link_go_to_definition.rs index 6b23a04b67..c8294ddb43 100644 --- a/crates/editor/src/link_go_to_definition.rs +++ b/crates/editor/src/link_go_to_definition.rs @@ -400,7 +400,7 @@ mod tests { use indoc::indoc; use lsp::request::{GotoDefinition, GotoTypeDefinition}; - use crate::test::EditorLspTestContext; + use crate::test::editor_lsp_test_context::EditorLspTestContext; use super::*; diff --git a/crates/editor/src/mouse_context_menu.rs b/crates/editor/src/mouse_context_menu.rs index 4adc030d99..d9840fd3fa 100644 --- a/crates/editor/src/mouse_context_menu.rs +++ b/crates/editor/src/mouse_context_menu.rs @@ -70,8 +70,9 @@ pub fn deploy_context_menu( #[cfg(test)] mod tests { + use crate::test::editor_lsp_test_context::EditorLspTestContext; + use super::*; - use crate::test::EditorLspTestContext; use indoc::indoc; #[gpui::test] diff --git a/crates/editor/src/test.rs b/crates/editor/src/test.rs index acee1216d1..48652c44b7 100644 --- a/crates/editor/src/test.rs +++ b/crates/editor/src/test.rs @@ -1,34 +1,14 @@ +pub mod editor_lsp_test_context; +pub mod editor_test_context; + use crate::{ display_map::{DisplayMap, DisplaySnapshot, ToDisplayPoint}, - multi_buffer::ToPointUtf16, - AnchorRangeExt, Autoscroll, DisplayPoint, Editor, EditorMode, MultiBuffer, ToPoint, + DisplayPoint, Editor, EditorMode, MultiBuffer, }; -use anyhow::Result; -use collections::BTreeMap; -use futures::{Future, StreamExt}; -use gpui::{ - json, keymap::Keystroke, AppContext, ModelContext, ModelHandle, ViewContext, ViewHandle, -}; -use indoc::indoc; -use itertools::Itertools; -use language::{point_to_lsp, Buffer, BufferSnapshot, FakeLspAdapter, Language, LanguageConfig}; -use lsp::{notification, request}; -use parking_lot::RwLock; -use project::Project; -use settings::Settings; -use std::{ - any::TypeId, - ops::{Deref, DerefMut, Range}, - sync::{ - atomic::{AtomicUsize, Ordering}, - Arc, - }, -}; -use util::{ - assert_set_eq, set_eq, - test::{generate_marked_text, marked_text_offsets, marked_text_ranges}, -}; -use workspace::{pane, AppState, Workspace, WorkspaceHandle}; + +use gpui::{ModelHandle, ViewContext}; + +use util::test::{marked_text_offsets, marked_text_ranges}; #[cfg(test)] #[ctor::ctor] @@ -86,479 +66,3 @@ pub(crate) fn build_editor( ) -> Editor { Editor::new(EditorMode::Full, buffer, None, None, cx) } - -pub struct EditorTestContext<'a> { - pub cx: &'a mut gpui::TestAppContext, - pub window_id: usize, - pub editor: ViewHandle, - pub assertion_context: AssertionContextManager, -} - -impl<'a> EditorTestContext<'a> { - pub fn new(cx: &'a mut gpui::TestAppContext) -> EditorTestContext<'a> { - let (window_id, editor) = cx.update(|cx| { - cx.set_global(Settings::test(cx)); - crate::init(cx); - - let (window_id, editor) = cx.add_window(Default::default(), |cx| { - build_editor(MultiBuffer::build_simple("", cx), cx) - }); - - editor.update(cx, |_, cx| cx.focus_self()); - - (window_id, editor) - }); - - Self { - cx, - window_id, - editor, - assertion_context: AssertionContextManager::new(), - } - } - - pub fn add_assertion_context(&self, context: String) -> ContextHandle { - self.assertion_context.add_context(context) - } - - pub fn condition( - &self, - predicate: impl FnMut(&Editor, &AppContext) -> bool, - ) -> impl Future { - self.editor.condition(self.cx, predicate) - } - - pub fn editor(&self, read: F) -> T - where - F: FnOnce(&Editor, &AppContext) -> T, - { - self.editor.read_with(self.cx, read) - } - - pub fn update_editor(&mut self, update: F) -> T - where - F: FnOnce(&mut Editor, &mut ViewContext) -> T, - { - self.editor.update(self.cx, update) - } - - pub fn multibuffer(&self, read: F) -> T - where - F: FnOnce(&MultiBuffer, &AppContext) -> T, - { - self.editor(|editor, cx| read(editor.buffer().read(cx), cx)) - } - - pub fn update_multibuffer(&mut self, update: F) -> T - where - F: FnOnce(&mut MultiBuffer, &mut ModelContext) -> T, - { - self.update_editor(|editor, cx| editor.buffer().update(cx, update)) - } - - pub fn buffer_text(&self) -> String { - self.multibuffer(|buffer, cx| buffer.snapshot(cx).text()) - } - - pub fn buffer(&self, read: F) -> T - where - F: FnOnce(&Buffer, &AppContext) -> T, - { - self.multibuffer(|multibuffer, cx| { - let buffer = multibuffer.as_singleton().unwrap().read(cx); - read(buffer, cx) - }) - } - - pub fn update_buffer(&mut self, update: F) -> T - where - F: FnOnce(&mut Buffer, &mut ModelContext) -> T, - { - self.update_multibuffer(|multibuffer, cx| { - let buffer = multibuffer.as_singleton().unwrap(); - buffer.update(cx, update) - }) - } - - pub fn buffer_snapshot(&self) -> BufferSnapshot { - self.buffer(|buffer, _| buffer.snapshot()) - } - - pub fn simulate_keystroke(&mut self, keystroke_text: &str) { - let keystroke = Keystroke::parse(keystroke_text).unwrap(); - self.cx.dispatch_keystroke(self.window_id, keystroke, false); - } - - pub fn simulate_keystrokes(&mut self, keystroke_texts: [&str; COUNT]) { - for keystroke_text in keystroke_texts.into_iter() { - self.simulate_keystroke(keystroke_text); - } - } - - pub fn ranges(&self, marked_text: &str) -> Vec> { - let (unmarked_text, ranges) = marked_text_ranges(marked_text, false); - assert_eq!(self.buffer_text(), unmarked_text); - ranges - } - - pub fn display_point(&mut self, marked_text: &str) -> DisplayPoint { - let ranges = self.ranges(marked_text); - let snapshot = self - .editor - .update(self.cx, |editor, cx| editor.snapshot(cx)); - ranges[0].start.to_display_point(&snapshot) - } - - // Returns anchors for the current buffer using `«` and `»` - pub fn text_anchor_range(&self, marked_text: &str) -> Range { - let ranges = self.ranges(marked_text); - let snapshot = self.buffer_snapshot(); - snapshot.anchor_before(ranges[0].start)..snapshot.anchor_after(ranges[0].end) - } - - /// Change the editor's text and selections using a string containing - /// embedded range markers that represent the ranges and directions of - /// each selection. - /// - /// See the `util::test::marked_text_ranges` function for more information. - pub fn set_state(&mut self, marked_text: &str) { - let (unmarked_text, selection_ranges) = marked_text_ranges(marked_text, true); - self.editor.update(self.cx, |editor, cx| { - editor.set_text(unmarked_text, cx); - editor.change_selections(Some(Autoscroll::Fit), cx, |s| { - s.select_ranges(selection_ranges) - }) - }) - } - - /// Make an assertion about the editor's text and the ranges and directions - /// of its selections using a string containing embedded range markers. - /// - /// See the `util::test::marked_text_ranges` function for more information. - pub fn assert_editor_state(&mut self, marked_text: &str) { - let (unmarked_text, expected_selections) = marked_text_ranges(marked_text, true); - let buffer_text = self.buffer_text(); - assert_eq!( - buffer_text, unmarked_text, - "Unmarked text doesn't match buffer text" - ); - self.assert_selections(expected_selections, marked_text.to_string()) - } - - pub fn assert_editor_background_highlights(&mut self, marked_text: &str) { - let expected_ranges = self.ranges(marked_text); - let actual_ranges: Vec> = self.update_editor(|editor, cx| { - let snapshot = editor.snapshot(cx); - editor - .background_highlights - .get(&TypeId::of::()) - .map(|h| h.1.clone()) - .unwrap_or_default() - .into_iter() - .map(|range| range.to_offset(&snapshot.buffer_snapshot)) - .collect() - }); - assert_set_eq!(actual_ranges, expected_ranges); - } - - pub fn assert_editor_text_highlights(&mut self, marked_text: &str) { - let expected_ranges = self.ranges(marked_text); - let snapshot = self.update_editor(|editor, cx| editor.snapshot(cx)); - let actual_ranges: Vec> = snapshot - .highlight_ranges::() - .map(|ranges| ranges.as_ref().clone().1) - .unwrap_or_default() - .into_iter() - .map(|range| range.to_offset(&snapshot.buffer_snapshot)) - .collect(); - assert_set_eq!(actual_ranges, expected_ranges); - } - - pub fn assert_editor_selections(&mut self, expected_selections: Vec>) { - let expected_marked_text = - generate_marked_text(&self.buffer_text(), &expected_selections, true); - self.assert_selections(expected_selections, expected_marked_text) - } - - fn assert_selections( - &mut self, - expected_selections: Vec>, - expected_marked_text: String, - ) { - let actual_selections = self - .editor - .read_with(self.cx, |editor, cx| editor.selections.all::(cx)) - .into_iter() - .map(|s| { - if s.reversed { - s.end..s.start - } else { - s.start..s.end - } - }) - .collect::>(); - let actual_marked_text = - generate_marked_text(&self.buffer_text(), &actual_selections, true); - if expected_selections != actual_selections { - panic!( - indoc! {" - Editor has unexpected selections. - - Expected selections: - {} - - Actual selections: - {} - "}, - expected_marked_text, actual_marked_text, - ); - } - } -} - -impl<'a> Deref for EditorTestContext<'a> { - type Target = gpui::TestAppContext; - - fn deref(&self) -> &Self::Target { - self.cx - } -} - -impl<'a> DerefMut for EditorTestContext<'a> { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.cx - } -} - -pub struct EditorLspTestContext<'a> { - pub cx: EditorTestContext<'a>, - pub lsp: lsp::FakeLanguageServer, - pub workspace: ViewHandle, - pub buffer_lsp_url: lsp::Url, -} - -impl<'a> EditorLspTestContext<'a> { - pub async fn new( - mut language: Language, - capabilities: lsp::ServerCapabilities, - cx: &'a mut gpui::TestAppContext, - ) -> EditorLspTestContext<'a> { - use json::json; - - cx.update(|cx| { - crate::init(cx); - pane::init(cx); - }); - - let params = cx.update(AppState::test); - - let file_name = format!( - "file.{}", - language - .path_suffixes() - .first() - .unwrap_or(&"txt".to_string()) - ); - - let mut fake_servers = language - .set_fake_lsp_adapter(Arc::new(FakeLspAdapter { - capabilities, - ..Default::default() - })) - .await; - - let project = Project::test(params.fs.clone(), [], cx).await; - project.update(cx, |project, _| project.languages().add(Arc::new(language))); - - params - .fs - .as_fake() - .insert_tree("/root", json!({ "dir": { file_name: "" }})) - .await; - - let (window_id, workspace) = - cx.add_window(|cx| Workspace::new(project.clone(), |_, _| unimplemented!(), cx)); - project - .update(cx, |project, cx| { - project.find_or_create_local_worktree("/root", true, cx) - }) - .await - .unwrap(); - cx.read(|cx| workspace.read(cx).worktree_scans_complete(cx)) - .await; - - let file = cx.read(|cx| workspace.file_project_paths(cx)[0].clone()); - let item = workspace - .update(cx, |workspace, cx| workspace.open_path(file, true, cx)) - .await - .expect("Could not open test file"); - - let editor = cx.update(|cx| { - item.act_as::(cx) - .expect("Opened test file wasn't an editor") - }); - editor.update(cx, |_, cx| cx.focus_self()); - - let lsp = fake_servers.next().await.unwrap(); - - Self { - cx: EditorTestContext { - cx, - window_id, - editor, - assertion_context: AssertionContextManager::new(), - }, - lsp, - workspace, - buffer_lsp_url: lsp::Url::from_file_path("/root/dir/file.rs").unwrap(), - } - } - - pub async fn new_rust( - capabilities: lsp::ServerCapabilities, - cx: &'a mut gpui::TestAppContext, - ) -> EditorLspTestContext<'a> { - let language = Language::new( - LanguageConfig { - name: "Rust".into(), - path_suffixes: vec!["rs".to_string()], - ..Default::default() - }, - Some(tree_sitter_rust::language()), - ); - - Self::new(language, capabilities, cx).await - } - - // Constructs lsp range using a marked string with '[', ']' range delimiters - pub fn lsp_range(&mut self, marked_text: &str) -> lsp::Range { - let ranges = self.ranges(marked_text); - self.to_lsp_range(ranges[0].clone()) - } - - pub fn to_lsp_range(&mut self, range: Range) -> lsp::Range { - let snapshot = self.update_editor(|editor, cx| editor.snapshot(cx)); - let start_point = range.start.to_point(&snapshot.buffer_snapshot); - let end_point = range.end.to_point(&snapshot.buffer_snapshot); - - self.editor(|editor, cx| { - let buffer = editor.buffer().read(cx); - let start = point_to_lsp( - buffer - .point_to_buffer_offset(start_point, cx) - .unwrap() - .1 - .to_point_utf16(&buffer.read(cx)), - ); - let end = point_to_lsp( - buffer - .point_to_buffer_offset(end_point, cx) - .unwrap() - .1 - .to_point_utf16(&buffer.read(cx)), - ); - - lsp::Range { start, end } - }) - } - - pub fn to_lsp(&mut self, offset: usize) -> lsp::Position { - let snapshot = self.update_editor(|editor, cx| editor.snapshot(cx)); - let point = offset.to_point(&snapshot.buffer_snapshot); - - self.editor(|editor, cx| { - let buffer = editor.buffer().read(cx); - point_to_lsp( - buffer - .point_to_buffer_offset(point, cx) - .unwrap() - .1 - .to_point_utf16(&buffer.read(cx)), - ) - }) - } - - pub fn update_workspace(&mut self, update: F) -> T - where - F: FnOnce(&mut Workspace, &mut ViewContext) -> T, - { - self.workspace.update(self.cx.cx, update) - } - - pub fn handle_request( - &self, - mut handler: F, - ) -> futures::channel::mpsc::UnboundedReceiver<()> - where - T: 'static + request::Request, - T::Params: 'static + Send, - F: 'static + Send + FnMut(lsp::Url, T::Params, gpui::AsyncAppContext) -> Fut, - Fut: 'static + Send + Future>, - { - let url = self.buffer_lsp_url.clone(); - self.lsp.handle_request::(move |params, cx| { - let url = url.clone(); - handler(url, params, cx) - }) - } - - pub fn notify(&self, params: T::Params) { - self.lsp.notify::(params); - } -} - -impl<'a> Deref for EditorLspTestContext<'a> { - type Target = EditorTestContext<'a>; - - fn deref(&self) -> &Self::Target { - &self.cx - } -} - -impl<'a> DerefMut for EditorLspTestContext<'a> { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.cx - } -} - -#[derive(Clone)] -pub struct AssertionContextManager { - id: Arc, - contexts: Arc>>, -} - -impl AssertionContextManager { - pub fn new() -> Self { - Self { - id: Arc::new(AtomicUsize::new(0)), - contexts: Arc::new(RwLock::new(BTreeMap::new())), - } - } - - pub fn add_context(&self, context: String) -> ContextHandle { - let id = self.id.fetch_add(1, Ordering::Relaxed); - let mut contexts = self.contexts.write(); - contexts.insert(id, context); - ContextHandle { - id, - manager: self.clone(), - } - } - - pub fn context(&self) -> String { - let contexts = self.contexts.read(); - format!("\n{}\n", contexts.values().join("\n")) - } -} - -pub struct ContextHandle { - id: usize, - manager: AssertionContextManager, -} - -impl Drop for ContextHandle { - fn drop(&mut self) { - let mut contexts = self.manager.contexts.write(); - contexts.remove(&self.id); - } -} diff --git a/crates/editor/src/test/editor_lsp_test_context.rs b/crates/editor/src/test/editor_lsp_test_context.rs new file mode 100644 index 0000000000..b4a4cd7ab8 --- /dev/null +++ b/crates/editor/src/test/editor_lsp_test_context.rs @@ -0,0 +1,208 @@ +use std::{ + ops::{Deref, DerefMut, Range}, + sync::Arc, +}; + +use anyhow::Result; + +use futures::Future; +use gpui::{json, ViewContext, ViewHandle}; +use language::{point_to_lsp, FakeLspAdapter, Language, LanguageConfig}; +use lsp::{notification, request}; +use project::Project; +use smol::stream::StreamExt; +use workspace::{pane, AppState, Workspace, WorkspaceHandle}; + +use crate::{multi_buffer::ToPointUtf16, Editor, ToPoint}; + +use super::editor_test_context::EditorTestContext; + +pub struct EditorLspTestContext<'a> { + pub cx: EditorTestContext<'a>, + pub lsp: lsp::FakeLanguageServer, + pub workspace: ViewHandle, + pub buffer_lsp_url: lsp::Url, +} + +impl<'a> EditorLspTestContext<'a> { + pub async fn new( + mut language: Language, + capabilities: lsp::ServerCapabilities, + cx: &'a mut gpui::TestAppContext, + ) -> EditorLspTestContext<'a> { + use json::json; + + cx.update(|cx| { + crate::init(cx); + pane::init(cx); + }); + + let params = cx.update(AppState::test); + + let file_name = format!( + "file.{}", + language + .path_suffixes() + .first() + .unwrap_or(&"txt".to_string()) + ); + + let mut fake_servers = language + .set_fake_lsp_adapter(Arc::new(FakeLspAdapter { + capabilities, + ..Default::default() + })) + .await; + + let project = Project::test(params.fs.clone(), [], cx).await; + project.update(cx, |project, _| project.languages().add(Arc::new(language))); + + params + .fs + .as_fake() + .insert_tree("/root", json!({ "dir": { file_name: "" }})) + .await; + + let (window_id, workspace) = + cx.add_window(|cx| Workspace::new(project.clone(), |_, _| unimplemented!(), cx)); + project + .update(cx, |project, cx| { + project.find_or_create_local_worktree("/root", true, cx) + }) + .await + .unwrap(); + cx.read(|cx| workspace.read(cx).worktree_scans_complete(cx)) + .await; + + let file = cx.read(|cx| workspace.file_project_paths(cx)[0].clone()); + let item = workspace + .update(cx, |workspace, cx| workspace.open_path(file, true, cx)) + .await + .expect("Could not open test file"); + + let editor = cx.update(|cx| { + item.act_as::(cx) + .expect("Opened test file wasn't an editor") + }); + editor.update(cx, |_, cx| cx.focus_self()); + + let lsp = fake_servers.next().await.unwrap(); + + Self { + cx: EditorTestContext { + cx, + window_id, + editor, + }, + lsp, + workspace, + buffer_lsp_url: lsp::Url::from_file_path("/root/dir/file.rs").unwrap(), + } + } + + pub async fn new_rust( + capabilities: lsp::ServerCapabilities, + cx: &'a mut gpui::TestAppContext, + ) -> EditorLspTestContext<'a> { + let language = Language::new( + LanguageConfig { + name: "Rust".into(), + path_suffixes: vec!["rs".to_string()], + ..Default::default() + }, + Some(tree_sitter_rust::language()), + ); + + Self::new(language, capabilities, cx).await + } + + // Constructs lsp range using a marked string with '[', ']' range delimiters + pub fn lsp_range(&mut self, marked_text: &str) -> lsp::Range { + let ranges = self.ranges(marked_text); + self.to_lsp_range(ranges[0].clone()) + } + + pub fn to_lsp_range(&mut self, range: Range) -> lsp::Range { + let snapshot = self.update_editor(|editor, cx| editor.snapshot(cx)); + let start_point = range.start.to_point(&snapshot.buffer_snapshot); + let end_point = range.end.to_point(&snapshot.buffer_snapshot); + + self.editor(|editor, cx| { + let buffer = editor.buffer().read(cx); + let start = point_to_lsp( + buffer + .point_to_buffer_offset(start_point, cx) + .unwrap() + .1 + .to_point_utf16(&buffer.read(cx)), + ); + let end = point_to_lsp( + buffer + .point_to_buffer_offset(end_point, cx) + .unwrap() + .1 + .to_point_utf16(&buffer.read(cx)), + ); + + lsp::Range { start, end } + }) + } + + pub fn to_lsp(&mut self, offset: usize) -> lsp::Position { + let snapshot = self.update_editor(|editor, cx| editor.snapshot(cx)); + let point = offset.to_point(&snapshot.buffer_snapshot); + + self.editor(|editor, cx| { + let buffer = editor.buffer().read(cx); + point_to_lsp( + buffer + .point_to_buffer_offset(point, cx) + .unwrap() + .1 + .to_point_utf16(&buffer.read(cx)), + ) + }) + } + + pub fn update_workspace(&mut self, update: F) -> T + where + F: FnOnce(&mut Workspace, &mut ViewContext) -> T, + { + self.workspace.update(self.cx.cx, update) + } + + pub fn handle_request( + &self, + mut handler: F, + ) -> futures::channel::mpsc::UnboundedReceiver<()> + where + T: 'static + request::Request, + T::Params: 'static + Send, + F: 'static + Send + FnMut(lsp::Url, T::Params, gpui::AsyncAppContext) -> Fut, + Fut: 'static + Send + Future>, + { + let url = self.buffer_lsp_url.clone(); + self.lsp.handle_request::(move |params, cx| { + let url = url.clone(); + handler(url, params, cx) + }) + } + + pub fn notify(&self, params: T::Params) { + self.lsp.notify::(params); + } +} + +impl<'a> Deref for EditorLspTestContext<'a> { + type Target = EditorTestContext<'a>; + + fn deref(&self) -> &Self::Target { + &self.cx + } +} + +impl<'a> DerefMut for EditorLspTestContext<'a> { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.cx + } +} diff --git a/crates/editor/src/test/editor_test_context.rs b/crates/editor/src/test/editor_test_context.rs new file mode 100644 index 0000000000..73dc6bfd6e --- /dev/null +++ b/crates/editor/src/test/editor_test_context.rs @@ -0,0 +1,273 @@ +use std::{ + any::TypeId, + ops::{Deref, DerefMut, Range}, +}; + +use futures::Future; +use indoc::indoc; + +use crate::{ + display_map::ToDisplayPoint, AnchorRangeExt, Autoscroll, DisplayPoint, Editor, MultiBuffer, +}; +use gpui::{keymap::Keystroke, AppContext, ContextHandle, ModelContext, ViewContext, ViewHandle}; +use language::{Buffer, BufferSnapshot}; +use settings::Settings; +use util::{ + assert_set_eq, + test::{generate_marked_text, marked_text_ranges}, +}; + +use super::build_editor; + +pub struct EditorTestContext<'a> { + pub cx: &'a mut gpui::TestAppContext, + pub window_id: usize, + pub editor: ViewHandle, +} + +impl<'a> EditorTestContext<'a> { + pub fn new(cx: &'a mut gpui::TestAppContext) -> EditorTestContext<'a> { + let (window_id, editor) = cx.update(|cx| { + cx.set_global(Settings::test(cx)); + crate::init(cx); + + let (window_id, editor) = cx.add_window(Default::default(), |cx| { + build_editor(MultiBuffer::build_simple("", cx), cx) + }); + + editor.update(cx, |_, cx| cx.focus_self()); + + (window_id, editor) + }); + + Self { + cx, + window_id, + editor, + } + } + + pub fn condition( + &self, + predicate: impl FnMut(&Editor, &AppContext) -> bool, + ) -> impl Future { + self.editor.condition(self.cx, predicate) + } + + pub fn editor(&self, read: F) -> T + where + F: FnOnce(&Editor, &AppContext) -> T, + { + self.editor.read_with(self.cx, read) + } + + pub fn update_editor(&mut self, update: F) -> T + where + F: FnOnce(&mut Editor, &mut ViewContext) -> T, + { + self.editor.update(self.cx, update) + } + + pub fn multibuffer(&self, read: F) -> T + where + F: FnOnce(&MultiBuffer, &AppContext) -> T, + { + self.editor(|editor, cx| read(editor.buffer().read(cx), cx)) + } + + pub fn update_multibuffer(&mut self, update: F) -> T + where + F: FnOnce(&mut MultiBuffer, &mut ModelContext) -> T, + { + self.update_editor(|editor, cx| editor.buffer().update(cx, update)) + } + + pub fn buffer_text(&self) -> String { + self.multibuffer(|buffer, cx| buffer.snapshot(cx).text()) + } + + pub fn buffer(&self, read: F) -> T + where + F: FnOnce(&Buffer, &AppContext) -> T, + { + self.multibuffer(|multibuffer, cx| { + let buffer = multibuffer.as_singleton().unwrap().read(cx); + read(buffer, cx) + }) + } + + pub fn update_buffer(&mut self, update: F) -> T + where + F: FnOnce(&mut Buffer, &mut ModelContext) -> T, + { + self.update_multibuffer(|multibuffer, cx| { + let buffer = multibuffer.as_singleton().unwrap(); + buffer.update(cx, update) + }) + } + + pub fn buffer_snapshot(&self) -> BufferSnapshot { + self.buffer(|buffer, _| buffer.snapshot()) + } + + pub fn simulate_keystroke(&mut self, keystroke_text: &str) -> ContextHandle { + let keystroke_under_test_handle = + self.add_assertion_context(format!("Simulated Keystroke: {:?}", keystroke_text)); + let keystroke = Keystroke::parse(keystroke_text).unwrap(); + self.cx.dispatch_keystroke(self.window_id, keystroke, false); + keystroke_under_test_handle + } + + pub fn simulate_keystrokes( + &mut self, + keystroke_texts: [&str; COUNT], + ) -> ContextHandle { + let keystrokes_under_test_handle = + self.add_assertion_context(format!("Simulated Keystrokes: {:?}", keystroke_texts)); + for keystroke_text in keystroke_texts.into_iter() { + self.simulate_keystroke(keystroke_text); + } + keystrokes_under_test_handle + } + + pub fn ranges(&self, marked_text: &str) -> Vec> { + let (unmarked_text, ranges) = marked_text_ranges(marked_text, false); + assert_eq!(self.buffer_text(), unmarked_text); + ranges + } + + pub fn display_point(&mut self, marked_text: &str) -> DisplayPoint { + let ranges = self.ranges(marked_text); + let snapshot = self + .editor + .update(self.cx, |editor, cx| editor.snapshot(cx)); + ranges[0].start.to_display_point(&snapshot) + } + + // Returns anchors for the current buffer using `«` and `»` + pub fn text_anchor_range(&self, marked_text: &str) -> Range { + let ranges = self.ranges(marked_text); + let snapshot = self.buffer_snapshot(); + snapshot.anchor_before(ranges[0].start)..snapshot.anchor_after(ranges[0].end) + } + + /// Change the editor's text and selections using a string containing + /// embedded range markers that represent the ranges and directions of + /// each selection. + /// + /// See the `util::test::marked_text_ranges` function for more information. + pub fn set_state(&mut self, marked_text: &str) -> ContextHandle { + let _state_context = self.add_assertion_context(format!( + "Editor State: \"{}\"", + marked_text.escape_debug().to_string() + )); + let (unmarked_text, selection_ranges) = marked_text_ranges(marked_text, true); + self.editor.update(self.cx, |editor, cx| { + editor.set_text(unmarked_text, cx); + editor.change_selections(Some(Autoscroll::Fit), cx, |s| { + s.select_ranges(selection_ranges) + }) + }); + _state_context + } + + /// Make an assertion about the editor's text and the ranges and directions + /// of its selections using a string containing embedded range markers. + /// + /// See the `util::test::marked_text_ranges` function for more information. + pub fn assert_editor_state(&mut self, marked_text: &str) { + let (unmarked_text, expected_selections) = marked_text_ranges(marked_text, true); + let buffer_text = self.buffer_text(); + assert_eq!( + buffer_text, unmarked_text, + "Unmarked text doesn't match buffer text" + ); + self.assert_selections(expected_selections, marked_text.to_string()) + } + + pub fn assert_editor_background_highlights(&mut self, marked_text: &str) { + let expected_ranges = self.ranges(marked_text); + let actual_ranges: Vec> = self.update_editor(|editor, cx| { + let snapshot = editor.snapshot(cx); + editor + .background_highlights + .get(&TypeId::of::()) + .map(|h| h.1.clone()) + .unwrap_or_default() + .into_iter() + .map(|range| range.to_offset(&snapshot.buffer_snapshot)) + .collect() + }); + assert_set_eq!(actual_ranges, expected_ranges); + } + + pub fn assert_editor_text_highlights(&mut self, marked_text: &str) { + let expected_ranges = self.ranges(marked_text); + let snapshot = self.update_editor(|editor, cx| editor.snapshot(cx)); + let actual_ranges: Vec> = snapshot + .highlight_ranges::() + .map(|ranges| ranges.as_ref().clone().1) + .unwrap_or_default() + .into_iter() + .map(|range| range.to_offset(&snapshot.buffer_snapshot)) + .collect(); + assert_set_eq!(actual_ranges, expected_ranges); + } + + pub fn assert_editor_selections(&mut self, expected_selections: Vec>) { + let expected_marked_text = + generate_marked_text(&self.buffer_text(), &expected_selections, true); + self.assert_selections(expected_selections, expected_marked_text) + } + + fn assert_selections( + &mut self, + expected_selections: Vec>, + expected_marked_text: String, + ) { + let actual_selections = self + .editor + .read_with(self.cx, |editor, cx| editor.selections.all::(cx)) + .into_iter() + .map(|s| { + if s.reversed { + s.end..s.start + } else { + s.start..s.end + } + }) + .collect::>(); + let actual_marked_text = + generate_marked_text(&self.buffer_text(), &actual_selections, true); + if expected_selections != actual_selections { + panic!( + indoc! {" + {}Editor has unexpected selections. + + Expected selections: + {} + + Actual selections: + {} + "}, + self.assertion_context(), + expected_marked_text, + actual_marked_text, + ); + } + } +} + +impl<'a> Deref for EditorTestContext<'a> { + type Target = gpui::TestAppContext; + + fn deref(&self) -> &Self::Target { + self.cx + } +} + +impl<'a> DerefMut for EditorTestContext<'a> { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.cx + } +} diff --git a/crates/gpui/Cargo.toml b/crates/gpui/Cargo.toml index 51bc416e19..54fe5e46a2 100644 --- a/crates/gpui/Cargo.toml +++ b/crates/gpui/Cargo.toml @@ -25,6 +25,7 @@ env_logger = { version = "0.9", optional = true } etagere = "0.2" futures = "0.3" image = "0.23" +itertools = "0.10" lazy_static = "1.4.0" log = { version = "0.4.16", features = ["kv_unstable_serde"] } num_cpus = "1.13" diff --git a/crates/gpui/src/app.rs b/crates/gpui/src/app.rs index 1da9f35dc8..16c0a3bae4 100644 --- a/crates/gpui/src/app.rs +++ b/crates/gpui/src/app.rs @@ -1,28 +1,8 @@ pub mod action; mod callback_collection; +#[cfg(any(test, feature = "test-support"))] +pub mod test_app_context; -use crate::{ - elements::ElementBox, - executor::{self, Task}, - geometry::rect::RectF, - keymap::{self, Binding, Keystroke}, - platform::{self, KeyDownEvent, Platform, PromptLevel, WindowOptions}, - presenter::Presenter, - util::post_inc, - Appearance, AssetCache, AssetSource, ClipboardItem, FontCache, InputHandler, MouseButton, - MouseRegionId, PathPromptOptions, TextLayoutCache, -}; -pub use action::*; -use anyhow::{anyhow, Context, Result}; -use callback_collection::CallbackCollection; -use collections::{btree_map, hash_map::Entry, BTreeMap, HashMap, HashSet, VecDeque}; -use keymap::MatchResult; -use lazy_static::lazy_static; -use parking_lot::Mutex; -use platform::Event; -use postage::oneshot; -use smallvec::SmallVec; -use smol::prelude::*; use std::{ any::{type_name, Any, TypeId}, cell::RefCell, @@ -38,7 +18,32 @@ use std::{ time::Duration, }; -use self::callback_collection::Mapping; +use anyhow::{anyhow, Context, Result}; +use lazy_static::lazy_static; +use parking_lot::Mutex; +use postage::oneshot; +use smallvec::SmallVec; +use smol::prelude::*; + +pub use action::*; +use callback_collection::{CallbackCollection, Mapping}; +use collections::{btree_map, hash_map::Entry, BTreeMap, HashMap, HashSet, VecDeque}; +use keymap::MatchResult; +use platform::Event; +#[cfg(any(test, feature = "test-support"))] +pub use test_app_context::{ContextHandle, TestAppContext}; + +use crate::{ + elements::ElementBox, + executor::{self, Task}, + geometry::rect::RectF, + keymap::{self, Binding, Keystroke}, + platform::{self, KeyDownEvent, Platform, PromptLevel, WindowOptions}, + presenter::Presenter, + util::post_inc, + Appearance, AssetCache, AssetSource, ClipboardItem, FontCache, InputHandler, MouseButton, + MouseRegionId, PathPromptOptions, TextLayoutCache, +}; pub trait Entity: 'static { type Event; @@ -177,14 +182,6 @@ pub struct App(Rc>); #[derive(Clone)] pub struct AsyncAppContext(Rc>); -#[cfg(any(test, feature = "test-support"))] -pub struct TestAppContext { - cx: Rc>, - foreground_platform: Rc, - condition_duration: Option, - pub function_name: String, -} - pub struct WindowInputHandler { app: Rc>, window_id: usize, @@ -428,329 +425,6 @@ impl InputHandler for WindowInputHandler { } } -#[cfg(any(test, feature = "test-support"))] -impl TestAppContext { - pub fn new( - foreground_platform: Rc, - platform: Arc, - foreground: Rc, - background: Arc, - font_cache: Arc, - leak_detector: Arc>, - first_entity_id: usize, - function_name: String, - ) -> Self { - let mut cx = MutableAppContext::new( - foreground, - background, - platform, - foreground_platform.clone(), - font_cache, - RefCounts { - #[cfg(any(test, feature = "test-support"))] - leak_detector, - ..Default::default() - }, - (), - ); - cx.next_entity_id = first_entity_id; - let cx = TestAppContext { - cx: Rc::new(RefCell::new(cx)), - foreground_platform, - condition_duration: None, - function_name, - }; - cx.cx.borrow_mut().weak_self = Some(Rc::downgrade(&cx.cx)); - cx - } - - pub fn dispatch_action(&self, window_id: usize, action: A) { - let mut cx = self.cx.borrow_mut(); - if let Some(view_id) = cx.focused_view_id(window_id) { - cx.handle_dispatch_action_from_effect(window_id, Some(view_id), &action); - } - } - - pub fn dispatch_global_action(&self, action: A) { - self.cx.borrow_mut().dispatch_global_action(action); - } - - pub fn dispatch_keystroke(&mut self, window_id: usize, keystroke: Keystroke, is_held: bool) { - let handled = self.cx.borrow_mut().update(|cx| { - let presenter = cx - .presenters_and_platform_windows - .get(&window_id) - .unwrap() - .0 - .clone(); - - if cx.dispatch_keystroke(window_id, &keystroke) { - return true; - } - - if presenter.borrow_mut().dispatch_event( - Event::KeyDown(KeyDownEvent { - keystroke: keystroke.clone(), - is_held, - }), - false, - cx, - ) { - return true; - } - - false - }); - - if !handled && !keystroke.cmd && !keystroke.ctrl { - WindowInputHandler { - app: self.cx.clone(), - window_id, - } - .replace_text_in_range(None, &keystroke.key) - } - } - - pub fn add_model(&mut self, build_model: F) -> ModelHandle - where - T: Entity, - F: FnOnce(&mut ModelContext) -> T, - { - self.cx.borrow_mut().add_model(build_model) - } - - pub fn add_window(&mut self, build_root_view: F) -> (usize, ViewHandle) - where - T: View, - F: FnOnce(&mut ViewContext) -> T, - { - let (window_id, view) = self - .cx - .borrow_mut() - .add_window(Default::default(), build_root_view); - self.simulate_window_activation(Some(window_id)); - (window_id, view) - } - - pub fn add_view( - &mut self, - parent_handle: impl Into, - build_view: F, - ) -> ViewHandle - where - T: View, - F: FnOnce(&mut ViewContext) -> T, - { - self.cx.borrow_mut().add_view(parent_handle, build_view) - } - - pub fn window_ids(&self) -> Vec { - self.cx.borrow().window_ids().collect() - } - - pub fn root_view(&self, window_id: usize) -> Option> { - self.cx.borrow().root_view(window_id) - } - - pub fn read T>(&self, callback: F) -> T { - callback(self.cx.borrow().as_ref()) - } - - pub fn update T>(&mut self, callback: F) -> T { - let mut state = self.cx.borrow_mut(); - // Don't increment pending flushes in order for effects to be flushed before the callback - // completes, which is helpful in tests. - let result = callback(&mut *state); - // Flush effects after the callback just in case there are any. This can happen in edge - // cases such as the closure dropping handles. - state.flush_effects(); - result - } - - pub fn render(&mut self, handle: &ViewHandle, f: F) -> T - where - F: FnOnce(&mut V, &mut RenderContext) -> T, - V: View, - { - handle.update(&mut *self.cx.borrow_mut(), |view, cx| { - let mut render_cx = RenderContext { - app: cx, - window_id: handle.window_id(), - view_id: handle.id(), - view_type: PhantomData, - titlebar_height: 0., - hovered_region_ids: Default::default(), - clicked_region_ids: None, - refreshing: false, - appearance: Appearance::Light, - }; - f(view, &mut render_cx) - }) - } - - pub fn to_async(&self) -> AsyncAppContext { - AsyncAppContext(self.cx.clone()) - } - - pub fn font_cache(&self) -> Arc { - self.cx.borrow().cx.font_cache.clone() - } - - pub fn foreground_platform(&self) -> Rc { - self.foreground_platform.clone() - } - - pub fn platform(&self) -> Arc { - self.cx.borrow().cx.platform.clone() - } - - pub fn foreground(&self) -> Rc { - self.cx.borrow().foreground().clone() - } - - pub fn background(&self) -> Arc { - self.cx.borrow().background().clone() - } - - pub fn spawn(&self, f: F) -> Task - where - F: FnOnce(AsyncAppContext) -> Fut, - Fut: 'static + Future, - T: 'static, - { - let foreground = self.foreground(); - let future = f(self.to_async()); - let cx = self.to_async(); - foreground.spawn(async move { - let result = future.await; - cx.0.borrow_mut().flush_effects(); - result - }) - } - - pub fn simulate_new_path_selection(&self, result: impl FnOnce(PathBuf) -> Option) { - self.foreground_platform.simulate_new_path_selection(result); - } - - pub fn did_prompt_for_new_path(&self) -> bool { - self.foreground_platform.as_ref().did_prompt_for_new_path() - } - - pub fn simulate_prompt_answer(&self, window_id: usize, answer: usize) { - use postage::prelude::Sink as _; - - let mut done_tx = self - .window_mut(window_id) - .pending_prompts - .borrow_mut() - .pop_front() - .expect("prompt was not called"); - let _ = done_tx.try_send(answer); - } - - pub fn has_pending_prompt(&self, window_id: usize) -> bool { - let window = self.window_mut(window_id); - let prompts = window.pending_prompts.borrow_mut(); - !prompts.is_empty() - } - - pub fn current_window_title(&self, window_id: usize) -> Option { - self.window_mut(window_id).title.clone() - } - - pub fn simulate_window_close(&self, window_id: usize) -> bool { - let handler = self.window_mut(window_id).should_close_handler.take(); - if let Some(mut handler) = handler { - let should_close = handler(); - self.window_mut(window_id).should_close_handler = Some(handler); - should_close - } else { - false - } - } - - pub fn simulate_window_activation(&self, to_activate: Option) { - let mut handlers = BTreeMap::new(); - { - let mut cx = self.cx.borrow_mut(); - for (window_id, (_, window)) in &mut cx.presenters_and_platform_windows { - let window = window - .as_any_mut() - .downcast_mut::() - .unwrap(); - handlers.insert( - *window_id, - mem::take(&mut window.active_status_change_handlers), - ); - } - }; - let mut handlers = handlers.into_iter().collect::>(); - handlers.sort_unstable_by_key(|(window_id, _)| Some(*window_id) == to_activate); - - for (window_id, mut window_handlers) in handlers { - for window_handler in &mut window_handlers { - window_handler(Some(window_id) == to_activate); - } - - self.window_mut(window_id) - .active_status_change_handlers - .extend(window_handlers); - } - } - - pub fn is_window_edited(&self, window_id: usize) -> bool { - self.window_mut(window_id).edited - } - - pub fn leak_detector(&self) -> Arc> { - self.cx.borrow().leak_detector() - } - - pub fn assert_dropped(&self, handle: impl WeakHandle) { - self.cx - .borrow() - .leak_detector() - .lock() - .assert_dropped(handle.id()) - } - - fn window_mut(&self, window_id: usize) -> std::cell::RefMut { - std::cell::RefMut::map(self.cx.borrow_mut(), |state| { - let (_, window) = state - .presenters_and_platform_windows - .get_mut(&window_id) - .unwrap(); - let test_window = window - .as_any_mut() - .downcast_mut::() - .unwrap(); - test_window - }) - } - - pub fn set_condition_duration(&mut self, duration: Option) { - self.condition_duration = duration; - } - - pub fn condition_duration(&self) -> Duration { - self.condition_duration.unwrap_or_else(|| { - if std::env::var("CI").is_ok() { - Duration::from_secs(2) - } else { - Duration::from_millis(500) - } - }) - } - - pub fn assert_clipboard_content(&mut self, expected_content: Option<&str>) { - self.update(|cx| { - let actual_content = cx.read_from_clipboard().map(|item| item.text().to_owned()); - let expected_content = expected_content.map(|content| content.to_owned()); - assert_eq!(actual_content, expected_content); - }) - } -} - impl AsyncAppContext { pub fn spawn(&self, f: F) -> Task where @@ -879,60 +553,6 @@ impl ReadViewWith for AsyncAppContext { } } -#[cfg(any(test, feature = "test-support"))] -impl UpdateModel for TestAppContext { - fn update_model( - &mut self, - handle: &ModelHandle, - update: &mut dyn FnMut(&mut T, &mut ModelContext) -> O, - ) -> O { - self.cx.borrow_mut().update_model(handle, update) - } -} - -#[cfg(any(test, feature = "test-support"))] -impl ReadModelWith for TestAppContext { - fn read_model_with( - &self, - handle: &ModelHandle, - read: &mut dyn FnMut(&E, &AppContext) -> T, - ) -> T { - let cx = self.cx.borrow(); - let cx = cx.as_ref(); - read(handle.read(cx), cx) - } -} - -#[cfg(any(test, feature = "test-support"))] -impl UpdateView for TestAppContext { - fn update_view( - &mut self, - handle: &ViewHandle, - update: &mut dyn FnMut(&mut T, &mut ViewContext) -> S, - ) -> S - where - T: View, - { - self.cx.borrow_mut().update_view(handle, update) - } -} - -#[cfg(any(test, feature = "test-support"))] -impl ReadViewWith for TestAppContext { - fn read_view_with( - &self, - handle: &ViewHandle, - read: &mut dyn FnMut(&V, &AppContext) -> T, - ) -> T - where - V: View, - { - let cx = self.cx.borrow(); - let cx = cx.as_ref(); - read(handle.read(cx), cx) - } -} - type ActionCallback = dyn FnMut(&mut dyn AnyView, &dyn Action, &mut MutableAppContext, usize, usize); type GlobalActionCallback = dyn FnMut(&dyn Action, &mut MutableAppContext); @@ -4412,117 +4032,6 @@ impl ModelHandle { update(model, cx) }) } - - #[cfg(any(test, feature = "test-support"))] - pub fn next_notification(&self, cx: &TestAppContext) -> impl Future { - let (tx, mut rx) = futures::channel::mpsc::unbounded(); - let mut cx = cx.cx.borrow_mut(); - let subscription = cx.observe(self, move |_, _| { - tx.unbounded_send(()).ok(); - }); - - let duration = if std::env::var("CI").is_ok() { - Duration::from_secs(5) - } else { - Duration::from_secs(1) - }; - - async move { - let notification = crate::util::timeout(duration, rx.next()) - .await - .expect("next notification timed out"); - drop(subscription); - notification.expect("model dropped while test was waiting for its next notification") - } - } - - #[cfg(any(test, feature = "test-support"))] - pub fn next_event(&self, cx: &TestAppContext) -> impl Future - where - T::Event: Clone, - { - let (tx, mut rx) = futures::channel::mpsc::unbounded(); - let mut cx = cx.cx.borrow_mut(); - let subscription = cx.subscribe(self, move |_, event, _| { - tx.unbounded_send(event.clone()).ok(); - }); - - let duration = if std::env::var("CI").is_ok() { - Duration::from_secs(5) - } else { - Duration::from_secs(1) - }; - - cx.foreground.start_waiting(); - async move { - let event = crate::util::timeout(duration, rx.next()) - .await - .expect("next event timed out"); - drop(subscription); - event.expect("model dropped while test was waiting for its next event") - } - } - - #[cfg(any(test, feature = "test-support"))] - pub fn condition( - &self, - cx: &TestAppContext, - mut predicate: impl FnMut(&T, &AppContext) -> bool, - ) -> impl Future { - let (tx, mut rx) = futures::channel::mpsc::unbounded(); - - let mut cx = cx.cx.borrow_mut(); - let subscriptions = ( - cx.observe(self, { - let tx = tx.clone(); - move |_, _| { - tx.unbounded_send(()).ok(); - } - }), - cx.subscribe(self, { - move |_, _, _| { - tx.unbounded_send(()).ok(); - } - }), - ); - - let cx = cx.weak_self.as_ref().unwrap().upgrade().unwrap(); - let handle = self.downgrade(); - let duration = if std::env::var("CI").is_ok() { - Duration::from_secs(5) - } else { - Duration::from_secs(1) - }; - - async move { - crate::util::timeout(duration, async move { - loop { - { - let cx = cx.borrow(); - let cx = cx.as_ref(); - if predicate( - handle - .upgrade(cx) - .expect("model dropped with pending condition") - .read(cx), - cx, - ) { - break; - } - } - - cx.borrow().foreground().start_waiting(); - rx.next() - .await - .expect("model dropped with pending condition"); - cx.borrow().foreground().finish_waiting(); - } - }) - .await - .expect("condition timed out"); - drop(subscriptions); - } - } } impl Clone for ModelHandle { @@ -4749,93 +4258,6 @@ impl ViewHandle { cx.focused_view_id(self.window_id) .map_or(false, |focused_id| focused_id == self.view_id) } - - #[cfg(any(test, feature = "test-support"))] - pub fn next_notification(&self, cx: &TestAppContext) -> impl Future { - use postage::prelude::{Sink as _, Stream as _}; - - let (mut tx, mut rx) = postage::mpsc::channel(1); - let mut cx = cx.cx.borrow_mut(); - let subscription = cx.observe(self, move |_, _| { - tx.try_send(()).ok(); - }); - - let duration = if std::env::var("CI").is_ok() { - Duration::from_secs(5) - } else { - Duration::from_secs(1) - }; - - async move { - let notification = crate::util::timeout(duration, rx.recv()) - .await - .expect("next notification timed out"); - drop(subscription); - notification.expect("model dropped while test was waiting for its next notification") - } - } - - #[cfg(any(test, feature = "test-support"))] - pub fn condition( - &self, - cx: &TestAppContext, - mut predicate: impl FnMut(&T, &AppContext) -> bool, - ) -> impl Future { - use postage::prelude::{Sink as _, Stream as _}; - - let (tx, mut rx) = postage::mpsc::channel(1024); - let timeout_duration = cx.condition_duration(); - - let mut cx = cx.cx.borrow_mut(); - let subscriptions = self.update(&mut *cx, |_, cx| { - ( - cx.observe(self, { - let mut tx = tx.clone(); - move |_, _, _| { - tx.blocking_send(()).ok(); - } - }), - cx.subscribe(self, { - let mut tx = tx.clone(); - move |_, _, _, _| { - tx.blocking_send(()).ok(); - } - }), - ) - }); - - let cx = cx.weak_self.as_ref().unwrap().upgrade().unwrap(); - let handle = self.downgrade(); - - async move { - crate::util::timeout(timeout_duration, async move { - loop { - { - let cx = cx.borrow(); - let cx = cx.as_ref(); - if predicate( - handle - .upgrade(cx) - .expect("view dropped with pending condition") - .read(cx), - cx, - ) { - break; - } - } - - cx.borrow().foreground().start_waiting(); - rx.recv() - .await - .expect("view dropped with pending condition"); - cx.borrow().foreground().finish_waiting(); - } - }) - .await - .expect("condition timed out"); - drop(subscriptions); - } - } } impl Clone for ViewHandle { diff --git a/crates/gpui/src/app/test_app_context.rs b/crates/gpui/src/app/test_app_context.rs new file mode 100644 index 0000000000..477c316f71 --- /dev/null +++ b/crates/gpui/src/app/test_app_context.rs @@ -0,0 +1,655 @@ +use std::{ + cell::RefCell, + marker::PhantomData, + mem, + path::PathBuf, + rc::Rc, + sync::{ + atomic::{AtomicUsize, Ordering}, + Arc, + }, + time::Duration, +}; + +use futures::Future; +use itertools::Itertools; +use parking_lot::{Mutex, RwLock}; +use smol::stream::StreamExt; + +use crate::{ + executor, keymap::Keystroke, platform, Action, AnyViewHandle, AppContext, Appearance, Entity, + Event, FontCache, InputHandler, KeyDownEvent, LeakDetector, ModelContext, ModelHandle, + MutableAppContext, Platform, ReadModelWith, ReadViewWith, RenderContext, Task, UpdateModel, + UpdateView, View, ViewContext, ViewHandle, WeakHandle, WindowInputHandler, +}; +use collections::BTreeMap; + +use super::{AsyncAppContext, RefCounts}; + +pub struct TestAppContext { + cx: Rc>, + foreground_platform: Rc, + condition_duration: Option, + pub function_name: String, + assertion_context: AssertionContextManager, +} + +impl TestAppContext { + pub fn new( + foreground_platform: Rc, + platform: Arc, + foreground: Rc, + background: Arc, + font_cache: Arc, + leak_detector: Arc>, + first_entity_id: usize, + function_name: String, + ) -> Self { + let mut cx = MutableAppContext::new( + foreground, + background, + platform, + foreground_platform.clone(), + font_cache, + RefCounts { + #[cfg(any(test, feature = "test-support"))] + leak_detector, + ..Default::default() + }, + (), + ); + cx.next_entity_id = first_entity_id; + let cx = TestAppContext { + cx: Rc::new(RefCell::new(cx)), + foreground_platform, + condition_duration: None, + function_name, + assertion_context: AssertionContextManager::new(), + }; + cx.cx.borrow_mut().weak_self = Some(Rc::downgrade(&cx.cx)); + cx + } + + pub fn dispatch_action(&self, window_id: usize, action: A) { + let mut cx = self.cx.borrow_mut(); + if let Some(view_id) = cx.focused_view_id(window_id) { + cx.handle_dispatch_action_from_effect(window_id, Some(view_id), &action); + } + } + + pub fn dispatch_global_action(&self, action: A) { + self.cx.borrow_mut().dispatch_global_action(action); + } + + pub fn dispatch_keystroke(&mut self, window_id: usize, keystroke: Keystroke, is_held: bool) { + let handled = self.cx.borrow_mut().update(|cx| { + let presenter = cx + .presenters_and_platform_windows + .get(&window_id) + .unwrap() + .0 + .clone(); + + if cx.dispatch_keystroke(window_id, &keystroke) { + return true; + } + + if presenter.borrow_mut().dispatch_event( + Event::KeyDown(KeyDownEvent { + keystroke: keystroke.clone(), + is_held, + }), + false, + cx, + ) { + return true; + } + + false + }); + + if !handled && !keystroke.cmd && !keystroke.ctrl { + WindowInputHandler { + app: self.cx.clone(), + window_id, + } + .replace_text_in_range(None, &keystroke.key) + } + } + + pub fn add_model(&mut self, build_model: F) -> ModelHandle + where + T: Entity, + F: FnOnce(&mut ModelContext) -> T, + { + self.cx.borrow_mut().add_model(build_model) + } + + pub fn add_window(&mut self, build_root_view: F) -> (usize, ViewHandle) + where + T: View, + F: FnOnce(&mut ViewContext) -> T, + { + let (window_id, view) = self + .cx + .borrow_mut() + .add_window(Default::default(), build_root_view); + self.simulate_window_activation(Some(window_id)); + (window_id, view) + } + + pub fn add_view( + &mut self, + parent_handle: impl Into, + build_view: F, + ) -> ViewHandle + where + T: View, + F: FnOnce(&mut ViewContext) -> T, + { + self.cx.borrow_mut().add_view(parent_handle, build_view) + } + + pub fn window_ids(&self) -> Vec { + self.cx.borrow().window_ids().collect() + } + + pub fn root_view(&self, window_id: usize) -> Option> { + self.cx.borrow().root_view(window_id) + } + + pub fn read T>(&self, callback: F) -> T { + callback(self.cx.borrow().as_ref()) + } + + pub fn update T>(&mut self, callback: F) -> T { + let mut state = self.cx.borrow_mut(); + // Don't increment pending flushes in order for effects to be flushed before the callback + // completes, which is helpful in tests. + let result = callback(&mut *state); + // Flush effects after the callback just in case there are any. This can happen in edge + // cases such as the closure dropping handles. + state.flush_effects(); + result + } + + pub fn render(&mut self, handle: &ViewHandle, f: F) -> T + where + F: FnOnce(&mut V, &mut RenderContext) -> T, + V: View, + { + handle.update(&mut *self.cx.borrow_mut(), |view, cx| { + let mut render_cx = RenderContext { + app: cx, + window_id: handle.window_id(), + view_id: handle.id(), + view_type: PhantomData, + titlebar_height: 0., + hovered_region_ids: Default::default(), + clicked_region_ids: None, + refreshing: false, + appearance: Appearance::Light, + }; + f(view, &mut render_cx) + }) + } + + pub fn to_async(&self) -> AsyncAppContext { + AsyncAppContext(self.cx.clone()) + } + + pub fn font_cache(&self) -> Arc { + self.cx.borrow().cx.font_cache.clone() + } + + pub fn foreground_platform(&self) -> Rc { + self.foreground_platform.clone() + } + + pub fn platform(&self) -> Arc { + self.cx.borrow().cx.platform.clone() + } + + pub fn foreground(&self) -> Rc { + self.cx.borrow().foreground().clone() + } + + pub fn background(&self) -> Arc { + self.cx.borrow().background().clone() + } + + pub fn spawn(&self, f: F) -> Task + where + F: FnOnce(AsyncAppContext) -> Fut, + Fut: 'static + Future, + T: 'static, + { + let foreground = self.foreground(); + let future = f(self.to_async()); + let cx = self.to_async(); + foreground.spawn(async move { + let result = future.await; + cx.0.borrow_mut().flush_effects(); + result + }) + } + + pub fn simulate_new_path_selection(&self, result: impl FnOnce(PathBuf) -> Option) { + self.foreground_platform.simulate_new_path_selection(result); + } + + pub fn did_prompt_for_new_path(&self) -> bool { + self.foreground_platform.as_ref().did_prompt_for_new_path() + } + + pub fn simulate_prompt_answer(&self, window_id: usize, answer: usize) { + use postage::prelude::Sink as _; + + let mut done_tx = self + .window_mut(window_id) + .pending_prompts + .borrow_mut() + .pop_front() + .expect("prompt was not called"); + let _ = done_tx.try_send(answer); + } + + pub fn has_pending_prompt(&self, window_id: usize) -> bool { + let window = self.window_mut(window_id); + let prompts = window.pending_prompts.borrow_mut(); + !prompts.is_empty() + } + + pub fn current_window_title(&self, window_id: usize) -> Option { + self.window_mut(window_id).title.clone() + } + + pub fn simulate_window_close(&self, window_id: usize) -> bool { + let handler = self.window_mut(window_id).should_close_handler.take(); + if let Some(mut handler) = handler { + let should_close = handler(); + self.window_mut(window_id).should_close_handler = Some(handler); + should_close + } else { + false + } + } + + pub fn simulate_window_activation(&self, to_activate: Option) { + let mut handlers = BTreeMap::new(); + { + let mut cx = self.cx.borrow_mut(); + for (window_id, (_, window)) in &mut cx.presenters_and_platform_windows { + let window = window + .as_any_mut() + .downcast_mut::() + .unwrap(); + handlers.insert( + *window_id, + mem::take(&mut window.active_status_change_handlers), + ); + } + }; + let mut handlers = handlers.into_iter().collect::>(); + handlers.sort_unstable_by_key(|(window_id, _)| Some(*window_id) == to_activate); + + for (window_id, mut window_handlers) in handlers { + for window_handler in &mut window_handlers { + window_handler(Some(window_id) == to_activate); + } + + self.window_mut(window_id) + .active_status_change_handlers + .extend(window_handlers); + } + } + + pub fn is_window_edited(&self, window_id: usize) -> bool { + self.window_mut(window_id).edited + } + + pub fn leak_detector(&self) -> Arc> { + self.cx.borrow().leak_detector() + } + + pub fn assert_dropped(&self, handle: impl WeakHandle) { + self.cx + .borrow() + .leak_detector() + .lock() + .assert_dropped(handle.id()) + } + + fn window_mut(&self, window_id: usize) -> std::cell::RefMut { + std::cell::RefMut::map(self.cx.borrow_mut(), |state| { + let (_, window) = state + .presenters_and_platform_windows + .get_mut(&window_id) + .unwrap(); + let test_window = window + .as_any_mut() + .downcast_mut::() + .unwrap(); + test_window + }) + } + + pub fn set_condition_duration(&mut self, duration: Option) { + self.condition_duration = duration; + } + + pub fn condition_duration(&self) -> Duration { + self.condition_duration.unwrap_or_else(|| { + if std::env::var("CI").is_ok() { + Duration::from_secs(2) + } else { + Duration::from_millis(500) + } + }) + } + + pub fn assert_clipboard_content(&mut self, expected_content: Option<&str>) { + self.update(|cx| { + let actual_content = cx.read_from_clipboard().map(|item| item.text().to_owned()); + let expected_content = expected_content.map(|content| content.to_owned()); + assert_eq!(actual_content, expected_content); + }) + } + + pub fn add_assertion_context(&self, context: String) -> ContextHandle { + self.assertion_context.add_context(context) + } + + pub fn assertion_context(&self) -> String { + self.assertion_context.context() + } +} + +impl UpdateModel for TestAppContext { + fn update_model( + &mut self, + handle: &ModelHandle, + update: &mut dyn FnMut(&mut T, &mut ModelContext) -> O, + ) -> O { + self.cx.borrow_mut().update_model(handle, update) + } +} + +impl ReadModelWith for TestAppContext { + fn read_model_with( + &self, + handle: &ModelHandle, + read: &mut dyn FnMut(&E, &AppContext) -> T, + ) -> T { + let cx = self.cx.borrow(); + let cx = cx.as_ref(); + read(handle.read(cx), cx) + } +} + +impl UpdateView for TestAppContext { + fn update_view( + &mut self, + handle: &ViewHandle, + update: &mut dyn FnMut(&mut T, &mut ViewContext) -> S, + ) -> S + where + T: View, + { + self.cx.borrow_mut().update_view(handle, update) + } +} + +impl ReadViewWith for TestAppContext { + fn read_view_with( + &self, + handle: &ViewHandle, + read: &mut dyn FnMut(&V, &AppContext) -> T, + ) -> T + where + V: View, + { + let cx = self.cx.borrow(); + let cx = cx.as_ref(); + read(handle.read(cx), cx) + } +} + +impl ModelHandle { + pub fn next_notification(&self, cx: &TestAppContext) -> impl Future { + let (tx, mut rx) = futures::channel::mpsc::unbounded(); + let mut cx = cx.cx.borrow_mut(); + let subscription = cx.observe(self, move |_, _| { + tx.unbounded_send(()).ok(); + }); + + let duration = if std::env::var("CI").is_ok() { + Duration::from_secs(5) + } else { + Duration::from_secs(1) + }; + + async move { + let notification = crate::util::timeout(duration, rx.next()) + .await + .expect("next notification timed out"); + drop(subscription); + notification.expect("model dropped while test was waiting for its next notification") + } + } + + pub fn next_event(&self, cx: &TestAppContext) -> impl Future + where + T::Event: Clone, + { + let (tx, mut rx) = futures::channel::mpsc::unbounded(); + let mut cx = cx.cx.borrow_mut(); + let subscription = cx.subscribe(self, move |_, event, _| { + tx.unbounded_send(event.clone()).ok(); + }); + + let duration = if std::env::var("CI").is_ok() { + Duration::from_secs(5) + } else { + Duration::from_secs(1) + }; + + cx.foreground.start_waiting(); + async move { + let event = crate::util::timeout(duration, rx.next()) + .await + .expect("next event timed out"); + drop(subscription); + event.expect("model dropped while test was waiting for its next event") + } + } + + pub fn condition( + &self, + cx: &TestAppContext, + mut predicate: impl FnMut(&T, &AppContext) -> bool, + ) -> impl Future { + let (tx, mut rx) = futures::channel::mpsc::unbounded(); + + let mut cx = cx.cx.borrow_mut(); + let subscriptions = ( + cx.observe(self, { + let tx = tx.clone(); + move |_, _| { + tx.unbounded_send(()).ok(); + } + }), + cx.subscribe(self, { + move |_, _, _| { + tx.unbounded_send(()).ok(); + } + }), + ); + + let cx = cx.weak_self.as_ref().unwrap().upgrade().unwrap(); + let handle = self.downgrade(); + let duration = if std::env::var("CI").is_ok() { + Duration::from_secs(5) + } else { + Duration::from_secs(1) + }; + + async move { + crate::util::timeout(duration, async move { + loop { + { + let cx = cx.borrow(); + let cx = cx.as_ref(); + if predicate( + handle + .upgrade(cx) + .expect("model dropped with pending condition") + .read(cx), + cx, + ) { + break; + } + } + + cx.borrow().foreground().start_waiting(); + rx.next() + .await + .expect("model dropped with pending condition"); + cx.borrow().foreground().finish_waiting(); + } + }) + .await + .expect("condition timed out"); + drop(subscriptions); + } + } +} + +impl ViewHandle { + pub fn next_notification(&self, cx: &TestAppContext) -> impl Future { + use postage::prelude::{Sink as _, Stream as _}; + + let (mut tx, mut rx) = postage::mpsc::channel(1); + let mut cx = cx.cx.borrow_mut(); + let subscription = cx.observe(self, move |_, _| { + tx.try_send(()).ok(); + }); + + let duration = if std::env::var("CI").is_ok() { + Duration::from_secs(5) + } else { + Duration::from_secs(1) + }; + + async move { + let notification = crate::util::timeout(duration, rx.recv()) + .await + .expect("next notification timed out"); + drop(subscription); + notification.expect("model dropped while test was waiting for its next notification") + } + } + + pub fn condition( + &self, + cx: &TestAppContext, + mut predicate: impl FnMut(&T, &AppContext) -> bool, + ) -> impl Future { + use postage::prelude::{Sink as _, Stream as _}; + + let (tx, mut rx) = postage::mpsc::channel(1024); + let timeout_duration = cx.condition_duration(); + + let mut cx = cx.cx.borrow_mut(); + let subscriptions = self.update(&mut *cx, |_, cx| { + ( + cx.observe(self, { + let mut tx = tx.clone(); + move |_, _, _| { + tx.blocking_send(()).ok(); + } + }), + cx.subscribe(self, { + let mut tx = tx.clone(); + move |_, _, _, _| { + tx.blocking_send(()).ok(); + } + }), + ) + }); + + let cx = cx.weak_self.as_ref().unwrap().upgrade().unwrap(); + let handle = self.downgrade(); + + async move { + crate::util::timeout(timeout_duration, async move { + loop { + { + let cx = cx.borrow(); + let cx = cx.as_ref(); + if predicate( + handle + .upgrade(cx) + .expect("view dropped with pending condition") + .read(cx), + cx, + ) { + break; + } + } + + cx.borrow().foreground().start_waiting(); + rx.recv() + .await + .expect("view dropped with pending condition"); + cx.borrow().foreground().finish_waiting(); + } + }) + .await + .expect("condition timed out"); + drop(subscriptions); + } + } +} + +#[derive(Clone)] +pub struct AssertionContextManager { + id: Arc, + contexts: Arc>>, +} + +impl AssertionContextManager { + pub fn new() -> Self { + Self { + id: Arc::new(AtomicUsize::new(0)), + contexts: Arc::new(RwLock::new(BTreeMap::new())), + } + } + + pub fn add_context(&self, context: String) -> ContextHandle { + let id = self.id.fetch_add(1, Ordering::Relaxed); + let mut contexts = self.contexts.write(); + contexts.insert(id, context); + ContextHandle { + id, + manager: self.clone(), + } + } + + pub fn context(&self) -> String { + let contexts = self.contexts.read(); + format!("\n{}\n", contexts.values().join("\n")) + } +} + +pub struct ContextHandle { + id: usize, + manager: AssertionContextManager, +} + +impl Drop for ContextHandle { + fn drop(&mut self) { + let mut contexts = self.manager.contexts.write(); + contexts.remove(&self.id); + } +} diff --git a/crates/vim/Cargo.toml b/crates/vim/Cargo.toml index 3acd3f3a90..44f2a8cb16 100644 --- a/crates/vim/Cargo.toml +++ b/crates/vim/Cargo.toml @@ -34,6 +34,7 @@ workspace = { path = "../workspace" } [dev-dependencies] indoc = "1.0.4" parking_lot = "0.11.1" +lazy_static = "1.4" editor = { path = "../editor", features = ["test-support"] } gpui = { path = "../gpui", features = ["test-support"] } diff --git a/crates/vim/src/insert.rs b/crates/vim/src/insert.rs index 1b9b299bf3..05cd2af1d9 100644 --- a/crates/vim/src/insert.rs +++ b/crates/vim/src/insert.rs @@ -26,7 +26,7 @@ fn normal_before(_: &mut Workspace, _: &NormalBefore, cx: &mut ViewContext) { clipboard_text = Cow::Owned(newline_separated_text); } - let mut new_selections = Vec::new(); + // If the pasted text is a single line, the cursor should be placed after + // the newly pasted text. This is easiest done with an anchor after the + // insertion, and then with a fixup to move the selection back one position. + // However if the pasted text is linewise, the cursor should be placed at the start + // of the new text on the following line. This is easiest done with a manually adjusted + // point. + // This enum lets us represent both cases + enum NewPosition { + Inside(Point), + After(Anchor), + } + let mut new_selections: HashMap = Default::default(); editor.buffer().update(cx, |buffer, cx| { let snapshot = buffer.snapshot(cx); let mut start_offset = 0; @@ -288,8 +301,10 @@ fn paste(_: &mut Workspace, _: &Paste, cx: &mut ViewContext) { edits.push((point..point, "\n")); } // Drop selection at the start of the next line - let selection_point = Point::new(point.row + 1, 0); - new_selections.push(selection.map(|_| selection_point)); + new_selections.insert( + selection.id, + NewPosition::Inside(Point::new(point.row + 1, 0)), + ); point } else { let mut point = selection.end; @@ -299,7 +314,14 @@ fn paste(_: &mut Workspace, _: &Paste, cx: &mut ViewContext) { .clip_point(point, Bias::Right) .to_point(&display_map); - new_selections.push(selection.map(|_| point)); + new_selections.insert( + selection.id, + if to_insert.contains('\n') { + NewPosition::Inside(point) + } else { + NewPosition::After(snapshot.anchor_after(point)) + }, + ); point }; @@ -317,7 +339,25 @@ fn paste(_: &mut Workspace, _: &Paste, cx: &mut ViewContext) { }); editor.change_selections(Some(Autoscroll::Fit), cx, |s| { - s.select(new_selections) + s.move_with(|map, selection| { + if let Some(new_position) = new_selections.get(&selection.id) { + match new_position { + NewPosition::Inside(new_point) => { + selection.collapse_to( + new_point.to_display_point(map), + SelectionGoal::None, + ); + } + NewPosition::After(after_point) => { + let mut new_point = after_point.to_display_point(map); + *new_point.column_mut() = + new_point.column().saturating_sub(1); + new_point = map.clip_point(new_point, Bias::Left); + selection.collapse_to(new_point, SelectionGoal::None); + } + } + } + }); }); } else { editor.insert(&clipboard_text, cx); @@ -332,14 +372,13 @@ fn paste(_: &mut Workspace, _: &Paste, cx: &mut ViewContext) { #[cfg(test)] mod test { use indoc::indoc; - use util::test::marked_text_offsets; use crate::{ state::{ Mode::{self, *}, Namespace, Operator, }, - test_contexts::{NeovimBackedTestContext, VimTestContext}, + test::{NeovimBackedTestContext, VimTestContext}, }; #[gpui::test] @@ -476,48 +515,22 @@ mod test { #[gpui::test] async fn test_b(cx: &mut gpui::TestAppContext) { - let mut cx = VimTestContext::new(cx, true).await; - let (_, cursor_offsets) = marked_text_offsets(indoc! {" - ˇˇThe ˇquickˇ-ˇbrown + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["b"]); + cx.assert_all(indoc! {" + ˇThe ˇquickˇ-ˇbrown ˇ ˇ ˇfox_jumps ˇover - ˇthe"}); - cx.set_state( - indoc! {" - The quick-brown - - - fox_jumps over - thˇe"}, - Mode::Normal, - ); - - for cursor_offset in cursor_offsets.into_iter().rev() { - cx.simulate_keystroke("b"); - cx.assert_editor_selections(vec![cursor_offset..cursor_offset]); - } - - // Reset and test ignoring punctuation - let (_, cursor_offsets) = marked_text_offsets(indoc! {" - ˇˇThe ˇquick-brown + ˇthe"}) + .await; + let mut cx = cx.binding(["shift-b"]); + cx.assert_all(indoc! {" + ˇThe ˇquickˇ-ˇbrown ˇ ˇ ˇfox_jumps ˇover - ˇthe"}); - cx.set_state( - indoc! {" - The quick-brown - - - fox_jumps over - thˇe"}, - Mode::Normal, - ); - for cursor_offset in cursor_offsets.into_iter().rev() { - cx.simulate_keystroke("shift-b"); - cx.assert_editor_selections(vec![cursor_offset..cursor_offset]); - } + ˇthe"}) + .await; } #[gpui::test] @@ -571,199 +584,98 @@ mod test { #[gpui::test] async fn test_jump_to_first_non_whitespace(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["^"]); - cx.assert("The qˇuick", "ˇThe quick"); - cx.assert(" The qˇuick", " ˇThe quick"); - cx.assert("ˇ", "ˇ"); - cx.assert( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["^"]); + cx.assert("The qˇuick").await; + cx.assert(" The qˇuick").await; + cx.assert("ˇ").await; + cx.assert(indoc! {" The qˇuick - brown fox"}, - indoc! {" - ˇThe quick - brown fox"}, - ); - cx.assert( - indoc! {" + brown fox"}) + .await; + cx.assert(indoc! {" ˇ - The quick"}, - indoc! {" - ˇ - The quick"}, - ); + The quick"}) + .await; // Indoc disallows trailing whitspace. - cx.assert(" ˇ \nThe quick", " ˇ \nThe quick"); + cx.assert(" ˇ \nThe quick").await; } #[gpui::test] async fn test_insert_first_non_whitespace(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["shift-i"]).mode_after(Mode::Insert); - cx.assert("The qˇuick", "ˇThe quick"); - cx.assert(" The qˇuick", " ˇThe quick"); - cx.assert("ˇ", "ˇ"); - cx.assert( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["shift-i"]); + cx.assert("The qˇuick").await; + cx.assert(" The qˇuick").await; + cx.assert("ˇ").await; + cx.assert(indoc! {" The qˇuick - brown fox"}, - indoc! {" - ˇThe quick - brown fox"}, - ); - cx.assert( - indoc! {" + brown fox"}) + .await; + cx.assert(indoc! {" ˇ - The quick"}, - indoc! {" - ˇ - The quick"}, - ); + The quick"}) + .await; } #[gpui::test] async fn test_delete_to_end_of_line(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["shift-d"]); - cx.assert( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["shift-d"]); + cx.assert(indoc! {" The qˇuick - brown fox"}, - indoc! {" - The ˇq - brown fox"}, - ); - cx.assert( - indoc! {" + brown fox"}) + .await; + cx.assert(indoc! {" The quick ˇ - brown fox"}, - indoc! {" - The quick - ˇ - brown fox"}, - ); + brown fox"}) + .await; } #[gpui::test] async fn test_x(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["x"]); - cx.assert("ˇTest", "ˇest"); - cx.assert("Teˇst", "Teˇt"); - cx.assert("Tesˇt", "Teˇs"); - cx.assert( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["x"]); + cx.assert_all("ˇTeˇsˇt").await; + cx.assert(indoc! {" Tesˇt - test"}, - indoc! {" - Teˇs - test"}, - ); + test"}) + .await; } #[gpui::test] async fn test_delete_left(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["shift-x"]); - cx.assert("Teˇst", "Tˇst"); - cx.assert("Tˇest", "ˇest"); - cx.assert("ˇTest", "ˇTest"); - cx.assert( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["shift-x"]); + cx.assert_all("ˇTˇeˇsˇt").await; + cx.assert(indoc! {" Test - ˇtest"}, - indoc! {" - Test - ˇtest"}, - ); + ˇtest"}) + .await; } #[gpui::test] async fn test_o(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["o"]).mode_after(Mode::Insert); - - cx.assert( - "ˇ", - indoc! {" - - ˇ"}, - ); - cx.assert( - "The ˇquick", - indoc! {" - The quick - ˇ"}, - ); - cx.assert( - indoc! {" - The quick - brown ˇfox - jumps over"}, - indoc! {" - The quick - brown fox - ˇ - jumps over"}, - ); - cx.assert( - indoc! {" - The quick - brown fox - jumps ˇover"}, - indoc! {" - The quick - brown fox - jumps over - ˇ"}, - ); - cx.assert( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["o"]); + cx.assert("ˇ").await; + cx.assert("The ˇquick").await; + cx.assert_all(indoc! {" The qˇuick - brown fox - jumps over"}, - indoc! {" + brown ˇfox + jumps ˇover"}) + .await; + cx.assert(indoc! {" The quick ˇ - brown fox - jumps over"}, - ); - cx.assert( - indoc! {" - The quick - ˇ - brown fox"}, - indoc! {" - The quick - - ˇ - brown fox"}, - ); - cx.assert( - indoc! {" + brown fox"}) + .await; + cx.assert(indoc! {" fn test() { println!(ˇ); } - "}, - indoc! {" - fn test() { - println!(); - ˇ - } - "}, - ); - cx.assert( - indoc! {" + "}) + .await; + cx.assert(indoc! {" fn test(ˇ) { println!(); - }"}, - indoc! {" - fn test() { - ˇ - println!(); - }"}, - ); + }"}) + .await; } #[gpui::test] @@ -812,146 +724,66 @@ mod test { #[gpui::test] async fn test_dd(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["d", "d"]); - - cx.assert("ˇ", "ˇ"); - cx.assert("The ˇquick", "ˇ"); - cx.assert( - indoc! {" - The quick - brown ˇfox - jumps over"}, - indoc! {" - The quick - jumps ˇover"}, - ); - cx.assert( - indoc! {" - The quick - brown fox - jumps ˇover"}, - indoc! {" - The quick - brown ˇfox"}, - ); - cx.assert( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["d", "d"]); + cx.assert("ˇ").await; + cx.assert("The ˇquick").await; + cx.assert_all(indoc! {" The qˇuick - brown fox - jumps over"}, - indoc! {" - brownˇ fox - jumps over"}, - ); - cx.assert( - indoc! {" + brown ˇfox + jumps ˇover"}) + .await; + cx.assert(indoc! {" The quick ˇ - brown fox"}, - indoc! {" - The quick - ˇbrown fox"}, - ); + brown fox"}) + .await; } #[gpui::test] async fn test_cc(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["c", "c"]).mode_after(Mode::Insert); - - cx.assert("ˇ", "ˇ"); - cx.assert("The ˇquick", "ˇ"); - cx.assert( - indoc! {" - The quick + let mut cx = NeovimBackedTestContext::new(cx).await.binding(["c", "c"]); + cx.assert("ˇ").await; + cx.assert("The ˇquick").await; + cx.assert_all(indoc! {" + The quˇick brown ˇfox - jumps over"}, - indoc! {" + jumps ˇover"}) + .await; + cx.assert(indoc! {" The quick ˇ - jumps over"}, - ); - cx.assert( - indoc! {" - The quick - brown fox - jumps ˇover"}, - indoc! {" - The quick - brown fox - ˇ"}, - ); - cx.assert( - indoc! {" - The qˇuick - brown fox - jumps over"}, - indoc! {" - ˇ - brown fox - jumps over"}, - ); - cx.assert( - indoc! {" - The quick - ˇ - brown fox"}, - indoc! {" - The quick - ˇ - brown fox"}, - ); + brown fox"}) + .await; } #[gpui::test] async fn test_p(cx: &mut gpui::TestAppContext) { - let mut cx = VimTestContext::new(cx, true).await; - cx.set_state( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx).await; + cx.set_shared_state(indoc! {" The quick brown fox juˇmps over - the lazy dog"}, - Mode::Normal, - ); + the lazy dog"}) + .await; - cx.simulate_keystrokes(["d", "d"]); - cx.assert_editor_state(indoc! {" - The quick brown - the laˇzy dog"}); + cx.simulate_shared_keystrokes(["d", "d"]).await; + cx.assert_state_matches().await; - cx.simulate_keystroke("p"); - cx.assert_state( - indoc! {" + cx.simulate_shared_keystroke("p").await; + cx.assert_state_matches().await; + + cx.set_shared_state(indoc! {" The quick brown - the lazy dog - ˇfox jumps over"}, - Mode::Normal, - ); - - cx.set_state( - indoc! {" - The quick brown - fox «jumpˇ»s over - the lazy dog"}, - Mode::Visual { line: false }, - ); - cx.simulate_keystroke("y"); - cx.set_state( - indoc! {" + fox ˇjumps over + the lazy dog"}) + .await; + cx.simulate_shared_keystrokes(["v", "w", "y"]).await; + cx.set_shared_state(indoc! {" The quick brown fox jumps oveˇr - the lazy dog"}, - Mode::Normal, - ); - cx.simulate_keystroke("p"); - cx.assert_state( - indoc! {" - The quick brown - fox jumps overˇjumps - the lazy dog"}, - Mode::Normal, - ); + the lazy dog"}) + .await; + cx.simulate_shared_keystroke("p").await; + cx.assert_state_matches().await; } #[gpui::test] diff --git a/crates/vim/src/normal/change.rs b/crates/vim/src/normal/change.rs index 924fc9d708..cc62ce8db0 100644 --- a/crates/vim/src/normal/change.rs +++ b/crates/vim/src/normal/change.rs @@ -79,7 +79,7 @@ mod test { use crate::{ state::Mode, - test_contexts::{NeovimBackedTestContext, VimTestContext}, + test::{NeovimBackedTestContext, VimTestContext}, }; #[gpui::test] diff --git a/crates/vim/src/normal/delete.rs b/crates/vim/src/normal/delete.rs index b0fd3ea5a1..1465e3e377 100644 --- a/crates/vim/src/normal/delete.rs +++ b/crates/vim/src/normal/delete.rs @@ -96,7 +96,7 @@ pub fn delete_object(vim: &mut Vim, object: Object, around: bool, cx: &mut Mutab mod test { use indoc::indoc; - use crate::{state::Mode, test_contexts::VimTestContext}; + use crate::{state::Mode, test::VimTestContext}; #[gpui::test] async fn test_delete_h(cx: &mut gpui::TestAppContext) { diff --git a/crates/vim/src/object.rs b/crates/vim/src/object.rs index b55545682f..a0f9b4a6da 100644 --- a/crates/vim/src/object.rs +++ b/crates/vim/src/object.rs @@ -310,7 +310,7 @@ fn expand_to_include_whitespace( mod test { use indoc::indoc; - use crate::test_contexts::NeovimBackedTestContext; + use crate::test::NeovimBackedTestContext; const WORD_LOCATIONS: &'static str = indoc! {" The quick ˇbrowˇnˇ diff --git a/crates/vim/src/test.rs b/crates/vim/src/test.rs new file mode 100644 index 0000000000..63bb7996bf --- /dev/null +++ b/crates/vim/src/test.rs @@ -0,0 +1,102 @@ +mod neovim_backed_binding_test_context; +mod neovim_backed_test_context; +mod neovim_connection; +mod vim_binding_test_context; +mod vim_test_context; + +pub use neovim_backed_binding_test_context::*; +pub use neovim_backed_test_context::*; +pub use vim_binding_test_context::*; +pub use vim_test_context::*; + +use indoc::indoc; +use search::BufferSearchBar; + +use crate::state::Mode; + +#[gpui::test] +async fn test_initially_disabled(cx: &mut gpui::TestAppContext) { + let mut cx = VimTestContext::new(cx, false).await; + cx.simulate_keystrokes(["h", "j", "k", "l"]); + cx.assert_editor_state("hjklˇ"); +} + +#[gpui::test] +async fn test_neovim(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + + cx.simulate_shared_keystroke("i").await; + cx.simulate_shared_keystrokes([ + "shift-T", "e", "s", "t", " ", "t", "e", "s", "t", "escape", "0", "d", "w", + ]) + .await; + cx.assert_state_matches().await; + cx.assert_editor_state("ˇtest"); +} + +#[gpui::test] +async fn test_toggle_through_settings(cx: &mut gpui::TestAppContext) { + let mut cx = VimTestContext::new(cx, true).await; + + cx.simulate_keystroke("i"); + assert_eq!(cx.mode(), Mode::Insert); + + // Editor acts as though vim is disabled + cx.disable_vim(); + cx.simulate_keystrokes(["h", "j", "k", "l"]); + cx.assert_editor_state("hjklˇ"); + + // Selections aren't changed if editor is blurred but vim-mode is still disabled. + cx.set_state("«hjklˇ»", Mode::Normal); + cx.assert_editor_state("«hjklˇ»"); + cx.update_editor(|_, cx| cx.blur()); + cx.assert_editor_state("«hjklˇ»"); + cx.update_editor(|_, cx| cx.focus_self()); + cx.assert_editor_state("«hjklˇ»"); + + // Enabling dynamically sets vim mode again and restores normal mode + cx.enable_vim(); + assert_eq!(cx.mode(), Mode::Normal); + cx.simulate_keystrokes(["h", "h", "h", "l"]); + assert_eq!(cx.buffer_text(), "hjkl".to_owned()); + cx.assert_editor_state("hˇjkl"); + cx.simulate_keystrokes(["i", "T", "e", "s", "t"]); + cx.assert_editor_state("hTestˇjkl"); + + // Disabling and enabling resets to normal mode + assert_eq!(cx.mode(), Mode::Insert); + cx.disable_vim(); + cx.enable_vim(); + assert_eq!(cx.mode(), Mode::Normal); +} + +#[gpui::test] +async fn test_buffer_search(cx: &mut gpui::TestAppContext) { + let mut cx = VimTestContext::new(cx, true).await; + + cx.set_state( + indoc! {" + The quick brown + fox juˇmps over + the lazy dog"}, + Mode::Normal, + ); + cx.simulate_keystroke("/"); + + // We now use a weird insert mode with selection when jumping to a single line editor + assert_eq!(cx.mode(), Mode::Insert); + + let search_bar = cx.workspace(|workspace, cx| { + workspace + .active_pane() + .read(cx) + .toolbar() + .read(cx) + .item_of_type::() + .expect("Buffer search bar should be deployed") + }); + + search_bar.read_with(cx.cx, |bar, cx| { + assert_eq!(bar.query_editor.read(cx).text(cx), "jumps"); + }) +} diff --git a/crates/vim/src/test_contexts/neovim_backed_binding_test_context.rs b/crates/vim/src/test/neovim_backed_binding_test_context.rs similarity index 92% rename from crates/vim/src/test_contexts/neovim_backed_binding_test_context.rs rename to crates/vim/src/test/neovim_backed_binding_test_context.rs index 3f6b8f99f8..a768aff59d 100644 --- a/crates/vim/src/test_contexts/neovim_backed_binding_test_context.rs +++ b/crates/vim/src/test/neovim_backed_binding_test_context.rs @@ -1,5 +1,7 @@ use std::ops::{Deref, DerefMut}; +use gpui::ContextHandle; + use crate::state::Mode; use super::NeovimBackedTestContext; @@ -31,7 +33,10 @@ impl<'a, const COUNT: usize> NeovimBackedBindingTestContext<'a, COUNT> { self.consume().binding(keystrokes) } - pub async fn assert(&mut self, marked_positions: &str) { + pub async fn assert( + &mut self, + marked_positions: &str, + ) -> Option<(ContextHandle, ContextHandle)> { self.cx .assert_binding_matches(self.keystrokes_under_test, marked_positions) .await diff --git a/crates/vim/src/test/neovim_backed_test_context.rs b/crates/vim/src/test/neovim_backed_test_context.rs new file mode 100644 index 0000000000..bb8ba26b74 --- /dev/null +++ b/crates/vim/src/test/neovim_backed_test_context.rs @@ -0,0 +1,158 @@ +use std::ops::{Deref, DerefMut}; + +use collections::{HashMap, HashSet}; +use gpui::ContextHandle; +use language::OffsetRangeExt; +use util::test::marked_text_offsets; + +use super::{neovim_connection::NeovimConnection, NeovimBackedBindingTestContext, VimTestContext}; +use crate::state::Mode; + +pub struct NeovimBackedTestContext<'a> { + cx: VimTestContext<'a>, + // Lookup for exempted assertions. Keyed by the insertion text, and with a value indicating which + // bindings are exempted. If None, all bindings are ignored for that insertion text. + exemptions: HashMap>>, + neovim: NeovimConnection, +} + +impl<'a> NeovimBackedTestContext<'a> { + pub async fn new(cx: &'a mut gpui::TestAppContext) -> NeovimBackedTestContext<'a> { + let function_name = cx.function_name.clone(); + let cx = VimTestContext::new(cx, true).await; + Self { + cx, + exemptions: Default::default(), + neovim: NeovimConnection::new(function_name).await, + } + } + + pub fn add_initial_state_exemption(&mut self, initial_state: &str) { + let initial_state = initial_state.to_string(); + // None represents all keybindings being exempted for that initial state + self.exemptions.insert(initial_state, None); + } + + pub async fn simulate_shared_keystroke(&mut self, keystroke_text: &str) -> ContextHandle { + self.neovim.send_keystroke(keystroke_text).await; + self.simulate_keystroke(keystroke_text) + } + + pub async fn simulate_shared_keystrokes( + &mut self, + keystroke_texts: [&str; COUNT], + ) -> ContextHandle { + for keystroke_text in keystroke_texts.into_iter() { + self.neovim.send_keystroke(keystroke_text).await; + } + self.simulate_keystrokes(keystroke_texts) + } + + pub async fn set_shared_state(&mut self, marked_text: &str) -> ContextHandle { + let context_handle = self.set_state(marked_text, Mode::Normal); + + let selection = self.editor(|editor, cx| editor.selections.newest::(cx)); + let text = self.buffer_text(); + self.neovim.set_state(selection, &text).await; + + context_handle + } + + pub async fn assert_state_matches(&mut self) { + assert_eq!( + self.neovim.text().await, + self.buffer_text(), + "{}", + self.assertion_context() + ); + + let mut neovim_selection = self.neovim.selection().await; + // Zed selections adjust themselves to make the end point visually make sense + if neovim_selection.start > neovim_selection.end { + neovim_selection.start.column += 1; + } + let neovim_selection = neovim_selection.to_offset(&self.buffer_snapshot()); + self.assert_editor_selections(vec![neovim_selection]); + + if let Some(neovim_mode) = self.neovim.mode().await { + assert_eq!(neovim_mode, self.mode(), "{}", self.assertion_context(),); + } + } + + pub async fn assert_binding_matches( + &mut self, + keystrokes: [&str; COUNT], + initial_state: &str, + ) -> Option<(ContextHandle, ContextHandle)> { + if let Some(possible_exempted_keystrokes) = self.exemptions.get(initial_state) { + match possible_exempted_keystrokes { + Some(exempted_keystrokes) => { + if exempted_keystrokes.contains(&format!("{keystrokes:?}")) { + // This keystroke was exempted for this insertion text + return None; + } + } + None => { + // All keystrokes for this insertion text are exempted + return None; + } + } + } + + let _state_context = self.set_shared_state(initial_state).await; + let _keystroke_context = self.simulate_shared_keystrokes(keystrokes).await; + self.assert_state_matches().await; + Some((_state_context, _keystroke_context)) + } + + pub async fn assert_binding_matches_all( + &mut self, + keystrokes: [&str; COUNT], + marked_positions: &str, + ) { + let (unmarked_text, cursor_offsets) = marked_text_offsets(marked_positions); + + for cursor_offset in cursor_offsets.iter() { + let mut marked_text = unmarked_text.clone(); + marked_text.insert(*cursor_offset, 'ˇ'); + + self.assert_binding_matches(keystrokes, &marked_text).await; + } + } + + pub fn binding( + self, + keystrokes: [&'static str; COUNT], + ) -> NeovimBackedBindingTestContext<'a, COUNT> { + NeovimBackedBindingTestContext::new(keystrokes, self) + } +} + +impl<'a> Deref for NeovimBackedTestContext<'a> { + type Target = VimTestContext<'a>; + + fn deref(&self) -> &Self::Target { + &self.cx + } +} + +impl<'a> DerefMut for NeovimBackedTestContext<'a> { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.cx + } +} + +#[cfg(test)] +mod test { + use gpui::TestAppContext; + + use crate::test::NeovimBackedTestContext; + + #[gpui::test] + async fn neovim_backed_test_context_works(cx: &mut TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + cx.assert_state_matches().await; + cx.set_shared_state("This is a tesˇt").await; + cx.assert_state_matches().await; + } +} diff --git a/crates/vim/src/test/neovim_connection.rs b/crates/vim/src/test/neovim_connection.rs new file mode 100644 index 0000000000..ff4e10cfe5 --- /dev/null +++ b/crates/vim/src/test/neovim_connection.rs @@ -0,0 +1,383 @@ +#[cfg(feature = "neovim")] +use std::ops::{Deref, DerefMut}; +use std::{ops::Range, path::PathBuf}; + +#[cfg(feature = "neovim")] +use async_compat::Compat; +#[cfg(feature = "neovim")] +use async_trait::async_trait; +#[cfg(feature = "neovim")] +use gpui::keymap::Keystroke; +use language::{Point, Selection}; +#[cfg(feature = "neovim")] +use lazy_static::lazy_static; +#[cfg(feature = "neovim")] +use nvim_rs::{ + create::tokio::new_child_cmd, error::LoopError, Handler, Neovim, UiAttachOptions, Value, +}; +#[cfg(feature = "neovim")] +use parking_lot::ReentrantMutex; +use serde::{Deserialize, Serialize}; +#[cfg(feature = "neovim")] +use tokio::{ + process::{Child, ChildStdin, Command}, + task::JoinHandle, +}; + +use crate::state::Mode; +use collections::VecDeque; + +// Neovim doesn't like to be started simultaneously from multiple threads. We use thsi lock +// to ensure we are only constructing one neovim connection at a time. +#[cfg(feature = "neovim")] +lazy_static! { + static ref NEOVIM_LOCK: ReentrantMutex<()> = ReentrantMutex::new(()); +} + +#[derive(Serialize, Deserialize)] +pub enum NeovimData { + Text(String), + Selection { start: (u32, u32), end: (u32, u32) }, + Mode(Option), +} + +pub struct NeovimConnection { + data: VecDeque, + #[cfg(feature = "neovim")] + test_case_id: String, + #[cfg(feature = "neovim")] + nvim: Neovim>, + #[cfg(feature = "neovim")] + _join_handle: JoinHandle>>, + #[cfg(feature = "neovim")] + _child: Child, +} + +impl NeovimConnection { + pub async fn new(test_case_id: String) -> Self { + #[cfg(feature = "neovim")] + let handler = NvimHandler {}; + #[cfg(feature = "neovim")] + let (nvim, join_handle, child) = Compat::new(async { + // Ensure we don't create neovim connections in parallel + let _lock = NEOVIM_LOCK.lock(); + let (nvim, join_handle, child) = new_child_cmd( + &mut Command::new("nvim").arg("--embed").arg("--clean"), + handler, + ) + .await + .expect("Could not connect to neovim process"); + + nvim.ui_attach(100, 100, &UiAttachOptions::default()) + .await + .expect("Could not attach to ui"); + + // Makes system act a little more like zed in terms of indentation + nvim.set_option("smartindent", nvim_rs::Value::Boolean(true)) + .await + .expect("Could not set smartindent on startup"); + + (nvim, join_handle, child) + }) + .await; + + Self { + #[cfg(feature = "neovim")] + data: Default::default(), + #[cfg(not(feature = "neovim"))] + data: Self::read_test_data(&test_case_id), + #[cfg(feature = "neovim")] + test_case_id, + #[cfg(feature = "neovim")] + nvim, + #[cfg(feature = "neovim")] + _join_handle: join_handle, + #[cfg(feature = "neovim")] + _child: child, + } + } + + // 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 special = keystroke.shift + || keystroke.ctrl + || keystroke.alt + || keystroke.cmd + || keystroke.key.len() > 1; + let start = if special { "<" } else { "" }; + let shift = if keystroke.shift { "S-" } else { "" }; + let ctrl = if keystroke.ctrl { "C-" } else { "" }; + let alt = if keystroke.alt { "M-" } else { "" }; + let cmd = if keystroke.cmd { "D-" } else { "" }; + let end = if special { ">" } else { "" }; + + let key = format!("{start}{shift}{ctrl}{alt}{cmd}{}{end}", keystroke.key); + + self.nvim + .input(&key) + .await + .expect("Could not input keystroke"); + } + + // If not running with a live neovim connection, this is a no-op + #[cfg(not(feature = "neovim"))] + pub async fn send_keystroke(&mut self, _keystroke_text: &str) {} + + #[cfg(feature = "neovim")] + pub async fn set_state(&mut self, selection: Selection, text: &str) { + let nvim_buffer = self + .nvim + .get_current_buf() + .await + .expect("Could not get neovim buffer"); + let lines = text + .split('\n') + .map(|line| line.to_string()) + .collect::>(); + + nvim_buffer + .set_lines(0, -1, false, lines) + .await + .expect("Could not set nvim buffer text"); + + self.nvim + .input("") + .await + .expect("Could not send escape to nvim"); + self.nvim + .input("") + .await + .expect("Could not send escape to nvim"); + + let nvim_window = self + .nvim + .get_current_win() + .await + .expect("Could not get neovim window"); + + if !selection.is_empty() { + panic!("Setting neovim state with non empty selection not yet supported"); + } + let cursor = selection.head(); + nvim_window + .set_cursor((cursor.row as i64 + 1, cursor.column as i64)) + .await + .expect("Could not set nvim cursor position"); + } + + #[cfg(not(feature = "neovim"))] + pub async fn set_state(&mut self, _selection: Selection, _text: &str) {} + + #[cfg(feature = "neovim")] + pub async fn text(&mut self) -> String { + let nvim_buffer = self + .nvim + .get_current_buf() + .await + .expect("Could not get neovim buffer"); + let text = nvim_buffer + .get_lines(0, -1, false) + .await + .expect("Could not get buffer text") + .join("\n"); + + self.data.push_back(NeovimData::Text(text.clone())); + + text + } + + #[cfg(not(feature = "neovim"))] + pub async fn text(&mut self) -> String { + if let Some(NeovimData::Text(text)) = self.data.pop_front() { + text + } else { + panic!("Invalid test data. Is test deterministic? Try running with '--features neovim' to regenerate"); + } + } + + #[cfg(feature = "neovim")] + pub async fn selection(&mut self) -> Range { + let cursor_row: u32 = self + .nvim + .command_output("echo line('.')") + .await + .unwrap() + .parse::() + .unwrap() + - 1; // Neovim rows start at 1 + let cursor_col: u32 = self + .nvim + .command_output("echo col('.')") + .await + .unwrap() + .parse::() + .unwrap() + - 1; // Neovim columns start at 1 + + let (start, end) = if let Some(Mode::Visual { .. }) = self.mode().await { + self.nvim + .input("") + .await + .expect("Could not exit visual mode"); + let nvim_buffer = self + .nvim + .get_current_buf() + .await + .expect("Could not get neovim buffer"); + let (start_row, start_col) = nvim_buffer + .get_mark("<") + .await + .expect("Could not get selection start"); + let (end_row, end_col) = nvim_buffer + .get_mark(">") + .await + .expect("Could not get selection end"); + self.nvim + .input("gv") + .await + .expect("Could not reselect visual selection"); + + if cursor_row == start_row as u32 - 1 && cursor_col == start_col as u32 { + ( + (end_row as u32 - 1, end_col as u32), + (start_row as u32 - 1, start_col as u32), + ) + } else { + ( + (start_row as u32 - 1, start_col as u32), + (end_row as u32 - 1, end_col as u32), + ) + } + } else { + ((cursor_row, cursor_col), (cursor_row, cursor_col)) + }; + + self.data.push_back(NeovimData::Selection { start, end }); + + Point::new(start.0, start.1)..Point::new(end.0, end.1) + } + + #[cfg(not(feature = "neovim"))] + pub async fn selection(&mut self) -> Range { + // Selection code fetches the mode. This emulates that. + let _mode = self.mode().await; + if let Some(NeovimData::Selection { start, end }) = self.data.pop_front() { + Point::new(start.0, start.1)..Point::new(end.0, end.1) + } else { + panic!("Invalid test data. Is test deterministic? Try running with '--features neovim' to regenerate"); + } + } + + #[cfg(feature = "neovim")] + pub async fn mode(&mut self) -> Option { + let nvim_mode_text = self + .nvim + .get_mode() + .await + .expect("Could not get mode") + .into_iter() + .find_map(|(key, value)| { + if key.as_str() == Some("mode") { + Some(value.as_str().unwrap().to_owned()) + } else { + None + } + }) + .expect("Could not find mode value"); + + let mode = match nvim_mode_text.as_ref() { + "i" => Some(Mode::Insert), + "n" => Some(Mode::Normal), + "v" => Some(Mode::Visual { line: false }), + "V" => Some(Mode::Visual { line: true }), + _ => None, + }; + + self.data.push_back(NeovimData::Mode(mode.clone())); + + mode + } + + #[cfg(not(feature = "neovim"))] + pub async fn mode(&mut self) -> Option { + if let Some(NeovimData::Mode(mode)) = self.data.pop_front() { + mode + } else { + panic!("Invalid test data. Is test deterministic? Try running with '--features neovim' to regenerate"); + } + } + + fn test_data_path(test_case_id: &str) -> PathBuf { + let mut data_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + data_path.push("test_data"); + data_path.push(format!("{}.json", test_case_id)); + data_path + } + + #[cfg(not(feature = "neovim"))] + fn read_test_data(test_case_id: &str) -> VecDeque { + let path = Self::test_data_path(test_case_id); + let json = std::fs::read_to_string(path).expect( + "Could not read test data. Is it generated? Try running test with '--features neovim'", + ); + + serde_json::from_str(&json) + .expect("Test data corrupted. Try regenerating it with '--features neovim'") + } +} + +#[cfg(feature = "neovim")] +impl Deref for NeovimConnection { + type Target = Neovim>; + + fn deref(&self) -> &Self::Target { + &self.nvim + } +} + +#[cfg(feature = "neovim")] +impl DerefMut for NeovimConnection { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.nvim + } +} + +#[cfg(feature = "neovim")] +impl Drop for NeovimConnection { + fn drop(&mut self) { + let path = Self::test_data_path(&self.test_case_id); + std::fs::create_dir_all(path.parent().unwrap()) + .expect("Could not create test data directory"); + let json = serde_json::to_string(&self.data).expect("Could not serialize test data"); + std::fs::write(path, json).expect("Could not write out test data"); + } +} + +#[cfg(feature = "neovim")] +#[derive(Clone)] +struct NvimHandler {} + +#[cfg(feature = "neovim")] +#[async_trait] +impl Handler for NvimHandler { + type Writer = nvim_rs::compat::tokio::Compat; + + async fn handle_request( + &self, + _event_name: String, + _arguments: Vec, + _neovim: Neovim, + ) -> Result { + unimplemented!(); + } + + async fn handle_notify( + &self, + _event_name: String, + _arguments: Vec, + _neovim: Neovim, + ) { + } +} diff --git a/crates/vim/src/test_contexts/vim_binding_test_context.rs b/crates/vim/src/test/vim_binding_test_context.rs similarity index 100% rename from crates/vim/src/test_contexts/vim_binding_test_context.rs rename to crates/vim/src/test/vim_binding_test_context.rs diff --git a/crates/vim/src/test_contexts/vim_test_context.rs b/crates/vim/src/test/vim_test_context.rs similarity index 91% rename from crates/vim/src/test_contexts/vim_test_context.rs rename to crates/vim/src/test/vim_test_context.rs index 711e9d610c..2fb446d127 100644 --- a/crates/vim/src/test_contexts/vim_test_context.rs +++ b/crates/vim/src/test/vim_test_context.rs @@ -1,7 +1,7 @@ use std::ops::{Deref, DerefMut}; -use editor::test::{AssertionContextManager, EditorTestContext}; -use gpui::{json::json, AppContext, ViewHandle}; +use editor::test::editor_test_context::EditorTestContext; +use gpui::{json::json, AppContext, ContextHandle, ViewHandle}; use project::Project; use search::{BufferSearchBar, ProjectSearchBar}; use workspace::{pane, AppState, WorkspaceHandle}; @@ -82,7 +82,6 @@ impl<'a> VimTestContext<'a> { cx, window_id, editor, - assertion_context: AssertionContextManager::new(), }, workspace, } @@ -120,18 +119,18 @@ impl<'a> VimTestContext<'a> { .read(|cx| cx.global::().state.operator_stack.last().copied()) } - pub fn set_state(&mut self, text: &str, mode: Mode) { + pub fn set_state(&mut self, text: &str, mode: Mode) -> ContextHandle { self.cx.update(|cx| { Vim::update(cx, |vim, cx| { vim.switch_mode(mode, false, cx); }) }); - self.cx.set_state(text); + self.cx.set_state(text) } pub fn assert_state(&mut self, text: &str, mode: Mode) { self.assert_editor_state(text); - assert_eq!(self.mode(), mode); + assert_eq!(self.mode(), mode, "{}", self.assertion_context()); } pub fn assert_binding( @@ -145,8 +144,8 @@ impl<'a> VimTestContext<'a> { self.set_state(initial_state, initial_mode); self.cx.simulate_keystrokes(keystrokes); self.cx.assert_editor_state(state_after); - assert_eq!(self.mode(), mode_after); - assert_eq!(self.active_operator(), None); + assert_eq!(self.mode(), mode_after, "{}", self.assertion_context()); + assert_eq!(self.active_operator(), None, "{}", self.assertion_context()); } pub fn binding( diff --git a/crates/vim/src/test_contexts.rs b/crates/vim/src/test_contexts.rs deleted file mode 100644 index 1a65be251b..0000000000 --- a/crates/vim/src/test_contexts.rs +++ /dev/null @@ -1,9 +0,0 @@ -mod neovim_backed_binding_test_context; -mod neovim_backed_test_context; -mod vim_binding_test_context; -mod vim_test_context; - -pub use neovim_backed_binding_test_context::*; -pub use neovim_backed_test_context::*; -pub use vim_binding_test_context::*; -pub use vim_test_context::*; diff --git a/crates/vim/src/test_contexts/neovim_backed_test_context.rs b/crates/vim/src/test_contexts/neovim_backed_test_context.rs deleted file mode 100644 index aa52f0c40b..0000000000 --- a/crates/vim/src/test_contexts/neovim_backed_test_context.rs +++ /dev/null @@ -1,518 +0,0 @@ -use std::{ - ops::{Deref, DerefMut, Range}, - path::PathBuf, -}; - -use collections::{HashMap, HashSet, VecDeque}; -use editor::DisplayPoint; -use gpui::keymap::Keystroke; - -#[cfg(feature = "neovim")] -use async_compat::Compat; -#[cfg(feature = "neovim")] -use async_trait::async_trait; -#[cfg(feature = "neovim")] -use nvim_rs::{ - create::tokio::new_child_cmd, error::LoopError, Handler, Neovim, UiAttachOptions, Value, -}; -use serde::{Deserialize, Serialize}; -#[cfg(feature = "neovim")] -use tokio::{ - process::{Child, ChildStdin, Command}, - task::JoinHandle, -}; -use util::test::marked_text_offsets; - -use crate::state::Mode; - -use super::{NeovimBackedBindingTestContext, VimTestContext}; - -pub struct NeovimBackedTestContext<'a> { - cx: VimTestContext<'a>, - // Lookup for exempted assertions. Keyed by the insertion text, and with a value indicating which - // bindings are exempted. If None, all bindings are ignored for that insertion text. - exemptions: HashMap>>, - neovim: NeovimConnection, -} - -impl<'a> NeovimBackedTestContext<'a> { - pub async fn new(cx: &'a mut gpui::TestAppContext) -> NeovimBackedTestContext<'a> { - let function_name = cx.function_name.clone(); - let cx = VimTestContext::new(cx, true).await; - Self { - cx, - exemptions: Default::default(), - neovim: NeovimConnection::new(function_name).await, - } - } - - pub fn add_initial_state_exemption(&mut self, initial_state: &str) { - let initial_state = initial_state.to_string(); - // None represents all keybindings being exempted for that initial state - self.exemptions.insert(initial_state, None); - } - - pub async fn simulate_shared_keystroke(&mut self, keystroke_text: &str) { - let keystroke = Keystroke::parse(keystroke_text).unwrap(); - - #[cfg(feature = "neovim")] - { - let special = keystroke.shift - || keystroke.ctrl - || keystroke.alt - || keystroke.cmd - || keystroke.key.len() > 1; - let start = if special { "<" } else { "" }; - let shift = if keystroke.shift { "S-" } else { "" }; - let ctrl = if keystroke.ctrl { "C-" } else { "" }; - let alt = if keystroke.alt { "M-" } else { "" }; - let cmd = if keystroke.cmd { "D-" } else { "" }; - let end = if special { ">" } else { "" }; - - let key = format!("{start}{shift}{ctrl}{alt}{cmd}{}{end}", keystroke.key); - - self.neovim - .input(&key) - .await - .expect("Could not input keystroke"); - } - - let window_id = self.window_id; - self.cx.dispatch_keystroke(window_id, keystroke, false); - } - - pub async fn simulate_shared_keystrokes( - &mut self, - keystroke_texts: [&str; COUNT], - ) { - for keystroke_text in keystroke_texts.into_iter() { - self.simulate_shared_keystroke(keystroke_text).await; - } - } - - pub async fn set_shared_state(&mut self, marked_text: &str) { - self.set_state(marked_text, Mode::Normal); - - #[cfg(feature = "neovim")] - { - let cursor_point = - self.editor(|editor, cx| editor.selections.newest::(cx)); - let nvim_buffer = self - .neovim - .get_current_buf() - .await - .expect("Could not get neovim buffer"); - let lines = self - .buffer_text() - .split('\n') - .map(|line| line.to_string()) - .collect::>(); - - nvim_buffer - .set_lines(0, -1, false, lines) - .await - .expect("Could not set nvim buffer text"); - - self.neovim - .input("") - .await - .expect("Could not send escape to nvim"); - self.neovim - .input("") - .await - .expect("Could not send escape to nvim"); - - let nvim_window = self - .neovim - .get_current_win() - .await - .expect("Could not get neovim window"); - nvim_window - .set_cursor(( - cursor_point.head().row as i64 + 1, - cursor_point.head().column as i64, - )) - .await - .expect("Could not set nvim cursor position"); - } - } - - pub async fn assert_state_matches(&mut self) { - assert_eq!( - self.neovim.text().await, - self.buffer_text(), - "{}", - self.assertion_context.context() - ); - - let zed_selection = self.update_editor(|editor, cx| editor.selections.newest_display(cx)); - let mut zed_selection_range = zed_selection.range(); - // Zed selections adjust themselves to make the end point visually make sense - if zed_selection.reversed { - *zed_selection_range.end.column_mut() = - zed_selection_range.end.column().saturating_sub(1); - } - let neovim_selection = self.neovim.selection().await; - assert_eq!( - neovim_selection, - zed_selection_range, - "{}", - self.assertion_context.context() - ); - - if let Some(neovim_mode) = self.neovim.mode().await { - assert_eq!( - neovim_mode, - self.mode(), - "{}", - self.assertion_context.context() - ); - } - } - - pub async fn assert_binding_matches( - &mut self, - keystrokes: [&str; COUNT], - initial_state: &str, - ) { - if let Some(possible_exempted_keystrokes) = self.exemptions.get(initial_state) { - match possible_exempted_keystrokes { - Some(exempted_keystrokes) => { - if exempted_keystrokes.contains(&format!("{keystrokes:?}")) { - // This keystroke was exempted for this insertion text - return; - } - } - None => { - // All keystrokes for this insertion text are exempted - return; - } - } - } - - let _keybinding_context_handle = - self.add_assertion_context(format!("Key Binding Under Test: {:?}", keystrokes)); - let _initial_state_context_handle = self.add_assertion_context(format!( - "Initial State: \"{}\"", - initial_state.escape_debug().to_string() - )); - self.set_shared_state(initial_state).await; - self.simulate_shared_keystrokes(keystrokes).await; - self.assert_state_matches().await; - } - - pub async fn assert_binding_matches_all( - &mut self, - keystrokes: [&str; COUNT], - marked_positions: &str, - ) { - let (unmarked_text, cursor_offsets) = marked_text_offsets(marked_positions); - - for cursor_offset in cursor_offsets.iter() { - let mut marked_text = unmarked_text.clone(); - marked_text.insert(*cursor_offset, 'ˇ'); - - self.assert_binding_matches(keystrokes, &marked_text).await; - } - } - - pub fn binding( - self, - keystrokes: [&'static str; COUNT], - ) -> NeovimBackedBindingTestContext<'a, COUNT> { - NeovimBackedBindingTestContext::new(keystrokes, self) - } -} - -impl<'a> Deref for NeovimBackedTestContext<'a> { - type Target = VimTestContext<'a>; - - fn deref(&self) -> &Self::Target { - &self.cx - } -} - -impl<'a> DerefMut for NeovimBackedTestContext<'a> { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.cx - } -} - -#[derive(Serialize, Deserialize)] -pub enum NeovimData { - Text(String), - Selection { start: (u32, u32), end: (u32, u32) }, - Mode(Option), -} - -struct NeovimConnection { - data: VecDeque, - #[cfg(feature = "neovim")] - test_case_id: String, - #[cfg(feature = "neovim")] - nvim: Neovim>, - #[cfg(feature = "neovim")] - _join_handle: JoinHandle>>, - #[cfg(feature = "neovim")] - _child: Child, -} - -impl NeovimConnection { - async fn new(test_case_id: String) -> Self { - #[cfg(feature = "neovim")] - let handler = NvimHandler {}; - #[cfg(feature = "neovim")] - let (nvim, join_handle, child) = Compat::new(async { - let (nvim, join_handle, child) = new_child_cmd( - &mut Command::new("nvim").arg("--embed").arg("--clean"), - handler, - ) - .await - .expect("Could not connect to neovim process"); - - nvim.ui_attach(100, 100, &UiAttachOptions::default()) - .await - .expect("Could not attach to ui"); - - // Makes system act a little more like zed in terms of indentation - nvim.set_option("smartindent", nvim_rs::Value::Boolean(true)) - .await - .expect("Could not set smartindent on startup"); - - (nvim, join_handle, child) - }) - .await; - - Self { - #[cfg(feature = "neovim")] - data: Default::default(), - #[cfg(not(feature = "neovim"))] - data: Self::read_test_data(&test_case_id), - #[cfg(feature = "neovim")] - test_case_id, - #[cfg(feature = "neovim")] - nvim, - #[cfg(feature = "neovim")] - _join_handle: join_handle, - #[cfg(feature = "neovim")] - _child: child, - } - } - - #[cfg(feature = "neovim")] - pub async fn text(&mut self) -> String { - let nvim_buffer = self - .nvim - .get_current_buf() - .await - .expect("Could not get neovim buffer"); - let text = nvim_buffer - .get_lines(0, -1, false) - .await - .expect("Could not get buffer text") - .join("\n"); - - self.data.push_back(NeovimData::Text(text.clone())); - - text - } - - #[cfg(not(feature = "neovim"))] - pub async fn text(&mut self) -> String { - if let Some(NeovimData::Text(text)) = self.data.pop_front() { - text - } else { - panic!("Invalid test data. Is test deterministic? Try running with '--features neovim' to regenerate"); - } - } - - #[cfg(feature = "neovim")] - pub async fn selection(&mut self) -> Range { - let (start, end) = if let Some(Mode::Visual { .. }) = self.mode().await { - self.nvim - .input("") - .await - .expect("Could not exit visual mode"); - let nvim_buffer = self - .nvim - .get_current_buf() - .await - .expect("Could not get neovim buffer"); - let (start_row, start_col) = nvim_buffer - .get_mark("<") - .await - .expect("Could not get selection start"); - let (end_row, end_col) = nvim_buffer - .get_mark(">") - .await - .expect("Could not get selection end"); - self.nvim - .input("gv") - .await - .expect("Could not reselect visual selection"); - - ( - (start_row as u32 - 1, start_col as u32), - (end_row as u32 - 1, end_col as u32), - ) - } else { - let nvim_row: u32 = self - .nvim - .command_output("echo line('.')") - .await - .unwrap() - .parse::() - .unwrap() - - 1; // Neovim rows start at 1 - let nvim_column: u32 = self - .nvim - .command_output("echo col('.')") - .await - .unwrap() - .parse::() - .unwrap() - - 1; // Neovim columns start at 1 - - ((nvim_row, nvim_column), (nvim_row, nvim_column)) - }; - - self.data.push_back(NeovimData::Selection { start, end }); - - DisplayPoint::new(start.0, start.1)..DisplayPoint::new(end.0, end.1) - } - - #[cfg(not(feature = "neovim"))] - pub async fn selection(&mut self) -> Range { - if let Some(NeovimData::Selection { start, end }) = self.data.pop_front() { - DisplayPoint::new(start.0, start.1)..DisplayPoint::new(end.0, end.1) - } else { - panic!("Invalid test data. Is test deterministic? Try running with '--features neovim' to regenerate"); - } - } - - #[cfg(feature = "neovim")] - pub async fn mode(&mut self) -> Option { - let nvim_mode_text = self - .nvim - .get_mode() - .await - .expect("Could not get mode") - .into_iter() - .find_map(|(key, value)| { - if key.as_str() == Some("mode") { - Some(value.as_str().unwrap().to_owned()) - } else { - None - } - }) - .expect("Could not find mode value"); - - let mode = match nvim_mode_text.as_ref() { - "i" => Some(Mode::Insert), - "n" => Some(Mode::Normal), - "v" => Some(Mode::Visual { line: false }), - "V" => Some(Mode::Visual { line: true }), - _ => None, - }; - - self.data.push_back(NeovimData::Mode(mode.clone())); - - mode - } - - #[cfg(not(feature = "neovim"))] - pub async fn mode(&mut self) -> Option { - if let Some(NeovimData::Mode(mode)) = self.data.pop_front() { - mode - } else { - panic!("Invalid test data. Is test deterministic? Try running with '--features neovim' to regenerate"); - } - } - - fn test_data_path(test_case_id: &str) -> PathBuf { - let mut data_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - data_path.push("test_data"); - data_path.push(format!("{}.json", test_case_id)); - data_path - } - - #[cfg(not(feature = "neovim"))] - fn read_test_data(test_case_id: &str) -> VecDeque { - let path = Self::test_data_path(test_case_id); - let json = std::fs::read_to_string(path).expect( - "Could not read test data. Is it generated? Try running test with '--features neovim'", - ); - - serde_json::from_str(&json) - .expect("Test data corrupted. Try regenerating it with '--features neovim'") - } -} - -#[cfg(feature = "neovim")] -impl Deref for NeovimConnection { - type Target = Neovim>; - - fn deref(&self) -> &Self::Target { - &self.nvim - } -} - -#[cfg(feature = "neovim")] -impl DerefMut for NeovimConnection { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.nvim - } -} - -#[cfg(feature = "neovim")] -impl Drop for NeovimConnection { - fn drop(&mut self) { - let path = Self::test_data_path(&self.test_case_id); - std::fs::create_dir_all(path.parent().unwrap()) - .expect("Could not create test data directory"); - let json = serde_json::to_string(&self.data).expect("Could not serialize test data"); - std::fs::write(path, json).expect("Could not write out test data"); - } -} - -#[cfg(feature = "neovim")] -#[derive(Clone)] -struct NvimHandler {} - -#[cfg(feature = "neovim")] -#[async_trait] -impl Handler for NvimHandler { - type Writer = nvim_rs::compat::tokio::Compat; - - async fn handle_request( - &self, - _event_name: String, - _arguments: Vec, - _neovim: Neovim, - ) -> Result { - unimplemented!(); - } - - async fn handle_notify( - &self, - _event_name: String, - _arguments: Vec, - _neovim: Neovim, - ) { - } -} - -#[cfg(test)] -mod test { - use gpui::TestAppContext; - - use crate::test_contexts::NeovimBackedTestContext; - - #[gpui::test] - async fn neovim_backed_test_context_works(cx: &mut TestAppContext) { - let mut cx = NeovimBackedTestContext::new(cx).await; - cx.assert_state_matches().await; - cx.set_shared_state("This is a tesˇt").await; - cx.assert_state_matches().await; - } -} diff --git a/crates/vim/src/vim.rs b/crates/vim/src/vim.rs index 5c9f23b41f..81bafcf3e2 100644 --- a/crates/vim/src/vim.rs +++ b/crates/vim/src/vim.rs @@ -1,5 +1,5 @@ #[cfg(test)] -mod test_contexts; +mod test; mod editor_events; mod insert; @@ -231,101 +231,3 @@ impl Vim { } } } - -#[cfg(test)] -mod test { - use indoc::indoc; - use search::BufferSearchBar; - - use crate::{ - state::Mode, - test_contexts::{NeovimBackedTestContext, VimTestContext}, - }; - - #[gpui::test] - async fn test_initially_disabled(cx: &mut gpui::TestAppContext) { - let mut cx = VimTestContext::new(cx, false).await; - cx.simulate_keystrokes(["h", "j", "k", "l"]); - cx.assert_editor_state("hjklˇ"); - } - - #[gpui::test] - async fn test_neovim(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new(cx).await; - - cx.simulate_shared_keystroke("i").await; - cx.simulate_shared_keystrokes([ - "shift-T", "e", "s", "t", " ", "t", "e", "s", "t", "escape", "0", "d", "w", - ]) - .await; - cx.assert_state_matches().await; - cx.assert_editor_state("ˇtest"); - } - - #[gpui::test] - async fn test_toggle_through_settings(cx: &mut gpui::TestAppContext) { - let mut cx = VimTestContext::new(cx, true).await; - - cx.simulate_keystroke("i"); - assert_eq!(cx.mode(), Mode::Insert); - - // Editor acts as though vim is disabled - cx.disable_vim(); - cx.simulate_keystrokes(["h", "j", "k", "l"]); - cx.assert_editor_state("hjklˇ"); - - // Selections aren't changed if editor is blurred but vim-mode is still disabled. - cx.set_state("«hjklˇ»", Mode::Normal); - cx.assert_editor_state("«hjklˇ»"); - cx.update_editor(|_, cx| cx.blur()); - cx.assert_editor_state("«hjklˇ»"); - cx.update_editor(|_, cx| cx.focus_self()); - cx.assert_editor_state("«hjklˇ»"); - - // Enabling dynamically sets vim mode again and restores normal mode - cx.enable_vim(); - assert_eq!(cx.mode(), Mode::Normal); - cx.simulate_keystrokes(["h", "h", "h", "l"]); - assert_eq!(cx.buffer_text(), "hjkl".to_owned()); - cx.assert_editor_state("hˇjkl"); - cx.simulate_keystrokes(["i", "T", "e", "s", "t"]); - cx.assert_editor_state("hTestˇjkl"); - - // Disabling and enabling resets to normal mode - assert_eq!(cx.mode(), Mode::Insert); - cx.disable_vim(); - cx.enable_vim(); - assert_eq!(cx.mode(), Mode::Normal); - } - - #[gpui::test] - async fn test_buffer_search(cx: &mut gpui::TestAppContext) { - let mut cx = VimTestContext::new(cx, true).await; - - cx.set_state( - indoc! {" - The quick brown - fox juˇmps over - the lazy dog"}, - Mode::Normal, - ); - cx.simulate_keystroke("/"); - - // We now use a weird insert mode with selection when jumping to a single line editor - assert_eq!(cx.mode(), Mode::Insert); - - let search_bar = cx.workspace(|workspace, cx| { - workspace - .active_pane() - .read(cx) - .toolbar() - .read(cx) - .item_of_type::() - .expect("Buffer search bar should be deployed") - }); - - search_bar.read_with(cx.cx, |bar, cx| { - assert_eq!(bar.query_editor.read(cx).text(cx), "jumps"); - }) - } -} diff --git a/crates/vim/src/visual.rs b/crates/vim/src/visual.rs index eb222346ce..63d914d570 100644 --- a/crates/vim/src/visual.rs +++ b/crates/vim/src/visual.rs @@ -282,7 +282,7 @@ mod test { use crate::{ state::Mode, - test_contexts::{NeovimBackedTestContext, VimTestContext}, + test::{NeovimBackedTestContext, VimTestContext}, }; #[gpui::test] @@ -305,20 +305,23 @@ mod test { #[gpui::test] async fn test_visual_delete(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new(cx) - .await - .binding(["v", "w", "x"]); - cx.assert("The quick ˇbrown").await; - let mut cx = cx.binding(["v", "w", "j", "x"]); - cx.assert(indoc! {" + let mut cx = NeovimBackedTestContext::new(cx).await; + + cx.assert_binding_matches(["v", "w", "x"], "The quick ˇbrown") + .await; + cx.assert_binding_matches( + ["v", "w", "j", "x"], + indoc! {" The ˇquick brown fox jumps over - the lazy dog"}) - .await; + the lazy dog"}, + ) + .await; // Test pasting code copied on delete cx.simulate_shared_keystrokes(["j", "p"]).await; cx.assert_state_matches().await; + let mut cx = cx.binding(["v", "w", "j", "x"]); cx.assert_all(indoc! {" The ˇquick brown fox jumps over @@ -370,147 +373,58 @@ mod test { #[gpui::test] async fn test_visual_change(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["v", "w", "c"]).mode_after(Mode::Insert); - cx.assert("The quick ˇbrown", "The quick ˇ"); - let mut cx = cx.binding(["v", "w", "j", "c"]).mode_after(Mode::Insert); - cx.assert( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx) + .await + .binding(["v", "w", "c"]); + cx.assert("The quick ˇbrown").await; + let mut cx = cx.binding(["v", "w", "j", "c"]); + cx.assert_all(indoc! {" The ˇquick brown - fox jumps over - the lazy dog"}, - indoc! {" - The ˇver - the lazy dog"}, - ); - cx.assert( - indoc! {" - The quick brown - fox jumps over - the ˇlazy dog"}, - indoc! {" - The quick brown - fox jumps over - the ˇog"}, - ); - cx.assert( - indoc! {" - The quick brown fox jumps ˇover - the lazy dog"}, - indoc! {" - The quick brown - fox jumps ˇhe lazy dog"}, - ); - let mut cx = cx.binding(["v", "b", "k", "c"]).mode_after(Mode::Insert); - cx.assert( - indoc! {" + the ˇlazy dog"}) + .await; + let mut cx = cx.binding(["v", "b", "k", "c"]); + cx.assert_all(indoc! {" The ˇquick brown - fox jumps over - the lazy dog"}, - indoc! {" - ˇuick brown - fox jumps over - the lazy dog"}, - ); - cx.assert( - indoc! {" - The quick brown - fox jumps over - the ˇlazy dog"}, - indoc! {" - The quick brown - ˇazy dog"}, - ); - cx.assert( - indoc! {" - The quick brown fox jumps ˇover - the lazy dog"}, - indoc! {" - The ˇver - the lazy dog"}, - ); + the ˇlazy dog"}) + .await; } #[gpui::test] async fn test_visual_line_change(cx: &mut gpui::TestAppContext) { - let cx = VimTestContext::new(cx, true).await; - let mut cx = cx.binding(["shift-v", "c"]).mode_after(Mode::Insert); - cx.assert( - indoc! {" + let mut cx = NeovimBackedTestContext::new(cx) + .await + .binding(["shift-v", "c"]); + cx.assert(indoc! {" The quˇick brown fox jumps over - the lazy dog"}, - indoc! {" - ˇ - fox jumps over - the lazy dog"}, - ); + the lazy dog"}) + .await; // Test pasting code copied on change - cx.simulate_keystrokes(["escape", "j", "p"]); - cx.assert_editor_state(indoc! {" - - fox jumps over - ˇThe quick brown - the lazy dog"}); + cx.simulate_shared_keystrokes(["escape", "j", "p"]).await; + cx.assert_state_matches().await; - cx.assert( - indoc! {" + cx.assert_all(indoc! {" The quick brown fox juˇmps over - the lazy dog"}, - indoc! {" - The quick brown - ˇ - the lazy dog"}, - ); - cx.assert( - indoc! {" - The quick brown - fox jumps over - the laˇzy dog"}, - indoc! {" - The quick brown - fox jumps over - ˇ"}, - ); - let mut cx = cx.binding(["shift-v", "j", "c"]).mode_after(Mode::Insert); - cx.assert( - indoc! {" + the laˇzy dog"}) + .await; + let mut cx = cx.binding(["shift-v", "j", "c"]); + cx.assert(indoc! {" The quˇick brown fox jumps over - the lazy dog"}, - indoc! {" - ˇ - the lazy dog"}, - ); + the lazy dog"}) + .await; // Test pasting code copied on delete - cx.simulate_keystrokes(["escape", "j", "p"]); - cx.assert_editor_state(indoc! {" - - the lazy dog - ˇThe quick brown - fox jumps over"}); - cx.assert( - indoc! {" + cx.simulate_shared_keystrokes(["escape", "j", "p"]).await; + cx.assert_state_matches().await; + + cx.assert_all(indoc! {" The quick brown fox juˇmps over - the lazy dog"}, - indoc! {" - The quick brown - ˇ"}, - ); - cx.assert( - indoc! {" - The quick brown - fox jumps over - the laˇzy dog"}, - indoc! {" - The quick brown - fox jumps over - ˇ"}, - ); + the laˇzy dog"}) + .await; } #[gpui::test] @@ -619,7 +533,7 @@ mod test { cx.assert_state( indoc! {" The quick brown - fox jumpsˇjumps over + fox jumpsjumpˇs over the lazy dog"}, Mode::Normal, ); diff --git a/crates/vim/test_data/test_b.json b/crates/vim/test_data/test_b.json new file mode 100644 index 0000000000..635edf536b --- /dev/null +++ b/crates/vim/test_data/test_b.json @@ -0,0 +1 @@ +[{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,10],"end":[3,10]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick-brown\n\n\nfox_jumps over\nthe"},{"Mode":"Normal"},{"Selection":{"start":[3,10],"end":[3,10]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_cc.json b/crates/vim/test_data/test_cc.json new file mode 100644 index 0000000000..67492d827e --- /dev/null +++ b/crates/vim/test_data/test_cc.json @@ -0,0 +1 @@ +[{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nbrown fox\njumps over"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick\n\njumps over"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick\nbrown fox\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick\n\nbrown fox"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_dd.json b/crates/vim/test_data/test_dd.json new file mode 100644 index 0000000000..fa86b9d3b5 --- /dev/null +++ b/crates/vim/test_data/test_dd.json @@ -0,0 +1 @@ +[{"Text":""},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":""},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"brown fox\njumps over"},{"Mode":"Normal"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Normal"},{"Text":"The quick\njumps over"},{"Mode":"Normal"},{"Selection":{"start":[1,6],"end":[1,6]}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox"},{"Mode":"Normal"},{"Selection":{"start":[1,6],"end":[1,6]}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_left.json b/crates/vim/test_data/test_delete_left.json new file mode 100644 index 0000000000..06e24f34f7 --- /dev/null +++ b/crates/vim/test_data/test_delete_left.json @@ -0,0 +1 @@ +[{"Text":"Test"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"est"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Tst"},{"Mode":"Normal"},{"Selection":{"start":[0,1],"end":[0,1]}},{"Mode":"Normal"},{"Text":"Tet"},{"Mode":"Normal"},{"Selection":{"start":[0,2],"end":[0,2]}},{"Mode":"Normal"},{"Text":"Test\ntest"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_to_end_of_line.json b/crates/vim/test_data/test_delete_to_end_of_line.json new file mode 100644 index 0000000000..591dac4200 --- /dev/null +++ b/crates/vim/test_data/test_delete_to_end_of_line.json @@ -0,0 +1 @@ +[{"Text":"The q\nbrown fox"},{"Mode":"Normal"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Normal"},{"Text":"The quick\n\nbrown fox"},{"Mode":"Normal"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_enter_visual_mode.json b/crates/vim/test_data/test_enter_visual_mode.json index 43d1e0559a..b13aa23589 100644 --- a/crates/vim/test_data/test_enter_visual_mode.json +++ b/crates/vim/test_data/test_enter_visual_mode.json @@ -1 +1 @@ -[{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,4],"end":[1,10]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,10],"end":[2,0]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[2,4],"end":[2,9]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[0,4]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,4],"end":[1,10]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,0],"end":[2,4]}},{"Mode":{"Visual":{"line":false}}}] \ No newline at end of file +[{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,4],"end":[1,10]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,10],"end":[2,0]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[2,4],"end":[2,9]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,4],"end":[0,0]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,10],"end":[0,4]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown\nfox jumps over\nthe lazy dog"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[2,4],"end":[1,0]}},{"Mode":{"Visual":{"line":false}}}] \ No newline at end of file diff --git a/crates/vim/test_data/test_insert_first_non_whitespace.json b/crates/vim/test_data/test_insert_first_non_whitespace.json new file mode 100644 index 0000000000..b64ea3c808 --- /dev/null +++ b/crates/vim/test_data/test_insert_first_non_whitespace.json @@ -0,0 +1 @@ +[{"Text":"The quick"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick"},{"Mode":"Insert"},{"Selection":{"start":[0,1],"end":[0,1]}},{"Mode":"Insert"},{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick\nbrown fox"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nThe quick"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_jump_to_first_non_whitespace.json b/crates/vim/test_data/test_jump_to_first_non_whitespace.json new file mode 100644 index 0000000000..123b752860 --- /dev/null +++ b/crates/vim/test_data/test_jump_to_first_non_whitespace.json @@ -0,0 +1 @@ +[{"Text":"The quick"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick"},{"Mode":"Normal"},{"Selection":{"start":[0,1],"end":[0,1]}},{"Mode":"Normal"},{"Text":""},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick\nbrown fox"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"\nThe quick"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" \nThe quick"},{"Mode":"Normal"},{"Selection":{"start":[0,3],"end":[0,3]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_o.json b/crates/vim/test_data/test_o.json new file mode 100644 index 0000000000..08bea7cae8 --- /dev/null +++ b/crates/vim/test_data/test_o.json @@ -0,0 +1 @@ +[{"Text":"\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick\n\nbrown fox\njumps over"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick\nbrown fox\n\njumps over"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"The quick\nbrown fox\njumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick\n\n\nbrown fox"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"fn test() {\n println!();\n \n}\n"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"fn test() {\n\n println!();\n}"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_p.json b/crates/vim/test_data/test_p.json new file mode 100644 index 0000000000..2cf45ea2f7 --- /dev/null +++ b/crates/vim/test_data/test_p.json @@ -0,0 +1 @@ +[{"Text":"The quick brown\nthe lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[1,6],"end":[1,6]}},{"Mode":"Normal"},{"Text":"The quick brown\nthe lazy dog\nfox jumps over"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps overjumps o\nthe lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[1,20],"end":[1,20]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_visual_change.json b/crates/vim/test_data/test_visual_change.json new file mode 100644 index 0000000000..c7f6df4445 --- /dev/null +++ b/crates/vim/test_data/test_visual_change.json @@ -0,0 +1 @@ +[{"Text":"The quick "},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The ver\nthe lazy dog"},{"Mode":"Insert"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps he lazy dog"},{"Mode":"Insert"},{"Selection":{"start":[1,10],"end":[1,10]}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\nthe og"},{"Mode":"Insert"},{"Selection":{"start":[2,4],"end":[2,4]}},{"Mode":"Insert"},{"Text":"uick brown\nfox jumps over\nthe lazy dog"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The ver\nthe lazy dog"},{"Mode":"Insert"},{"Selection":{"start":[0,4],"end":[0,4]}},{"Mode":"Insert"},{"Text":"The quick brown\nazy dog"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_visual_line_change.json b/crates/vim/test_data/test_visual_line_change.json new file mode 100644 index 0000000000..8c00d1bb1f --- /dev/null +++ b/crates/vim/test_data/test_visual_line_change.json @@ -0,0 +1 @@ +[{"Text":"\nfox jumps over\nthe lazy dog"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nfox jumps over\nThe quick brown\nthe lazy dog"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n\nthe lazy dog"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"},{"Text":"\nthe lazy dog"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"\nthe lazy dog\nThe quick brown\nfox jumps over"},{"Mode":"Normal"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Normal"},{"Text":"The quick brown\n"},{"Mode":"Insert"},{"Selection":{"start":[1,0],"end":[1,0]}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[2,0],"end":[2,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_x.json b/crates/vim/test_data/test_x.json new file mode 100644 index 0000000000..ca85e2842b --- /dev/null +++ b/crates/vim/test_data/test_x.json @@ -0,0 +1 @@ +[{"Text":"est"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Tet"},{"Mode":"Normal"},{"Selection":{"start":[0,2],"end":[0,2]}},{"Mode":"Normal"},{"Text":"Tes"},{"Mode":"Normal"},{"Selection":{"start":[0,2],"end":[0,2]}},{"Mode":"Normal"},{"Text":"Tes\ntest"},{"Mode":"Normal"},{"Selection":{"start":[0,2],"end":[0,2]}},{"Mode":"Normal"}] \ No newline at end of file From 6a237deb213355a9ff10cca37064bfa87ce91c01 Mon Sep 17 00:00:00 2001 From: K Simmons Date: Mon, 10 Oct 2022 15:32:12 -0700 Subject: [PATCH 06/24] Add some tests for portions of visual text objects. Note: they are slightly broken currently as described in the tests --- crates/vim/src/object.rs | 118 ++++++++++-------- crates/vim/src/test.rs | 1 + crates/vim/src/visual.rs | 37 +++++- .../test_change_around_sentence.json | 1 - .../test_data/test_change_around_word.json | 1 - ....json => test_change_sentence_object.json} | 2 +- ...word.json => test_change_word_object.json} | 2 +- .../test_delete_around_sentence.json | 1 - .../test_data/test_delete_around_word.json | 1 - ....json => test_delete_sentence_object.json} | 2 +- ...word.json => test_delete_word_object.json} | 2 +- crates/vim/test_data/test_neovim.json | 2 +- .../test_visual_sentence_object.json | 1 + .../test_data/test_visual_word_object.json | 1 + 14 files changed, 111 insertions(+), 61 deletions(-) delete mode 100644 crates/vim/test_data/test_change_around_sentence.json delete mode 100644 crates/vim/test_data/test_change_around_word.json rename crates/vim/test_data/{test_change_in_sentence.json => test_change_sentence_object.json} (51%) rename crates/vim/test_data/{test_change_in_word.json => test_change_word_object.json} (50%) delete mode 100644 crates/vim/test_data/test_delete_around_sentence.json delete mode 100644 crates/vim/test_data/test_delete_around_word.json rename crates/vim/test_data/{test_delete_in_sentence.json => test_delete_sentence_object.json} (51%) rename crates/vim/test_data/{test_delete_in_word.json => test_delete_word_object.json} (50%) create mode 100644 crates/vim/test_data/test_visual_sentence_object.json create mode 100644 crates/vim/test_data/test_visual_word_object.json diff --git a/crates/vim/src/object.rs b/crates/vim/src/object.rs index a0f9b4a6da..5adc8397fa 100644 --- a/crates/vim/src/object.rs +++ b/crates/vim/src/object.rs @@ -44,7 +44,7 @@ fn object(object: Object, cx: &mut MutableAppContext) { } impl Object { - pub fn object_range( + pub fn range( self, map: &DisplaySnapshot, relative_to: DisplayPoint, @@ -68,7 +68,7 @@ impl Object { selection: &mut Selection, around: bool, ) { - let range = self.object_range(map, selection.head(), around); + let range = self.range(map, selection.head(), around); selection.start = range.start; selection.end = range.end; } @@ -328,43 +328,58 @@ mod test { "}; #[gpui::test] - async fn test_change_in_word(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new(cx) - .await - .binding(["c", "i", "w"]); - cx.assert_all(WORD_LOCATIONS).await; - let mut cx = cx.consume().binding(["c", "i", "shift-w"]); - cx.assert_all(WORD_LOCATIONS).await; + async fn test_change_word_object(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + + cx.assert_binding_matches_all(["c", "i", "w"], WORD_LOCATIONS) + .await; + cx.assert_binding_matches_all(["c", "i", "shift-w"], WORD_LOCATIONS) + .await; + cx.assert_binding_matches_all(["c", "a", "w"], WORD_LOCATIONS) + .await; + cx.assert_binding_matches_all(["c", "a", "shift-w"], WORD_LOCATIONS) + .await; } #[gpui::test] - async fn test_delete_in_word(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new(cx) - .await - .binding(["d", "i", "w"]); - cx.assert_all(WORD_LOCATIONS).await; - let mut cx = cx.consume().binding(["d", "i", "shift-w"]); - cx.assert_all(WORD_LOCATIONS).await; + async fn test_delete_word_object(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + + cx.assert_binding_matches_all(["d", "i", "w"], WORD_LOCATIONS) + .await; + cx.assert_binding_matches_all(["d", "i", "shift-w"], WORD_LOCATIONS) + .await; + cx.assert_binding_matches_all(["d", "a", "w"], WORD_LOCATIONS) + .await; + cx.assert_binding_matches_all(["d", "a", "shift-w"], WORD_LOCATIONS) + .await; } #[gpui::test] - async fn test_change_around_word(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new(cx) - .await - .binding(["c", "a", "w"]); - cx.assert_all(WORD_LOCATIONS).await; - let mut cx = cx.consume().binding(["c", "a", "shift-w"]); - cx.assert_all(WORD_LOCATIONS).await; - } + async fn test_visual_word_object(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; - #[gpui::test] - async fn test_delete_around_word(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new(cx) - .await - .binding(["d", "a", "w"]); - cx.assert_all(WORD_LOCATIONS).await; - let mut cx = cx.consume().binding(["d", "a", "shift-w"]); - cx.assert_all(WORD_LOCATIONS).await; + cx.assert_binding_matches_all(["v", "i", "w"], WORD_LOCATIONS) + .await; + // Visual text objects are slightly broken when used with non empty selections + // cx.assert_binding_matches_all(["v", "h", "i", "w"], WORD_LOCATIONS) + // .await; + // cx.assert_binding_matches_all(["v", "l", "i", "w"], WORD_LOCATIONS) + // .await; + cx.assert_binding_matches_all(["v", "i", "shift-w"], WORD_LOCATIONS) + .await; + + // Visual text objects are slightly broken when used with non empty selections + // cx.assert_binding_matches_all(["v", "i", "h", "shift-w"], WORD_LOCATIONS) + // .await; + // cx.assert_binding_matches_all(["v", "i", "l", "shift-w"], WORD_LOCATIONS) + // .await; + + // Visual around words is somewhat broken right now when it comes to newlines + // cx.assert_binding_matches_all(["v", "a", "w"], WORD_LOCATIONS) + // .await; + // cx.assert_binding_matches_all(["v", "a", "shift-w"], WORD_LOCATIONS) + // .await; } const SENTENCE_EXAMPLES: &[&'static str] = &[ @@ -390,32 +405,35 @@ mod test { ]; #[gpui::test] - async fn test_change_in_sentence(cx: &mut gpui::TestAppContext) { + async fn test_change_sentence_object(cx: &mut gpui::TestAppContext) { let mut cx = NeovimBackedTestContext::new(cx) .await .binding(["c", "i", "s"]); for sentence_example in SENTENCE_EXAMPLES { cx.assert_all(sentence_example).await; } + + let mut cx = cx.binding(["c", "a", "s"]); + // Resulting position is slightly incorrect for unintuitive reasons. + cx.add_initial_state_exemption("The quick brown?ˇ Fox Jumps! Over the lazy."); + // Changing around the sentence at the end of the line doesn't remove whitespace.' + cx.add_initial_state_exemption("The quick brown.)]\'\" Brown fox jumps.ˇ "); + + for sentence_example in SENTENCE_EXAMPLES { + cx.assert_all(sentence_example).await; + } } #[gpui::test] - async fn test_delete_in_sentence(cx: &mut gpui::TestAppContext) { + async fn test_delete_sentence_object(cx: &mut gpui::TestAppContext) { let mut cx = NeovimBackedTestContext::new(cx) .await .binding(["d", "i", "s"]); - for sentence_example in SENTENCE_EXAMPLES { cx.assert_all(sentence_example).await; } - } - - #[gpui::test] - async fn test_change_around_sentence(cx: &mut gpui::TestAppContext) { - let mut cx = NeovimBackedTestContext::new(cx) - .await - .binding(["c", "a", "s"]); + let mut cx = cx.binding(["d", "a", "s"]); // Resulting position is slightly incorrect for unintuitive reasons. cx.add_initial_state_exemption("The quick brown?ˇ Fox Jumps! Over the lazy."); // Changing around the sentence at the end of the line doesn't remove whitespace.' @@ -427,18 +445,18 @@ mod test { } #[gpui::test] - async fn test_delete_around_sentence(cx: &mut gpui::TestAppContext) { + async fn test_visual_sentence_object(cx: &mut gpui::TestAppContext) { let mut cx = NeovimBackedTestContext::new(cx) .await - .binding(["d", "a", "s"]); - - // Resulting position is slightly incorrect for unintuitive reasons. - cx.add_initial_state_exemption("The quick brown?ˇ Fox Jumps! Over the lazy."); - // Changing around the sentence at the end of the line doesn't remove whitespace.' - cx.add_initial_state_exemption("The quick brown.)]\'\" Brown fox jumps.ˇ "); - + .binding(["v", "i", "s"]); for sentence_example in SENTENCE_EXAMPLES { cx.assert_all(sentence_example).await; } + + // Visual around sentences is somewhat broken right now when it comes to newlines + // let mut cx = cx.binding(["d", "a", "s"]); + // for sentence_example in SENTENCE_EXAMPLES { + // cx.assert_all(sentence_example).await; + // } } } diff --git a/crates/vim/src/test.rs b/crates/vim/src/test.rs index 63bb7996bf..e320962cfa 100644 --- a/crates/vim/src/test.rs +++ b/crates/vim/src/test.rs @@ -26,6 +26,7 @@ async fn test_neovim(cx: &mut gpui::TestAppContext) { let mut cx = NeovimBackedTestContext::new(cx).await; cx.simulate_shared_keystroke("i").await; + cx.assert_state_matches().await; cx.simulate_shared_keystrokes([ "shift-T", "e", "s", "t", " ", "t", "e", "s", "t", "escape", "0", "d", "w", ]) diff --git a/crates/vim/src/visual.rs b/crates/vim/src/visual.rs index 63d914d570..4fa195a2fa 100644 --- a/crates/vim/src/visual.rs +++ b/crates/vim/src/visual.rs @@ -6,7 +6,13 @@ use gpui::{actions, MutableAppContext, ViewContext}; use language::{AutoindentMode, SelectionGoal}; use workspace::Workspace; -use crate::{motion::Motion, object::Object, state::Mode, utils::copy_selections_content, Vim}; +use crate::{ + motion::Motion, + object::Object, + state::{Mode, Operator}, + utils::copy_selections_content, + Vim, +}; actions!(vim, [VisualDelete, VisualChange, VisualYank, VisualPaste]); @@ -47,7 +53,34 @@ pub fn visual_motion(motion: Motion, times: usize, cx: &mut MutableAppContext) { }); } -pub fn visual_object(_object: Object, _cx: &mut MutableAppContext) {} +pub fn visual_object(object: Object, cx: &mut MutableAppContext) { + Vim::update(cx, |vim, cx| { + if let Operator::Object { around } = vim.pop_operator(cx) { + vim.update_active_editor(cx, |editor, cx| { + editor.change_selections(Some(Autoscroll::Fit), cx, |s| { + s.move_with(|map, selection| { + let head = selection.head(); + let mut range = object.range(map, head, around); + if !range.is_empty() { + if let Some((_, end)) = map.reverse_chars_at(range.end).next() { + range.end = end; + } + + if selection.is_empty() { + selection.start = range.start; + selection.end = range.end; + } else if selection.reversed { + selection.start = range.start; + } else { + selection.end = range.end; + } + } + }) + }); + }); + } + }); +} pub fn change(_: &mut Workspace, _: &VisualChange, cx: &mut ViewContext) { Vim::update(cx, |vim, cx| { diff --git a/crates/vim/test_data/test_change_around_sentence.json b/crates/vim/test_data/test_change_around_sentence.json deleted file mode 100644 index 187e766f11..0000000000 --- a/crates/vim/test_data/test_change_around_sentence.json +++ /dev/null @@ -1 +0,0 @@ -[{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_around_word.json b/crates/vim/test_data/test_change_around_word.json deleted file mode 100644 index 3463c5c6d6..0000000000 --- a/crates/vim/test_data/test_change_around_word.json +++ /dev/null @@ -1 +0,0 @@ -[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_sentence.json b/crates/vim/test_data/test_change_sentence_object.json similarity index 51% rename from crates/vim/test_data/test_change_in_sentence.json rename to crates/vim/test_data/test_change_sentence_object.json index 5058d5b569..7827bc8a28 100644 --- a/crates/vim/test_data/test_change_in_sentence.json +++ b/crates/vim/test_data/test_change_sentence_object.json @@ -1 +1 @@ -[{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown?Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,16],"end":[0,16]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Insert"},{"Selection":{"start":[0,28],"end":[0,28]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Insert"},{"Selection":{"start":[0,28],"end":[0,28]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Insert"},{"Selection":{"start":[0,28],"end":[0,28]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Insert"},{"Selection":{"start":[2,14],"end":[2,14]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Insert"},{"Selection":{"start":[2,14],"end":[2,14]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" Brown fox jumps."},{"Mode":"Insert"},{"Selection":{"start":[0,37],"end":[0,37]}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown?Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,16],"end":[0,16]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Insert"},{"Selection":{"start":[0,28],"end":[0,28]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Insert"},{"Selection":{"start":[0,28],"end":[0,28]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Insert"},{"Selection":{"start":[0,28],"end":[0,28]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Insert"},{"Selection":{"start":[2,14],"end":[2,14]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Insert"},{"Selection":{"start":[2,14],"end":[2,14]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":" Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" Brown fox jumps."},{"Mode":"Insert"},{"Selection":{"start":[0,37],"end":[0,37]}},{"Mode":"Insert"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Insert"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Insert"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Insert"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"Brown fox jumps. "},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"},{"Text":"The quick brown.)]'\" "},{"Mode":"Insert"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_change_in_word.json b/crates/vim/test_data/test_change_word_object.json similarity index 50% rename from crates/vim/test_data/test_change_in_word.json rename to crates/vim/test_data/test_change_word_object.json index ef65a09291..e96efcaa7c 100644 --- a/crates/vim/test_data/test_change_in_word.json +++ b/crates/vim/test_data/test_change_word_object.json @@ -1 +1 @@ -[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox- over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"}] \ No newline at end of file +[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox- over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Insert"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Insert"},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":"Insert"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n"},{"Mode":"Insert"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Insert"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_sentence.json b/crates/vim/test_data/test_delete_around_sentence.json deleted file mode 100644 index b18c6ffa76..0000000000 --- a/crates/vim/test_data/test_delete_around_sentence.json +++ /dev/null @@ -1 +0,0 @@ -[{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,20],"end":[0,20]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,20],"end":[0,20]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_around_word.json b/crates/vim/test_data/test_delete_around_word.json deleted file mode 100644 index aec3fdd39a..0000000000 --- a/crates/vim/test_data/test_delete_around_word.json +++ /dev/null @@ -1 +0,0 @@ -[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,8],"end":[1,8]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog "},{"Mode":"Normal"},{"Selection":{"start":[10,0],"end":[10,0]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,8],"end":[1,8]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog "},{"Mode":"Normal"},{"Selection":{"start":[10,0],"end":[10,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_sentence.json b/crates/vim/test_data/test_delete_sentence_object.json similarity index 51% rename from crates/vim/test_data/test_delete_in_sentence.json rename to crates/vim/test_data/test_delete_sentence_object.json index 31891d19cb..1dfae9eca4 100644 --- a/crates/vim/test_data/test_delete_in_sentence.json +++ b/crates/vim/test_data/test_delete_sentence_object.json @@ -1 +1 @@ -[{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown?Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,16],"end":[0,16]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" Brown fox jumps."},{"Mode":"Normal"},{"Selection":{"start":[0,36],"end":[0,36]}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown?Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,16],"end":[0,16]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps! "},{"Mode":"Normal"},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. \n"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":" Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,21],"end":[0,21]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" Brown fox jumps."},{"Mode":"Normal"},{"Selection":{"start":[0,36],"end":[0,36]}},{"Mode":"Normal"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Fox Jumps! Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Over the lazy."},{"Mode":"Normal"},{"Selection":{"start":[0,17],"end":[0,17]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick brown? Fox Jumps!"},{"Mode":"Normal"},{"Selection":{"start":[0,26],"end":[0,26]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick \nbrown fox jumps over\n"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog.\n"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Brown fox jumps. "},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,20],"end":[0,20]}},{"Mode":"Normal"},{"Text":"The quick brown.)]'\" "},{"Mode":"Normal"},{"Selection":{"start":[0,20],"end":[0,20]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_delete_in_word.json b/crates/vim/test_data/test_delete_word_object.json similarity index 50% rename from crates/vim/test_data/test_delete_in_word.json rename to crates/vim/test_data/test_delete_word_object.json index c15c6ce208..7cd6ffbafc 100644 --- a/crates/vim/test_data/test_delete_in_word.json +++ b/crates/vim/test_data/test_delete_word_object.json @@ -1 +1 @@ -[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,14],"end":[6,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox- over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,14],"end":[6,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe- brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,14],"end":[6,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox- over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Normal"},{"Text":"The quick brown\nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,14],"end":[0,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumpsover\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quickbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,10],"end":[6,10]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown\n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,14],"end":[6,14]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n\n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n\n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \nfox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,8],"end":[1,8]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\n-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThequick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,4],"end":[6,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,6],"end":[9,6]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog "},{"Mode":"Normal"},{"Selection":{"start":[10,0],"end":[10,0]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,9],"end":[0,9]}},{"Mode":"Normal"},{"Text":"The quick brown jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[0,15],"end":[0,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,4],"end":[1,4]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[1,8],"end":[1,8]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nbrown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,0],"end":[6,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[7,0],"end":[7,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[8,0],"end":[8,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,0],"end":[9,0]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n over\nthe lazy dog \n\n"},{"Mode":"Normal"},{"Selection":{"start":[9,2],"end":[9,2]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog\n"},{"Mode":"Normal"},{"Selection":{"start":[10,11],"end":[10,11]}},{"Mode":"Normal"},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog "},{"Mode":"Normal"},{"Selection":{"start":[10,0],"end":[10,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_neovim.json b/crates/vim/test_data/test_neovim.json index eba763f676..244e909ba4 100644 --- a/crates/vim/test_data/test_neovim.json +++ b/crates/vim/test_data/test_neovim.json @@ -1 +1 @@ -[{"Text":"test"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"}] \ No newline at end of file +[{"Text":""},{"Mode":"Insert"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Insert"},{"Text":"test"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"}] \ No newline at end of file diff --git a/crates/vim/test_data/test_visual_sentence_object.json b/crates/vim/test_data/test_visual_sentence_object.json new file mode 100644 index 0000000000..c88f314333 --- /dev/null +++ b/crates/vim/test_data/test_visual_sentence_object.json @@ -0,0 +1 @@ +[{"Text":"The quick brown? Fox Jumps! Over the lazy."},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[0,15]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown? Fox Jumps! Over the lazy."},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[0,15]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown? Fox Jumps! Over the lazy."},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[0,15]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown? Fox Jumps! Over the lazy."},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,16],"end":[0,16]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown? Fox Jumps! Over the lazy."},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,17],"end":[0,26]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown? Fox Jumps! Over the lazy."},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,17],"end":[0,26]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown? Fox Jumps! Over the lazy."},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,17],"end":[0,26]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown? Fox Jumps! Over the lazy."},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,27],"end":[0,27]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown? Fox Jumps! Over the lazy."},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,28],"end":[0,41]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown? Fox Jumps! Over the lazy."},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,28],"end":[0,41]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown? Fox Jumps! Over the lazy."},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,28],"end":[0,41]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. The quick \nbrown fox jumps over\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[2,12]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. The quick \nbrown fox jumps over\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[2,12]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. The quick \nbrown fox jumps over\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[2,12]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. The quick \nbrown fox jumps over\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[2,12]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. The quick \nbrown fox jumps over\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[2,12]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. The quick \nbrown fox jumps over\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. The quick \nbrown fox jumps over\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[2,14],"end":[3,19]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog. The quick \nbrown fox jumps over\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[2,14],"end":[3,19]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown.)]'\" Brown fox jumps. "},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[0,19]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown.)]'\" Brown fox jumps. "},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[0,19]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown.)]'\" Brown fox jumps. "},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[0,19]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown.)]'\" Brown fox jumps. "},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[0,19]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown.)]'\" Brown fox jumps. "},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[0,19]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown.)]'\" Brown fox jumps. "},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,0],"end":[0,19]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown.)]'\" Brown fox jumps. "},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,21],"end":[0,36]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown.)]'\" Brown fox jumps. "},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,21],"end":[0,36]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown.)]'\" Brown fox jumps. "},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,37],"end":[0,37]}},{"Mode":{"Visual":{"line":false}}}] \ No newline at end of file diff --git a/crates/vim/test_data/test_visual_word_object.json b/crates/vim/test_data/test_visual_word_object.json new file mode 100644 index 0000000000..751636a5a3 --- /dev/null +++ b/crates/vim/test_data/test_visual_word_object.json @@ -0,0 +1 @@ +[{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,10],"end":[0,14]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,10],"end":[0,14]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,15],"end":[0,17]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,4],"end":[1,8]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,4],"end":[1,8]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[2,12],"end":[2,13]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,0],"end":[6,2]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,3],"end":[6,3]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,4],"end":[6,8]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,4],"end":[6,8]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,10],"end":[6,14]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[7,0],"end":[7,1]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[8,0],"end":[8,1]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[9,0],"end":[9,1]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[9,6],"end":[9,10]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,10],"end":[0,14]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,10],"end":[0,14]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[0,15],"end":[0,17]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,4],"end":[1,8]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,4],"end":[1,8]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[1,9],"end":[1,9]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[2,12],"end":[2,13]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[3,0],"end":[3,0]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[4,0],"end":[4,0]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[5,0],"end":[5,0]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,0],"end":[6,8]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,0],"end":[6,8]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,0],"end":[6,8]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,0],"end":[6,8]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,9],"end":[6,9]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,10],"end":[6,14]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[6,15],"end":[6,15]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[7,0],"end":[7,1]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[8,0],"end":[8,1]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[9,0],"end":[9,1]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[9,2],"end":[9,10]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[10,12],"end":[10,12]}},{"Mode":{"Visual":{"line":false}}},{"Text":"The quick brown \nfox jumps over\nthe lazy dog \n\n\n\nThe-quick brown \n \n \n fox-jumps over\nthe lazy dog \n\n"},{"Mode":{"Visual":{"line":false}}},{"Selection":{"start":[11,0],"end":[11,0]}},{"Mode":{"Visual":{"line":false}}}] \ No newline at end of file From 0d31ea7cf2cb62e10131b697d1d42a6389384d06 Mon Sep 17 00:00:00 2001 From: K Simmons Date: Mon, 10 Oct 2022 15:34:40 -0700 Subject: [PATCH 07/24] fix minor issue where undo is not available in visual mode --- assets/keymaps/vim.json | 1 + 1 file changed, 1 insertion(+) diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index 75d0eae5ff..1c2f8ac24d 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -204,6 +204,7 @@ { "context": "Editor && vim_mode == visual", "bindings": { + "u": "editor::Undo", "c": "vim::VisualChange", "d": "vim::VisualDelete", "x": "vim::VisualDelete", From eedcc585afd921779c3ccc1aef24fc258647c0b9 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 10 Oct 2022 16:12:42 -0700 Subject: [PATCH 08/24] Add scrollbars to editors --- crates/editor/src/element.rs | 118 ++++++++++++++++++++++++++++++--- crates/theme/src/theme.rs | 8 +++ styles/src/styleTree/editor.ts | 14 ++++ 3 files changed, 130 insertions(+), 10 deletions(-) diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index acf2e5887c..a15f5d0013 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -43,7 +43,7 @@ use std::{ cmp::{self, Ordering}, fmt::Write, iter, - ops::Range, + ops::{DerefMut, Range}, sync::Arc, }; use theme::DiffStyle; @@ -909,6 +909,96 @@ impl EditorElement { cx.scene.pop_layer(); } + fn paint_scrollbar(&mut self, bounds: RectF, layout: &mut LayoutState, cx: &mut PaintContext) { + enum ScrollbarMouseHandlers {} + let row_range = if let Some(row_range) = &layout.scrollbar_row_range { + row_range + } else { + return; + }; + + let style = &self.style.theme.scrollbar; + let top = bounds.min_y(); + let bottom = bounds.max_y(); + let height = bounds.height(); + + let max_row = layout.max_row + row_range.len() as u32; + let scrollbar_start = row_range.start as f32 / max_row as f32; + let scrollbar_end = row_range.end as f32 / max_row as f32; + + let thumb_top = top + scrollbar_start * height; + let thumb_bottom = top + scrollbar_end * height; + let right = bounds.max_x(); + let left = right - style.width; + let track_bounds = RectF::from_points(vec2f(left, top), vec2f(right, bottom)); + let thumb_bounds = RectF::from_points(vec2f(left, thumb_top), vec2f(right, thumb_bottom)); + + cx.scene.push_quad(Quad { + bounds: track_bounds, + border: style.track.border, + background: style.track.background_color, + ..Default::default() + }); + cx.scene.push_quad(Quad { + bounds: thumb_bounds, + border: style.thumb.border, + background: style.thumb.background_color, + corner_radius: style.thumb.corner_radius, + }); + cx.scene.push_cursor_region(CursorRegion { + bounds: track_bounds, + style: CursorStyle::Arrow, + }); + + let view = self.view.clone(); + cx.scene.push_mouse_region( + MouseRegion::new::( + self.view.id(), + self.view.id(), + track_bounds, + ) + .on_down(MouseButton::Left, { + let view = view.clone(); + let row_range_len = row_range.len(); + move |e, cx| { + let y = e.position.y(); + if y < thumb_top || thumb_bottom < y { + if let Some(view) = view.upgrade(cx.deref_mut()) { + view.update(cx.deref_mut(), |view, cx| { + let center_row = + ((y - top) * max_row as f32 / height).round() as u32; + let top_row = center_row.saturating_sub(row_range_len as u32 / 2); + let mut position = view.scroll_position(cx); + position.set_y(top_row as f32); + view.set_scroll_position(position, cx); + }); + } + } + } + }) + .on_drag(MouseButton::Left, { + let view = view.clone(); + move |e, cx| { + let y = e.prev_mouse_position.y(); + let new_y = e.position.y(); + if thumb_top < y && y < thumb_bottom { + if let Some(view) = view.upgrade(cx.deref_mut()) { + view.update(cx.deref_mut(), |view, cx| { + let mut position = view.scroll_position(cx); + position + .set_y(position.y() + (new_y - y) * (max_row as f32) / height); + if position.y() < 0.0 { + position.set_y(0.); + } + view.set_scroll_position(position, cx); + }); + } + } + } + }), + ); + } + #[allow(clippy::too_many_arguments)] fn paint_highlighted_range( &self, @@ -1467,13 +1557,11 @@ impl Element for EditorElement { // The scroll position is a fractional point, the whole number of which represents // the top of the window in terms of display rows. let start_row = scroll_position.y() as u32; - let scroll_top = scroll_position.y() * line_height; + let visible_row_count = (size.y() / line_height).ceil() as u32; + let max_row = snapshot.max_point().row(); // Add 1 to ensure selections bleed off screen - let end_row = 1 + cmp::min( - ((scroll_top + size.y()) / line_height).ceil() as u32, - snapshot.max_point().row(), - ); + let end_row = 1 + cmp::min(start_row + visible_row_count, max_row); let start_anchor = if start_row == 0 { Anchor::min() @@ -1482,7 +1570,7 @@ impl Element for EditorElement { .buffer_snapshot .anchor_before(DisplayPoint::new(start_row, 0).to_offset(&snapshot, Bias::Left)) }; - let end_anchor = if end_row > snapshot.max_point().row() { + let end_anchor = if end_row > max_row { Anchor::max() } else { snapshot @@ -1564,6 +1652,12 @@ impl Element for EditorElement { .git_diff_hunks_in_range(start_row..end_row) .collect(); + let scrollbar_row_range = if snapshot.mode == EditorMode::Full { + Some(start_row..(start_row + visible_row_count)) + } else { + None + }; + let mut max_visible_line_width = 0.0; let line_layouts = self.layout_lines(start_row..end_row, &snapshot, cx); for line in &line_layouts { @@ -1597,7 +1691,6 @@ impl Element for EditorElement { cx, ); - let max_row = snapshot.max_point().row(); let scroll_max = vec2f( ((scroll_width - text_size.x()) / em_width).max(0.0), max_row.saturating_sub(1) as f32, @@ -1707,6 +1800,8 @@ impl Element for EditorElement { gutter_size, gutter_padding, text_size, + scrollbar_row_range, + max_row, gutter_margin, active_rows, highlighted_rows, @@ -1753,11 +1848,12 @@ impl Element for EditorElement { } self.paint_text(text_bounds, visible_bounds, layout, cx); + cx.scene.push_layer(Some(bounds)); if !layout.blocks.is_empty() { - cx.scene.push_layer(Some(bounds)); self.paint_blocks(bounds, visible_bounds, layout, cx); - cx.scene.pop_layer(); } + self.paint_scrollbar(bounds, layout, cx); + cx.scene.pop_layer(); cx.scene.pop_layer(); } @@ -1849,6 +1945,8 @@ pub struct LayoutState { blocks: Vec, highlighted_ranges: Vec<(Range, Color)>, selections: Vec<(ReplicaId, Vec)>, + scrollbar_row_range: Option>, + max_row: u32, context_menu: Option<(DisplayPoint, ElementBox)>, diff_hunks: Vec>, code_actions_indicator: Option<(u32, ElementBox)>, diff --git a/crates/theme/src/theme.rs b/crates/theme/src/theme.rs index d8c8296481..7bd7913644 100644 --- a/crates/theme/src/theme.rs +++ b/crates/theme/src/theme.rs @@ -510,6 +510,14 @@ pub struct Editor { pub link_definition: HighlightStyle, pub composition_mark: HighlightStyle, pub jump_icon: Interactive, + pub scrollbar: Scrollbar, +} + +#[derive(Clone, Deserialize, Default)] +pub struct Scrollbar { + pub track: ContainerStyle, + pub thumb: ContainerStyle, + pub width: f32, } #[derive(Clone, Deserialize, Default)] diff --git a/styles/src/styleTree/editor.ts b/styles/src/styleTree/editor.ts index 04a5bafbd5..610f828ec8 100644 --- a/styles/src/styleTree/editor.ts +++ b/styles/src/styleTree/editor.ts @@ -1,4 +1,5 @@ import Theme from "../themes/common/theme"; +import { withOpacity } from "../utils/color"; import { backgroundColor, border, @@ -170,6 +171,19 @@ export default function editor(theme: Theme) { background: backgroundColor(theme, "on500"), }, }, + scrollbar: { + width: 12, + track: { + border: { + left: true, + width: 1, + color: borderColor(theme, "secondary"), + }, + }, + thumb: { + background: borderColor(theme, "secondary"), + } + }, compositionMark: { underline: { thickness: 1.0, From 6dcf63832213b9f3a64e87756cf23563e82656de Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 10 Oct 2022 17:06:48 -0700 Subject: [PATCH 09/24] Represent scrollbar range with f32s --- crates/editor/src/element.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index a15f5d0013..300edc02a6 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -922,7 +922,7 @@ impl EditorElement { let bottom = bounds.max_y(); let height = bounds.height(); - let max_row = layout.max_row + row_range.len() as u32; + let max_row = layout.max_row + ((row_range.end - row_range.start) as u32); let scrollbar_start = row_range.start as f32 / max_row as f32; let scrollbar_end = row_range.end as f32 / max_row as f32; @@ -959,7 +959,7 @@ impl EditorElement { ) .on_down(MouseButton::Left, { let view = view.clone(); - let row_range_len = row_range.len(); + let row_range_len = row_range.end - row_range.start; move |e, cx| { let y = e.position.y(); if y < thumb_top || thumb_bottom < y { @@ -1653,7 +1653,7 @@ impl Element for EditorElement { .collect(); let scrollbar_row_range = if snapshot.mode == EditorMode::Full { - Some(start_row..(start_row + visible_row_count)) + Some(scroll_position.y()..(scroll_position.y() + visible_row_count as f32)) } else { None }; @@ -1945,7 +1945,7 @@ pub struct LayoutState { blocks: Vec, highlighted_ranges: Vec<(Range, Color)>, selections: Vec<(ReplicaId, Vec)>, - scrollbar_row_range: Option>, + scrollbar_row_range: Option>, max_row: u32, context_menu: Option<(DisplayPoint, ElementBox)>, diff_hunks: Vec>, From 7b084199be8d81f5771a392e8f5836f33bfa0c89 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 10 Oct 2022 17:54:29 -0700 Subject: [PATCH 10/24] Auto-hide scrollbars --- crates/editor/src/editor.rs | 28 ++++++++ crates/editor/src/element.rs | 130 ++++++++++++++++++++--------------- 2 files changed, 101 insertions(+), 57 deletions(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 1abe65d482..3422e599f8 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -76,6 +76,7 @@ use util::{post_inc, ResultExt, TryFutureExt}; use workspace::{ItemNavHistory, Workspace}; const CURSOR_BLINK_INTERVAL: Duration = Duration::from_millis(500); +const SCROLLBAR_SHOW_INTERVAL: Duration = Duration::from_secs(1); const MAX_LINE_LEN: usize = 1024; const MIN_NAVIGATION_HISTORY_ROW_DELTA: i64 = 10; const MAX_SELECTION_HISTORY_LEN: usize = 1024; @@ -427,6 +428,8 @@ pub struct Editor { focused: bool, show_local_cursors: bool, show_local_selections: bool, + show_scrollbars: bool, + hide_scrollbar_task: Option>, blink_epoch: usize, blinking_paused: bool, mode: EditorMode, @@ -1028,6 +1031,8 @@ impl Editor { focused: false, show_local_cursors: false, show_local_selections: true, + show_scrollbars: true, + hide_scrollbar_task: None, blink_epoch: 0, blinking_paused: false, mode, @@ -1059,6 +1064,7 @@ impl Editor { ], }; this.end_selection(cx); + this.make_scrollbar_visible(cx); let editor_created_event = EditorCreated(cx.handle()); cx.emit_global(editor_created_event); @@ -1179,6 +1185,7 @@ impl Editor { self.scroll_top_anchor = anchor; } + self.make_scrollbar_visible(cx); self.autoscroll_request.take(); hide_hover(self, cx); @@ -5932,6 +5939,27 @@ impl Editor { self.show_local_cursors && self.focused } + pub fn show_scrollbars(&self) -> bool { + self.show_scrollbars + } + + fn make_scrollbar_visible(&mut self, cx: &mut ViewContext) { + if !self.show_scrollbars { + self.show_scrollbars = true; + cx.notify(); + } + + self.hide_scrollbar_task = Some(cx.spawn_weak(|this, mut cx| async move { + Timer::after(SCROLLBAR_SHOW_INTERVAL).await; + if let Some(this) = this.upgrade(&cx) { + this.update(&mut cx, |this, cx| { + this.show_scrollbars = false; + cx.notify(); + }); + } + })); + } + fn on_buffer_changed(&mut self, _: ModelHandle, cx: &mut ViewContext) { cx.notify(); } diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index 300edc02a6..66dbe50864 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -454,7 +454,6 @@ impl EditorElement { let bounds = gutter_bounds.union_rect(text_bounds); let scroll_top = layout.position_map.snapshot.scroll_position().y() * layout.position_map.line_height; - let editor = self.view(cx.app); cx.scene.push_quad(Quad { bounds: gutter_bounds, background: Some(self.style.gutter_background), @@ -468,7 +467,7 @@ impl EditorElement { corner_radius: 0., }); - if let EditorMode::Full = editor.mode { + if let EditorMode::Full = layout.mode { let mut active_rows = layout.active_rows.iter().peekable(); while let Some((start_row, contains_non_empty_selection)) = active_rows.next() { let mut end_row = *start_row; @@ -911,25 +910,24 @@ impl EditorElement { fn paint_scrollbar(&mut self, bounds: RectF, layout: &mut LayoutState, cx: &mut PaintContext) { enum ScrollbarMouseHandlers {} - let row_range = if let Some(row_range) = &layout.scrollbar_row_range { - row_range - } else { + if layout.mode != EditorMode::Full { return; - }; + } + let view = self.view.clone(); let style = &self.style.theme.scrollbar; let top = bounds.min_y(); let bottom = bounds.max_y(); + let right = bounds.max_x(); + let left = right - style.width; let height = bounds.height(); - + let row_range = &layout.scrollbar_row_range; let max_row = layout.max_row + ((row_range.end - row_range.start) as u32); let scrollbar_start = row_range.start as f32 / max_row as f32; let scrollbar_end = row_range.end as f32 / max_row as f32; - let thumb_top = top + scrollbar_start * height; let thumb_bottom = top + scrollbar_end * height; - let right = bounds.max_x(); - let left = right - style.width; + let track_bounds = RectF::from_points(vec2f(left, top), vec2f(right, bottom)); let thumb_bounds = RectF::from_points(vec2f(left, thumb_top), vec2f(right, thumb_bottom)); @@ -939,63 +937,75 @@ impl EditorElement { background: style.track.background_color, ..Default::default() }); - cx.scene.push_quad(Quad { - bounds: thumb_bounds, - border: style.thumb.border, - background: style.thumb.background_color, - corner_radius: style.thumb.corner_radius, - }); + if layout.show_scrollbars { + cx.scene.push_quad(Quad { + bounds: thumb_bounds, + border: style.thumb.border, + background: style.thumb.background_color, + corner_radius: style.thumb.corner_radius, + }); + } + cx.scene.push_cursor_region(CursorRegion { bounds: track_bounds, style: CursorStyle::Arrow, }); - - let view = self.view.clone(); cx.scene.push_mouse_region( - MouseRegion::new::( - self.view.id(), - self.view.id(), - track_bounds, - ) - .on_down(MouseButton::Left, { - let view = view.clone(); - let row_range_len = row_range.end - row_range.start; - move |e, cx| { - let y = e.position.y(); - if y < thumb_top || thumb_bottom < y { + MouseRegion::new::(view.id(), view.id(), track_bounds) + .on_move({ + let view = view.clone(); + move |_, cx| { if let Some(view) = view.upgrade(cx.deref_mut()) { view.update(cx.deref_mut(), |view, cx| { - let center_row = - ((y - top) * max_row as f32 / height).round() as u32; - let top_row = center_row.saturating_sub(row_range_len as u32 / 2); - let mut position = view.scroll_position(cx); - position.set_y(top_row as f32); - view.set_scroll_position(position, cx); + view.make_scrollbar_visible(cx); }); } } - } - }) - .on_drag(MouseButton::Left, { - let view = view.clone(); - move |e, cx| { - let y = e.prev_mouse_position.y(); - let new_y = e.position.y(); - if thumb_top < y && y < thumb_bottom { + }) + .on_down(MouseButton::Left, { + let view = view.clone(); + let row_range = row_range.clone(); + move |e, cx| { + let y = e.position.y(); if let Some(view) = view.upgrade(cx.deref_mut()) { view.update(cx.deref_mut(), |view, cx| { - let mut position = view.scroll_position(cx); - position - .set_y(position.y() + (new_y - y) * (max_row as f32) / height); - if position.y() < 0.0 { - position.set_y(0.); + if y < thumb_top || thumb_bottom < y { + let center_row = + ((y - top) * max_row as f32 / height).round() as u32; + let top_row = center_row.saturating_sub( + (row_range.end - row_range.start) as u32 / 2, + ); + let mut position = view.scroll_position(cx); + position.set_y(top_row as f32); + view.set_scroll_position(position, cx); + } else { + view.make_scrollbar_visible(cx); } - view.set_scroll_position(position, cx); }); } } - } - }), + }) + .on_drag(MouseButton::Left, { + let view = view.clone(); + move |e, cx| { + let y = e.prev_mouse_position.y(); + let new_y = e.position.y(); + if thumb_top < y && y < thumb_bottom { + if let Some(view) = view.upgrade(cx.deref_mut()) { + view.update(cx.deref_mut(), |view, cx| { + let mut position = view.scroll_position(cx); + position.set_y( + position.y() + (new_y - y) * (max_row as f32) / height, + ); + if position.y() < 0.0 { + position.set_y(0.); + } + view.set_scroll_position(position, cx); + }); + } + } + } + }), ); } @@ -1582,6 +1592,7 @@ impl Element for EditorElement { let mut active_rows = BTreeMap::new(); let mut highlighted_rows = None; let mut highlighted_ranges = Vec::new(); + let mut show_scrollbars = false; self.update_view(cx.app, |view, cx| { let display_map = view.display_map.update(cx, |map, cx| map.snapshot(cx)); @@ -1642,6 +1653,8 @@ impl Element for EditorElement { .collect(), )); } + + show_scrollbars = view.show_scrollbars(); }); let line_number_layouts = @@ -1652,11 +1665,8 @@ impl Element for EditorElement { .git_diff_hunks_in_range(start_row..end_row) .collect(); - let scrollbar_row_range = if snapshot.mode == EditorMode::Full { - Some(scroll_position.y()..(scroll_position.y() + visible_row_count as f32)) - } else { - None - }; + let scrollbar_row_range = + scroll_position.y()..(scroll_position.y() + visible_row_count as f32); let mut max_visible_line_width = 0.0; let line_layouts = self.layout_lines(start_row..end_row, &snapshot, cx); @@ -1720,6 +1730,7 @@ impl Element for EditorElement { let mut context_menu = None; let mut code_actions_indicator = None; let mut hover = None; + let mut mode = EditorMode::Full; cx.render(&self.view.upgrade(cx).unwrap(), |view, cx| { let newest_selection_head = view .selections @@ -1741,6 +1752,7 @@ impl Element for EditorElement { let visible_rows = start_row..start_row + line_layouts.len() as u32; hover = view.hover_state.render(&snapshot, &style, visible_rows, cx); + mode = view.mode; }); if let Some((_, context_menu)) = context_menu.as_mut() { @@ -1788,6 +1800,7 @@ impl Element for EditorElement { ( size, LayoutState { + mode, position_map: Arc::new(PositionMap { size, scroll_max, @@ -1801,6 +1814,7 @@ impl Element for EditorElement { gutter_padding, text_size, scrollbar_row_range, + show_scrollbars, max_row, gutter_margin, active_rows, @@ -1939,13 +1953,15 @@ pub struct LayoutState { gutter_padding: f32, gutter_margin: f32, text_size: Vector2F, + mode: EditorMode, active_rows: BTreeMap, highlighted_rows: Option>, line_number_layouts: Vec>, blocks: Vec, highlighted_ranges: Vec<(Range, Color)>, selections: Vec<(ReplicaId, Vec)>, - scrollbar_row_range: Option>, + scrollbar_row_range: Range, + show_scrollbars: bool, max_row: u32, context_menu: Option<(DisplayPoint, ElementBox)>, diff_hunks: Vec>, From b229bc69b986108630ebbbb52e1dda949bfc5a24 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 10 Oct 2022 17:54:40 -0700 Subject: [PATCH 11/24] Tweak scrollbar styling --- styles/src/styleTree/editor.ts | 8 ++++++-- styles/src/themes/common/base16.ts | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/styles/src/styleTree/editor.ts b/styles/src/styleTree/editor.ts index 610f828ec8..a31b3d8654 100644 --- a/styles/src/styleTree/editor.ts +++ b/styles/src/styleTree/editor.ts @@ -172,7 +172,7 @@ export default function editor(theme: Theme) { }, }, scrollbar: { - width: 12, + width: 14, track: { border: { left: true, @@ -181,7 +181,11 @@ export default function editor(theme: Theme) { }, }, thumb: { - background: borderColor(theme, "secondary"), + background: withOpacity(borderColor(theme, "secondary"), 0.5), + border: { + width: 1, + color: withOpacity(borderColor(theme, 'muted'), 0.5), + } } }, compositionMark: { diff --git a/styles/src/themes/common/base16.ts b/styles/src/themes/common/base16.ts index cd6d46a771..1c4a5e4076 100644 --- a/styles/src/themes/common/base16.ts +++ b/styles/src/themes/common/base16.ts @@ -123,7 +123,7 @@ export function createTheme( const borderColor = { primary: sample(ramps.neutral, isLight ? 1.5 : 0), secondary: sample(ramps.neutral, isLight ? 1.25 : 1), - muted: sample(ramps.neutral, isLight ? 1 : 3), + muted: sample(ramps.neutral, isLight ? 1.25 : 3), active: sample(ramps.neutral, isLight ? 4 : 3), onMedia: withOpacity(darkest, 0.1), ok: sample(ramps.green, 0.3), From e2700ff8c6d9a3f69520d2c3f65e5f204348aa45 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 10 Oct 2022 18:12:31 -0700 Subject: [PATCH 12/24] Enable/disable scrollbar auto-hide based on OS setting --- crates/editor/src/editor.rs | 29 ++++++++++++++++-------- crates/gpui/src/platform.rs | 1 + crates/gpui/src/platform/mac/platform.rs | 10 ++++++++ crates/gpui/src/platform/test.rs | 4 ++++ 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 3422e599f8..2b1d99a24c 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -239,6 +239,9 @@ pub enum Direction { Next, } +#[derive(Default)] +struct ScrollbarAutoHide(bool); + pub fn init(cx: &mut MutableAppContext) { cx.add_action(Editor::new_file); cx.add_action(|this: &mut Editor, action: &Scroll, cx| this.set_scroll_position(action.0, cx)); @@ -327,6 +330,10 @@ pub fn init(cx: &mut MutableAppContext) { cx.add_async_action(Editor::confirm_rename); cx.add_async_action(Editor::find_all_references); + cx.set_global(ScrollbarAutoHide( + cx.platform().should_auto_hide_scrollbars(), + )); + hover_popover::init(cx); link_go_to_definition::init(cx); mouse_context_menu::init(cx); @@ -5949,15 +5956,19 @@ impl Editor { cx.notify(); } - self.hide_scrollbar_task = Some(cx.spawn_weak(|this, mut cx| async move { - Timer::after(SCROLLBAR_SHOW_INTERVAL).await; - if let Some(this) = this.upgrade(&cx) { - this.update(&mut cx, |this, cx| { - this.show_scrollbars = false; - cx.notify(); - }); - } - })); + if cx.default_global::().0 { + self.hide_scrollbar_task = Some(cx.spawn_weak(|this, mut cx| async move { + Timer::after(SCROLLBAR_SHOW_INTERVAL).await; + if let Some(this) = this.upgrade(&cx) { + this.update(&mut cx, |this, cx| { + this.show_scrollbars = false; + cx.notify(); + }); + } + })); + } else { + self.hide_scrollbar_task = None; + } } fn on_buffer_changed(&mut self, _: ModelHandle, cx: &mut ViewContext) { diff --git a/crates/gpui/src/platform.rs b/crates/gpui/src/platform.rs index 8997bde527..70d6f1e7d1 100644 --- a/crates/gpui/src/platform.rs +++ b/crates/gpui/src/platform.rs @@ -63,6 +63,7 @@ pub trait Platform: Send + Sync { fn delete_credentials(&self, url: &str) -> Result<()>; fn set_cursor_style(&self, style: CursorStyle); + fn should_auto_hide_scrollbars(&self) -> bool; fn local_timezone(&self) -> UtcOffset; diff --git a/crates/gpui/src/platform/mac/platform.rs b/crates/gpui/src/platform/mac/platform.rs index 628ddde13c..619ba0f3bf 100644 --- a/crates/gpui/src/platform/mac/platform.rs +++ b/crates/gpui/src/platform/mac/platform.rs @@ -699,6 +699,16 @@ impl platform::Platform for MacPlatform { } } + fn should_auto_hide_scrollbars(&self) -> bool { + #[allow(non_upper_case_globals)] + const NSScrollerStyleOverlay: NSInteger = 1; + + unsafe { + let style: NSInteger = msg_send![class!(NSScroller), preferredScrollerStyle]; + style == NSScrollerStyleOverlay + } + } + fn local_timezone(&self) -> UtcOffset { unsafe { let local_timezone: id = msg_send![class!(NSTimeZone), localTimeZone]; diff --git a/crates/gpui/src/platform/test.rs b/crates/gpui/src/platform/test.rs index 58ef1ffaf2..0dbe011d7b 100644 --- a/crates/gpui/src/platform/test.rs +++ b/crates/gpui/src/platform/test.rs @@ -177,6 +177,10 @@ impl super::Platform for Platform { *self.cursor.lock() = style; } + fn should_auto_hide_scrollbars(&self) -> bool { + false + } + fn local_timezone(&self) -> UtcOffset { UtcOffset::UTC } From 67a32de7d427dc48d7a87115022694a1ed34e1ee Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 11 Oct 2022 09:26:19 -0700 Subject: [PATCH 13/24] Hide the scrollbar track, not just the thumb --- crates/editor/src/element.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index 66dbe50864..04c67311de 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -931,13 +931,13 @@ impl EditorElement { let track_bounds = RectF::from_points(vec2f(left, top), vec2f(right, bottom)); let thumb_bounds = RectF::from_points(vec2f(left, thumb_top), vec2f(right, thumb_bottom)); - cx.scene.push_quad(Quad { - bounds: track_bounds, - border: style.track.border, - background: style.track.background_color, - ..Default::default() - }); if layout.show_scrollbars { + cx.scene.push_quad(Quad { + bounds: track_bounds, + border: style.track.border, + background: style.track.background_color, + ..Default::default() + }); cx.scene.push_quad(Quad { bounds: thumb_bounds, border: style.thumb.border, From d93e75bf5f119bbb6cc0c6ed08e1ae42398e4b16 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 11 Oct 2022 09:26:31 -0700 Subject: [PATCH 14/24] Make scrollbars a little bit narrower --- styles/src/styleTree/editor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/styles/src/styleTree/editor.ts b/styles/src/styleTree/editor.ts index a31b3d8654..334931a981 100644 --- a/styles/src/styleTree/editor.ts +++ b/styles/src/styleTree/editor.ts @@ -172,7 +172,7 @@ export default function editor(theme: Theme) { }, }, scrollbar: { - width: 14, + width: 12, track: { border: { left: true, From f4306d977f87bfe918524a18ade3e04469d0fc74 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 11 Oct 2022 09:28:17 -0700 Subject: [PATCH 15/24] Refresh scrollbar auto-hide setting when opening a new editor --- crates/editor/src/editor.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 2b1d99a24c..8df8a29360 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -330,10 +330,6 @@ pub fn init(cx: &mut MutableAppContext) { cx.add_async_action(Editor::confirm_rename); cx.add_async_action(Editor::find_all_references); - cx.set_global(ScrollbarAutoHide( - cx.platform().should_auto_hide_scrollbars(), - )); - hover_popover::init(cx); link_go_to_definition::init(cx); mouse_context_menu::init(cx); @@ -1076,6 +1072,11 @@ impl Editor { let editor_created_event = EditorCreated(cx.handle()); cx.emit_global(editor_created_event); + if mode == EditorMode::Full { + let should_auto_hide_scrollbars = cx.platform().should_auto_hide_scrollbars(); + cx.set_global(ScrollbarAutoHide(should_auto_hide_scrollbars)); + } + this.report_event("open editor", cx); this } From 1f0a9ce418c822115cc0f0f0439d033b2073b0fd Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 11 Oct 2022 10:17:20 -0700 Subject: [PATCH 16/24] Proceed with share while project state uploads Co-authored-by: Antonio Scandurra --- crates/call/src/room.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/call/src/room.rs b/crates/call/src/room.rs index 572f512d1c..5003479214 100644 --- a/crates/call/src/room.rs +++ b/crates/call/src/room.rs @@ -398,11 +398,11 @@ impl Room { cx.spawn(|this, mut cx| async move { let response = request.await?; - project - .update(&mut cx, |project, cx| { - project.shared(response.project_id, cx) - }) - .await?; + project.update(&mut cx, |project, cx| { + project + .shared(response.project_id, cx) + .detach_and_log_err(cx) + }); // If the user's location is in this project, it changes from UnsharedProject to SharedProject. this.update(&mut cx, |this, cx| { From 0e695eaae864797710821f909a6be5051d97ad6e Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 11 Oct 2022 12:15:54 -0700 Subject: [PATCH 17/24] Wait for project sharing to complete in LSP status integration test --- crates/collab/src/integration_tests.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/collab/src/integration_tests.rs b/crates/collab/src/integration_tests.rs index bdd240fda8..6e08e7bef5 100644 --- a/crates/collab/src/integration_tests.rs +++ b/crates/collab/src/integration_tests.rs @@ -3874,6 +3874,7 @@ async fn test_language_server_statuses( .update(cx_a, |call, cx| call.share_project(project_a.clone(), cx)) .await .unwrap(); + deterministic.run_until_parked(); let project_b = client_b.build_remote_project(project_id, cx_b).await; project_b.read_with(cx_b, |project, _| { let status = project.language_server_statuses().next().unwrap(); From 65b8c512fed0d21ae55e35b02208a11dc2144018 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 11 Oct 2022 12:37:00 -0700 Subject: [PATCH 18/24] Allow opening other local projects via contacts list --- crates/collab_ui/src/contact_list.rs | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/crates/collab_ui/src/contact_list.rs b/crates/collab_ui/src/contact_list.rs index 7b773240cf..c04f0fe72d 100644 --- a/crates/collab_ui/src/contact_list.rs +++ b/crates/collab_ui/src/contact_list.rs @@ -65,7 +65,6 @@ enum ContactEntry { project_id: u64, worktree_root_names: Vec, host_user_id: u64, - is_host: bool, is_last: bool, }, IncomingRequest(Arc), @@ -181,6 +180,7 @@ impl ContactList { let list_state = ListState::new(0, Orientation::Top, 1000., cx, move |this, ix, cx| { let theme = cx.global::().theme.clone(); let is_selected = this.selection == Some(ix); + let current_project_id = this.project.read(cx).remote_id(); match &this.entries[ix] { ContactEntry::Header(section) => { @@ -205,13 +205,12 @@ impl ContactList { project_id, worktree_root_names, host_user_id, - is_host, is_last, } => Self::render_participant_project( *project_id, worktree_root_names, *host_user_id, - *is_host, + Some(*project_id) == current_project_id, *is_last, is_selected, &theme.contact_list, @@ -341,15 +340,12 @@ impl ContactList { ContactEntry::ParticipantProject { project_id, host_user_id, - is_host, .. } => { - if !is_host { - cx.dispatch_global_action(JoinProject { - project_id: *project_id, - follow_user_id: *host_user_id, - }); - } + cx.dispatch_global_action(JoinProject { + project_id: *project_id, + follow_user_id: *host_user_id, + }); } _ => {} } @@ -407,7 +403,6 @@ impl ContactList { project_id: project.id, worktree_root_names: project.worktree_root_names.clone(), host_user_id: user_id, - is_host: true, is_last: projects.peek().is_none(), }); } @@ -448,7 +443,6 @@ impl ContactList { project_id: project.id, worktree_root_names: project.worktree_root_names.clone(), host_user_id: participant.user.id, - is_host: false, is_last: projects.peek().is_none(), }); } @@ -667,7 +661,7 @@ impl ContactList { project_id: u64, worktree_root_names: &[String], host_user_id: u64, - is_host: bool, + is_current: bool, is_last: bool, is_selected: bool, theme: &theme::ContactList, @@ -749,13 +743,13 @@ impl ContactList { .with_style(row.container) .boxed() }) - .with_cursor_style(if !is_host { + .with_cursor_style(if !is_current { CursorStyle::PointingHand } else { CursorStyle::Arrow }) .on_click(MouseButton::Left, move |_, cx| { - if !is_host { + if !is_current { cx.dispatch_global_action(JoinProject { project_id, follow_user_id: host_user_id, From acc85ad03c229ab8e3a6886adad81bfc2c76d4bb Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 11 Oct 2022 13:18:33 -0700 Subject: [PATCH 19/24] Impose a minimum height on the scrollbar --- crates/editor/src/element.rs | 22 ++++++++++++++++++++-- crates/theme/src/theme.rs | 1 + styles/src/styleTree/editor.ts | 1 + 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index 04c67311de..5a8ea0d820 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -916,6 +916,9 @@ impl EditorElement { let view = self.view.clone(); let style = &self.style.theme.scrollbar; + let min_thumb_height = + style.min_height_factor * cx.font_cache.line_height(self.style.text.font_size); + let top = bounds.min_y(); let bottom = bounds.max_y(); let right = bounds.max_x(); @@ -925,8 +928,23 @@ impl EditorElement { let max_row = layout.max_row + ((row_range.end - row_range.start) as u32); let scrollbar_start = row_range.start as f32 / max_row as f32; let scrollbar_end = row_range.end as f32 / max_row as f32; - let thumb_top = top + scrollbar_start * height; - let thumb_bottom = top + scrollbar_end * height; + + let mut thumb_top = top + scrollbar_start * height; + let mut thumb_bottom = top + scrollbar_end * height; + let thumb_center = (thumb_top + thumb_bottom) / 2.0; + + if thumb_bottom - thumb_top < min_thumb_height { + thumb_top = thumb_center - min_thumb_height / 2.0; + thumb_bottom = thumb_center + min_thumb_height / 2.0; + if thumb_top < top { + thumb_top = top; + thumb_bottom = top + min_thumb_height; + } + if thumb_bottom > bottom { + thumb_bottom = bottom; + thumb_top = bottom - min_thumb_height; + } + } let track_bounds = RectF::from_points(vec2f(left, top), vec2f(right, bottom)); let thumb_bounds = RectF::from_points(vec2f(left, thumb_top), vec2f(right, thumb_bottom)); diff --git a/crates/theme/src/theme.rs b/crates/theme/src/theme.rs index 7bd7913644..e1a1817b5c 100644 --- a/crates/theme/src/theme.rs +++ b/crates/theme/src/theme.rs @@ -518,6 +518,7 @@ pub struct Scrollbar { pub track: ContainerStyle, pub thumb: ContainerStyle, pub width: f32, + pub min_height_factor: f32, } #[derive(Clone, Deserialize, Default)] diff --git a/styles/src/styleTree/editor.ts b/styles/src/styleTree/editor.ts index 334931a981..6a333930db 100644 --- a/styles/src/styleTree/editor.ts +++ b/styles/src/styleTree/editor.ts @@ -173,6 +173,7 @@ export default function editor(theme: Theme) { }, scrollbar: { width: 12, + minHeightFactor: 1.0, track: { border: { left: true, From 673041d1f54577bc68e9229bbc9d6310096e175b Mon Sep 17 00:00:00 2001 From: K Simmons Date: Tue, 11 Oct 2022 15:17:29 -0700 Subject: [PATCH 20/24] working quote and bracket text objects --- assets/keymaps/vim.json | 13 +- crates/vim/src/normal/change.rs | 22 +- crates/vim/src/normal/delete.rs | 2 +- crates/vim/src/object.rs | 208 ++++++++++++++++-- crates/vim/src/visual.rs | 27 +-- ..._change_surrounding_character_objects.json | 1 + ..._delete_surrounding_character_objects.json | 1 + 7 files changed, 237 insertions(+), 37 deletions(-) create mode 100644 crates/vim/test_data/test_change_surrounding_character_objects.json create mode 100644 crates/vim/test_data/test_delete_surrounding_character_objects.json diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index 1c2f8ac24d..94729af21f 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -198,7 +198,18 @@ "ignorePunctuation": true } ], - "s": "vim::Sentence" + "s": "vim::Sentence", + "'": "vim::Quotes", + "`": "vim::BackQuotes", + "\"": "vim::DoubleQuotes", + "(": "vim::Parentheses", + ")": "vim::Parentheses", + "[": "vim::SquareBrackets", + "]": "vim::SquareBrackets", + "{": "vim::CurlyBrackets", + "}": "vim::CurlyBrackets", + "<": "vim::AngleBrackets", + ">": "vim::AngleBrackets" } }, { diff --git a/crates/vim/src/normal/change.rs b/crates/vim/src/normal/change.rs index cc62ce8db0..a343d43ba8 100644 --- a/crates/vim/src/normal/change.rs +++ b/crates/vim/src/normal/change.rs @@ -1,5 +1,5 @@ use crate::{motion::Motion, object::Object, state::Mode, utils::copy_selections_content, Vim}; -use editor::{char_kind, display_map::DisplaySnapshot, movement, Autoscroll, DisplayPoint}; +use editor::{char_kind, display_map::DisplaySnapshot, movement, Autoscroll, Bias, DisplayPoint}; use gpui::MutableAppContext; use language::Selection; @@ -25,20 +25,28 @@ pub fn change_motion(vim: &mut Vim, motion: Motion, times: usize, cx: &mut Mutab } pub fn change_object(vim: &mut Vim, object: Object, around: bool, cx: &mut MutableAppContext) { + let mut objects_found = false; vim.update_active_editor(cx, |editor, cx| { + // We are swapping to insert mode anyway. Just set the line end clipping behavior now + editor.set_clip_at_line_ends(false, cx); editor.transact(cx, |editor, cx| { - // We are swapping to insert mode anyway. Just set the line end clipping behavior now - editor.set_clip_at_line_ends(false, cx); editor.change_selections(Some(Autoscroll::Fit), cx, |s| { s.move_with(|map, selection| { - object.expand_selection(map, selection, around); + objects_found |= object.expand_selection(map, selection, around); }); }); - copy_selections_content(editor, false, cx); - editor.insert("", cx); + if objects_found { + copy_selections_content(editor, false, cx); + editor.insert("", cx); + } }); }); - vim.switch_mode(Mode::Insert, false, cx); + + if objects_found { + vim.switch_mode(Mode::Insert, false, cx); + } else { + vim.switch_mode(Mode::Normal, false, cx); + } } // From the docs https://vimhelp.org/change.txt.html#cw diff --git a/crates/vim/src/normal/delete.rs b/crates/vim/src/normal/delete.rs index 1465e3e377..a2c540a59c 100644 --- a/crates/vim/src/normal/delete.rs +++ b/crates/vim/src/normal/delete.rs @@ -51,7 +51,7 @@ pub fn delete_object(vim: &mut Vim, object: Object, around: bool, cx: &mut Mutab .chars_at(selection.start) .take_while(|(_, p)| p < &selection.end) .all(|(char, _)| char == '\n') - || offset_range.is_empty(); + && !offset_range.is_empty(); let end_at_newline = map .chars_at(selection.end) .next() diff --git a/crates/vim/src/object.rs b/crates/vim/src/object.rs index 5adc8397fa..ca7aff06dc 100644 --- a/crates/vim/src/object.rs +++ b/crates/vim/src/object.rs @@ -12,6 +12,13 @@ use crate::{motion, normal::normal_object, state::Mode, visual::visual_object, V pub enum Object { Word { ignore_punctuation: bool }, Sentence, + Quotes, + BackQuotes, + DoubleQuotes, + Parentheses, + SquareBrackets, + CurlyBrackets, + AngleBrackets, } #[derive(Clone, Deserialize, PartialEq)] @@ -21,7 +28,19 @@ struct Word { ignore_punctuation: bool, } -actions!(vim, [Sentence]); +actions!( + vim, + [ + Sentence, + Quotes, + BackQuotes, + DoubleQuotes, + Parentheses, + SquareBrackets, + CurlyBrackets, + AngleBrackets + ] +); impl_actions!(vim, [Word]); pub fn init(cx: &mut MutableAppContext) { @@ -31,6 +50,15 @@ pub fn init(cx: &mut MutableAppContext) { }, ); cx.add_action(|_: &mut Workspace, _: &Sentence, cx: _| object(Object::Sentence, cx)); + cx.add_action(|_: &mut Workspace, _: &Quotes, cx: _| object(Object::Quotes, cx)); + cx.add_action(|_: &mut Workspace, _: &BackQuotes, cx: _| object(Object::BackQuotes, cx)); + cx.add_action(|_: &mut Workspace, _: &DoubleQuotes, cx: _| object(Object::DoubleQuotes, cx)); + cx.add_action(|_: &mut Workspace, _: &Parentheses, cx: _| object(Object::Parentheses, cx)); + cx.add_action(|_: &mut Workspace, _: &SquareBrackets, cx: _| { + object(Object::SquareBrackets, cx) + }); + cx.add_action(|_: &mut Workspace, _: &CurlyBrackets, cx: _| object(Object::CurlyBrackets, cx)); + cx.add_action(|_: &mut Workspace, _: &AngleBrackets, cx: _| object(Object::AngleBrackets, cx)); } fn object(object: Object, cx: &mut MutableAppContext) { @@ -49,7 +77,7 @@ impl Object { map: &DisplaySnapshot, relative_to: DisplayPoint, around: bool, - ) -> Range { + ) -> Option> { match self { Object::Word { ignore_punctuation } => { if around { @@ -59,6 +87,13 @@ impl Object { } } Object::Sentence => sentence(map, relative_to, around), + Object::Quotes => surrounding_markers(map, relative_to, around, false, '\'', '\''), + Object::BackQuotes => surrounding_markers(map, relative_to, around, false, '`', '`'), + Object::DoubleQuotes => surrounding_markers(map, relative_to, around, false, '"', '"'), + Object::Parentheses => surrounding_markers(map, relative_to, around, true, '(', ')'), + Object::SquareBrackets => surrounding_markers(map, relative_to, around, true, '[', ']'), + Object::CurlyBrackets => surrounding_markers(map, relative_to, around, true, '{', '}'), + Object::AngleBrackets => surrounding_markers(map, relative_to, around, true, '<', '>'), } } @@ -67,10 +102,14 @@ impl Object { map: &DisplaySnapshot, selection: &mut Selection, around: bool, - ) { - let range = self.range(map, selection.head(), around); - selection.start = range.start; - selection.end = range.end; + ) -> bool { + if let Some(range) = self.range(map, selection.head(), around) { + selection.start = range.start; + selection.end = range.end; + true + } else { + false + } } } @@ -81,7 +120,7 @@ fn in_word( map: &DisplaySnapshot, relative_to: DisplayPoint, ignore_punctuation: bool, -) -> Range { +) -> Option> { // Use motion::right so that we consider the character under the cursor when looking for the start let start = movement::find_preceding_boundary_in_line( map, @@ -96,7 +135,7 @@ fn in_word( != char_kind(right).coerce_punctuation(ignore_punctuation) }); - start..end + Some(start..end) } /// Return a range that surrounds the word and following whitespace @@ -115,7 +154,7 @@ fn around_word( map: &DisplaySnapshot, relative_to: DisplayPoint, ignore_punctuation: bool, -) -> Range { +) -> Option> { let in_word = map .chars_at(relative_to) .next() @@ -133,15 +172,16 @@ fn around_containing_word( map: &DisplaySnapshot, relative_to: DisplayPoint, ignore_punctuation: bool, -) -> Range { - expand_to_include_whitespace(map, in_word(map, relative_to, ignore_punctuation), true) +) -> Option> { + in_word(map, relative_to, ignore_punctuation) + .map(|range| expand_to_include_whitespace(map, range, true)) } fn around_next_word( map: &DisplaySnapshot, relative_to: DisplayPoint, ignore_punctuation: bool, -) -> Range { +) -> Option> { // Get the start of the word let start = movement::find_preceding_boundary_in_line( map, @@ -166,10 +206,14 @@ fn around_next_word( found }); - start..end + Some(start..end) } -fn sentence(map: &DisplaySnapshot, relative_to: DisplayPoint, around: bool) -> Range { +fn sentence( + map: &DisplaySnapshot, + relative_to: DisplayPoint, + around: bool, +) -> Option> { let mut start = None; let mut previous_end = relative_to; @@ -220,7 +264,7 @@ fn sentence(map: &DisplaySnapshot, relative_to: DisplayPoint, around: bool) -> R range = expand_to_include_whitespace(map, range, false); } - range + Some(range) } fn is_possible_sentence_start(character: char) -> bool { @@ -306,6 +350,83 @@ fn expand_to_include_whitespace( range } +fn surrounding_markers( + map: &DisplaySnapshot, + relative_to: DisplayPoint, + around: bool, + search_across_lines: bool, + start_marker: char, + end_marker: char, +) -> Option> { + let mut matched_ends = 0; + let mut start = None; + for (char, mut point) in map.reverse_chars_at(relative_to) { + if char == start_marker { + if matched_ends > 0 { + matched_ends -= 1; + } else { + if around { + start = Some(point) + } else { + *point.column_mut() += char.len_utf8() as u32; + start = Some(point); + } + break; + } + } else if char == end_marker { + matched_ends += 1; + } else if char == '\n' && !search_across_lines { + break; + } + } + + let mut matched_starts = 0; + let mut end = None; + for (char, mut point) in map.chars_at(relative_to) { + if char == end_marker { + if start.is_none() { + break; + } + + if matched_starts > 0 { + matched_starts -= 1; + } else { + if around { + *point.column_mut() += char.len_utf8() as u32; + end = Some(point); + } else { + end = Some(point); + } + + break; + } + } + + if char == start_marker { + if start.is_none() { + if around { + start = Some(point); + } else { + *point.column_mut() += char.len_utf8() as u32; + start = Some(point); + } + } else { + matched_starts += 1; + } + } + + if char == '\n' && !search_across_lines { + break; + } + } + + if let (Some(start), Some(end)) = (start, end) { + Some(start..end) + } else { + None + } +} + #[cfg(test)] mod test { use indoc::indoc; @@ -459,4 +580,61 @@ mod test { // cx.assert_all(sentence_example).await; // } } + + // Test string with "`" for opening surrounders and "'" for closing surrounders + const SURROUNDING_MARKER_STRING: &str = indoc! {" + ˇTh'ˇe ˇ`ˇ'ˇquˇi`ˇck broˇ'wn` + 'ˇfox juˇmps ovˇ`ˇer + the ˇlazy dˇ'ˇoˇ`ˇg"}; + + const SURROUNDING_OBJECTS: &[(char, char)] = &[ + // ('\'', '\''), // Quote, + // ('`', '`'), // Back Quote + // ('"', '"'), // Double Quote + // ('"', '"'), // Double Quote + ('(', ')'), // Parentheses + ('[', ']'), // SquareBrackets + ('{', '}'), // CurlyBrackets + ('<', '>'), // AngleBrackets + ]; + + #[gpui::test] + async fn test_change_surrounding_character_objects(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + + for (start, end) in SURROUNDING_OBJECTS { + let marked_string = SURROUNDING_MARKER_STRING + .replace('`', &start.to_string()) + .replace('\'', &end.to_string()); + + // cx.assert_binding_matches_all(["c", "i", &start.to_string()], &marked_string) + // .await; + cx.assert_binding_matches_all(["c", "i", &end.to_string()], &marked_string) + .await; + // cx.assert_binding_matches_all(["c", "a", &start.to_string()], &marked_string) + // .await; + cx.assert_binding_matches_all(["c", "a", &end.to_string()], &marked_string) + .await; + } + } + + #[gpui::test] + async fn test_delete_surrounding_character_objects(cx: &mut gpui::TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + + for (start, end) in SURROUNDING_OBJECTS { + let marked_string = SURROUNDING_MARKER_STRING + .replace('`', &start.to_string()) + .replace('\'', &end.to_string()); + + // cx.assert_binding_matches_all(["d", "i", &start.to_string()], &marked_string) + // .await; + cx.assert_binding_matches_all(["d", "i", &end.to_string()], &marked_string) + .await; + // cx.assert_binding_matches_all(["d", "a", &start.to_string()], &marked_string) + // .await; + cx.assert_binding_matches_all(["d", "a", &end.to_string()], &marked_string) + .await; + } + } } diff --git a/crates/vim/src/visual.rs b/crates/vim/src/visual.rs index 4fa195a2fa..1351439d7b 100644 --- a/crates/vim/src/visual.rs +++ b/crates/vim/src/visual.rs @@ -60,22 +60,23 @@ pub fn visual_object(object: Object, cx: &mut MutableAppContext) { editor.change_selections(Some(Autoscroll::Fit), cx, |s| { s.move_with(|map, selection| { let head = selection.head(); - let mut range = object.range(map, head, around); - if !range.is_empty() { - if let Some((_, end)) = map.reverse_chars_at(range.end).next() { - range.end = end; - } + if let Some(mut range) = object.range(map, head, around) { + if !range.is_empty() { + if let Some((_, end)) = map.reverse_chars_at(range.end).next() { + range.end = end; + } - if selection.is_empty() { - selection.start = range.start; - selection.end = range.end; - } else if selection.reversed { - selection.start = range.start; - } else { - selection.end = range.end; + if selection.is_empty() { + selection.start = range.start; + selection.end = range.end; + } else if selection.reversed { + selection.start = range.start; + } else { + selection.end = range.end; + } } } - }) + }); }); }); } diff --git a/crates/vim/test_data/test_change_surrounding_character_objects.json b/crates/vim/test_data/test_change_surrounding_character_objects.json new file mode 100644 index 0000000000..8a66f5b144 --- /dev/null +++ b/crates/vim/test_data/test_change_surrounding_character_objects.json @@ -0,0 +1 @@ +[{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"Th)e ()qui()wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th)e ()qui()wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th)e ()qui()wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th)e ()qui()wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov()o(g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov()o(g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov()o(g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov()o(g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov()o(g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov()o(g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Th)e qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Insert"},{"Text":"Th)e qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Insert"},{"Text":"Th)e qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Insert"},{"Text":"Th)e ()quiwn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th)e ()quiwn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th)e ()quiwn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th)e ()quiwn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ovo(g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ovo(g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ovo(g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ovo(g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ovo(g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ovo(g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"Th)e ()qui(ck bro)wn(\n)fox jumps ov(er\nthe lazy d)o(g"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"Th]e []qui[]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th]e []qui[]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th]e []qui[]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th]e []qui[]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[]o[g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[]o[g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[]o[g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[]o[g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[]o[g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[]o[g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Th]e qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Insert"},{"Text":"Th]e qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Insert"},{"Text":"Th]e qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Insert"},{"Text":"Th]e []quiwn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th]e []quiwn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th]e []quiwn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th]e []quiwn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ovo[g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ovo[g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ovo[g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ovo[g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ovo[g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ovo[g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"Th]e []qui[ck bro]wn[\n]fox jumps ov[er\nthe lazy d]o[g"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,6],"end":[0,6]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,11],"end":[0,11]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{}o{g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{}o{g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{}o{g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{}o{g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{}o{g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{}o{g"},{"Mode":"Insert"},{"Selection":{"start":[1,14],"end":[1,14]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Normal"},{"Selection":{"start":[0,0],"end":[0,0]}},{"Mode":"Normal"},{"Text":"Th}e qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Insert"},{"Text":"Th}e qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Insert"},{"Text":"Th}e qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,5],"end":[0,5]}},{"Mode":"Insert"},{"Text":"Th}e {}quiwn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th}e {}quiwn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th}e {}quiwn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th}e {}quiwn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Insert"},{"Selection":{"start":[0,10],"end":[0,10]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ovo{g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ovo{g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ovo{g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ovo{g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ovo{g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ovo{g"},{"Mode":"Insert"},{"Selection":{"start":[1,13],"end":[1,13]}},{"Mode":"Insert"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Normal"},{"Selection":{"start":[2,11],"end":[2,11]}},{"Mode":"Normal"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Normal"},{"Selection":{"start":[2,12],"end":[2,12]}},{"Mode":"Normal"},{"Text":"Th}e {}qui{ck bro}wn{\n}fox jumps ov{er\nthe lazy d}o{g"},{"Mode":"Normal"},{"Selection":{"start":[2,13],"end":[2,13]}},{"Mode":"Normal"},{"Text":"Th>e <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>qui<>wn<\n>fox jumps ovoe <>qui<>wn<\n>fox jumps ovoe <>qui<>wn<\n>fox jumps ovoe <>qui<>wn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe quiwn<\n>fox jumps ovoe quiwn<\n>fox jumps ovoe quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>qui<>wn<\n>fox jumps ovoe <>qui<>wn<\n>fox jumps ovoe <>qui<>wn<\n>fox jumps ovoe <>qui<>wn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ov<>oe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe quiwn<\n>fox jumps ovoe quiwn<\n>fox jumps ovoe quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovoe <>quiwn<\n>fox jumps ovo Date: Tue, 11 Oct 2022 18:25:36 -0400 Subject: [PATCH 21/24] Add amplitude release (#1720) Co-authored-by: Max Brunsfeld --- ...iscord_webhook.yml => release_actions.yml} | 17 +++++++++-- .gitignore | 3 +- script/amplitude_release/main.py | 30 +++++++++++++++++++ script/amplitude_release/requirements.txt | 1 + 4 files changed, 47 insertions(+), 4 deletions(-) rename .github/workflows/{discord_webhook.yml => release_actions.yml} (50%) create mode 100644 script/amplitude_release/main.py create mode 100644 script/amplitude_release/requirements.txt diff --git a/.github/workflows/discord_webhook.yml b/.github/workflows/release_actions.yml similarity index 50% rename from .github/workflows/discord_webhook.yml rename to .github/workflows/release_actions.yml index b71d451f5b..8d2788e6f0 100644 --- a/.github/workflows/discord_webhook.yml +++ b/.github/workflows/release_actions.yml @@ -1,9 +1,9 @@ on: release: types: [published] - + jobs: - message: + discord_release: runs-on: ubuntu-latest steps: - name: Discord Webhook Action @@ -19,4 +19,15 @@ jobs: ### Changelog ${{ github.event.release.body }} - ``` \ No newline at end of file + ``` + amplitude_release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: "3.10.5" + architecture: "x64" + cache: "pip" + - run: pip install -r script/amplitude_release/requirements.txt + - run: python script/amplitude_release/main.py ${{ github.event.release.tag_name }} ${{ secrets.ZED_AMPLITUDE_API_KEY }} ${{ secrets.ZED_AMPLITUDE_SECRET_KEY }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5e6963ba8b..2d721f8ad2 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ /vendor/bin /assets/themes/*.json /assets/themes/internal/*.json -/assets/themes/experiments/*.json \ No newline at end of file +/assets/themes/experiments/*.json +**/venv \ No newline at end of file diff --git a/script/amplitude_release/main.py b/script/amplitude_release/main.py new file mode 100644 index 0000000000..160e40b66c --- /dev/null +++ b/script/amplitude_release/main.py @@ -0,0 +1,30 @@ +import datetime +import sys + +from amplitude_python_sdk.v2.clients.releases_client import ReleasesAPIClient +from amplitude_python_sdk.v2.models.releases import Release + + +def main(): + version = sys.argv[1] + version = version.removeprefix("v") + + api_key = sys.argv[2] + secret_key = sys.argv[3] + + current_datetime = datetime.datetime.now(datetime.timezone.utc) + current_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S") + + release = Release( + title=version, + version=version, + release_start=current_datetime, + created_by="GitHub Release Workflow", + chart_visibility=True + ) + + ReleasesAPIClient(api_key=api_key, secret_key=secret_key).create(release) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/script/amplitude_release/requirements.txt b/script/amplitude_release/requirements.txt new file mode 100644 index 0000000000..7ed3ea6515 --- /dev/null +++ b/script/amplitude_release/requirements.txt @@ -0,0 +1 @@ +amplitude-python-sdk==0.2.0 \ No newline at end of file From bc2a6e429ca3444130210765fa3a234af1ba52d5 Mon Sep 17 00:00:00 2001 From: Joseph T Lyons Date: Tue, 11 Oct 2022 18:31:17 -0400 Subject: [PATCH 22/24] Use tag_name for Discord release message --- .github/workflows/release_actions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release_actions.yml b/.github/workflows/release_actions.yml index 8d2788e6f0..9a3b2376df 100644 --- a/.github/workflows/release_actions.yml +++ b/.github/workflows/release_actions.yml @@ -11,7 +11,7 @@ jobs: with: webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }} content: | - 📣 Zed ${{ github.event.release.name }} was just released! + 📣 Zed ${{ github.event.release.tag_name }} was just released! Restart your Zed or head to https://zed.dev/releases to grab it. From d1f1eb9a2900b290a13df0deaac40b8a76e4a224 Mon Sep 17 00:00:00 2001 From: K Simmons Date: Tue, 11 Oct 2022 16:26:28 -0700 Subject: [PATCH 23/24] Add count argument to motion functions and add ability to jump to a given line --- Cargo.lock | 1284 ++++++++++++----------------- crates/vim/src/motion.rs | 171 ++-- crates/vim/src/normal.rs | 55 +- crates/vim/src/normal/change.rs | 2 +- crates/vim/src/object.rs | 6 +- crates/vim/src/visual.rs | 8 +- crates/vim/test_data/test_gg.json | 2 +- 7 files changed, 665 insertions(+), 863 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aa9ad80001..0448538c35 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,7 @@ version = "0.1.0" dependencies = [ "auto_update", "editor", - "futures 0.3.24", + "futures", "gpui", "language", "project", @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.19" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" dependencies = [ "memchr", ] @@ -113,15 +113,6 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec8ad6edb4840b78c5c3d88de606b22252d552b55f3a4699fbb10fc070ec3049" -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - [[package]] name = "ansi_term" version = "0.12.1" @@ -133,9 +124,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.65" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" +checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" [[package]] name = "arrayref" @@ -157,9 +148,9 @@ checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] name = "ascii" -version = "1.1.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" +checksum = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109" [[package]] name = "assets" @@ -183,33 +174,20 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.7.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" +checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319" dependencies = [ "concurrent-queue", "event-listener", "futures-core", ] -[[package]] -name = "async-compat" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b48b4ff0c2026db683dea961cd8ea874737f56cffca86fa84415eaddc51c00d" -dependencies = [ - "futures-core", - "futures-io", - "once_cell", - "pin-project-lite 0.2.9", - "tokio", -] - [[package]] name = "async-compression" -version = "0.3.15" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +checksum = "345fd392ab01f746c717b1357165b76f0b67a60192007b234058c9045fdcf695" dependencies = [ "flate2", "futures-core", @@ -234,23 +212,21 @@ dependencies = [ [[package]] name = "async-fs" -version = "1.6.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +checksum = "8b3ca4f8ff117c37c278a2f7415ce9be55560b846b5bc4412aaa5d29c1c3dae2" dependencies = [ "async-lock", - "autocfg 1.1.0", "blocking", "futures-lite", ] [[package]] name = "async-io" -version = "1.9.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7" +checksum = "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07" dependencies = [ - "autocfg 1.1.0", "concurrent-queue", "futures-lite", "libc", @@ -275,12 +251,11 @@ dependencies = [ [[package]] name = "async-net" -version = "1.7.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f" +checksum = "5373304df79b9b4395068fb080369ec7178608827306ce4d081cba51cac551df" dependencies = [ "async-io", - "autocfg 1.1.0", "blocking", "futures-lite", ] @@ -290,18 +265,17 @@ name = "async-pipe" version = "0.1.3" source = "git+https://github.com/zed-industries/async-pipe-rs?rev=82d00a04211cf4e1236029aa03e6b6ce2a74c553#82d00a04211cf4e1236029aa03e6b6ce2a74c553" dependencies = [ - "futures 0.3.24", + "futures", "log", ] [[package]] name = "async-process" -version = "1.5.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" +checksum = "cf2c06e30a24e8c78a3987d07f0930edf76ef35e027e7bdb063fccafdad1f60c" dependencies = [ "async-io", - "autocfg 1.1.0", "blocking", "cfg-if 1.0.0", "event-listener", @@ -364,9 +338,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.57" +version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" +checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" dependencies = [ "proc-macro2", "quote", @@ -461,15 +435,15 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.5.16" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e3356844c4d6a6d6467b8da2cffb4a2820be256f50a3a386c9d152bab31043" +checksum = "c2cc6e8e8c993cb61a005fab8c1e5093a29199b7253b05a6883999312935c1ff" dependencies = [ "async-trait", "axum-core", "base64", "bitflags", - "bytes 1.2.1", + "bytes", "futures-util", "headers", "http", @@ -496,28 +470,26 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.2.8" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f0c0a60006f2a293d82d571f635042a72edf927539b7685bd62d361963839b" +checksum = "cf4d047478b986f14a13edad31a009e2e05cb241f9805d0d75e4cba4e129ad4d" dependencies = [ "async-trait", - "bytes 1.2.1", + "bytes", "futures-util", "http", "http-body", "mime", - "tower-layer", - "tower-service", ] [[package]] name = "axum-extra" -version = "0.3.7" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69034b3b0fd97923eee2ce8a47540edb21e07f48f87f67d44bb4271cec622bdb" +checksum = "277c75e6c814b061ae4947d02335d9659db9771b9950cca670002ae986372f44" dependencies = [ "axum", - "bytes 1.2.1", + "bytes", "futures-util", "http", "mime", @@ -533,16 +505,16 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.66" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" +checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" dependencies = [ "addr2line", "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.5.4", - "object 0.29.0", + "miniz_oxide 0.5.3", + "object", "rustc-demangle", ] @@ -554,9 +526,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "base64ct" -version = "1.5.2" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2b2456fd614d856680dcd9fcc660a51a820fa09daef2e49772b56a193c8474" +checksum = "3bdca834647821e0b13d9539a8634eb62d3501b6b6c2cec1722786ee6671b851" [[package]] name = "bincode" @@ -613,9 +585,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" dependencies = [ "generic-array", ] @@ -673,15 +645,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" +checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" [[package]] name = "bytemuck" -version = "1.12.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" +checksum = "c53dfa917ec274df8ed3c572698f381a24eef2efba9492d797301b72b6db408a" [[package]] name = "byteorder" @@ -689,16 +661,6 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" -[[package]] -name = "bytes" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] - [[package]] name = "bytes" version = "1.2.1" @@ -722,6 +684,20 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" +[[package]] +name = "call" +version = "0.1.0" +dependencies = [ + "anyhow", + "client", + "collections", + "futures", + "gpui", + "postage", + "project", + "util", +] + [[package]] name = "cap-fs-ext" version = "0.24.4" @@ -796,12 +772,12 @@ dependencies = [ "bindgen", "block", "byteorder", - "bytes 1.2.1", + "bytes", "cocoa", "core-foundation", "core-graphics", "foreign-types", - "futures 0.3.24", + "futures", "gpui", "hmac 0.12.1", "jwt", @@ -812,7 +788,7 @@ dependencies = [ "parking_lot 0.11.2", "postage", "serde", - "sha2 0.10.6", + "sha2 0.10.2", "simplelog", ] @@ -863,23 +839,21 @@ dependencies = [ "postage", "settings", "theme", - "time 0.3.15", + "time 0.3.11", "util", "workspace", ] [[package]] name = "chrono" -version = "0.4.22" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" dependencies = [ - "iana-time-zone", - "js-sys", + "libc", "num-integer", "num-traits", "time 0.1.44", - "wasm-bindgen", "winapi 0.3.9", ] @@ -900,9 +874,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.4.0" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" +checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b" dependencies = [ "glob", "libc", @@ -926,9 +900,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.22" +version = "3.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750" +checksum = "190814073e85d238f31ff738fcb0bf6910cedeb73376c87cd69291028966fd83" dependencies = [ "atty", "bitflags", @@ -938,14 +912,14 @@ dependencies = [ "once_cell", "strsim 0.10.0", "termcolor", - "textwrap 0.15.1", + "textwrap 0.15.0", ] [[package]] name = "clap_derive" -version = "3.2.18" +version = "3.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" +checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -968,7 +942,7 @@ name = "cli" version = "0.1.0" dependencies = [ "anyhow", - "clap 3.2.22", + "clap 3.2.8", "core-foundation", "core-services", "dirs 3.0.2", @@ -986,7 +960,7 @@ dependencies = [ "async-tungstenite", "collections", "db", - "futures 0.3.24", + "futures", "gpui", "image", "isahc", @@ -1001,11 +975,11 @@ dependencies = [ "sum_tree", "tempfile", "thiserror", - "time 0.3.15", + "time 0.3.11", "tiny_http", "url", "util", - "uuid 1.2.1", + "uuid 1.1.2", ] [[package]] @@ -1053,16 +1027,6 @@ dependencies = [ "objc", ] -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - [[package]] name = "collab" version = "0.1.0" @@ -1073,14 +1037,15 @@ dependencies = [ "axum", "axum-extra", "base64", - "clap 3.2.22", + "call", + "clap 3.2.8", "client", "collections", "ctor", "editor", "env_logger", "envy", - "futures 0.3.24", + "futures", "git", "gpui", "hyper", @@ -1103,7 +1068,7 @@ dependencies = [ "sha-1 0.9.8", "sqlx", "theme", - "time 0.3.15", + "time 0.3.11", "tokio", "tokio-tungstenite", "toml", @@ -1117,6 +1082,31 @@ dependencies = [ "workspace", ] +[[package]] +name = "collab_ui" +version = "0.1.0" +dependencies = [ + "anyhow", + "call", + "client", + "clock", + "collections", + "editor", + "futures", + "fuzzy", + "gpui", + "log", + "menu", + "picker", + "postage", + "project", + "serde", + "settings", + "theme", + "util", + "workspace", +] + [[package]] name = "collections" version = "0.1.0" @@ -1151,61 +1141,13 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "1.2.4" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" +checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" dependencies = [ "cache-padded", ] -[[package]] -name = "contacts_panel" -version = "0.1.0" -dependencies = [ - "anyhow", - "client", - "collections", - "editor", - "futures 0.3.24", - "fuzzy", - "gpui", - "language", - "log", - "menu", - "picker", - "postage", - "project", - "serde", - "settings", - "theme", - "util", - "workspace", -] - -[[package]] -name = "contacts_status_item" -version = "0.1.0" -dependencies = [ - "anyhow", - "client", - "collections", - "editor", - "futures 0.3.24", - "fuzzy", - "gpui", - "language", - "log", - "menu", - "picker", - "postage", - "project", - "serde", - "settings", - "theme", - "util", - "workspace", -] - [[package]] name = "context_menu" version = "0.1.0" @@ -1286,27 +1228,27 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" dependencies = [ "libc", ] [[package]] name = "cranelift-bforest" -version = "0.85.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "749d0d6022c9038dccf480bdde2a38d435937335bf2bb0f14e815d94517cdce8" +checksum = "7901fbba05decc537080b07cb3f1cadf53be7b7602ca8255786288a8692ae29a" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.85.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94370cc7b37bf652ccd8bb8f09bd900997f7ccf97520edfc75554bb5c4abbea" +checksum = "37ba1b45d243a4a28e12d26cd5f2507da74e77c45927d40de8b6ffbf088b46b5" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", @@ -1322,33 +1264,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.85.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a3cea8fdab90e44018c5b9a1dfd460d8ee265ac354337150222a354628bdb6" +checksum = "54cc30032171bf230ce22b99c07c3a1de1221cb5375bd6dbe6dbe77d0eed743c" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.85.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ac72f76f2698598951ab26d8c96eaa854810e693e7dd52523958b5909fde6b2" +checksum = "a23f2672426d2bb4c9c3ef53e023076cfc4d8922f0eeaebaf372c92fae8b5c69" [[package]] name = "cranelift-entity" -version = "0.85.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09eaeacfcd2356fe0e66b295e8f9d59fdd1ac3ace53ba50de14d628ec902f72d" +checksum = "886c59a5e0de1f06dbb7da80db149c75de10d5e2caca07cdd9fef8a5918a6336" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.85.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba69c9980d5ffd62c18a2bde927855fcd7c8dc92f29feaf8636052662cbd99c" +checksum = "ace74eeca11c439a9d4ed1a5cb9df31a54cd0f7fbddf82c8ce4ea8e9ad2a8fe0" dependencies = [ "cranelift-codegen", "log", @@ -1358,15 +1300,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.85.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2920dc1e05cac40304456ed3301fde2c09bd6a9b0210bcfa2f101398d628d5b" +checksum = "db1ae52a5cc2cad0d86fdd3dcb16b7217d2f1e65ab4f5814aa4f014ad335fa43" [[package]] name = "cranelift-native" -version = "0.85.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04dfa45f9b2a6f587c564d6b63388e00cd6589d2df6ea2758cf79e1a13285e6" +checksum = "dadcfb7852900780d37102bce5698bcd401736403f07b52e714ff7a180e0e22f" dependencies = [ "cranelift-codegen", "libc", @@ -1375,9 +1317,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.85.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31a46513ae6f26f3f267d8d75b5373d555fbbd1e68681f348d99df43f747ec54" +checksum = "c84e3410960389110b88f97776f39f6d2c8becdaa4cd59e390e6b76d9d0e7190" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1425,46 +1367,47 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.12", + "crossbeam-utils 0.8.10", ] [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", - "crossbeam-utils 0.8.12", + "crossbeam-utils 0.8.10", ] [[package]] name = "crossbeam-epoch" -version = "0.9.11" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" +checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" dependencies = [ "autocfg 1.1.0", "cfg-if 1.0.0", - "crossbeam-utils 0.8.12", + "crossbeam-utils 0.8.10", "memoffset", + "once_cell", "scopeguard", ] [[package]] name = "crossbeam-queue" -version = "0.3.6" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd42583b04998a5363558e5f9291ee5a5ff6b49944332103f251e7479a82aa7" +checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.12", + "crossbeam-utils 0.8.10", ] [[package]] @@ -1480,18 +1423,19 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.12" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" dependencies = [ "cfg-if 1.0.0", + "once_cell", ] [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "5999502d32b9c48d492abe66392408144895020ec4709e549e840799f3bb74c0" dependencies = [ "generic-array", "typenum", @@ -1509,9 +1453,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.23" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" +checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c" dependencies = [ "quote", "syn", @@ -1519,9 +1463,9 @@ dependencies = [ [[package]] name = "curl" -version = "0.4.44" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22" +checksum = "37d855aeef205b43f65a5001e0997d81f8efca7badad4fad7d897aa7f0d0651f" dependencies = [ "curl-sys", "libc", @@ -1534,9 +1478,9 @@ dependencies = [ [[package]] name = "curl-sys" -version = "0.4.56+curl-7.83.1" +version = "0.4.55+curl-7.83.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6093e169dd4de29e468fa649fbae11cdcd5551c81fe5bf1b0677adad7ef3d26f" +checksum = "23734ec77368ec583c2e61dd3f0b0e5c98b93abe6d2a004ca06b91dd7e3e2762" dependencies = [ "cc", "libc", @@ -1548,50 +1492,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "cxx" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f39818dcfc97d45b03953c1292efc4e80954e1583c4aa770bac1383e2310a4" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e580d70777c116df50c390d1211993f62d40302881e54d4b79727acb83d0199" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56a46460b88d1cec95112c8c363f0e2c39afdb237f60583b0b36343bf627ea9c" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747b608fecf06b0d72d440f27acc99288207324b793be2c17991839f3d4995ea" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "data-url" version = "0.1.1" @@ -1626,13 +1526,13 @@ dependencies = [ [[package]] name = "dhat" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0684eaa19a59be283a6f99369917b679bd4d1d06604b2eb2e2f87b4bbd67668d" +checksum = "47003dc9f6368a88e85956c3b2573a7e6872746a3e5d762a8885da3a136a0381" dependencies = [ "backtrace", "lazy_static", - "parking_lot 0.12.1", + "parking_lot 0.11.2", "rustc-hash", "serde", "serde_json", @@ -1671,11 +1571,11 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.5" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.2", "crypto-common", "subtle", ] @@ -1741,13 +1641,10 @@ dependencies = [ ] [[package]] -name = "dotenvy" -version = "0.15.5" +name = "dotenv" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9155c8f4dc55c7470ae9da3f63c6785245093b3f6aeb0f5bf2e968efbba314" -dependencies = [ - "dirs 4.0.0", -] +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" [[package]] name = "drag_and_drop" @@ -1771,9 +1668,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.9" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" +checksum = "140206b78fb2bc3edbcfc9b5ccbd0b30699cfe8d348b8b31b330e47df5291a5a" [[package]] name = "easy-parallel" @@ -1792,7 +1689,7 @@ dependencies = [ "context_menu", "ctor", "env_logger", - "futures 0.3.24", + "futures", "fuzzy", "git", "gpui", @@ -1827,9 +1724,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" [[package]] name = "encoding_rs" @@ -1842,9 +1739,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" +checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" dependencies = [ "atty", "humantime", @@ -1864,9 +1761,9 @@ dependencies = [ [[package]] name = "erased-serde" -version = "0.3.23" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54558e0ba96fbe24280072642eceb9d7d442e32c7ec0ea9e7ecd7b4ea2cf4e11" +checksum = "81d013529d5574a60caeda29e179e695125448e5de52e3874f7b4c1d7360e18e" dependencies = [ "serde", ] @@ -1913,9 +1810,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "2.5.3" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" [[package]] name = "expat-sys" @@ -1935,9 +1832,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.8.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" dependencies = [ "instant", ] @@ -1985,7 +1882,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ "crc32fast", - "miniz_oxide 0.5.4", + "miniz_oxide 0.5.3", ] [[package]] @@ -2058,10 +1955,11 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" dependencies = [ + "matches", "percent-encoding", ] @@ -2140,15 +2038,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.1.31" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" - -[[package]] -name = "futures" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" +checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" dependencies = [ "futures-channel", "futures-core", @@ -2161,9 +2053,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.24" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" dependencies = [ "futures-core", "futures-sink", @@ -2171,15 +2063,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.24" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" [[package]] name = "futures-executor" -version = "0.3.24" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" +checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" dependencies = [ "futures-core", "futures-task", @@ -2199,9 +2091,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.24" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" +checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" [[package]] name = "futures-lite" @@ -2220,9 +2112,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.24" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" +checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ "proc-macro2", "quote", @@ -2231,23 +2123,22 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.24" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" [[package]] name = "futures-task" -version = "0.3.24" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" [[package]] name = "futures-util" -version = "0.3.24" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ - "futures 0.1.31", "futures-channel", "futures-core", "futures-io", @@ -2258,7 +2149,6 @@ dependencies = [ "pin-project-lite 0.2.9", "pin-utils", "slab", - "tokio-io", ] [[package]] @@ -2280,9 +2170,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" dependencies = [ "typenum", "version_check", @@ -2322,9 +2212,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.26.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" dependencies = [ "fallible-iterator", "indexmap", @@ -2339,7 +2229,7 @@ dependencies = [ "async-trait", "clock", "collections", - "futures 0.3.24", + "futures", "git2", "lazy_static", "log", @@ -2417,10 +2307,9 @@ dependencies = [ "etagere", "font-kit", "foreign-types", - "futures 0.3.24", + "futures", "gpui_macros", "image", - "itertools", "lazy_static", "log", "media", @@ -2443,7 +2332,7 @@ dependencies = [ "smallvec", "smol", "sum_tree", - "time 0.3.15", + "time 0.3.11", "tiny-skia", "tree-sitter", "usvg", @@ -2462,11 +2351,11 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.14" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" +checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" dependencies = [ - "bytes 1.2.1", + "bytes", "fnv", "futures-core", "futures-sink", @@ -2475,7 +2364,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.4", + "tokio-util 0.7.3", "tracing", ] @@ -2490,36 +2379,36 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.3" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" dependencies = [ "ahash", ] [[package]] name = "hashlink" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa" +checksum = "d452c155cb93fecdfb02a73dd57b5d8e442c2063bd7aac72f1bc5e4263a43086" dependencies = [ - "hashbrown 0.12.3", + "hashbrown 0.12.1", ] [[package]] name = "headers" -version = "0.3.8" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" +checksum = "4cff78e5788be1e0ab65b04d306b2ed5092c815ec97ec70f4ebd5aee158aa55d" dependencies = [ "base64", "bitflags", - "bytes 1.2.1", + "bytes", "headers-core", "http", "httpdate", "mime", - "sha1", + "sha-1 0.10.0", ] [[package]] @@ -2560,9 +2449,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.2.6" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +checksum = "d37fb7dc756218a0559bfc21e4381f03cbb696cdaf959e7e95e927496f0564cd" dependencies = [ "libc", ] @@ -2598,7 +2487,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.5", + "digest 0.10.3", ] [[package]] @@ -2607,7 +2496,7 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ - "bytes 1.2.1", + "bytes", "fnv", "itoa", ] @@ -2618,7 +2507,7 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ - "bytes 1.2.1", + "bytes", "http", "pin-project-lite 0.2.9", ] @@ -2631,9 +2520,9 @@ checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" [[package]] name = "httparse" -version = "1.8.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" [[package]] name = "httpdate" @@ -2649,11 +2538,11 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.20" +version = "0.14.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" +checksum = "42dc3c131584288d375f2d07f822b0cb012d8c6fb899a5b9fdb3cb7eb9b6004f" dependencies = [ - "bytes 1.2.1", + "bytes", "futures-channel", "futures-core", "futures-util", @@ -2689,43 +2578,20 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.2.1", + "bytes", "hyper", "native-tls", "tokio", "tokio-native-tls", ] -[[package]] -name = "iana-time-zone" -version = "0.1.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "winapi 0.3.9", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde6edd6cef363e9359ed3c98ba64590ba9eecba2293eb5a723ab32aee8926aa" -dependencies = [ - "cxx", - "cxx-build", -] - [[package]] name = "idna" -version = "0.3.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" dependencies = [ + "matches", "unicode-bidi", "unicode-normalization", ] @@ -2736,7 +2602,7 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" dependencies = [ - "crossbeam-utils 0.8.12", + "crossbeam-utils 0.8.10", "globset", "lazy_static", "log", @@ -2774,15 +2640,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg 1.1.0", - "hashbrown 0.12.3", + "hashbrown 0.12.1", "serde", ] [[package]] name = "indoc" -version = "1.0.7" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3" +checksum = "05a0bd019339e5d968b37855180087b7b9d512c5046fbd244cf8c95687927d6e" [[package]] name = "instant" @@ -2853,7 +2719,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c89a757e762896bdbdfadf2860d0f8b0cea5e363d8cf3e7bdfeb63d1d976352" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi 0.2.3", "io-lifetimes", "rustix", "winapi 0.3.9", @@ -2867,7 +2733,7 @@ checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9" dependencies = [ "async-channel", "castaway", - "crossbeam-utils 0.8.12", + "crossbeam-utils 0.8.10", "curl", "curl-sys", "encoding_rs", @@ -2888,18 +2754,18 @@ dependencies = [ [[package]] name = "itertools" -version = "0.10.5" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.4" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" [[package]] name = "ittapi-rs" @@ -2912,9 +2778,9 @@ dependencies = [ [[package]] name = "jobserver" -version = "0.1.25" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" dependencies = [ "libc", ] @@ -2943,9 +2809,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" dependencies = [ "wasm-bindgen", ] @@ -2964,11 +2830,11 @@ checksum = "6204285f77fe7d9784db3fdc449ecce1a0114927a51d5a41c4c7a292011c015f" dependencies = [ "base64", "crypto-common", - "digest 0.10.5", + "digest 0.10.3", "hmac 0.12.1", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.2", ] [[package]] @@ -3002,7 +2868,7 @@ dependencies = [ "collections", "ctor", "env_logger", - "futures 0.3.24", + "futures", "fuzzy", "git", "gpui", @@ -3057,9 +2923,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.134" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" [[package]] name = "libgit2-sys" @@ -3085,9 +2951,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.5" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565" +checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" [[package]] name = "libnghttp2-sys" @@ -3134,15 +3000,6 @@ dependencies = [ "safemem", ] -[[package]] -name = "link-cplusplus" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" -dependencies = [ - "cc", -] - [[package]] name = "linked-hash-map" version = "0.5.6" @@ -3172,7 +3029,7 @@ dependencies = [ "anyhow", "core-foundation", "core-graphics", - "futures 0.3.24", + "futures", "media", "parking_lot 0.11.2", "serde", @@ -3181,9 +3038,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" dependencies = [ "autocfg 1.1.0", "scopeguard", @@ -3209,7 +3066,7 @@ dependencies = [ "collections", "ctor", "env_logger", - "futures 0.3.24", + "futures", "gpui", "log", "lsp-types", @@ -3288,11 +3145,11 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "md-5" -version = "0.10.5" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +checksum = "658646b21e0b72f7866c7038ab086d3d5e1cd6271f060fd37defb241949d0582" dependencies = [ - "digest 0.10.5", + "digest 0.10.3", ] [[package]] @@ -3302,7 +3159,7 @@ dependencies = [ "anyhow", "bindgen", "block", - "bytes 1.2.1", + "bytes", "core-foundation", "foreign-types", "metal", @@ -3396,9 +3253,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.5.4" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" dependencies = [ "adler", ] @@ -3572,16 +3429,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi 0.3.9", -] - [[package]] name = "num-bigint" version = "0.4.3" @@ -3672,21 +3519,6 @@ dependencies = [ "libc", ] -[[package]] -name = "nvim-rs" -version = "0.5.0" -source = "git+https://github.com/KillTheMule/nvim-rs?branch=master#d701c2790dcb2579f8f4d7003ba30e2100a7d25b" -dependencies = [ - "async-trait", - "futures 0.3.24", - "log", - "parity-tokio-ipc", - "rmp", - "rmpv", - "tokio", - "tokio-util 0.7.4", -] - [[package]] name = "objc" version = "0.2.7" @@ -3718,20 +3550,11 @@ dependencies = [ "memchr", ] -[[package]] -name = "object" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" -version = "1.15.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" +checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" [[package]] name = "opaque-debug" @@ -3741,9 +3564,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.42" +version = "0.10.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" +checksum = "fb81a6430ac911acb25fe5ac8f1d2af1b4ea8a4fdfda0f1ee4292af2e2d8eb0e" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -3773,9 +3596,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.76" +version = "0.9.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5230151e44c0f05157effb743e8d517472843121cf9243e8b81393edb5acd9ce" +checksum = "835363342df5fba8354c5b453325b110ffd54044e588c539cf2f20a8014e4cb1" dependencies = [ "autocfg 1.1.0", "cc", @@ -3795,9 +3618,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.3.0" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" +checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa" [[package]] name = "outline" @@ -3816,26 +3639,6 @@ dependencies = [ "workspace", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "parity-tokio-ipc" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" -dependencies = [ - "futures 0.3.24", - "libc", - "log", - "rand 0.7.3", - "tokio", - "winapi 0.3.9", -] - [[package]] name = "parking" version = "2.0.0" @@ -3897,15 +3700,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77e0b28ace46c5a396546bcf443bf422b57049617433d8854227352a4a9b24e7" dependencies = [ "base64ct", - "rand_core 0.6.4", + "rand_core 0.6.3", "subtle", ] [[package]] name = "paste" -version = "1.0.9" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" +checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" [[package]] name = "pathfinder_color" @@ -3963,17 +3766,16 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] name = "pest" -version = "2.4.0" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" +checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" dependencies = [ - "thiserror", "ucd-trie", ] @@ -4011,18 +3813,18 @@ checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468" [[package]] name = "pin-project" -version = "1.0.12" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" dependencies = [ "proc-macro2", "quote", @@ -4063,7 +3865,7 @@ dependencies = [ "indexmap", "line-wrap", "serde", - "time 0.3.15", + "time 0.3.11", "xml-rs", ] @@ -4116,11 +3918,10 @@ dependencies = [ [[package]] name = "polling" -version = "2.3.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" +checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" dependencies = [ - "autocfg 1.1.0", "cfg-if 1.0.0", "libc", "log", @@ -4142,7 +3943,7 @@ checksum = "a63d25391d04a097954b76aba742b6b5b74f213dfe3dbaeeb36e8ddc1c657f0b" dependencies = [ "atomic", "crossbeam-queue", - "futures 0.3.24", + "futures", "log", "pin-project", "pollster", @@ -4182,9 +3983,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.46" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" +checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" dependencies = [ "unicode-ident", ] @@ -4212,7 +4013,7 @@ dependencies = [ "collections", "db", "fsevent", - "futures 0.3.24", + "futures", "fuzzy", "git", "gpui", @@ -4232,7 +4033,7 @@ dependencies = [ "serde", "serde_json", "settings", - "sha2 0.10.6", + "sha2 0.10.2", "similar", "smol", "sum_tree", @@ -4250,7 +4051,7 @@ version = "0.1.0" dependencies = [ "context_menu", "editor", - "futures 0.3.24", + "futures", "gpui", "menu", "postage", @@ -4269,7 +4070,7 @@ version = "0.1.0" dependencies = [ "anyhow", "editor", - "futures 0.3.24", + "futures", "fuzzy", "gpui", "language", @@ -4287,9 +4088,9 @@ dependencies = [ [[package]] name = "prometheus" -version = "0.13.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c8babc29389186697fe5a2a4859d697825496b83db5d0b65271cdc0488e88c" +checksum = "cface98dfa6d645ea4c789839f176e4b072265d085bfcc48eaa8d137f58d3c39" dependencies = [ "cfg-if 1.0.0", "fnv", @@ -4306,7 +4107,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020" dependencies = [ - "bytes 1.2.1", + "bytes", "prost-derive 0.8.0", ] @@ -4316,7 +4117,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" dependencies = [ - "bytes 1.2.1", + "bytes", "prost-derive 0.9.0", ] @@ -4326,7 +4127,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" dependencies = [ - "bytes 1.2.1", + "bytes", "heck 0.3.3", "itertools", "lazy_static", @@ -4372,30 +4173,30 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" dependencies = [ - "bytes 1.2.1", + "bytes", "prost 0.9.0", ] [[package]] name = "protobuf" -version = "2.28.0" +version = "2.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" +checksum = "cf7e6d18738ecd0902d30d1ad232c9125985a3422929b16c65517b38adc14f96" [[package]] name = "psm" -version = "0.1.21" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "accd89aa18fbf9533a581355a22438101fe9c2ed8c9e2f0dcf520552a3afddf2" dependencies = [ "cc", ] [[package]] name = "pulldown-cmark" -version = "0.9.2" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d9cc634bc78768157b5cbfe988ffcd1dcba95cd2b2f03a88316c08c6d00ed63" +checksum = "34f197a544b0c9ab3ae46c359a7ec9cbbb5c7bf97054266fecb7ead794a181d6" dependencies = [ "bitflags", "memchr", @@ -4404,9 +4205,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.21" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" dependencies = [ "proc-macro2", ] @@ -4445,7 +4246,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", - "rand_core 0.6.4", + "rand_core 0.6.3", ] [[package]] @@ -4465,7 +4266,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", + "rand_core 0.6.3", ] [[package]] @@ -4494,9 +4295,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.4" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ "getrandom 0.2.7", ] @@ -4528,9 +4329,9 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" dependencies = [ - "crossbeam-channel 0.5.6", + "crossbeam-channel 0.5.5", "crossbeam-deque", - "crossbeam-utils 0.8.12", + "crossbeam-utils 0.8.10", "num_cpus", ] @@ -4551,9 +4352,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.16" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" dependencies = [ "bitflags", ] @@ -4630,12 +4431,12 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.12" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" +checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" dependencies = [ "base64", - "bytes 1.2.1", + "bytes", "encoding_rs", "futures-core", "futures-util", @@ -4646,10 +4447,10 @@ dependencies = [ "hyper-tls", "ipnet", "js-sys", + "lazy_static", "log", "mime", "native-tls", - "once_cell", "percent-encoding", "pin-project-lite 0.2.9", "serde", @@ -4683,9 +4484,9 @@ dependencies = [ [[package]] name = "rgb" -version = "0.8.34" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3603b7d71ca82644f79b5a06d1220e9a58ede60bd32255f698cb1af8838b8db3" +checksum = "c3b221de559e4a29df3b957eec92bc0de6bc8eaf6ca9cfed43e5e1d67ff65a34" dependencies = [ "bytemuck", ] @@ -4705,27 +4506,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "rmp" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmpv" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de8813b3a2f95c5138fe5925bfb8784175d88d6bff059ba8ce090aa891319754" -dependencies = [ - "num-traits", - "rmp", -] - [[package]] name = "rocksdb" version = "0.18.0" @@ -4756,7 +4536,7 @@ dependencies = [ "collections", "ctor", "env_logger", - "futures 0.3.24", + "futures", "gpui", "parking_lot 0.11.2", "prost 0.8.0", @@ -4794,9 +4574,9 @@ dependencies = [ [[package]] name = "rust-embed" -version = "6.4.1" +version = "6.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e26934cd67a1da1165efe61cba4047cc1b4a526019da609fcce13a1000afb5fa" +checksum = "9a17e5ac65b318f397182ae94e532da0ba56b88dd1200b774715d36c4943b1c3" dependencies = [ "rust-embed-impl", "rust-embed-utils", @@ -4805,9 +4585,9 @@ dependencies = [ [[package]] name = "rust-embed-impl" -version = "6.3.0" +version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35d7b402e273544cc08e0824aa3404333fab8a90ac43589d3d5b72f4b346e12" +checksum = "94e763e24ba2bf0c72bc6be883f967f794a019fafd1b86ba1daff9c91a7edd30" dependencies = [ "proc-macro2", "quote", @@ -4818,12 +4598,12 @@ dependencies = [ [[package]] name = "rust-embed-utils" -version = "7.3.0" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1669d81dfabd1b5f8e2856b8bbe146c6192b0ba22162edc738ac0a5de18f054" +checksum = "756feca3afcbb1487a1d01f4ecd94cf8ec98ea074c55a69e7136d29fb6166029" dependencies = [ "globset", - "sha2 0.10.6", + "sha2 0.9.9", "walkdir", ] @@ -4891,9 +4671,9 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" +checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" dependencies = [ "base64", ] @@ -4916,9 +4696,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" [[package]] name = "safe_arch" @@ -4965,9 +4745,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.11" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a5fb6c61f29e723026dc8e923d94c694313212abbecbbe5f55a7748eec5b307" +checksum = "1847b767a3d62d95cbf3d8a9f0e421cf57a0d8aa4f411d4b16525afb0284d4ed" dependencies = [ "dyn-clone", "schemars_derive", @@ -4977,9 +4757,9 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.11" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f188d036977451159430f3b8dc82ec76364a42b7e289c2b18a9a18f4470058e9" +checksum = "af4d7e1b012cb3d9129567661a63755ea4b8a7386d339dc945ae187e403c6743" dependencies = [ "proc-macro2", "quote", @@ -4999,12 +4779,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -[[package]] -name = "scratch" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" - [[package]] name = "scrypt" version = "0.7.0" @@ -5070,9 +4844,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.7.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" dependencies = [ "bitflags", "core-foundation", @@ -5117,18 +4891,18 @@ checksum = "5a9f47faea3cad316faa914d013d24f471cd90bfca1a0c70f05a3f42c6441e99" [[package]] name = "serde" -version = "1.0.145" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" +checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.145" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" +checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c" dependencies = [ "proc-macro2", "quote", @@ -5157,9 +4931,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.85" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" +checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" dependencies = [ "indexmap", "itoa", @@ -5169,18 +4943,18 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.8" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "184c643044780f7ceb59104cef98a5a6f12cb2288a7bc701ab93a362b49fd47d" +checksum = "d7868ad3b8196a8a0aea99a8220b124278ee5320a55e4fde97794b6f85b1a377" dependencies = [ "serde", ] [[package]] name = "serde_repr" -version = "0.1.9" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" +checksum = "a2ad84e47328a31223de7fed7a4f5087f2d6ddfe586cf3ca25b7a165bc0a5aed" dependencies = [ "proc-macro2", "quote", @@ -5201,9 +4975,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.8.26" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +checksum = "707d15895415db6628332b737c838b88c598522e4dc70647e59b72312924aebc" dependencies = [ "indexmap", "ryu", @@ -5271,18 +5045,7 @@ checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.5", -] - -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.5", + "digest 0.10.3", ] [[package]] @@ -5300,13 +5063,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.5", + "digest 0.10.3", ] [[package]] @@ -5320,11 +5083,11 @@ dependencies = [ [[package]] name = "shellexpand" -version = "2.1.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" +checksum = "83bdb7831b2d85ddf4a7b148aa19d0587eddbe8671a436b7bd1182eaad0f2829" dependencies = [ - "dirs 4.0.0", + "dirs-next", ] [[package]] @@ -5410,12 +5173,9 @@ checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" [[package]] name = "slab" -version = "0.4.7" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" -dependencies = [ - "autocfg 1.1.0", -] +checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "slice-group-by" @@ -5436,9 +5196,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.10.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "smol" @@ -5478,9 +5238,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" dependencies = [ "libc", "winapi 0.3.9", @@ -5500,9 +5260,9 @@ checksum = "be6c3f39c37a4283ee4b43d1311c828f2e1fb0541e76ea0cb1a2abd9ef2f5b3b" [[package]] name = "sqlformat" -version = "0.2.0" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87e292b4291f154971a43c3774364e2cbcaec599d3f5bf6fa9d122885dbc38a" +checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" dependencies = [ "itertools", "nom", @@ -5511,9 +5271,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.6.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9249290c05928352f71c077cc44a464d880c63f26f7534728cca008e135c0428" +checksum = "1f82cbe94f41641d6c410ded25bbf5097c240cefdf8e3b06d04198d0a96af6a4" dependencies = [ "sqlx-core", "sqlx-macros", @@ -5521,20 +5281,19 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.6.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbc16ddba161afc99e14d1713a453747a2b07fc097d2009f4c300ec99286105" +checksum = "6b69bf218860335ddda60d6ce85ee39f6cf6e5630e300e19757d1de15886a093" dependencies = [ "ahash", "atoi", "base64", "bitflags", "byteorder", - "bytes 1.2.1", + "bytes", "crc", "crossbeam-queue", "dirs 4.0.0", - "dotenvy", "either", "event-listener", "futures-channel", @@ -5559,34 +5318,34 @@ dependencies = [ "rustls-pemfile", "serde", "serde_json", - "sha1", - "sha2 0.10.6", + "sha-1 0.10.0", + "sha2 0.10.2", "smallvec", "sqlformat", "sqlx-rt", "stringprep", "thiserror", - "time 0.3.15", + "time 0.3.11", "tokio-stream", "url", - "uuid 1.2.1", - "webpki-roots 0.22.5", + "uuid 1.1.2", + "webpki-roots 0.22.3", "whoami", ] [[package]] name = "sqlx-macros" -version = "0.6.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b850fa514dc11f2ee85be9d055c512aa866746adfacd1cb42d867d68e6a5b0d9" +checksum = "f40c63177cf23d356b159b60acd27c54af7423f1736988502e36bae9a712118f" dependencies = [ - "dotenvy", + "dotenv", "either", "heck 0.4.0", "once_cell", "proc-macro2", "quote", - "sha2 0.10.6", + "sha2 0.10.2", "sqlx-core", "sqlx-rt", "syn", @@ -5595,9 +5354,9 @@ dependencies = [ [[package]] name = "sqlx-rt" -version = "0.6.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24c5b2d25fa654cc5f841750b8e1cdedbe21189bf9a9382ee90bfa9dd3562396" +checksum = "874e93a365a598dc3dadb197565952cb143ae4aa716f7bcc933a8d836f6bf89f" dependencies = [ "once_cell", "tokio", @@ -5692,9 +5451,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.102" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" +checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" dependencies = [ "proc-macro2", "quote", @@ -5784,7 +5543,7 @@ dependencies = [ "context_menu", "dirs 4.0.0", "editor", - "futures 0.3.24", + "futures", "gpui", "itertools", "lazy_static", @@ -5840,9 +5599,9 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.15.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16" +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "theme" @@ -5877,18 +5636,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.37" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" dependencies = [ "proc-macro2", "quote", @@ -5934,9 +5693,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.15" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" +checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217" dependencies = [ "itoa", "libc", @@ -5995,16 +5754,16 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.21.2" +version = "1.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439" dependencies = [ - "autocfg 1.1.0", - "bytes 1.2.1", + "bytes", "libc", "memchr", "mio 0.8.4", "num_cpus", + "once_cell", "parking_lot 0.12.1", "pin-project-lite 0.2.9", "signal-hook-registry", @@ -6013,17 +5772,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "tokio-io" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", -] - [[package]] name = "tokio-io-timeout" version = "1.2.0" @@ -6068,9 +5816,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.10" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6edf2d6bc038a43d31353570e27270603f4648d18f5ed10c0e179abe43255af" +checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" dependencies = [ "futures-core", "pin-project-lite 0.2.9", @@ -6079,14 +5827,14 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.17.2" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" +checksum = "06cda1232a49558c46f8a504d5b93101d42c0bf7f911f12a105ba48168f821ae" dependencies = [ "futures-util", "log", "tokio", - "tungstenite 0.17.3", + "tungstenite 0.17.2", ] [[package]] @@ -6095,7 +5843,7 @@ version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ - "bytes 1.2.1", + "bytes", "futures-core", "futures-sink", "log", @@ -6105,13 +5853,12 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.4" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45" dependencies = [ - "bytes 1.2.1", + "bytes", "futures-core", - "futures-io", "futures-sink", "pin-project-lite 0.2.9", "tokio", @@ -6136,7 +5883,7 @@ dependencies = [ "async-stream", "async-trait", "base64", - "bytes 1.2.1", + "bytes", "futures-core", "futures-util", "h2", @@ -6172,7 +5919,7 @@ dependencies = [ "rand 0.8.5", "slab", "tokio", - "tokio-util 0.7.4", + "tokio-util 0.7.3", "tower-layer", "tower-service", "tracing", @@ -6185,7 +5932,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba" dependencies = [ "bitflags", - "bytes 1.2.1", + "bytes", "futures-core", "futures-util", "http", @@ -6211,9 +5958,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" dependencies = [ "cfg-if 1.0.0", "log", @@ -6224,9 +5971,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" dependencies = [ "proc-macro2", "quote", @@ -6235,9 +5982,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" dependencies = [ "once_cell", "valuable", @@ -6276,12 +6023,12 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.16" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +checksum = "3a713421342a5a666b7577783721d3117f1b69a393df803ee17bb73b1e122a59" dependencies = [ + "ansi_term", "matchers", - "nu-ansi-term", "once_cell", "regex", "serde", @@ -6306,9 +6053,9 @@ dependencies = [ [[package]] name = "tree-sitter-c" -version = "0.20.2" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cca211f4827d4b4dc79f388bf67b6fa3bc8a8cfa642161ef24f99f371ba34c7b" +checksum = "7bdc5574c6cbc39c409246caeb1dd4d3c4bd6d30d4e9b399776086c20365fd24" dependencies = [ "cc", "tree-sitter", @@ -6464,7 +6211,7 @@ checksum = "6ad3713a14ae247f22a728a0456a545df14acf3867f905adff84be99e23b3ad1" dependencies = [ "base64", "byteorder", - "bytes 1.2.1", + "bytes", "http", "httparse", "log", @@ -6477,13 +6224,13 @@ dependencies = [ [[package]] name = "tungstenite" -version = "0.17.3" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" +checksum = "d96a2dea40e7570482f28eb57afbe42d97551905da6a9400acc5c328d24004f5" dependencies = [ "base64", "byteorder", - "bytes 1.2.1", + "bytes", "http", "httparse", "log", @@ -6502,9 +6249,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" [[package]] name = "unicase" @@ -6541,30 +6288,30 @@ checksum = "7f9af028e052a610d99e066b33304625dea9613170a2563314490a4e6ec5cf7f" [[package]] name = "unicode-ident" -version = "1.0.5" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" dependencies = [ "tinyvec", ] [[package]] name = "unicode-script" -version = "0.5.5" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc" +checksum = "58dd944fd05f2f0b5c674917aea8a4df6af84f2d8de3fe8d988b95d28fb8fb09" [[package]] name = "unicode-segmentation" -version = "1.10.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" [[package]] name = "unicode-vo" @@ -6574,15 +6321,15 @@ checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" [[package]] name = "unicode_categories" @@ -6592,9 +6339,9 @@ checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" [[package]] name = "unindent" -version = "0.1.10" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ee9362deb4a96cef4d437d1ad49cffc9b9e92d202b6995674e928ce684f112" +checksum = "52fee519a3e570f7df377a06a1a7775cdbfb7aa460be7e08de2b1f0e69973a44" [[package]] name = "untrusted" @@ -6604,12 +6351,13 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.3.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" dependencies = [ "form_urlencoded", "idna", + "matches", "percent-encoding", "serde", ] @@ -6658,7 +6406,7 @@ name = "util" version = "0.1.0" dependencies = [ "anyhow", - "futures 0.3.24", + "futures", "git2", "lazy_static", "log", @@ -6678,9 +6426,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.2.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb41e78f93363bb2df8b0e86a2ca30eed7806ea16ea0c790d757cf93f79be83" +checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" dependencies = [ "getrandom 0.2.7", ] @@ -6728,8 +6476,6 @@ name = "vim" version = "0.1.0" dependencies = [ "assets", - "async-compat", - "async-trait", "collections", "command_palette", "editor", @@ -6737,16 +6483,11 @@ dependencies = [ "indoc", "itertools", "language", - "lazy_static", "log", - "nvim-rs", - "parking_lot 0.11.2", "project", "search", "serde", - "serde_json", "settings", - "tokio", "util", "workspace", ] @@ -6818,9 +6559,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi-cap-std-sync" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f086c5026d2fc3b268d138e65373f46422cc810f46d6e0776859c5027cb18728" +checksum = "c1c4e73ed64b92ae87b416f4274b3c827180b02b67f835f66a86fc4267b77349" dependencies = [ "anyhow", "async-trait", @@ -6842,9 +6583,9 @@ dependencies = [ [[package]] name = "wasi-common" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e8844fede1c3787cc08853872f47e8bd91f6c939c7406bc7a5dba496b260c08" +checksum = "cc983eb93607a61f64152ec8728bf453f4dfdf22e7ab1784faac3297fe9a035e" dependencies = [ "anyhow", "bitflags", @@ -6860,9 +6601,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -6870,13 +6611,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" dependencies = [ "bumpalo", + "lazy_static", "log", - "once_cell", "proc-macro2", "quote", "syn", @@ -6885,9 +6626,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -6897,9 +6638,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6907,9 +6648,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" dependencies = [ "proc-macro2", "quote", @@ -6920,15 +6661,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" [[package]] name = "wasm-encoder" -version = "0.18.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64ac98d5d61192cc45c701b7e4bd0b9aff91e2edfc7a088406cfe2288581e2c" +checksum = "f76068e87fe9b837a6bc2ccded66784173eadb828c4168643e9fddf6f9ed2e61" dependencies = [ "leb128", ] @@ -6944,9 +6685,9 @@ dependencies = [ [[package]] name = "wasmtime" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f50eadf868ab6a04b7b511460233377d0bfbb92e417b2f6a98b98fef2e098f5" +checksum = "e76e2b2833bb0ece666ccdbed7b71b617d447da11f1bb61f4f2bab2648f745ee" dependencies = [ "anyhow", "async-trait", @@ -6957,7 +6698,7 @@ dependencies = [ "lazy_static", "libc", "log", - "object 0.28.4", + "object", "once_cell", "paste", "psm", @@ -6978,9 +6719,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1df23c642e1376892f3b72f311596976979cbf8b85469680cdd3a8a063d12a2" +checksum = "743a9f142d93318262d7e1fe329394ff2e8f86a1df45ae5e4f0eedba215ca5ce" dependencies = [ "anyhow", "base64", @@ -6998,9 +6739,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f264ff6b4df247d15584f2f53d009fbc90032cfdc2605b52b961bffc71b6eccd" +checksum = "5dc0f80afa1ce97083a7168e6b6948d015d6237369e9f4a511d38c9c4ac8fbb9" dependencies = [ "anyhow", "cranelift-codegen", @@ -7011,7 +6752,7 @@ dependencies = [ "gimli", "log", "more-asserts", - "object 0.28.4", + "object", "target-lexicon", "thiserror", "wasmparser", @@ -7020,9 +6761,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "839d2820e4b830f4b9e7aa08d4c0acabf4a5036105d639f6dfa1c6891c73bdc6" +checksum = "0816d9365196f1f447060087e0f87239ccded830bd54970a1168b0c9c8e824c9" dependencies = [ "anyhow", "cranelift-entity", @@ -7030,7 +6771,7 @@ dependencies = [ "indexmap", "log", "more-asserts", - "object 0.28.4", + "object", "serde", "target-lexicon", "thiserror", @@ -7040,9 +6781,9 @@ dependencies = [ [[package]] name = "wasmtime-fiber" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3248be3c4911233535356025f6562193614a40155ee9094bb6a2b43f0dc82803" +checksum = "715afdb87a3bcf1eae3f098c742d650fb783abdb8a7ca87076ea1cabecabea5d" dependencies = [ "cc", "rustix", @@ -7051,9 +6792,9 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef0a0bcbfa18b946d890078ba0e1bc76bcc53eccfb40806c0020ec29dcd1bd49" +checksum = "5c687f33cfa0f89ec1646929d0ff102087052cf9f0d15533de56526b0da0d1b3" dependencies = [ "addr2line", "anyhow", @@ -7063,7 +6804,7 @@ dependencies = [ "gimli", "ittapi-rs", "log", - "object 0.28.4", + "object", "region", "rustc-demangle", "rustix", @@ -7078,20 +6819,20 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4779d976206c458edd643d1ac622b6c37e4a0800a8b1d25dfbf245ac2f2cac" +checksum = "b252d1d025f94f3954ba2111f12f3a22826a0764a11c150c2d46623115a69e27" dependencies = [ "lazy_static", - "object 0.28.4", + "object", "rustix", ] [[package]] name = "wasmtime-runtime" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7eb6ffa169eb5dcd18ac9473c817358cd57bc62c244622210566d473397954a" +checksum = "ace251693103c9facbbd7df87a29a75e68016e48bc83c09133f2fda6b575e0ab" dependencies = [ "anyhow", "backtrace", @@ -7116,9 +6857,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d932b0ac5336f7308d869703dd225610a6a3aeaa8e968c52b43eed96cefb1c2" +checksum = "d129b0487a95986692af8708ffde9c50b0568dcefd79200941d475713b4f40bb" dependencies = [ "cranelift-entity", "serde", @@ -7128,9 +6869,9 @@ dependencies = [ [[package]] name = "wasmtime-wasi" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68b7d77fb6f2975a6fe6cc4d0015d6b0cebb65c39fce1dd4cc00880dbf7789c" +checksum = "fb49791530b3a3375897a6d5a8bfa9914101ef8a672d01c951e70b46fd953c15" dependencies = [ "anyhow", "wasi-cap-std-sync", @@ -7150,9 +6891,9 @@ dependencies = [ [[package]] name = "wast" -version = "47.0.1" +version = "43.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b98502f3978adea49551e801a6687678e6015317d7d9470a67fe813393f2a8" +checksum = "408feaebf6dbf9d154957873b14d00e8fba4cbc17a8cbb1bc9e4c1db425c50a8" dependencies = [ "leb128", "memchr", @@ -7162,18 +6903,18 @@ dependencies = [ [[package]] name = "wat" -version = "1.0.49" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aab4e20c60429fbba9670a6cae0fff9520046ba0aa3e6d0b1cd2653bea14898" +checksum = "2b70bfff0cfaf33dc9d641196dbcd0023a2da8b4b9030c59535cb44e2884983b" dependencies = [ - "wast 47.0.1", + "wast 43.0.0", ] [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" dependencies = [ "js-sys", "wasm-bindgen", @@ -7210,18 +6951,18 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.5" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" +checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" dependencies = [ "webpki 0.22.0", ] [[package]] name = "weezl" -version = "0.1.7" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" +checksum = "9c97e489d8f836838d497091de568cf16b117486d529ec5579233521065bd5e4" [[package]] name = "wepoll-ffi" @@ -7234,31 +6975,30 @@ dependencies = [ [[package]] name = "which" -version = "4.3.0" +version = "4.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" +checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" dependencies = [ "either", + "lazy_static", "libc", - "once_cell", ] [[package]] name = "whoami" -version = "1.2.3" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6631b6a2fd59b1841b622e8f1a7ad241ef0a46f2d580464ce8140ac94cbd571" +checksum = "524b58fa5a20a2fb3014dd6358b70e6579692a56ef6fce928834e488f42f65e8" dependencies = [ - "bumpalo", "wasm-bindgen", "web-sys", ] [[package]] name = "wiggle" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67dadac11343d2aabc8a906a0db0aaf7cb5046ec3d6fffccdaf2847dccdef8d6" +checksum = "91c38020359fabec5e5ce5a3f667af72e9a203bc6fe8caeb8931d3a870754d9d" dependencies = [ "anyhow", "async-trait", @@ -7271,9 +7011,9 @@ dependencies = [ [[package]] name = "wiggle-generate" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63a1dccd6b3fbd9a27417f5d30ce9aa3ee9cf529aad453abbf88a49c5d605b79" +checksum = "adc4e4420b496b04920ae3e41424029aba95c15a5e2e2b4012d14ec83770a3ef" dependencies = [ "anyhow", "heck 0.4.0", @@ -7286,9 +7026,9 @@ dependencies = [ [[package]] name = "wiggle-macro" -version = "0.38.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c368d57d9560c34deaa67e06b0953ccf65edb906c525e5a2c866c849b48ec2" +checksum = "2e541a0be1f2c4d53471d8a9df81c2d8725a3f023d8259f555c65b03d515aaab" dependencies = [ "proc-macro2", "quote", @@ -7428,12 +7168,12 @@ name = "workspace" version = "0.1.0" dependencies = [ "anyhow", + "call", "client", - "clock", "collections", "context_menu", "drag_and_drop", - "futures 0.3.24", + "futures", "gpui", "language", "log", @@ -7499,15 +7239,15 @@ dependencies = [ "auto_update", "backtrace", "breadcrumbs", + "call", "chat_panel", "chrono", "cli", "client", "clock", + "collab_ui", "collections", "command_palette", - "contacts_panel", - "contacts_status_item", "context_menu", "ctor", "diagnostics", @@ -7517,7 +7257,7 @@ dependencies = [ "env_logger", "file_finder", "fsevent", - "futures 0.3.24", + "futures", "fuzzy", "go_to_line", "gpui", diff --git a/crates/vim/src/motion.rs b/crates/vim/src/motion.rs index 5d25ece562..860b61a4ef 100644 --- a/crates/vim/src/motion.rs +++ b/crates/vim/src/motion.rs @@ -155,31 +155,32 @@ impl Motion { map: &DisplaySnapshot, point: DisplayPoint, goal: SelectionGoal, + times: usize, ) -> (DisplayPoint, SelectionGoal) { use Motion::*; match self { - Left => (left(map, point), SelectionGoal::None), - Backspace => (movement::left(map, point), SelectionGoal::None), - Down => movement::down(map, point, goal, true), - Up => movement::up(map, point, goal, true), - Right => (right(map, point), SelectionGoal::None), + Left => (left(map, point, times), SelectionGoal::None), + Backspace => (backspace(map, point, times), SelectionGoal::None), + Down => down(map, point, goal, times), + Up => up(map, point, goal, times), + Right => (right(map, point, times), SelectionGoal::None), NextWordStart { ignore_punctuation } => ( - next_word_start(map, point, ignore_punctuation), + next_word_start(map, point, ignore_punctuation, times), SelectionGoal::None, ), NextWordEnd { ignore_punctuation } => ( - next_word_end(map, point, ignore_punctuation), + next_word_end(map, point, ignore_punctuation, times), SelectionGoal::None, ), PreviousWordStart { ignore_punctuation } => ( - previous_word_start(map, point, ignore_punctuation), + previous_word_start(map, point, ignore_punctuation, times), SelectionGoal::None, ), FirstNonWhitespace => (first_non_whitespace(map, point), SelectionGoal::None), StartOfLine => (start_of_line(map, point), SelectionGoal::None), EndOfLine => (end_of_line(map, point), SelectionGoal::None), CurrentLine => (end_of_line(map, point), SelectionGoal::None), - StartOfDocument => (start_of_document(map, point), SelectionGoal::None), + StartOfDocument => (start_of_document(map, point, times), SelectionGoal::None), EndOfDocument => (end_of_document(map, point), SelectionGoal::None), Matching => (matching(map, point), SelectionGoal::None), } @@ -193,10 +194,8 @@ impl Motion { times: usize, expand_to_surrounding_newline: bool, ) { - for _ in 0..times { - let (head, goal) = self.move_point(map, selection.head(), selection.goal); - selection.set_head(head, goal); - } + let (head, goal) = self.move_point(map, selection.head(), selection.goal, times); + selection.set_head(head, goal); if self.linewise() { selection.start = map.prev_line_boundary(selection.start.to_point(map)).1; @@ -243,77 +242,133 @@ impl Motion { } } -fn left(map: &DisplaySnapshot, mut point: DisplayPoint) -> DisplayPoint { - *point.column_mut() = point.column().saturating_sub(1); - map.clip_point(point, Bias::Left) +fn left(map: &DisplaySnapshot, mut point: DisplayPoint, times: usize) -> DisplayPoint { + for _ in 0..times { + *point.column_mut() = point.column().saturating_sub(1); + point = map.clip_point(point, Bias::Right); + if point.column() == 0 { + break; + } + } + point } -pub(crate) fn right(map: &DisplaySnapshot, mut point: DisplayPoint) -> DisplayPoint { - *point.column_mut() += 1; - map.clip_point(point, Bias::Right) +fn backspace(map: &DisplaySnapshot, mut point: DisplayPoint, times: usize) -> DisplayPoint { + for _ in 0..times { + point = movement::left(map, point); + } + point +} + +fn down( + map: &DisplaySnapshot, + mut point: DisplayPoint, + mut goal: SelectionGoal, + times: usize, +) -> (DisplayPoint, SelectionGoal) { + for _ in 0..times { + (point, goal) = movement::down(map, point, goal, true); + } + (point, goal) +} + +fn up( + map: &DisplaySnapshot, + mut point: DisplayPoint, + mut goal: SelectionGoal, + times: usize, +) -> (DisplayPoint, SelectionGoal) { + for _ in 0..times { + (point, goal) = movement::up(map, point, goal, true); + } + (point, goal) +} + +pub(crate) fn right(map: &DisplaySnapshot, mut point: DisplayPoint, times: usize) -> DisplayPoint { + for _ in 0..times { + let mut new_point = point; + *new_point.column_mut() += 1; + let new_point = map.clip_point(new_point, Bias::Right); + if point == new_point { + break; + } + point = new_point; + } + point } pub(crate) fn next_word_start( map: &DisplaySnapshot, - point: DisplayPoint, + mut point: DisplayPoint, ignore_punctuation: bool, + times: usize, ) -> DisplayPoint { - let mut crossed_newline = false; - movement::find_boundary(map, point, |left, right| { - let left_kind = char_kind(left).coerce_punctuation(ignore_punctuation); - let right_kind = char_kind(right).coerce_punctuation(ignore_punctuation); - let at_newline = right == '\n'; + for _ in 0..times { + let mut crossed_newline = false; + point = movement::find_boundary(map, point, |left, right| { + let left_kind = char_kind(left).coerce_punctuation(ignore_punctuation); + let right_kind = char_kind(right).coerce_punctuation(ignore_punctuation); + let at_newline = right == '\n'; - let found = (left_kind != right_kind && right_kind != CharKind::Whitespace) - || at_newline && crossed_newline - || at_newline && left == '\n'; // Prevents skipping repeated empty lines + let found = (left_kind != right_kind && right_kind != CharKind::Whitespace) + || at_newline && crossed_newline + || at_newline && left == '\n'; // Prevents skipping repeated empty lines - if at_newline { - crossed_newline = true; - } - found - }) + if at_newline { + crossed_newline = true; + } + found + }) + } + point } fn next_word_end( map: &DisplaySnapshot, mut point: DisplayPoint, ignore_punctuation: bool, + times: usize, ) -> DisplayPoint { - *point.column_mut() += 1; - point = movement::find_boundary(map, point, |left, right| { - let left_kind = char_kind(left).coerce_punctuation(ignore_punctuation); - let right_kind = char_kind(right).coerce_punctuation(ignore_punctuation); + for _ in 0..times { + *point.column_mut() += 1; + point = movement::find_boundary(map, point, |left, right| { + let left_kind = char_kind(left).coerce_punctuation(ignore_punctuation); + let right_kind = char_kind(right).coerce_punctuation(ignore_punctuation); - left_kind != right_kind && left_kind != CharKind::Whitespace - }); + left_kind != right_kind && left_kind != CharKind::Whitespace + }); - // find_boundary clips, so if the character after the next character is a newline or at the end of the document, we know - // we have backtraced already - if !map - .chars_at(point) - .nth(1) - .map(|(c, _)| c == '\n') - .unwrap_or(true) - { - *point.column_mut() = point.column().saturating_sub(1); + // find_boundary clips, so if the character after the next character is a newline or at the end of the document, we know + // we have backtraced already + if !map + .chars_at(point) + .nth(1) + .map(|(c, _)| c == '\n') + .unwrap_or(true) + { + *point.column_mut() = point.column().saturating_sub(1); + } + point = map.clip_point(point, Bias::Left); } - map.clip_point(point, Bias::Left) + point } fn previous_word_start( map: &DisplaySnapshot, mut point: DisplayPoint, ignore_punctuation: bool, + times: usize, ) -> DisplayPoint { - // This works even though find_preceding_boundary is called for every character in the line containing - // cursor because the newline is checked only once. - point = movement::find_preceding_boundary(map, point, |left, right| { - let left_kind = char_kind(left).coerce_punctuation(ignore_punctuation); - let right_kind = char_kind(right).coerce_punctuation(ignore_punctuation); + for _ in 0..times { + // This works even though find_preceding_boundary is called for every character in the line containing + // cursor because the newline is checked only once. + point = movement::find_preceding_boundary(map, point, |left, right| { + let left_kind = char_kind(left).coerce_punctuation(ignore_punctuation); + let right_kind = char_kind(right).coerce_punctuation(ignore_punctuation); - (left_kind != right_kind && !right.is_whitespace()) || left == '\n' - }); + (left_kind != right_kind && !right.is_whitespace()) || left == '\n' + }); + } point } @@ -342,8 +397,8 @@ fn end_of_line(map: &DisplaySnapshot, point: DisplayPoint) -> DisplayPoint { map.clip_point(map.next_line_boundary(point.to_point(map)).1, Bias::Left) } -fn start_of_document(map: &DisplaySnapshot, point: DisplayPoint) -> DisplayPoint { - let mut new_point = 0usize.to_display_point(map); +fn start_of_document(map: &DisplaySnapshot, point: DisplayPoint, line: usize) -> DisplayPoint { + let mut new_point = (line - 1).to_display_point(map); *new_point.column_mut() = point.column(); map.clip_point(new_point, Bias::Left) } diff --git a/crates/vim/src/normal.rs b/crates/vim/src/normal.rs index 969a11bffc..894b77e6e8 100644 --- a/crates/vim/src/normal.rs +++ b/crates/vim/src/normal.rs @@ -115,13 +115,7 @@ pub fn normal_object(object: Object, cx: &mut MutableAppContext) { fn move_cursor(vim: &mut Vim, motion: Motion, times: usize, cx: &mut MutableAppContext) { vim.update_active_editor(cx, |editor, cx| { editor.change_selections(Some(Autoscroll::Fit), cx, |s| { - s.move_cursors_with(|map, cursor, goal| { - let mut result = (cursor, goal); - for _ in 0..times { - result = motion.move_point(map, result.0, result.1); - } - result - }) + s.move_cursors_with(|map, cursor, goal| motion.move_point(map, cursor, goal, times)) }) }); } @@ -132,7 +126,7 @@ fn insert_after(_: &mut Workspace, _: &InsertAfter, cx: &mut ViewContext Date: Tue, 11 Oct 2022 18:50:04 -0700 Subject: [PATCH 24/24] Impose min scrollbar height in a way that doesn't impede scrollbar's movement Also, fix the editor's scroll max so that you can scroll to the last display row. --- crates/editor/src/editor.rs | 2 +- crates/editor/src/element.rs | 36 +++++++++++++++--------------------- 2 files changed, 16 insertions(+), 22 deletions(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 4be6d72017..a7acc9f609 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -1271,7 +1271,7 @@ impl Editor { let max_scroll_top = if matches!(self.mode, EditorMode::AutoHeight { .. }) { (display_map.max_point().row() as f32 - visible_lines + 1.).max(0.) } else { - display_map.max_point().row().saturating_sub(1) as f32 + display_map.max_point().row() as f32 }; if scroll_position.y() > max_scroll_top { scroll_position.set_y(max_scroll_top); diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index ec39bf1eb2..36d717641e 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -916,36 +916,30 @@ impl EditorElement { let view = self.view.clone(); let style = &self.style.theme.scrollbar; - let min_thumb_height = - style.min_height_factor * cx.font_cache.line_height(self.style.text.font_size); let top = bounds.min_y(); let bottom = bounds.max_y(); let right = bounds.max_x(); let left = right - style.width; - let height = bounds.height(); let row_range = &layout.scrollbar_row_range; - let max_row = layout.max_row + ((row_range.end - row_range.start) as u32); - let scrollbar_start = row_range.start as f32 / max_row as f32; - let scrollbar_end = row_range.end as f32 / max_row as f32; + let max_row = layout.max_row as f32 + (row_range.end - row_range.start); - let mut thumb_top = top + scrollbar_start * height; - let mut thumb_bottom = top + scrollbar_end * height; - let thumb_center = (thumb_top + thumb_bottom) / 2.0; + let mut height = bounds.height(); + let mut first_row_y_offset = 0.0; - if thumb_bottom - thumb_top < min_thumb_height { - thumb_top = thumb_center - min_thumb_height / 2.0; - thumb_bottom = thumb_center + min_thumb_height / 2.0; - if thumb_top < top { - thumb_top = top; - thumb_bottom = top + min_thumb_height; - } - if thumb_bottom > bottom { - thumb_bottom = bottom; - thumb_top = bottom - min_thumb_height; - } + // Impose a minimum height on the scrollbar thumb + let min_thumb_height = + style.min_height_factor * cx.font_cache.line_height(self.style.text.font_size); + let thumb_height = (row_range.end - row_range.start) * height / max_row; + if thumb_height < min_thumb_height { + first_row_y_offset = (min_thumb_height - thumb_height) / 2.0; + height -= min_thumb_height - thumb_height; } + let y_for_row = |row: f32| -> f32 { top + first_row_y_offset + row * height / max_row }; + + let thumb_top = y_for_row(row_range.start) - first_row_y_offset; + let thumb_bottom = y_for_row(row_range.end) + first_row_y_offset; let track_bounds = RectF::from_points(vec2f(left, top), vec2f(right, bottom)); let thumb_bounds = RectF::from_points(vec2f(left, thumb_top), vec2f(right, thumb_bottom)); @@ -1723,7 +1717,7 @@ impl Element for EditorElement { let scroll_max = vec2f( ((scroll_width - text_size.x()) / em_width).max(0.0), - max_row.saturating_sub(1) as f32, + max_row as f32, ); self.update_view(cx.app, |view, cx| {