neovim/python-client — pull request #9 by tarruda (2014-06-24 13:44:40+00:00)
Title: Add support for client-side RPC

A major refactor was necessary in order to support client-side RPC:

- Every API function now has a non-blocking variant(prefixed with `send_`).
These send_* functions return promises that have a single `wait` method to
wait for the result.
- The synchronous versions are still provided, but are implemented by calling
the async version followed by a `wait` call.
- `vim.next_event` is now `vim.next_message`, and messages are specialized
objects that represent events or requests. It always has at least three
properties: `name`, `args` and `type` where:
- `name` is the method/event name
- `args` is the method/event arguments
- `type` is either `event` or `request`
Additionally, requests have a `reply` method that can be used respond to the
request. The `reply` method accepts a single argument that will be returned
to the remote nvim instance.
- `vim.push_event` is now `vim.push_message` and receives two arguments: `name`
and `args`.
- Multi-thread synchronization was refactored/improved

On top of that, the `expect` method was removed since that can be easily
implemented as a higher-level feature of a test library.