Adds support for running arbitrary commands via file-based RPC. Designed for use with voice-control systems such as Talon.
On start-up of Visual Studio, creates a communication directory in the users temp directory, called visual-studio-commandServer
Then waits for the CommandServer.ReceiveCommand command to be issued.
Once the server is triggered the command server will read the request.json file in the communication directory.
The command in the JSON file is then executed and a response written to response.json. Note that we write the JSON response on a single line, with a trailing newline, so that the client can repeatedly try to read the file until it finds a final newline to indicate that the write is complete.
Note that the command server will refuse to execute a command if the request file is older than 3 seconds.
The uuid is used by the command server to create the response file so that the system creating the request files can correlate the request.json and response.json files.
The command servers default command handler recognises commands which start with an commandId of VSCommand, for example the command file below issues the Find command (similar to pressing ctrl-f), the advantage being that by using the command directly we are not dependant keyboard bindings.