aboutsummaryrefslogtreecommitdiff
path: root/test/functional/api/autocmd_spec.lua
diff options
context:
space:
mode:
authorGregory Anders <8965202+gpanders@users.noreply.github.com>2022-05-18 09:51:26 -0600
committerGitHub <noreply@github.com>2022-05-18 09:51:26 -0600
commit8a9ab88945cdabcbd23f23406353ec6110fefa83 (patch)
tree5e71bf2543032471d30fce29ced806bf07021bfd /test/functional/api/autocmd_spec.lua
parentd7dd6007167eac919205404bc4e556237118a7a7 (diff)
downloadrneovim-8a9ab88945cdabcbd23f23406353ec6110fefa83.tar.gz
rneovim-8a9ab88945cdabcbd23f23406353ec6110fefa83.tar.bz2
rneovim-8a9ab88945cdabcbd23f23406353ec6110fefa83.zip
feat(api): enable nvim_exec_autocmds to pass arbitrary data (#18613)
Add a "data" key to nvim_exec_autocmds that passes arbitrary data (API objects) to autocommand callbacks.
Diffstat (limited to 'test/functional/api/autocmd_spec.lua')
-rw-r--r--test/functional/api/autocmd_spec.lua28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/functional/api/autocmd_spec.lua b/test/functional/api/autocmd_spec.lua
index 41de308a2c..c08c411de1 100644
--- a/test/functional/api/autocmd_spec.lua
+++ b/test/functional/api/autocmd_spec.lua
@@ -230,6 +230,34 @@ describe('autocmd api', function()
}, meths.get_var("autocmd_args"))
end)
+
+ it('can receive arbitrary data', function()
+ local function test(data)
+ eq(data, exec_lua([[
+ local input = ...
+ local output
+ vim.api.nvim_create_autocmd("User", {
+ pattern = "Test",
+ callback = function(args)
+ output = args.data
+ end,
+ })
+
+ vim.api.nvim_exec_autocmds("User", {
+ pattern = "Test",
+ data = input,
+ })
+
+ return output
+ ]], data))
+ end
+
+ test("Hello")
+ test(42)
+ test(true)
+ test({ "list" })
+ test({ foo = "bar" })
+ end)
end)
describe('nvim_get_autocmds', function()