diff options
author | luukvbaal <luukvbaal@gmail.com> | 2025-04-07 12:58:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-07 03:58:18 -0700 |
commit | ca16b54c866bca6d10fc4f60874e6469bd0751cd (patch) | |
tree | e3ed8b8c0d82a1d354194a859e051eb687a1f13c /test/functional/ui/decorations_spec.lua | |
parent | cf59631f65390efcf9ad27cd63003f8711cb9e17 (diff) | |
download | rneovim-ca16b54c866bca6d10fc4f60874e6469bd0751cd.tar.gz rneovim-ca16b54c866bca6d10fc4f60874e6469bd0751cd.tar.bz2 rneovim-ca16b54c866bca6d10fc4f60874e6469bd0751cd.zip |
fix(decor): enable decoration provider in on_start #33337
Problem: An on_win-disabled decoration provider is left disabled for
the on_buf callback during the next redraw (if the provider
does not subscribe to on_end).
Solution: Move re-activation of the provider from after the on_end
callback to before the on_start callback.
Diffstat (limited to 'test/functional/ui/decorations_spec.lua')
-rw-r--r-- | test/functional/ui/decorations_spec.lua | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/functional/ui/decorations_spec.lua b/test/functional/ui/decorations_spec.lua index 307f750175..2f5ef790f1 100644 --- a/test/functional/ui/decorations_spec.lua +++ b/test/functional/ui/decorations_spec.lua @@ -838,6 +838,26 @@ describe('decorations providers', function() | ]]) end) + + it('decor provider is enabled again for next redraw after on_win disabled it', function() + exec_lua(function() + vim.api.nvim_set_decoration_provider(vim.api.nvim_create_namespace(''), { + on_win = function() + return false + end, + on_buf = function() + _G.did_buf = (_G.did_buf or 0) + 1 + end, + }) + end) + api.nvim_buf_set_lines(0, 0, -1, false, { 'foo' }) + screen:expect([[ + ^foo | + {1:~ }|*6 + | + ]]) + eq(1, exec_lua('return _G.did_buf')) + end) end) describe('decoration_providers', function() |