aboutsummaryrefslogtreecommitdiff
path: root/lua/themes
diff options
context:
space:
mode:
authorxomachine <xomachiner@gmail.com>2018-02-25 01:55:48 +0300
committerRandy Palamar <palamar@ualberta.ca>2023-08-24 20:53:56 -0600
commit0b015320382e74fcb385a46a81304f588ed27f77 (patch)
tree1bf9cc0436d94f57aaa4e59421a750558e11594a /lua/themes
parenta35e7ea9619efbb8fb8655bd80374199911d8404 (diff)
downloadvis-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 'lua/themes')
0 files changed, 0 insertions, 0 deletions