65 lines
2.5 KiB
Rust
65 lines
2.5 KiB
Rust
//! Literal search, smart case, command-line editing and substitution contracts.
|
||
|
||
mod support;
|
||
use notescraft_vim::Mode;
|
||
|
||
#[test]
|
||
fn searches_wrap_and_repeat() {
|
||
support::check(
|
||
&[
|
||
("|one two one", "/one<CR>", "one two |one"),
|
||
("|one two one", "/one<CR>n", "|one two one"),
|
||
("|one two one", "/one<CR>N", "|one two one"),
|
||
("|one two one", "?one<CR>", "one two |one"),
|
||
("one two |one", "?one<CR>", "|one two one"),
|
||
("|one two one two one", "/one<CR>n", "one two one two |one"),
|
||
("|one two one two one", "/one<CR>2n", "|one two one two one"),
|
||
("|One one ONE", "/one<CR>", "One |one ONE"),
|
||
("|One one ONE", "/ONE<CR>", "One one |ONE"),
|
||
("|One one ONE", "/one<CR>n", "One one |ONE"),
|
||
("|α 猫 α", "/α<CR>", "α 猫 |α"),
|
||
("|α 猫 α", "?α<CR>", "α 猫 |α"),
|
||
("|a.b axb a.b", "/a.b<CR>", "a.b axb |a.b"),
|
||
("|one two one", "*", "one two |one"),
|
||
("o|ne two one", "*", "one two |one"),
|
||
("|éé 猫 éé", "*", "éé 猫 |éé"),
|
||
("|one two", "/absent<CR>", "|one two"),
|
||
("|one two", "/one<Esc>", "|one two"),
|
||
("|one two", "nN", "|one two"),
|
||
("|one two one", "/onx<BS>e<CR>", "one two |one"),
|
||
("|one two one", "/one<CR>:noh<CR>", "one two |one"),
|
||
("|one two", "/<CR>", "|one two"),
|
||
],
|
||
Mode::Normal,
|
||
);
|
||
}
|
||
|
||
#[test]
|
||
fn substitutions_and_line_jumps() {
|
||
support::check(
|
||
&[
|
||
("|a a", ":s/a/b/<CR>", "|b a"),
|
||
("|a a", ":s/a/b/g<CR>", "|b b"),
|
||
("a a\n|a a", ":s/a/b/<CR>", "a a\n|b a"),
|
||
("|a a\na a", ":%s/a/b/<CR>", "|b a\nb a"),
|
||
("|a a\na a", ":%s/a/b/g<CR>", "|b b\nb b"),
|
||
("|é é", ":s/é/猫/g<CR>", "|猫 猫"),
|
||
("|a/b", ":s/a\\/b/c/<CR>", "|c"),
|
||
("|aaa", ":s/a//g<CR>", "|"),
|
||
("|abc", ":s/z/a/<CR>", "|abc"),
|
||
("|abc", ":s//a/<CR>", "|abc"),
|
||
("|abc", ":s/a/b/z<CR>", "|abc"),
|
||
("|abc", ":%s<CR>", "|abc"),
|
||
("|a\nb\nc", ":2<CR>", "a\n|b\nc"),
|
||
("a\nb\n|c", ":1<CR>", "|a\nb\nc"),
|
||
("|a\nb\nc", ":3<CR>", "a\nb\n|c"),
|
||
("|a\nb", ":0<CR>", "|a\nb"),
|
||
("|a\nb", ":9<CR>", "|a\nb"),
|
||
("|abc", ":s/a/b/<Esc>", "|abc"),
|
||
("|a a", ":s/a/b/<CR>u", "|a a"),
|
||
("|a a", ":s/a/b/<CR>u<C-r>", "|b a"),
|
||
],
|
||
Mode::Normal,
|
||
);
|
||
}
|