add module hover for primitives

This commit is contained in:
light-ly 2024-11-12 23:08:08 +08:00
parent 397946438c
commit eb210bb3b7

View File

@ -528,7 +528,34 @@ fn hover_primitives_module_declaration(
#[allow(unused)]
def_path: &str
) -> Option<Hover> {
None
let primitive_map = server.srcs.primitive_text.name_to_text.read().unwrap();
if let Some(text) = primitive_map.get(token_name) {
let mut markdowns = Vec::<MarkedString>::new();
let mut lines: Vec<&str> = text.split_inclusive('\n').collect();
if lines.len() > 1 {
lines.remove(0);
lines.pop();
}
let profile_markdown = LanguageString {
language: "systemverilog".to_string(),
value: lines.join("")
};
markdowns.push(MarkedString::LanguageString(profile_markdown));
let hover = Hover {
contents: HoverContents::Array(markdowns),
range: None
};
Some(hover)
} else {
None
}
}