292de25c72
This implements an asynchronous message system using a long-poll request to the server. The server provides an endpoint /receive_messages which blocks until either a timeout occurs or we receive a batch of asynchronous messages. We send this request asynchronously and poll it 4 times a second to see if we have received any messages. The messages may either be simply for display (such as startup progress) or diagnostics, which override the diagnostics returned by OnFileReqdyToParse. In the former case, we simply display the message, accepting that this might be overwritten by any other message (indeed, requiring this), and for the latter we fan out diagnostics to any open buffer for the file in question. Unfortunately, Vim has bugs related to timers when there is something displayed (such as a "confirm" prompt or other), so we suspend background timers when doing subcommands to avoid vim bugs. NOTE: This requires a new version of Vim (detected by the presence of the particular functions used). |
||
---|---|---|
.. | ||
__init__.py | ||
base_request.py | ||
command_request.py | ||
completer_available_request.py | ||
completion_request.py | ||
debug_info_request.py | ||
event_notification.py | ||
messages_request.py | ||
omni_completion_request.py | ||
shutdown_request.py | ||
ycmd_keepalive.py |