aboutsummaryrefslogtreecommitdiff
path: root/test/functional/options/winfixbuf_spec.lua
diff options
context:
space:
mode:
authorphanium <91544758+phanen@users.noreply.github.com>2024-12-16 16:59:24 +0800
committerGitHub <noreply@github.com>2024-12-16 00:59:24 -0800
commit01a97d2ad75a459cad850d542f9ad7c4467cb380 (patch)
treebade151d04e5d398e6f6b02de1c834e60b189ba0 /test/functional/options/winfixbuf_spec.lua
parentcc38630d39d2aa99183756d55849117daf6dfbfa (diff)
downloadrneovim-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.lua38
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)