Files
neovim/runtime
Justin M. Keyes 3ea1007753 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
2017-04-28 19:14:34 +02:00
..
2016-10-15 11:51:46 +09:00
2017-04-28 19:14:34 +02:00
2017-04-19 21:26:17 +02:00
2017-04-19 21:26:17 +02:00
2017-04-19 21:26:17 +02:00
2016-08-03 08:07:28 -04:00
2016-08-03 08:07:28 -04:00
2017-04-19 21:26:17 +02:00
2014-12-19 15:28:49 -05:00
2017-04-19 21:26:17 +02:00
2015-11-28 10:59:21 +01:00
2017-01-31 02:02:09 +01:00
2017-04-19 21:26:17 +02:00
2016-04-16 23:06:24 -07:00
2017-03-11 18:26:03 +08:00
2017-01-31 02:02:09 +01:00
2017-01-31 02:02:09 +01:00
2017-04-19 21:26:17 +02:00
2014-07-29 02:12:31 +00:00
2016-10-15 12:15:36 +09:00
2016-10-04 23:34:28 +09:00
2016-10-04 23:14:47 +09:00