Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'helix-term/tests/test/commands/insert.rs')
| -rw-r--r-- | helix-term/tests/test/commands/insert.rs | 339 |
1 files changed, 0 insertions, 339 deletions
diff --git a/helix-term/tests/test/commands/insert.rs b/helix-term/tests/test/commands/insert.rs index 9499868e..f7aa4a02 100644 --- a/helix-term/tests/test/commands/insert.rs +++ b/helix-term/tests/test/commands/insert.rs @@ -1,126 +1,6 @@ use super::*; #[tokio::test(flavor = "multi_thread")] -async fn change_line_above_comment() -> anyhow::Result<()> { - // <https://github.com/helix-editor/helix/issues/12570> - test(( - indoc! {"\ - #[fn main() {} - |]#// a comment - "}, - ":lang rust<ret>c", - indoc! {"\ - #[ - |]#// a comment - "}, - )) - .await?; - - Ok(()) -} - -#[tokio::test(flavor = "multi_thread")] -async fn insert_newline_many_selections() -> anyhow::Result<()> { - test(( - indoc! {"\ - #(|o)#ne - #(|t)#wo - #[|t]#hree - "}, - "i<ret>", - indoc! {"\ - \n#(|o)#ne - - #(|t)#wo - - #[|t]#hree - "}, - )) - .await?; - - // In this case the global offset that adjusts selections for inserted and deleted text - // should become negative because more text is deleted than is inserted. - test(( - indoc! {"\ - #[|🏴☠️]# #(|🏴☠️)# #(|🏴☠️)# - #(|🏴☠️)# #(|🏴☠️)# #(|🏴☠️)# - "}, - "i<ret>", - indoc! {"\ - \n#[|🏴☠️]# - #(|🏴☠️)# - #(|🏴☠️)# - - #(|🏴☠️)# - #(|🏴☠️)# - #(|🏴☠️)# - "}, - )) - .await?; - - // <https://github.com/helix-editor/helix/issues/12495> - test(( - indoc! {"\ - id #(|1)#,Item #(|1)#,cost #(|1)#,location #(|1)# - id #(|2)#,Item #(|2)#,cost #(|2)#,location #(|2)# - id #(|1)##(|0)#,Item #(|1)##(|0)#,cost #(|1)##(|0)#,location #(|1)##[|0]#"}, - "i<ret>", - indoc! {"\ - id - #(|1)#,Item - #(|1)#,cost - #(|1)#,location - #(|1)# - id - #(|2)#,Item - #(|2)#,cost - #(|2)#,location - #(|2)# - id - #(|1)# - #(|0)#,Item - #(|1)# - #(|0)#,cost - #(|1)# - #(|0)#,location - #(|1)# - #[|0]#"}, - )) - .await?; - - // <https://github.com/helix-editor/helix/issues/12461> - test(( - indoc! {"\ - real R〉 #(||)# 〈real R〉 @ 〈real R〉 - #(||)# 〈real R〉 + 〈ureal R〉 i #(||)# 〈real R〉 - 〈ureal R〉 i - #(||)# 〈real R〉 + i #(||)# 〈real R〉 - i #(||)# 〈real R〉 〈infnan〉 i - #(||)# + 〈ureal R〉 i #(||)# - 〈ureal R〉 i - #(||)# 〈infnan〉 i #(||)# + i #[||]# - i"}, - "i<ret>", - indoc! {"\ - real R〉 - #(||)# 〈real R〉 @ 〈real R〉 - - #(||)# 〈real R〉 + 〈ureal R〉 i - #(||)# 〈real R〉 - 〈ureal R〉 i - - #(||)# 〈real R〉 + i - #(||)# 〈real R〉 - i - #(||)# 〈real R〉 〈infnan〉 i - - #(||)# + 〈ureal R〉 i - #(||)# - 〈ureal R〉 i - - #(||)# 〈infnan〉 i - #(||)# + i - #[||]# - i"}, - )) - .await?; - - Ok(()) -} - -#[tokio::test(flavor = "multi_thread")] async fn insert_newline_trim_trailing_whitespace() -> anyhow::Result<()> { // Trailing whitespace is trimmed. test(( @@ -173,18 +53,6 @@ async fn insert_newline_trim_trailing_whitespace() -> anyhow::Result<()> { } #[tokio::test(flavor = "multi_thread")] -async fn insert_newline_trim_whitespace_to_previous_selection() -> anyhow::Result<()> { - test(( - indoc! {"\"#[a|]# #(a|)# #(a|)#\""}, - "c<ret>", - indoc! {"\"\n#[\n|]##(\n|)##(\"|)#"}, - )) - .await?; - - Ok(()) -} - -#[tokio::test(flavor = "multi_thread")] async fn insert_newline_continue_line_comment() -> anyhow::Result<()> { // `insert_newline` continues a single line comment test(( @@ -249,33 +117,6 @@ async fn insert_newline_continue_line_comment() -> anyhow::Result<()> { )) .await?; - // Comment continuation should work on multiple selections. - // <https://github.com/helix-editor/helix/issues/12539> - test(( - indoc! {"\ - ///·Docs#[|·]# - pub·struct·A; - - ///·Docs#(|·)# - pub·struct·B; - "} - .replace('·', " "), - ":lang rust<ret>i<ret><ret>", - indoc! {"\ - ///·Docs - /// - ///·#[|·]# - pub·struct·A; - - ///·Docs - /// - ///·#(|·)# - pub·struct·B; - "} - .replace('·', " "), - )) - .await?; - Ok(()) } @@ -343,127 +184,6 @@ async fn test_open_above() -> anyhow::Result<()> { Ok(()) } -#[tokio::test(flavor = "multi_thread")] -async fn test_open_above_with_multiple_cursors() -> anyhow::Result<()> { - // the primary cursor is also in the top line - test(( - indoc! {"#[H|]#elix - #(i|)#s - #(c|)#ool"}, - "O", - indoc! { - "#[\n|]# - Helix - #(\n|)# - is - #(\n|)# - cool - " - }, - )) - .await?; - - // now with some additional indentation - test(( - indoc! {"····#[H|]#elix - ····#(i|)#s - ····#(c|)#ool"} - .replace("·", " "), - ":indent-style 4<ret>O", - indoc! { - "····#[\n|]# - ····Helix - ····#(\n|)# - ····is - ····#(\n|)# - ····cool - " - } - .replace("·", " "), - )) - .await?; - - // the first line is within a comment, the second not. - // However, if we open above, the first newly added line should start within a comment - // while the other should be a normal line - test(( - indoc! {"fn main() { - // #[VIP|]# comment - l#(e|)#t yes = false; - }"}, - ":lang rust<ret>O", - indoc! {"fn main() { - // #[\n|]# - // VIP comment - #(\n|)# - let yes = false; - }"}, - )) - .await?; - - Ok(()) -} - -#[tokio::test(flavor = "multi_thread")] -async fn test_open_below_with_multiple_cursors() -> anyhow::Result<()> { - // the primary cursor is also in the top line - test(( - indoc! {"#[H|]#elix - #(i|)#s - #(c|)#ool"}, - "o", - indoc! {"Helix - #[\n|]# - is - #(\n|)# - cool - #(\n|)# - " - }, - )) - .await?; - - // now with some additional indentation - test(( - indoc! {"····#[H|]#elix - ····#(i|)#s - ····#(c|)#ool"} - .replace("·", " "), - ":indent-style 4<ret>o", - indoc! { - "····Helix - ····#[\n|]# - ····is - ····#(\n|)# - ····cool - ····#(\n|)# - " - } - .replace("·", " "), - )) - .await?; - - // the first line is within a comment, the second not. - // However, if we open below, the first newly added line should start within a comment - // while the other should be a normal line - test(( - indoc! {"fn main() { - // #[VIP|]# comment - l#(e|)#t yes = false; - }"}, - ":lang rust<ret>o", - indoc! {"fn main() { - // VIP comment - // #[\n|]# - let yes = false; - #(\n|)# - }"}, - )) - .await?; - - Ok(()) -} - /// NOTE: To make the `open_above` comment-aware, we're setting the language for each test to rust. #[tokio::test(flavor = "multi_thread")] async fn test_open_above_with_comments() -> anyhow::Result<()> { @@ -524,62 +244,3 @@ async fn test_open_above_with_comments() -> anyhow::Result<()> { Ok(()) } - -#[tokio::test(flavor = "multi_thread")] -async fn try_restore_indent() -> anyhow::Result<()> { - // Assert that `helix_view::editor::try_restore_indent` handles line endings correctly - // endings. - test(( - indoc! {"\ - if true #[|{]# - } - "}, - // `try_restore_indent` should remove the indentation when adding a blank line. - ":lang rust<ret>o<esc>", - indoc! {"\ - if true { - #[ - |]#} - "}, - )) - .await?; - - Ok(()) -} - -// Tests being able to jump in insert mode, then undo the write performed by the jump -// https://github.com/helix-editor/helix/issues/13480 -#[tokio::test(flavor = "multi_thread")] -async fn test_jump_undo_redo() -> anyhow::Result<()> { - use helix_core::hashmap; - use helix_term::keymap; - use helix_view::document::Mode; - - let mut config = Config::default(); - config.keys.insert( - Mode::Insert, - keymap!({"Insert Mode" - "C-i" => goto_file_start, - "C-o" => goto_file_end, - }), - ); - - // Undo - test_with_config( - AppBuilder::new().with_config(config.clone()), - ("#[|]#", "iworld<C-i>Hello, <esc>u", "#[w|]#orld"), - ) - .await?; - - // Redo - test_with_config( - AppBuilder::new().with_config(config), - ( - "#[|]#", - "iworld<C-i>Hello, <esc>ui<C-o><esc>U", - "Hello, #[w|]#orld", - ), - ) - .await?; - Ok(()) -} |