aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/completion/completion_item.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide/src/completion/completion_item.rs')
-rw-r--r--crates/ra_ide/src/completion/completion_item.rs27
1 files changed, 11 insertions, 16 deletions
diff --git a/crates/ra_ide/src/completion/completion_item.rs b/crates/ra_ide/src/completion/completion_item.rs
index e17586aa5..edbf4a5b7 100644
--- a/crates/ra_ide/src/completion/completion_item.rs
+++ b/crates/ra_ide/src/completion/completion_item.rs
@@ -52,7 +52,7 @@ pub struct CompletionItem {
52 /// after completion. 52 /// after completion.
53 trigger_call_info: bool, 53 trigger_call_info: bool,
54 54
55 /// Score is usefull to pre select or display in better order completion items 55 /// Score is useful to pre select or display in better order completion items
56 score: Option<CompletionScore>, 56 score: Option<CompletionScore>,
57} 57}
58 58
@@ -93,6 +93,14 @@ impl fmt::Debug for CompletionItem {
93 } 93 }
94} 94}
95 95
96#[derive(Debug, Clone, Copy)]
97pub enum CompletionScore {
98 /// If only type match
99 TypeMatch,
100 /// If type and name match
101 TypeAndNameMatch,
102}
103
96#[derive(Debug, Clone, Copy, PartialEq, Eq)] 104#[derive(Debug, Clone, Copy, PartialEq, Eq)]
97pub enum CompletionItemKind { 105pub enum CompletionItemKind {
98 Snippet, 106 Snippet,
@@ -182,7 +190,7 @@ impl CompletionItem {
182 } 190 }
183 /// What string is used for filtering. 191 /// What string is used for filtering.
184 pub fn lookup(&self) -> &str { 192 pub fn lookup(&self) -> &str {
185 self.lookup.as_deref().unwrap_or_else(|| self.label()) 193 self.lookup.as_deref().unwrap_or(&self.label)
186 } 194 }
187 195
188 pub fn kind(&self) -> Option<CompletionItemKind> { 196 pub fn kind(&self) -> Option<CompletionItemKind> {
@@ -194,11 +202,7 @@ impl CompletionItem {
194 } 202 }
195 203
196 pub fn score(&self) -> Option<CompletionScore> { 204 pub fn score(&self) -> Option<CompletionScore> {
197 self.score.clone() 205 self.score
198 }
199
200 pub fn set_score(&mut self, score: CompletionScore) {
201 self.score = Some(score);
202 } 206 }
203 207
204 pub fn trigger_call_info(&self) -> bool { 208 pub fn trigger_call_info(&self) -> bool {
@@ -302,7 +306,6 @@ impl Builder {
302 self.deprecated = Some(deprecated); 306 self.deprecated = Some(deprecated);
303 self 307 self
304 } 308 }
305 #[allow(unused)]
306 pub(crate) fn set_score(mut self, score: CompletionScore) -> Builder { 309 pub(crate) fn set_score(mut self, score: CompletionScore) -> Builder {
307 self.score = Some(score); 310 self.score = Some(score);
308 self 311 self
@@ -319,14 +322,6 @@ impl<'a> Into<CompletionItem> for Builder {
319 } 322 }
320} 323}
321 324
322#[derive(Debug, Clone)]
323pub enum CompletionScore {
324 /// If only type match
325 TypeMatch,
326 /// If type and name match
327 TypeAndNameMatch,
328}
329
330/// Represents an in-progress set of completions being built. 325/// Represents an in-progress set of completions being built.
331#[derive(Debug, Default)] 326#[derive(Debug, Default)]
332pub(crate) struct Completions { 327pub(crate) struct Completions {