fix(extui): set 'modifiable', 'noswapfile' for buffers (#34582)

Problem:  UI buffers may be 'unmodifiable' and use a 'swapfile'.
Solution: Set the 'modifiable' and 'noswapfile' options.

Co-authored-by:phanium <91544758+phanen@users.noreply.github.com>
This commit is contained in:
phanium
2025-06-20 23:32:07 +08:00
committed by GitHub
parent cacb4ceeb4
commit d0aedd36df
2 changed files with 16 additions and 1 deletions

View File

@ -77,6 +77,8 @@ function M.tab_check_wins()
if setopt then
local name = { cmd = 'Cmd', dialog = 'Dialog', msg = 'Msg', pager = 'Pager' }
api.nvim_buf_set_name(M.bufs[type], ('[%s]'):format(name[type]))
api.nvim_set_option_value('swapfile', false, { buf = M.bufs[type] })
api.nvim_set_option_value('modifiable', true, { buf = M.bufs[type] })
if type == 'pager' then
-- Close pager with `q`, same as `checkhealth`
api.nvim_buf_set_keymap(M.bufs.pager, 'n', 'q', '<Cmd>wincmd c<CR>', {})

View File

@ -5,7 +5,7 @@ local clear, command, exec_lua, feed = n.clear, n.command, n.exec_lua, n.feed
describe('messages2', function()
local screen
describe('target=msg', function()
describe('target=cmd', function()
before_each(function()
clear()
screen = Screen.new()
@ -82,5 +82,18 @@ describe('messages2', function()
1,2 All|
]])
end)
it('new buffer, window and options after closing a buffer', function()
command('set nomodifiable | echom "foo" | messages')
screen:expect([[
|
{1:~ }|*10
─{100:Pager}───────────────────────────────────────────────|
{4:fo^o }|
foo |
]])
command('bdelete | messages')
screen:expect_unchanged()
end)
end)
end)