aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy/046_multi_line_regexps_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/legacy/046_multi_line_regexps_spec.lua')
-rw-r--r--test/functional/legacy/046_multi_line_regexps_spec.lua52
1 files changed, 52 insertions, 0 deletions
diff --git a/test/functional/legacy/046_multi_line_regexps_spec.lua b/test/functional/legacy/046_multi_line_regexps_spec.lua
new file mode 100644
index 0000000000..f8a6143b18
--- /dev/null
+++ b/test/functional/legacy/046_multi_line_regexps_spec.lua
@@ -0,0 +1,52 @@
+-- vim: set foldmethod=marker foldmarker=[[,]] :
+-- Tests for multi-line regexps with ":s"
+
+local helpers = require('test.functional.helpers')
+local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
+local execute, expect = helpers.execute, helpers.expect
+
+describe('multi-line regexp', function()
+ setup(clear)
+
+ it('is working', function()
+ insert([[
+ 1 aa
+ bb
+ cc
+ 2 dd
+ ee
+ 3 ef
+ gh
+ 4 ij
+ 5 a8
+ 8b c9
+ 9d
+ 6 e7
+ 77f
+ xxxxx]])
+
+ -- Test if replacing a line break works with a back reference
+ feed([[:/^1/,/^2/s/\n\(.\)/ \1/<cr>]])
+
+ -- Test if inserting a line break works with a back reference
+ feed([[:/^3/,/^4/s/\(.\)$/\r\1/<cr>]])
+
+ -- Test if replacing a line break with another line break works
+ feed([[:/^5/,/^6/s/\(\_d\{3}\)/x\1x/<cr>]])
+
+ expect([[
+ 1 aa bb cc 2 dd ee
+ 3 e
+ f
+ g
+ h
+ 4 i
+ j
+ 5 ax8
+ 8xb cx9
+ 9xd
+ 6 ex7
+ 7x7f
+ xxxxx]])
+ end)
+end)