aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/fakevim/fakevim_test.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2022-01-31 07:42:30 +0100
committerhjk <hjk@qt.io>2022-02-03 11:25:12 +0000
commit5af00873cf69ce2ba1a750c80e1a20b24e306680 (patch)
treeb5c33b17f7669164685b8699920ac832505f3b0d /src/plugins/fakevim/fakevim_test.cpp
parent2f925e20985967ac8a625d38a051b99f8c8f7623 (diff)
FakeVim: Support backslashes in substitute command patterns
Change-Id: Ibfcea7fdc550082e4975e1fc4d2fba6563dbfd02 Done-by: Jochen Baier Fixes: QTCREATORBUG-26955 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/fakevim/fakevim_test.cpp')
-rw-r--r--src/plugins/fakevim/fakevim_test.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp
index f8b37bd814..07ab92c191 100644
--- a/src/plugins/fakevim/fakevim_test.cpp
+++ b/src/plugins/fakevim/fakevim_test.cpp
@@ -3029,6 +3029,50 @@ void FakeVimPlugin::test_vim_substitute()
COMMAND("undo | s/\\(b...E\\)/\\U\\1/g", "aBC DEfGh");
COMMAND("undo | s/\\(C..E\\)/\\l\\1/g", "abc dEfGh");
COMMAND("undo | s/\\(b...E\\)/\\L\\1/g", "abc defGh");
+
+ // replace 1 backslash with 1 forward slash (separator: /)
+ data.setText(R"(abc\def)");
+ COMMAND(R"(s/\\/\/)", X "abc/def");
+
+ // replace 1 backslash with X normal on line (separator: /)
+ data.setText(R"(abc\def\ghi)");
+ COMMAND(R"(s/\\/X/g)", X "abcXdefXghi");
+
+ // replace 1 backslash with 1 forward slash on line (separator: /)
+ data.setText(R"(abc\def\ghi)");
+ COMMAND(R"(s/\\/\//g)", X "abc/def/ghi");
+
+ // replace 1 backslash with 1 forward slash
+ data.setText(R"(abc\def)");
+ COMMAND(R"(s#\\#/)", X "abc/def");
+
+ // replace 1 backslash with 1 forward slash on line
+ data.setText(R"(abc\def\ghi)");
+ COMMAND(R"(s#\\#/#g)", X "abc/def/ghi");
+
+ // replace 2 backslash with 2 forward slash
+ data.setText(R"(abc\\def)");
+ COMMAND(R"(s#\\\\#//)", X "abc//def");
+
+ // replace 2 backslash with 2 forward slash on line
+ data.setText(R"(abc\\def\\ghi)");
+ COMMAND(R"(s#\\\\#//#g)", X "abc//def//ghi");
+
+ // replace 1 backslash with 1 forward slash last char
+ data.setText(R"(abc\)");
+ COMMAND(R"(s#\\#/)", X "abc/");
+
+ // replace 1 backslash with 1 forward slash first char
+ data.setText(R"(\abc)");
+ COMMAND(R"(s#\\#/)", X "/abc");
+
+ // replace 1 # with 2 # on line
+ data.setText(R"(abc#def#ghi)");
+ COMMAND(R"(s#\##\#\##g)", X "abc##def##ghi");
+
+ // replace 2 # with 4 # on line
+ data.setText(R"(abc##def##ghi)");
+ COMMAND(R"(s#\#\##\#\#\#\##g)", X "abc####def####ghi");
}
void FakeVimPlugin::test_vim_ex_commandbuffer_paste()