aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/inccommand_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/ui/inccommand_spec.lua')
-rw-r--r--test/functional/ui/inccommand_spec.lua51
1 files changed, 51 insertions, 0 deletions
diff --git a/test/functional/ui/inccommand_spec.lua b/test/functional/ui/inccommand_spec.lua
index f4347a460e..7e79479fc5 100644
--- a/test/functional/ui/inccommand_spec.lua
+++ b/test/functional/ui/inccommand_spec.lua
@@ -2895,3 +2895,54 @@ it("'inccommand' cannot be changed during preview #23136", function()
feed(':%s/foo/bar<C-E><C-E><C-E>')
assert_alive()
end)
+
+it("'inccommand' value can be changed multiple times #27086", function()
+ clear()
+ local screen = Screen.new(30, 20)
+ common_setup(screen, 'split', 'foo1\nfoo2\nfoo3')
+ for _ = 1, 3 do
+ feed(':%s/foo/bar')
+ screen:expect([[
+ {12:bar}1 |
+ {12:bar}2 |
+ {12:bar}3 |
+ {15:~ }|*7
+ {11:[No Name] [+] }|
+ |1| {12:bar}1 |
+ |2| {12:bar}2 |
+ |3| {12:bar}3 |
+ {15:~ }|*4
+ {10:[Preview] }|
+ :%s/foo/bar^ |
+ ]])
+ feed('<Esc>')
+ command('set inccommand=nosplit')
+ feed(':%s/foo/bar')
+ screen:expect([[
+ {12:bar}1 |
+ {12:bar}2 |
+ {12:bar}3 |
+ {15:~ }|*16
+ :%s/foo/bar^ |
+ ]])
+ feed('<Esc>')
+ command('set inccommand=split')
+ end
+end)
+
+it("'inccommand' disables preview if preview buffer can't be created #27086", function()
+ clear()
+ api.nvim_buf_set_name(0, '[Preview]')
+ local screen = Screen.new(30, 20)
+ common_setup(screen, 'split', 'foo1\nfoo2\nfoo3')
+ eq('split', api.nvim_get_option_value('inccommand', {}))
+ feed(':%s/foo/bar')
+ screen:expect([[
+ {12:bar}1 |
+ {12:bar}2 |
+ {12:bar}3 |
+ {15:~ }|*16
+ :%s/foo/bar^ |
+ ]])
+ eq('nosplit', api.nvim_get_option_value('inccommand', {}))
+end)