diff options
author | phanium <91544758+phanen@users.noreply.github.com> | 2024-12-16 16:59:24 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-16 00:59:24 -0800 |
commit | 01a97d2ad75a459cad850d542f9ad7c4467cb380 (patch) | |
tree | bade151d04e5d398e6f6b02de1c834e60b189ba0 /test/functional/options/winfixbuf_spec.lua | |
parent | cc38630d39d2aa99183756d55849117daf6dfbfa (diff) | |
download | rneovim-01a97d2ad75a459cad850d542f9ad7c4467cb380.tar.gz rneovim-01a97d2ad75a459cad850d542f9ad7c4467cb380.tar.bz2 rneovim-01a97d2ad75a459cad850d542f9ad7c4467cb380.zip |
fix(api): nvim_win_set_buf(0, 0) fails if 'winfixbuf' is set #31576
## Problem
With 'winfixbuf' enabled, `nvim_win_set_buf` and `nvim_set_current_buf` fail
even if targeting the already-current buffer.
vim.wo.winfixbuf = true
vim.api.nvim_win_set_buf(0, 0)
vim.api.nvim_set_current_buf(0)
Solution:
Check for this condition.
Diffstat (limited to 'test/functional/options/winfixbuf_spec.lua')
-rw-r--r-- | test/functional/options/winfixbuf_spec.lua | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/test/functional/options/winfixbuf_spec.lua b/test/functional/options/winfixbuf_spec.lua index 124f194b5a..5bed2fc72f 100644 --- a/test/functional/options/winfixbuf_spec.lua +++ b/test/functional/options/winfixbuf_spec.lua @@ -8,8 +8,8 @@ describe("Nvim API calls with 'winfixbuf'", function() clear() end) - it("Calling vim.api.nvim_win_set_buf with 'winfixbuf'", function() - local results = exec_lua([[ + it('vim.api.nvim_win_set_buf on non-current buffer', function() + local ok = exec_lua([[ local function _setup_two_buffers() local buffer = vim.api.nvim_create_buf(true, true) @@ -23,16 +23,16 @@ describe("Nvim API calls with 'winfixbuf'", function() local other_buffer = _setup_two_buffers() local current_window = 0 - local results, _ = pcall(vim.api.nvim_win_set_buf, current_window, other_buffer) + local ok, _ = pcall(vim.api.nvim_win_set_buf, current_window, other_buffer) - return results + return ok ]]) - assert(results == false) + assert(not ok) end) - it("Calling vim.api.nvim_set_current_buf with 'winfixbuf'", function() - local results = exec_lua([[ + it('vim.api.nvim_set_current_buf on non-current buffer', function() + local ok = exec_lua([[ local function _setup_two_buffers() local buffer = vim.api.nvim_create_buf(true, true) @@ -45,11 +45,29 @@ describe("Nvim API calls with 'winfixbuf'", function() end local other_buffer = _setup_two_buffers() - local results, _ = pcall(vim.api.nvim_set_current_buf, other_buffer) + local ok, _ = pcall(vim.api.nvim_set_current_buf, other_buffer) - return results + return ok ]]) - assert(results == false) + assert(not ok) + end) + + it('vim.api.nvim_win_set_buf on current buffer', function() + exec_lua([[ + vim.wo.winfixbuf = true + local curbuf = vim.api.nvim_get_current_buf() + vim.api.nvim_win_set_buf(0, curbuf) + assert(vim.api.nvim_get_current_buf() == curbuf) + ]]) + end) + + it('vim.api.nvim_set_current_buf on current buffer', function() + exec_lua([[ + vim.wo.winfixbuf = true + local curbuf = vim.api.nvim_get_current_buf() + vim.api.nvim_set_current_buf(curbuf) + assert(vim.api.nvim_get_current_buf() == curbuf) + ]]) end) end) |