pub async fn generate_hover<R: Registry + ?Sized>(
parse_result: &dyn ParseResult,
position: Position,
cached_versions: &HashMap<String, String>,
resolved_versions: &HashMap<String, String>,
registry: &R,
formatter: &dyn EcosystemFormatter,
) -> Option<Hover>