diff options
author | Donatas <contactdonatas@gmail.com> | 2025-01-20 16:40:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-20 06:40:26 -0800 |
commit | 5b1136a99c7fc6db4cfe6865b72c069a4697c1a5 (patch) | |
tree | 2f8699149e1b377c4d52849c9128c6079d8284c2 /test/functional/ui/inccommand_user_spec.lua | |
parent | 92556be33d04668c58a37794de5562af6297b3ac (diff) | |
download | rneovim-5b1136a99c7fc6db4cfe6865b72c069a4697c1a5.tar.gz rneovim-5b1136a99c7fc6db4cfe6865b72c069a4697c1a5.tar.bz2 rneovim-5b1136a99c7fc6db4cfe6865b72c069a4697c1a5.zip |
feat(inccommand): preview 'nomodifiable' buffers #32034
Problem:
Incremental preview is not allowed on 'nomodifiable' buffers.
Solution:
- Allow preview on 'nomodifiable' buffers.
- Restore the 'modifiable' option in case the preview function changes it.
Diffstat (limited to 'test/functional/ui/inccommand_user_spec.lua')
-rw-r--r-- | test/functional/ui/inccommand_user_spec.lua | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/functional/ui/inccommand_user_spec.lua b/test/functional/ui/inccommand_user_spec.lua index 2d26d2c5e0..3eee9a6e07 100644 --- a/test/functional/ui/inccommand_user_spec.lua +++ b/test/functional/ui/inccommand_user_spec.lua @@ -253,6 +253,50 @@ describe("'inccommand' for user commands", function() ]] end) + it("can preview 'nomodifiable' buffer", function() + exec_lua([[ + vim.api.nvim_create_user_command("PreviewTest", function() end, { + preview = function(ev) + vim.bo.modifiable = true + vim.api.nvim_buf_set_lines(0, 0, -1, false, {"cats"}) + return 2 + end, + }) + ]]) + command('set inccommand=split') + + command('set nomodifiable') + eq(false, api.nvim_get_option_value('modifiable', { buf = 0 })) + + feed(':PreviewTest') + + screen:expect([[ + cats | + {1:~ }|*8 + {3:[No Name] [+] }| + | + {1:~ }|*4 + {2:[Preview] }| + :PreviewTest^ | + ]]) + feed('<Esc>') + screen:expect([[ + text on line 1 | + more text on line 2 | + oh no, even more text | + will the text ever stop | + oh well | + did the text stop | + why won't it stop | + make the text stop | + ^ | + {1:~ }|*7 + | + ]]) + + eq(false, api.nvim_get_option_value('modifiable', { buf = 0 })) + end) + it('works with inccommand=nosplit', function() command('set inccommand=nosplit') feed(':Replace text cats') |