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.rs339
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(())
-}