diff options
author | Edwin Cheng <[email protected]> | 2019-06-09 20:28:53 +0100 |
---|---|---|
committer | Edwin Cheng <[email protected]> | 2019-06-09 20:28:53 +0100 |
commit | 41cb3fd7587f418ad18b6a3672211e0bfa304cfb (patch) | |
tree | 45326ded696223bab885bde3fbef5aaefae1f407 /crates/ra_ide_api/src/display/description.rs | |
parent | 358ad0efca0fe76b040b47d199e166feb6128ac0 (diff) |
Rename Description to ShortLabel
Diffstat (limited to 'crates/ra_ide_api/src/display/description.rs')
-rw-r--r-- | crates/ra_ide_api/src/display/description.rs | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/crates/ra_ide_api/src/display/description.rs b/crates/ra_ide_api/src/display/description.rs deleted file mode 100644 index 4f6b0a858..000000000 --- a/crates/ra_ide_api/src/display/description.rs +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | use ra_syntax::{ | ||
2 | ast::{self, NameOwner, VisibilityOwner, TypeAscriptionOwner, AstNode}, | ||
3 | }; | ||
4 | |||
5 | pub(crate) trait Description { | ||
6 | fn description(&self) -> Option<String>; | ||
7 | } | ||
8 | |||
9 | impl Description for ast::FnDef { | ||
10 | fn description(&self) -> Option<String> { | ||
11 | Some(crate::display::function_label(self)) | ||
12 | } | ||
13 | } | ||
14 | |||
15 | impl Description for ast::StructDef { | ||
16 | fn description(&self) -> Option<String> { | ||
17 | description_from_node(self, "struct ") | ||
18 | } | ||
19 | } | ||
20 | |||
21 | impl Description for ast::EnumDef { | ||
22 | fn description(&self) -> Option<String> { | ||
23 | description_from_node(self, "enum ") | ||
24 | } | ||
25 | } | ||
26 | |||
27 | impl Description for ast::TraitDef { | ||
28 | fn description(&self) -> Option<String> { | ||
29 | description_from_node(self, "trait ") | ||
30 | } | ||
31 | } | ||
32 | |||
33 | impl Description for ast::Module { | ||
34 | fn description(&self) -> Option<String> { | ||
35 | description_from_node(self, "mod ") | ||
36 | } | ||
37 | } | ||
38 | |||
39 | impl Description for ast::TypeAliasDef { | ||
40 | fn description(&self) -> Option<String> { | ||
41 | description_from_node(self, "type ") | ||
42 | } | ||
43 | } | ||
44 | |||
45 | impl Description for ast::ConstDef { | ||
46 | fn description(&self) -> Option<String> { | ||
47 | description_from_ascribed_node(self, "const ") | ||
48 | } | ||
49 | } | ||
50 | |||
51 | impl Description for ast::StaticDef { | ||
52 | fn description(&self) -> Option<String> { | ||
53 | description_from_ascribed_node(self, "static ") | ||
54 | } | ||
55 | } | ||
56 | |||
57 | impl Description for ast::NamedFieldDef { | ||
58 | fn description(&self) -> Option<String> { | ||
59 | description_from_ascribed_node(self, "") | ||
60 | } | ||
61 | } | ||
62 | |||
63 | impl Description for ast::EnumVariant { | ||
64 | fn description(&self) -> Option<String> { | ||
65 | Some(self.name()?.text().to_string()) | ||
66 | } | ||
67 | } | ||
68 | |||
69 | fn description_from_ascribed_node<T>(node: &T, prefix: &str) -> Option<String> | ||
70 | where | ||
71 | T: NameOwner + VisibilityOwner + TypeAscriptionOwner, | ||
72 | { | ||
73 | let mut string = description_from_node(node, prefix)?; | ||
74 | |||
75 | if let Some(type_ref) = node.ascribed_type() { | ||
76 | string.push_str(": "); | ||
77 | type_ref.syntax().text().push_to(&mut string); | ||
78 | } | ||
79 | |||
80 | Some(string) | ||
81 | } | ||
82 | |||
83 | fn description_from_node<T>(node: &T, label: &str) -> Option<String> | ||
84 | where | ||
85 | T: NameOwner + VisibilityOwner, | ||
86 | { | ||
87 | let mut string = | ||
88 | node.visibility().map(|v| format!("{} ", v.syntax().text())).unwrap_or_default(); | ||
89 | string.push_str(label); | ||
90 | string.push_str(node.name()?.text().as_str()); | ||
91 | Some(string) | ||
92 | } | ||