diff options
| author | Kirill Bulatov <mail4score@gmail.com> | 2024-12-03 10:41:29 +0200 |
|---|---|---|
| committer | Kirill Bulatov <mail4score@gmail.com> | 2024-12-03 10:51:17 +0200 |
| commit | aede6e136567d25d23c802fa6950a4e2ccca0d45 (patch) | |
| tree | 874b57c7d68dbb6ae62e823dc4c6fddab0bd611d /src/tools/rust-analyzer/crates/ide-completion | |
| parent | 86387c8feb0d95a204084e02961ab3e4a02985c3 (diff) | |
| download | rust-aede6e136567d25d23c802fa6950a4e2ccca0d45.tar.gz rust-aede6e136567d25d23c802fa6950a4e2ccca0d45.zip | |
Advertise completions and inlay hints resolve server capabilities based on the client capabilities.
Diffstat (limited to 'src/tools/rust-analyzer/crates/ide-completion')
| -rw-r--r-- | src/tools/rust-analyzer/crates/ide-completion/src/lib.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-completion/src/lib.rs b/src/tools/rust-analyzer/crates/ide-completion/src/lib.rs index dfee01b187e..cffdfa29f1a 100644 --- a/src/tools/rust-analyzer/crates/ide-completion/src/lib.rs +++ b/src/tools/rust-analyzer/crates/ide-completion/src/lib.rs @@ -19,7 +19,7 @@ use ide_db::{ }, items_locator, syntax_helpers::tree_diff::diff, - FilePosition, RootDatabase, + FilePosition, FxHashSet, RootDatabase, }; use crate::{ @@ -50,6 +50,18 @@ pub struct CompletionFieldsToResolve { } impl CompletionFieldsToResolve { + pub fn from_client_capabilities(client_capability_fields: &FxHashSet<&str>) -> Self { + Self { + resolve_label_details: client_capability_fields.contains("labelDetails"), + resolve_tags: client_capability_fields.contains("tags"), + resolve_detail: client_capability_fields.contains("detail"), + resolve_documentation: client_capability_fields.contains("documentation"), + resolve_filter_text: client_capability_fields.contains("filterText"), + resolve_text_edit: client_capability_fields.contains("textEdit"), + resolve_command: client_capability_fields.contains("command"), + } + } + pub const fn empty() -> Self { Self { resolve_label_details: false, |
