mirror of
https://github.com/neovim/neovim.git
synced 2025-09-07 11:58:17 +00:00
api: nvim_get_mode()
Asynchronous API functions are served immediately, which means pending input could change the state of Nvim shortly after an async API function result is returned. nvim_get_mode() is different: - If RPCs are known to be blocked, it responds immediately (without flushing the input/event queue) - else it is handled just-in-time before waiting for input, after pending input was processed. This makes the result more reliable (but not perfect). Internally this is handled as a special case, but _semantically_ nothing has changed: API users never know when input flushes, so this internal special-case doesn't violate that. As far as API users are concerned, nvim_get_mode() is just another asynchronous API function. In all cases nvim_get_mode() never blocks for more than the time it takes to flush the input/event queue (~µs). Note: This doesn't address #6166; nvim_get_mode() will provoke #6166 if e.g. `d` is operator-pending. Closes #6159
This commit is contained in:
@@ -76,7 +76,7 @@ typedef struct {
|
||||
size_t idx;
|
||||
} MPToAPIObjectStackItem;
|
||||
|
||||
/// Convert type used by msgpack parser to Neovim own API type
|
||||
/// Convert type used by msgpack parser to Nvim API type.
|
||||
///
|
||||
/// @param[in] obj Msgpack value to convert.
|
||||
/// @param[out] arg Location where result of conversion will be saved.
|
||||
|
Reference in New Issue
Block a user