use syntax::latex; use crate::{Hover, HoverData, HoverParams}; pub(super) fn find_hover<'a>(params: &HoverParams<'a>) -> Option> { let data = params.feature.document.data.as_tex()?; let name = data .root_node() .token_at_offset(params.offset) .find(|token| token.kind() == latex::COMMAND_NAME)?; let command = completion_data::included_packages(¶ms.feature) .flat_map(|package| package.commands.iter()) .find(|command| command.name == &name.text()[1..])?; let range = name.text_range(); let data = HoverData::Command(command); Some(Hover { range, data }) }