Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit makes it possible for Metals to communicate with other build
tools than Bloop. New build tools need to implement "BSP connection protocol" documented here:
https://github.com/scalacenter/bsp/blob/master/docs/bsp.md#bsp-connection-protocol
The "Integrating a new build tool" docs have been updated to explain the
steps to implement server discovery.
The long-term plan is to communicate with Bloop via server discovery,
instead of the current custom integration in Metals.
This commit implements a new build tool called "Bill" that implements
BSP server discovery. Bill is used internally to test server discovery.
However, Bill can also be used an inspiration for other 3rd party build
server implementations.
When there are multiple build servers installed on the computer, users
are asked to select which server to connect to. The user choice is
persisted for each unique combination of server names. To override a
persisted server choice, users can run the "Switch build server"
command.