aboutsummaryrefslogtreecommitdiff
path: root/test/functional/options/winfixbuf_spec.lua
diff options
context:
space:
mode:
authorColin Kennedy <colinvfx@gmail.com>2023-12-25 20:41:09 -0800
committerzeertzjq <zeertzjq@outlook.com>2024-03-11 11:38:13 +0800
commit141182d6c6c06ad56413b81a518ba9b777a0cbe0 (patch)
tree451ef95315a55caf7ca95c9ef6eb8bedd48e77d9 /test/functional/options/winfixbuf_spec.lua
parenta09ddd7ce55037edc9747a682810fba6a26bc201 (diff)
downloadrneovim-141182d6c6c06ad56413b81a518ba9b777a0cbe0.tar.gz
rneovim-141182d6c6c06ad56413b81a518ba9b777a0cbe0.tar.bz2
rneovim-141182d6c6c06ad56413b81a518ba9b777a0cbe0.zip
vim-patch:9.1.0147: Cannot keep a buffer focused in a window
Problem: Cannot keep a buffer focused in a window (Amit Levy) Solution: Add the 'winfixbuf' window-local option (Colin Kennedy) fixes: vim/vim#6445 closes: vim/vim#13903 https://github.com/vim/vim/commit/215703563757a4464907ead6fb9edaeb7f430bea N/A patch: vim-patch:58f1e5c0893a
Diffstat (limited to 'test/functional/options/winfixbuf_spec.lua')
-rw-r--r--test/functional/options/winfixbuf_spec.lua54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/functional/options/winfixbuf_spec.lua b/test/functional/options/winfixbuf_spec.lua
new file mode 100644
index 0000000000..20407b9bb7
--- /dev/null
+++ b/test/functional/options/winfixbuf_spec.lua
@@ -0,0 +1,54 @@
+local helpers = require('test.functional.helpers')(after_each)
+local clear = helpers.clear
+local exec_lua = helpers.exec_lua
+
+describe("Nvim API calls with 'winfixbuf'", function()
+ before_each(function()
+ clear()
+ end)
+
+ it("Calling vim.api.nvim_win_set_buf with 'winfixbuf'", function()
+ local results = exec_lua([[
+ local function _setup_two_buffers()
+ local buffer = vim.api.nvim_create_buf(true, true)
+
+ vim.api.nvim_create_buf(true, true) -- Make another buffer
+
+ local current_window = 0
+ vim.api.nvim_set_option_value("winfixbuf", true, {win=current_window})
+
+ return buffer
+ end
+
+ local other_buffer = _setup_two_buffers()
+ local current_window = 0
+ local results, _ = pcall(vim.api.nvim_win_set_buf, current_window, other_buffer)
+
+ return results
+ ]])
+
+ assert(results == false)
+ end)
+
+ it("Calling vim.api.nvim_set_current_buf with 'winfixbuf'", function()
+ local results = exec_lua([[
+ local function _setup_two_buffers()
+ local buffer = vim.api.nvim_create_buf(true, true)
+
+ vim.api.nvim_create_buf(true, true) -- Make another buffer
+
+ local current_window = 0
+ vim.api.nvim_set_option_value("winfixbuf", true, {win=current_window})
+
+ return buffer
+ end
+
+ local other_buffer = _setup_two_buffers()
+ local results, _ = pcall(vim.api.nvim_set_current_buf, other_buffer)
+
+ return results
+ ]])
+
+ assert(results == false)
+ end)
+end)