blob: 737a99d3ea8e5450c120db5953a5c8b02f7525bf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
use lsp_types::{HoverParams, MarkupKind};
use crate::{component_db::COMPONENT_DATABASE, features::cursor::CursorContext, syntax::latex};
use super::HoverResult;
pub(super) fn find_component_hover(context: &CursorContext<HoverParams>) -> Option<HoverResult> {
let data = context.request.main_document().data.as_latex()?;
for link in &data.extras.explicit_links {
if matches!(
link.kind,
latex::ExplicitLinkKind::Package | latex::ExplicitLinkKind::Class
) && link.stem_range.contains_inclusive(context.offset)
{
let value = COMPONENT_DATABASE.documentation(&link.stem)?.value;
return Some(HoverResult {
value,
value_kind: MarkupKind::PlainText,
range: link.stem_range,
});
}
}
None
}
|