diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-12-02 20:39:24 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-02 20:39:24 +0800 |
commit | 1145a9b2485a4e5072cffe28a958da983cd59e84 (patch) | |
tree | 13059f09a9825a7eae3d75c8556436845dc1e492 /test/functional/lua/vim_spec.lua | |
parent | 805c83f43e3d6832a54bc4a1de1dd4d4da43d58e (diff) | |
download | rneovim-1145a9b2485a4e5072cffe28a958da983cd59e84.tar.gz rneovim-1145a9b2485a4e5072cffe28a958da983cd59e84.tar.bz2 rneovim-1145a9b2485a4e5072cffe28a958da983cd59e84.zip |
feat(aucmd_win): allow crazy things with hidden buffers (#21250)
Problem: Crash when doing crazy things with hidden buffers.
Solution: Dynamically allocate the list of autocommand windows.
Diffstat (limited to 'test/functional/lua/vim_spec.lua')
-rw-r--r-- | test/functional/lua/vim_spec.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/functional/lua/vim_spec.lua b/test/functional/lua/vim_spec.lua index 4266d30e73..c74e88f55d 100644 --- a/test/functional/lua/vim_spec.lua +++ b/test/functional/lua/vim_spec.lua @@ -2679,6 +2679,46 @@ describe('lua stdlib', function() a.nvim_buf_call(a.nvim_create_buf(false, true), function() vim.cmd "redraw" end) ]] end) + + it('can be nested crazily with hidden buffers', function() + eq(true, exec_lua([[ + local function scratch_buf_call(fn) + local buf = vim.api.nvim_create_buf(false, true) + vim.api.nvim_buf_set_option(buf, 'cindent', true) + return vim.api.nvim_buf_call(buf, function() + return vim.api.nvim_get_current_buf() == buf + and vim.api.nvim_buf_get_option(buf, 'cindent') + and fn() + end) and vim.api.nvim_buf_delete(buf, {}) == nil + end + + return scratch_buf_call(function() + return scratch_buf_call(function() + return scratch_buf_call(function() + return scratch_buf_call(function() + return scratch_buf_call(function() + return scratch_buf_call(function() + return scratch_buf_call(function() + return scratch_buf_call(function() + return scratch_buf_call(function() + return scratch_buf_call(function() + return scratch_buf_call(function() + return scratch_buf_call(function() + return true + end) + end) + end) + end) + end) + end) + end) + end) + end) + end) + end) + end) + ]])) + end) end) describe('vim.api.nvim_win_call', function() |