diff options
Diffstat (limited to 'crates/ra_ide/src/completion/completion_item.rs')
-rw-r--r-- | crates/ra_ide/src/completion/completion_item.rs | 27 |
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)] | ||
97 | pub 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)] |
97 | pub enum CompletionItemKind { | 105 | pub 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)] | ||
323 | pub 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)] |
332 | pub(crate) struct Completions { | 327 | pub(crate) struct Completions { |