Calls a method associated with the given request type in the
Runs the language server and returns true once it exited gracefully or false if it didn't exit gracefully.
Same as run, assumes rpc is initialized and ready
Calls all protocol methods in ExtensionModule matching a certain method and method type.
Same as emitProtocol, but for the callback instead of getting a delegate to call, you get a function pointer and a tuple with the arguments for each instantiation that can be expanded.
Iterates through all public methods in ExtensionModule annotated with the given UDA. For each matching function the callback paramter is called with the arguments being (string name, Delegate symbol, UDA uda). callback is expected to return a boolean if the UDA values were a match.
a module defining the following members: - members: a compile time list of all members in all modules that should be introspected to be called automatically on matching RPC commands. - InitializeResult initialize(InitializeParams): initialization method.
Optional: - bool shutdownRequested: a boolean that is set to true before the shutdown method handler or earlier which will terminate the RPC loop gracefully and wait for an exit notification to actually exit. - @protocolMethod("shutdown") JsonValue shutdown(): the method called when the client wants to shutdown the server. Can return anything, recommended return value is JsonValue(null). - parallelMain: an optional method which is run alongside everything else in parallel using fibers. Should yield as much as possible when there is nothing to do.
Utility to setup an RPC connection via stdin/stdout and route all requests to methods defined in the given extension module.