From 3cf602486ce5cfaa50f33edbe179928f84527dc9 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 20 Oct 2024 07:59:43 +0800 Subject: feat(terminal)!: make 'belloff' and 'visualbell' apply to terminal bell (#30859) vim-patch:8.2.4744: a terminal window can't use the bell vim-patch:8.2.4745: using wrong flag for using bell in the terminal BREAKING CHANGE: Bells from :terminal are now silent by default, unless 'belloff' option doesn't contain "term" or "all". --- test/functional/terminal/buffer_spec.lua | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'test') diff --git a/test/functional/terminal/buffer_spec.lua b/test/functional/terminal/buffer_spec.lua index 7a30367917..8ed6d03c6b 100644 --- a/test/functional/terminal/buffer_spec.lua +++ b/test/functional/terminal/buffer_spec.lua @@ -422,6 +422,44 @@ describe(':terminal buffer', function() |*2 ]]) end) + + it("handles bell respecting 'belloff' and 'visualbell'", function() + local screen = Screen.new(50, 7) + screen:attach() + local chan = api.nvim_open_term(0, {}) + + command('set belloff=') + api.nvim_chan_send(chan, '\a') + screen:expect(function() + eq({ true, false }, { screen.bell, screen.visual_bell }) + end) + screen.bell = false + + command('set visualbell') + api.nvim_chan_send(chan, '\a') + screen:expect(function() + eq({ false, true }, { screen.bell, screen.visual_bell }) + end) + screen.visual_bell = false + + command('set belloff=term') + api.nvim_chan_send(chan, '\a') + screen:expect({ + condition = function() + eq({ false, false }, { screen.bell, screen.visual_bell }) + end, + unchanged = true, + }) + + command('set belloff=all') + api.nvim_chan_send(chan, '\a') + screen:expect({ + condition = function() + eq({ false, false }, { screen.bell, screen.visual_bell }) + end, + unchanged = true, + }) + end) end) describe('on_lines does not emit out-of-bounds line indexes when', function() -- cgit