diff options
author | notomo <notomo.motono@gmail.com> | 2021-08-26 23:37:36 +0900 |
---|---|---|
committer | Sean Dewar <seandewar@users.noreply.github.com> | 2021-09-16 14:46:27 +0100 |
commit | f7002337c02a3a6b73b7d1409186c864b129413d (patch) | |
tree | 936de547a57fae1278e83adba5d87367a813162e /test/functional/lua/highlight_spec.lua | |
parent | 6bda2f56eb01b9a9ee3c0d25cb607d03dd64b91a (diff) | |
download | rneovim-f7002337c02a3a6b73b7d1409186c864b129413d.tar.gz rneovim-f7002337c02a3a6b73b7d1409186c864b129413d.tar.bz2 rneovim-f7002337c02a3a6b73b7d1409186c864b129413d.zip |
backport: fix(lua): verify buffer in highlight.on_yank (#15482)
Resolve an issue with deferred clearing of highlight failing if the
buffer is deleted before the timeout by checking whether the
buffer is valid first.
Diffstat (limited to 'test/functional/lua/highlight_spec.lua')
-rw-r--r-- | test/functional/lua/highlight_spec.lua | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/functional/lua/highlight_spec.lua b/test/functional/lua/highlight_spec.lua new file mode 100644 index 0000000000..853b2991e8 --- /dev/null +++ b/test/functional/lua/highlight_spec.lua @@ -0,0 +1,26 @@ +local helpers = require('test.functional.helpers')(after_each) +local funcs = helpers.funcs +local exec_lua = helpers.exec_lua +local command = helpers.command +local clear = helpers.clear + +describe('vim.highlight.on_yank', function() + + before_each(function() + clear() + end) + + it('does not show errors even if buffer is wiped before timeout', function() + command('new') + local bufnr = funcs.bufnr("%") + exec_lua[[ + vim.highlight.on_yank({timeout = 10, on_macro = true, event = {operator = "y", regtype = "v"}}) + vim.cmd('bwipeout!') + ]] + exec_lua[[vim.wait(10)]] + local pattern = [[vim/highlight.lua:%d+: Invalid buffer id: ]] .. bufnr + local exists = pcall(helpers.assert_log, pattern) + assert.is_false(exists, string.format("%q should not be in log", pattern)) + end) + +end) |