scip: Populate SymbolInformation::signature_documentation

This commit is contained in:
Nicolas Guichard 2023-12-08 16:52:15 +01:00
parent b24914970f
commit 566bb77f91
2 changed files with 10 additions and 1 deletions

View File

@ -48,6 +48,7 @@ pub struct TokenStaticData {
pub moniker: Option<MonikerResult>,
pub display_name: Option<String>,
pub enclosing_moniker: Option<MonikerResult>,
pub signature: Option<String>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@ -178,6 +179,7 @@ impl StaticIndex<'_> {
enclosing_moniker: current_crate
.zip(def.enclosing_definition(self.db))
.and_then(|(cc, enclosing_def)| def_to_moniker(self.db, enclosing_def, cc)),
signature: def.label(self.db),
});
self.def_map.insert(def, it);
it

View File

@ -143,6 +143,13 @@ impl flags::Scip {
.map(|hover| hover.markup.as_str())
.filter(|it| !it.is_empty())
.map(|it| vec![it.to_owned()]);
let signature_documentation =
token.signature.clone().map(|text| scip_types::Document {
relative_path: relative_path.clone(),
language: "rust".to_string(),
text,
..Default::default()
});
let symbol_info = scip_types::SymbolInformation {
symbol: symbol.clone(),
documentation: documentation.unwrap_or_default(),
@ -150,7 +157,7 @@ impl flags::Scip {
special_fields: Default::default(),
kind: Default::default(),
display_name: token.display_name.clone().unwrap_or_default(),
signature_documentation: Default::default(),
signature_documentation: signature_documentation.into(),
enclosing_symbol: enclosing_symbol.unwrap_or_default(),
};