async def process_hover_request(self, parameters: lsp.HoverTextDocumentParameters, request_id: Union[(int, str, None)]) -> None:
    'Always respond to a hover request even for non-tracked paths.\n\n        Otherwise, VS Code hover will wait for Pyre until it times out, meaning\n        that messages from other hover providers will be delayed.'
    document_path = parameters.text_document.document_uri().to_file_path()
    if (document_path is None):
        raise json_rpc.InvalidRequestError(f'Document URI is not a file: {parameters.text_document.uri}')
    if (document_path not in self.state.opened_documents):
        response = lsp.HoverResponse.empty()
    else:
        self.state.query_state.queries.put_nowait(TypesQuery(document_path))
        response = self.state.query_state.hover_response_for_position(Path(document_path), parameters.position)
    (await lsp.write_json_rpc(self.output_channel, json_rpc.SuccessResponse(id=request_id, result=response.to_dict())))
Always respond to a hover request even for non-tracked paths.

Otherwise, VS Code hover will wait for Pyre until it times out, meaning
that messages from other hover providers will be delayed.
async def process_hover_request(self, parameters: lsp.HoverTextDocumentParameters, request_id: Union[(int, str, None)]) -> None:
    'Always respond to a hover request even for non-tracked paths.\n\n        Otherwise, VS Code hover will wait for Pyre until it times out, meaning\n        that messages from other hover providers will be delayed.'
    document_path = parameters.text_document.document_uri().to_file_path()
    if (document_path is None):
        raise json_rpc.InvalidRequestError(f'Document URI is not a file: {parameters.text_document.uri}')
    if (document_path not in self.state.opened_documents):
        response = lsp.HoverResponse.empty()
    else:
        self.state.query_state.queries.put_nowait(TypesQuery(document_path))
        response = self.state.query_state.hover_response_for_position(Path(document_path), parameters.position)
    (await lsp.write_json_rpc(self.output_channel, json_rpc.SuccessResponse(id=request_id, result=response.to_dict())))