aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-06-30 06:40:31 +0800
committerGitHub <noreply@github.com>2024-06-30 06:40:31 +0800
commite7020306a19a5211c834966ec067fff3b981bdb9 (patch)
tree79436a276599e9c62f69d308d2d963e7f3dee1ac /test/functional
parent435d0182d293e70b14a5655c976c3c6daa6ea765 (diff)
downloadrneovim-e7020306a19a5211c834966ec067fff3b981bdb9.tar.gz
rneovim-e7020306a19a5211c834966ec067fff3b981bdb9.tar.bz2
rneovim-e7020306a19a5211c834966ec067fff3b981bdb9.zip
feat(jumplist): allow opting out of removing unloaded buffers (#29347)
Problem: Cannot opt out of removing unloaded buffers from the jumplist. Solution: Only enable that with "unload" flag in 'jumpoptions'.
Diffstat (limited to 'test/functional')
-rw-r--r--test/functional/editor/jump_spec.lua46
1 files changed, 45 insertions, 1 deletions
diff --git a/test/functional/editor/jump_spec.lua b/test/functional/editor/jump_spec.lua
index 880831d9f8..6d2f75e7c5 100644
--- a/test/functional/editor/jump_spec.lua
+++ b/test/functional/editor/jump_spec.lua
@@ -194,7 +194,7 @@ describe("jumpoptions=stack behaves like 'tagstack'", function()
end)
end)
-describe('buffer deletion', function()
+describe('buffer deletion with jumpoptions+=unload', function()
local base_file = 'Xtest-functional-buffer-deletion'
local file1 = base_file .. '1'
local file2 = base_file .. '2'
@@ -227,6 +227,12 @@ describe('buffer deletion', function()
command('edit ' .. file3)
end)
+ after_each(function()
+ os.remove(file1)
+ os.remove(file2)
+ os.remove(file3)
+ end)
+
it('deletes jump list entries when the current buffer is deleted', function()
command('edit ' .. file1)
@@ -319,6 +325,44 @@ describe('buffer deletion', function()
end)
end)
+describe('buffer deletion with jumpoptions-=unload', function()
+ local base_file = 'Xtest-functional-buffer-deletion'
+ local file1 = base_file .. '1'
+ local file2 = base_file .. '2'
+ local base_content = 'text'
+ local content1 = base_content .. '1'
+ local content2 = base_content .. '2'
+
+ before_each(function()
+ clear()
+ command('clearjumps')
+ command('set jumpoptions-=unload')
+
+ write_file(file1, content1, false, false)
+ write_file(file2, content2, false, false)
+
+ command('edit ' .. file1)
+ command('edit ' .. file2)
+ end)
+
+ after_each(function()
+ os.remove(file1)
+ os.remove(file2)
+ end)
+
+ it('Ctrl-O reopens previous buffer with :bunload or :bdelete #28968', function()
+ eq(file2, fn.bufname(''))
+ command('bunload')
+ eq(file1, fn.bufname(''))
+ feed('<C-O>')
+ eq(file2, fn.bufname(''))
+ command('bdelete')
+ eq(file1, fn.bufname(''))
+ feed('<C-O>')
+ eq(file2, fn.bufname(''))
+ end)
+end)
+
describe('jumpoptions=view', function()
local file1 = 'Xtestfile-functional-editor-jumps'
local file2 = 'Xtestfile-functional-editor-jumps-2'