diff options
author | Aleksey Kladov <[email protected]> | 2019-02-08 11:49:43 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-02-08 11:49:43 +0000 |
commit | 12e3b4c70b5ef23b2fdfc197296d483680e125f9 (patch) | |
tree | 71baa0e0a62f9f6b61450501c5f821f67badf9e4 /crates/ra_ide_api/src/completion | |
parent | 5cb1d41a30d25cbe136402644bf5434dd667f1e5 (diff) |
reformat the world
Diffstat (limited to 'crates/ra_ide_api/src/completion')
7 files changed, 19 insertions, 46 deletions
diff --git a/crates/ra_ide_api/src/completion/complete_dot.rs b/crates/ra_ide_api/src/completion/complete_dot.rs index bad51cc51..a673dbdcf 100644 --- a/crates/ra_ide_api/src/completion/complete_dot.rs +++ b/crates/ra_ide_api/src/completion/complete_dot.rs | |||
@@ -25,9 +25,7 @@ pub(super) fn complete_dot(acc: &mut Completions, ctx: &CompletionContext) { | |||
25 | fn complete_fields(acc: &mut Completions, ctx: &CompletionContext, receiver: Ty) { | 25 | fn complete_fields(acc: &mut Completions, ctx: &CompletionContext, receiver: Ty) { |
26 | for receiver in receiver.autoderef(ctx.db) { | 26 | for receiver in receiver.autoderef(ctx.db) { |
27 | match receiver { | 27 | match receiver { |
28 | Ty::Adt { | 28 | Ty::Adt { def_id, ref substs, .. } => { |
29 | def_id, ref substs, .. | ||
30 | } => { | ||
31 | match def_id { | 29 | match def_id { |
32 | AdtDef::Struct(s) => { | 30 | AdtDef::Struct(s) => { |
33 | for field in s.fields(ctx.db) { | 31 | for field in s.fields(ctx.db) { |
diff --git a/crates/ra_ide_api/src/completion/complete_fn_param.rs b/crates/ra_ide_api/src/completion/complete_fn_param.rs index 8d4df4ea1..43532226f 100644 --- a/crates/ra_ide_api/src/completion/complete_fn_param.rs +++ b/crates/ra_ide_api/src/completion/complete_fn_param.rs | |||
@@ -43,13 +43,12 @@ pub(super) fn complete_fn_param(acc: &mut Completions, ctx: &CompletionContext) | |||
43 | node: &'a N, | 43 | node: &'a N, |
44 | params: &mut FxHashMap<String, (u32, &'a ast::Param)>, | 44 | params: &mut FxHashMap<String, (u32, &'a ast::Param)>, |
45 | ) { | 45 | ) { |
46 | node.functions() | 46 | node.functions().filter_map(|it| it.param_list()).flat_map(|it| it.params()).for_each( |
47 | .filter_map(|it| it.param_list()) | 47 | |param| { |
48 | .flat_map(|it| it.params()) | ||
49 | .for_each(|param| { | ||
50 | let text = param.syntax().text().to_string(); | 48 | let text = param.syntax().text().to_string(); |
51 | params.entry(text).or_insert((0, param)).0 += 1; | 49 | params.entry(text).or_insert((0, param)).0 += 1; |
52 | }) | 50 | }, |
51 | ) | ||
53 | } | 52 | } |
54 | } | 53 | } |
55 | 54 | ||
diff --git a/crates/ra_ide_api/src/completion/complete_path.rs b/crates/ra_ide_api/src/completion/complete_path.rs index 0b9948d4b..c47a14e9f 100644 --- a/crates/ra_ide_api/src/completion/complete_path.rs +++ b/crates/ra_ide_api/src/completion/complete_path.rs | |||
@@ -31,14 +31,10 @@ pub(super) fn complete_path(acc: &mut Completions, ctx: &CompletionContext) { | |||
31 | hir::ModuleDef::Enum(e) => { | 31 | hir::ModuleDef::Enum(e) => { |
32 | e.variants(ctx.db).into_iter().for_each(|variant| { | 32 | e.variants(ctx.db).into_iter().for_each(|variant| { |
33 | if let Some(name) = variant.name(ctx.db) { | 33 | if let Some(name) = variant.name(ctx.db) { |
34 | let detail_types = variant | 34 | let detail_types = |
35 | .fields(ctx.db) | 35 | variant.fields(ctx.db).into_iter().map(|field| field.ty(ctx.db)); |
36 | .into_iter() | 36 | let detail = |
37 | .map(|field| field.ty(ctx.db)); | 37 | join(detail_types).separator(", ").surround_with("(", ")").to_string(); |
38 | let detail = join(detail_types) | ||
39 | .separator(", ") | ||
40 | .surround_with("(", ")") | ||
41 | .to_string(); | ||
42 | 38 | ||
43 | CompletionItem::new( | 39 | CompletionItem::new( |
44 | CompletionKind::Reference, | 40 | CompletionKind::Reference, |
diff --git a/crates/ra_ide_api/src/completion/complete_postfix.rs b/crates/ra_ide_api/src/completion/complete_postfix.rs index e3a739d6d..10a3c8db7 100644 --- a/crates/ra_ide_api/src/completion/complete_postfix.rs +++ b/crates/ra_ide_api/src/completion/complete_postfix.rs | |||
@@ -17,11 +17,7 @@ use ra_text_edit::TextEditBuilder; | |||
17 | 17 | ||
18 | fn postfix_snippet(ctx: &CompletionContext, label: &str, snippet: &str) -> Builder { | 18 | fn postfix_snippet(ctx: &CompletionContext, label: &str, snippet: &str) -> Builder { |
19 | let replace_range = ctx.source_range(); | 19 | let replace_range = ctx.source_range(); |
20 | let receiver_range = ctx | 20 | let receiver_range = ctx.dot_receiver.expect("no receiver available").syntax().range(); |
21 | .dot_receiver | ||
22 | .expect("no receiver available") | ||
23 | .syntax() | ||
24 | .range(); | ||
25 | let delete_range = TextRange::from_to(receiver_range.start(), replace_range.start()); | 21 | let delete_range = TextRange::from_to(receiver_range.start(), replace_range.start()); |
26 | let mut builder = TextEditBuilder::default(); | 22 | let mut builder = TextEditBuilder::default(); |
27 | builder.delete(delete_range); | 23 | builder.delete(delete_range); |
diff --git a/crates/ra_ide_api/src/completion/complete_scope.rs b/crates/ra_ide_api/src/completion/complete_scope.rs index 8674b1e66..445788407 100644 --- a/crates/ra_ide_api/src/completion/complete_scope.rs +++ b/crates/ra_ide_api/src/completion/complete_scope.rs | |||
@@ -7,13 +7,9 @@ pub(super) fn complete_scope(acc: &mut Completions, ctx: &CompletionContext) { | |||
7 | let names = ctx.resolver.all_names(); | 7 | let names = ctx.resolver.all_names(); |
8 | 8 | ||
9 | names.into_iter().for_each(|(name, res)| { | 9 | names.into_iter().for_each(|(name, res)| { |
10 | CompletionItem::new( | 10 | CompletionItem::new(CompletionKind::Reference, ctx.source_range(), name.to_string()) |
11 | CompletionKind::Reference, | 11 | .from_resolution(ctx, &res) |
12 | ctx.source_range(), | 12 | .add_to(acc) |
13 | name.to_string(), | ||
14 | ) | ||
15 | .from_resolution(ctx, &res) | ||
16 | .add_to(acc) | ||
17 | }); | 13 | }); |
18 | } | 14 | } |
19 | 15 | ||
diff --git a/crates/ra_ide_api/src/completion/completion_context.rs b/crates/ra_ide_api/src/completion/completion_context.rs index 8abab0221..82bd4d606 100644 --- a/crates/ra_ide_api/src/completion/completion_context.rs +++ b/crates/ra_ide_api/src/completion/completion_context.rs | |||
@@ -108,12 +108,8 @@ impl<'a> CompletionContext<'a> { | |||
108 | } | 108 | } |
109 | fn classify_name_ref(&mut self, original_file: &'a SourceFile, name_ref: &ast::NameRef) { | 109 | fn classify_name_ref(&mut self, original_file: &'a SourceFile, name_ref: &ast::NameRef) { |
110 | let name_range = name_ref.syntax().range(); | 110 | let name_range = name_ref.syntax().range(); |
111 | let top_node = name_ref | 111 | let top_node = |
112 | .syntax() | 112 | name_ref.syntax().ancestors().take_while(|it| it.range() == name_range).last().unwrap(); |
113 | .ancestors() | ||
114 | .take_while(|it| it.range() == name_range) | ||
115 | .last() | ||
116 | .unwrap(); | ||
117 | 113 | ||
118 | match top_node.parent().map(|it| it.kind()) { | 114 | match top_node.parent().map(|it| it.kind()) { |
119 | Some(SOURCE_FILE) | Some(ITEM_LIST) => { | 115 | Some(SOURCE_FILE) | Some(ITEM_LIST) => { |
diff --git a/crates/ra_ide_api/src/completion/completion_item.rs b/crates/ra_ide_api/src/completion/completion_item.rs index 92e6e78bf..7b8972af0 100644 --- a/crates/ra_ide_api/src/completion/completion_item.rs +++ b/crates/ra_ide_api/src/completion/completion_item.rs | |||
@@ -105,10 +105,7 @@ impl CompletionItem { | |||
105 | } | 105 | } |
106 | /// What string is used for filtering. | 106 | /// What string is used for filtering. |
107 | pub fn lookup(&self) -> &str { | 107 | pub fn lookup(&self) -> &str { |
108 | self.lookup | 108 | self.lookup.as_ref().map(|it| it.as_str()).unwrap_or_else(|| self.label()) |
109 | .as_ref() | ||
110 | .map(|it| it.as_str()) | ||
111 | .unwrap_or_else(|| self.label()) | ||
112 | } | 109 | } |
113 | 110 | ||
114 | pub fn insert_text_format(&self) -> InsertTextFormat { | 111 | pub fn insert_text_format(&self) -> InsertTextFormat { |
@@ -214,10 +211,7 @@ impl Builder { | |||
214 | ) -> Builder { | 211 | ) -> Builder { |
215 | use hir::ModuleDef::*; | 212 | use hir::ModuleDef::*; |
216 | 213 | ||
217 | let def = resolution | 214 | let def = resolution.as_ref().take_types().or_else(|| resolution.as_ref().take_values()); |
218 | .as_ref() | ||
219 | .take_types() | ||
220 | .or_else(|| resolution.as_ref().take_values()); | ||
221 | let def = match def { | 215 | let def = match def { |
222 | None => return self, | 216 | None => return self, |
223 | Some(it) => it, | 217 | Some(it) => it, |
@@ -323,10 +317,8 @@ pub(crate) fn check_completion(test_name: &str, code: &str, kind: CompletionKind | |||
323 | }; | 317 | }; |
324 | let completions = completions(&analysis.db, position).unwrap(); | 318 | let completions = completions(&analysis.db, position).unwrap(); |
325 | let completion_items: Vec<CompletionItem> = completions.into(); | 319 | let completion_items: Vec<CompletionItem> = completions.into(); |
326 | let mut kind_completions: Vec<CompletionItem> = completion_items | 320 | let mut kind_completions: Vec<CompletionItem> = |
327 | .into_iter() | 321 | completion_items.into_iter().filter(|c| c.completion_kind == kind).collect(); |
328 | .filter(|c| c.completion_kind == kind) | ||
329 | .collect(); | ||
330 | kind_completions.sort_by_key(|c| c.label.clone()); | 322 | kind_completions.sort_by_key(|c| c.label.clone()); |
331 | assert_debug_snapshot_matches!(test_name, kind_completions); | 323 | assert_debug_snapshot_matches!(test_name, kind_completions); |
332 | } | 324 | } |