diff options
| author | Nicolas Guichard <nicolas.guichard@kdab.com> | 2023-12-08 16:52:15 +0100 |
|---|---|---|
| committer | Nicolas Guichard <nicolas.guichard@kdab.com> | 2024-01-03 10:56:12 +0100 |
| commit | 566bb77f915d6c0b89f9db4aaf15e958bd6eb404 (patch) | |
| tree | a3c232f3c4cc31377a95dce5a9bd489bb17891d3 | |
| parent | b24914970f0ff6dc35ec3d6a2a2b02b0b2602d74 (diff) | |
| download | rust-566bb77f915d6c0b89f9db4aaf15e958bd6eb404.tar.gz rust-566bb77f915d6c0b89f9db4aaf15e958bd6eb404.zip | |
scip: Populate SymbolInformation::signature_documentation
| -rw-r--r-- | crates/ide/src/static_index.rs | 2 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/cli/scip.rs | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/crates/ide/src/static_index.rs b/crates/ide/src/static_index.rs index 32b052ba463..ff13bd54a37 100644 --- a/crates/ide/src/static_index.rs +++ b/crates/ide/src/static_index.rs @@ -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 diff --git a/crates/rust-analyzer/src/cli/scip.rs b/crates/rust-analyzer/src/cli/scip.rs index fd882ef1d9b..8123c4b7150 100644 --- a/crates/rust-analyzer/src/cli/scip.rs +++ b/crates/rust-analyzer/src/cli/scip.rs @@ -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(), }; |
