You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 21, 2019. It is now read-only.
We have a g:ensime_server_v2 setting for setting up the client to talk to a v2 ENSIME server (undocumented, mostly of interest to developers until v2 becomes the default installation). As discussed in #354, this setting ought to go away now that build tool plugins (at least sbt-ensime as of now) can do the work of installing ENSIME and can control the version to install. Needing to also set this client setting and keep two settings consistent then is not ideal.
What seems like the best approach is to set up the client for the appropriate protocol version automatically based on what is reported to us by the running server in the ConnectionInfo message sent just after connection (n.b. this handshake may eventually change somewhat in the server, see #354 for some references).
This is going to mean some change to the current implementation where an EnsimeClient is created with a mixin for the protocol version—either an initial connection is made before the client is instantiated and then the connection is passed to the client, or the client makes the connection but protocol is then somehow mixed in dynamically after discovering the version (sounds kind of icky). Probably just need to take a stab at implementing this change and see what design looks best, especially in the context of better server lifecycle management that we've been discussing.