diff options
author | Colin Kennedy <colinvfx@gmail.com> | 2023-12-25 20:41:09 -0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2024-03-11 11:38:13 +0800 |
commit | 141182d6c6c06ad56413b81a518ba9b777a0cbe0 (patch) | |
tree | 451ef95315a55caf7ca95c9ef6eb8bedd48e77d9 /test/functional/options/winfixbuf_spec.lua | |
parent | a09ddd7ce55037edc9747a682810fba6a26bc201 (diff) | |
download | rneovim-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.lua | 54 |
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) |