Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[READY] Java support with asynchronous diagnostics and messages #2863

Merged
merged 3 commits into from
Feb 10, 2018

Commits on Feb 10, 2018

  1. Configuration menu
    Copy the full SHA
    4e95e5d View commit details
    Browse the repository at this point in the history
  2. Add support for Java diagnostics and asynchronous messages

    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).
    puremourning committed Feb 10, 2018
    Configuration menu
    Copy the full SHA
    292de25 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    690a763 View commit details
    Browse the repository at this point in the history