Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/lib.rs')
-rw-r--r--crates/ide-completion/src/lib.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/crates/ide-completion/src/lib.rs b/crates/ide-completion/src/lib.rs
index dfee01b187..14f42b4005 100644
--- a/crates/ide-completion/src/lib.rs
+++ b/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::{
@@ -34,6 +34,7 @@ pub use crate::{
config::{CallableSnippets, CompletionConfig},
item::{
CompletionItem, CompletionItemKind, CompletionRelevance, CompletionRelevancePostfixMatch,
+ CompletionRelevanceReturnType, CompletionRelevanceTypeMatch,
},
snippet::{Snippet, SnippetScope},
};
@@ -50,6 +51,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,