diff options
| author | xomachine <xomachiner@gmail.com> | 2018-02-25 01:55:48 +0300 |
|---|---|---|
| committer | Randy Palamar <palamar@ualberta.ca> | 2023-08-24 20:53:56 -0600 |
| commit | 0b015320382e74fcb385a46a81304f588ed27f77 (patch) | |
| tree | 1bf9cc0436d94f57aaa4e59421a750558e11594a /doc | |
| parent | a35e7ea9619efbb8fb8655bd80374199911d8404 (diff) | |
| download | vis-0b015320382e74fcb385a46a81304f588ed27f77.tar.gz vis-0b015320382e74fcb385a46a81304f588ed27f77.tar.xz | |
Implementation of the non-blocking process running Lua API
Rationale
A modern text editor usually includes tools for helping user
to avoid mistakes in texts. Those tools include spell checkers and
programming language integrations. Though vis explicitly states
that the full featured IDE is not a goal, implementing some of
the tools might be achieved using its Lua API. Unfortunatelly
the API misses the ability to start a process and to perform
a communication with it without completely blocking the editor UI,
which is crucial for any tool that performs background tracking of
the inserted text (e. g. language servers).
Implementation details
New feature introduces new API method: communicate. The method
start a new process and returns a handle to communicate with
the process instantly. The patch inserts stderr and stdout
file descriptors of the process to the pselect call of the main loop
used for reading user input to track the process state without
blocking the main loop until the process is finished.
Any changes in the process state cause the iteration of the main loop
and are being exposed to the Lua API as new event: PROCESS_RESPONSE.
Diffstat (limited to 'doc')
0 files changed, 0 insertions, 0 deletions
