aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/_meta/builtin.lua
diff options
context:
space:
mode:
authorLuuk van Baal <luukvbaal@gmail.com>2024-06-20 14:48:06 +0200
committerLuuk van Baal <luukvbaal@gmail.com>2024-11-14 13:23:11 +0100
commitde48fbbd5f8800bd7f1909a6fb41e53e871cf74c (patch)
treeb394143235cc15259d6bf8b08729da73d5633ba4 /runtime/lua/vim/_meta/builtin.lua
parent7d771c3eeef5b4dca9ebc5ed6f7ca03f2b26b6bc (diff)
downloadrneovim-de48fbbd5f8800bd7f1909a6fb41e53e871cf74c.tar.gz
rneovim-de48fbbd5f8800bd7f1909a6fb41e53e871cf74c.tar.bz2
rneovim-de48fbbd5f8800bd7f1909a6fb41e53e871cf74c.zip
fix(messages)!: vim.ui_attach message callbacks are unsafe
Problem: Lua callbacks for "msg_show" events with vim.ui_attach() are executed when it is not safe. Solution: Disallow non-fast API calls for "msg_show" event callbacks. Automatically detach callback after excessive errors. Make sure fast APIs do not modify Nvim state.
Diffstat (limited to 'runtime/lua/vim/_meta/builtin.lua')
-rw-r--r--runtime/lua/vim/_meta/builtin.lua4
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/lua/vim/_meta/builtin.lua b/runtime/lua/vim/_meta/builtin.lua
index 234c75d38f..dd6ef69eb8 100644
--- a/runtime/lua/vim/_meta/builtin.lua
+++ b/runtime/lua/vim/_meta/builtin.lua
@@ -233,6 +233,10 @@ function vim.wait(time, callback, interval, fast_only) end
--- {callback} receives event name plus additional parameters. See |ui-popupmenu|
--- and the sections below for event format for respective events.
---
+--- Callbacks for `msg_show` events are executed in |api-fast| context.
+---
+--- Excessive errors inside the callback will result in forced detachment.
+---
--- WARNING: This api is considered experimental. Usability will vary for
--- different screen elements. In particular `ext_messages` behavior is subject
--- to further changes and usability improvements. This is expected to be