It is currently very difficult if not impossible to test the logic of the language servers without starting a server and poking it with the server's request and notification methods. However, that makes it very difficult to isolate and test parts of the logic.
I think if we want to continue improving the functionality of each server, as opposed to just adding more servers, we need to build out a suite of unit-tests for each verifying completions and other features return what we want in a wide range of scenarios.
I would like to start by separating the language server protocol aspect from the underlying logic and state management in the servers.
It is currently very difficult if not impossible to test the logic of the language servers without starting a server and poking it with the server's request and notification methods. However, that makes it very difficult to isolate and test parts of the logic.
I think if we want to continue improving the functionality of each server, as opposed to just adding more servers, we need to build out a suite of unit-tests for each verifying completions and other features return what we want in a wide range of scenarios.
I would like to start by separating the language server protocol aspect from the underlying logic and state management in the servers.
What do you think @jmrog @anneeb ?