This class contains the boilerplate that many of the language server plugins use. Almost all language servers consist of starting a process and communicating with it over stdin/stdout, so IdeLspService contains code to do this. Subclasses implement the
configure virtual methods to cover the specifics of finding the executable, setting environment variables, etc.
I've ported the typescript and jedi plugins as a proof of concept, but several other plugins use almost the same code as it did and should be easy to port.