-
Couldn't load subscription status.
- Fork 0
Proactively start indexing on initialisation rather than first message - fixes #1551 #1552
Conversation
| import context.{ dispatcher, system } | ||
|
|
||
| import FileUtils._ | ||
| import org.ensime.util.FileUtils._ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this looks a bit gnarly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was their already - I made it fully qualified rather than having FileUtils imported above and then _ imported here.
|
LGTM |
|
emacs is getting caught up on this http://fommil.com/ensime/ensime-server/765 should we disable the emacs tests in the server and fix it client side? |
|
it would be good if the project sent a persisted connection-info message during startup. That simplifies the client code because it means you don't need to wait for the connection and then send a message and wait for a response... you can just fire off connection handling logic and wait async until the connection info returns. |
|
It can't - its a response to a ConnectionInfoRequest |
|
You should just be able to connect and go full async - assume the server is up and wait for the ready messages to tell you when its available for work. |
|
I suspect you don't check the result - so its just a ping-pong. |
|
Ok, the emacs expectations about startup behaviour are subtle and I'm going to have to introduce a new hack until such times as we fix the protocol (it assumes that the first thing it will ever see is a response to the a connectionInfoReq and not any other async message). |
|
Some history: we were adjusting our requests based on the protocol version, but there was no deterministic ordering of startup messages, so we'd end up firing early RPCs not compatible with the current protocol. That's why we do the blocking handshake before anything else. Any plan to get rid of the handshake should probably include a revised plan for handling protocol evolution. References: |
|
The elisp tests are designed to ensure we get the protocol version before compiler ready is sent (because compiler ready kicks off a bunch of other rpcs). |
|
Yeah, I'm going to do this in two passes:
|
|
dead as a dodo, could form the basis of a revitalised attempt though, coming soon. |
No description provided.