diff options
author | bfredl <bjorn.linse@gmail.com> | 2022-07-09 14:48:09 +0200 |
---|---|---|
committer | bfredl <bjorn.linse@gmail.com> | 2022-07-19 12:38:37 +0200 |
commit | f87c8245133dd8116a9bab2d2e89f9b26967c7a8 (patch) | |
tree | 48a289574b8280cbcf743dd9a9b0429859570200 /src | |
parent | 0b63f5afad852d077bb430ad9c9ba4301980d500 (diff) | |
download | rneovim-f87c8245133dd8116a9bab2d2e89f9b26967c7a8.tar.gz rneovim-f87c8245133dd8116a9bab2d2e89f9b26967c7a8.tar.bz2 rneovim-f87c8245133dd8116a9bab2d2e89f9b26967c7a8.zip |
fix(rpc): break nvim_error_event feedback loop between two nvim instances
In case nvim A sends nvim_error_event to nvim B, it would
respond with another nvim_error_event due to unknown
request name. Fix this by adding dummy request handler for now.
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/api/vim.c | 8 | ||||
-rw-r--r-- | src/nvim/generators/gen_api_dispatch.lua | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 56516b2ac7..5d941890db 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -2256,3 +2256,11 @@ Dictionary nvim_eval_statusline(String str, Dict(eval_statusline) *opts, Error * return result; } + +void nvim_error_event(uint64_t channel_id, Integer lvl, String data) + FUNC_API_REMOTE_ONLY +{ + // TODO(bfredl): consider printing message to user, as will be relevant + // if we fork nvim processes as async workers + ELOG("async error on channel %" PRId64 ": %s", channel_id, data.size ? data.data : ""); +} diff --git a/src/nvim/generators/gen_api_dispatch.lua b/src/nvim/generators/gen_api_dispatch.lua index 4cf282770d..b167767f7a 100644 --- a/src/nvim/generators/gen_api_dispatch.lua +++ b/src/nvim/generators/gen_api_dispatch.lua @@ -91,7 +91,7 @@ local deprecated_aliases = require("api.dispatch_deprecated") for _,f in ipairs(shallowcopy(functions)) do local ismethod = false if startswith(f.name, "nvim_") then - if startswith(f.name, "nvim__") then + if startswith(f.name, "nvim__") or f.name == "nvim_error_event" then f.since = -1 elseif f.since == nil then print("Function "..f.name.." lacks since field.\n") @@ -149,7 +149,7 @@ local exported_attributes = {'name', 'return_type', 'method', 'since', 'deprecated_since'} local exported_functions = {} for _,f in ipairs(functions) do - if not startswith(f.name, "nvim__") then + if not (startswith(f.name, "nvim__") or f.name == "nvim_error_event") then local f_exported = {} for _,attr in ipairs(exported_attributes) do f_exported[attr] = f[attr] |