aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api_light
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide_api_light')
-rw-r--r--crates/ra_ide_api_light/Cargo.toml1
-rw-r--r--crates/ra_ide_api_light/src/lib.rs13
-rw-r--r--crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap80
-rw-r--r--crates/ra_ide_api_light/src/snapshots/tests__highlighting.snap30
-rw-r--r--crates/ra_ide_api_light/src/structure.rs16
5 files changed, 116 insertions, 24 deletions
diff --git a/crates/ra_ide_api_light/Cargo.toml b/crates/ra_ide_api_light/Cargo.toml
index 8c192fca6..16cf228e7 100644
--- a/crates/ra_ide_api_light/Cargo.toml
+++ b/crates/ra_ide_api_light/Cargo.toml
@@ -17,3 +17,4 @@ ra_text_edit = { path = "../ra_text_edit" }
17[dev-dependencies] 17[dev-dependencies]
18test_utils = { path = "../test_utils" } 18test_utils = { path = "../test_utils" }
19proptest = "0.8.7" 19proptest = "0.8.7"
20insta = "0.1.4"
diff --git a/crates/ra_ide_api_light/src/lib.rs b/crates/ra_ide_api_light/src/lib.rs
index 72fba9402..9dd72701d 100644
--- a/crates/ra_ide_api_light/src/lib.rs
+++ b/crates/ra_ide_api_light/src/lib.rs
@@ -132,8 +132,9 @@ pub fn syntax_tree(file: &SourceFile) -> String {
132#[cfg(test)] 132#[cfg(test)]
133mod tests { 133mod tests {
134 use ra_syntax::AstNode; 134 use ra_syntax::AstNode;
135 use insta::assert_debug_snapshot_matches;
135 136
136 use crate::test_utils::{add_cursor, assert_eq_dbg, assert_eq_text, extract_offset}; 137 use crate::test_utils::{add_cursor, assert_eq_text, extract_offset};
137 138
138 use super::*; 139 use super::*;
139 140
@@ -147,15 +148,7 @@ fn main() {}
147"#, 148"#,
148 ); 149 );
149 let hls = highlight(file.syntax()); 150 let hls = highlight(file.syntax());
150 assert_eq_dbg( 151 assert_debug_snapshot_matches!("highlighting", hls);
151 r#"[HighlightedRange { range: [1; 11), tag: "comment" },
152 HighlightedRange { range: [12; 14), tag: "keyword" },
153 HighlightedRange { range: [15; 19), tag: "function" },
154 HighlightedRange { range: [29; 37), tag: "macro" },
155 HighlightedRange { range: [38; 50), tag: "string" },
156 HighlightedRange { range: [52; 54), tag: "literal" }]"#,
157 &hls,
158 );
159 } 152 }
160 153
161 #[test] 154 #[test]
diff --git a/crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap b/crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap
new file mode 100644
index 000000000..10eb5c724
--- /dev/null
+++ b/crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap
@@ -0,0 +1,80 @@
1Created: 2019-01-15T11:15:21.073862814+00:00
2Creator: [email protected]
3Source: crates/ra_ide_api_light/src/structure.rs
4
5[
6 StructureNode {
7 parent: None,
8 label: "Foo",
9 navigation_range: [8; 11),
10 node_range: [1; 26),
11 kind: STRUCT_DEF
12 },
13 StructureNode {
14 parent: Some(
15 0
16 ),
17 label: "x",
18 navigation_range: [18; 19),
19 node_range: [18; 24),
20 kind: NAMED_FIELD_DEF
21 },
22 StructureNode {
23 parent: None,
24 label: "m",
25 navigation_range: [32; 33),
26 node_range: [28; 53),
27 kind: MODULE
28 },
29 StructureNode {
30 parent: Some(
31 2
32 ),
33 label: "bar",
34 navigation_range: [43; 46),
35 node_range: [40; 51),
36 kind: FN_DEF
37 },
38 StructureNode {
39 parent: None,
40 label: "E",
41 navigation_range: [60; 61),
42 node_range: [55; 75),
43 kind: ENUM_DEF
44 },
45 StructureNode {
46 parent: None,
47 label: "T",
48 navigation_range: [81; 82),
49 node_range: [76; 88),
50 kind: TYPE_DEF
51 },
52 StructureNode {
53 parent: None,
54 label: "S",
55 navigation_range: [96; 97),
56 node_range: [89; 108),
57 kind: STATIC_DEF
58 },
59 StructureNode {
60 parent: None,
61 label: "C",
62 navigation_range: [115; 116),
63 node_range: [109; 127),
64 kind: CONST_DEF
65 },
66 StructureNode {
67 parent: None,
68 label: "impl E",
69 navigation_range: [134; 135),
70 node_range: [129; 138),
71 kind: IMPL_BLOCK
72 },
73 StructureNode {
74 parent: None,
75 label: "impl fmt::Debug for E",
76 navigation_range: [160; 161),
77 node_range: [140; 164),
78 kind: IMPL_BLOCK
79 }
80]
diff --git a/crates/ra_ide_api_light/src/snapshots/tests__highlighting.snap b/crates/ra_ide_api_light/src/snapshots/tests__highlighting.snap
new file mode 100644
index 000000000..d8f44a713
--- /dev/null
+++ b/crates/ra_ide_api_light/src/snapshots/tests__highlighting.snap
@@ -0,0 +1,30 @@
1Created: 2019-01-15T11:15:21.073858657+00:00
2Creator: [email protected]
3Source: crates/ra_ide_api_light/src/lib.rs
4
5[
6 HighlightedRange {
7 range: [1; 11),
8 tag: "comment"
9 },
10 HighlightedRange {
11 range: [12; 14),
12 tag: "keyword"
13 },
14 HighlightedRange {
15 range: [15; 19),
16 tag: "function"
17 },
18 HighlightedRange {
19 range: [29; 37),
20 tag: "macro"
21 },
22 HighlightedRange {
23 range: [38; 50),
24 tag: "string"
25 },
26 HighlightedRange {
27 range: [52; 54),
28 tag: "literal"
29 }
30]
diff --git a/crates/ra_ide_api_light/src/structure.rs b/crates/ra_ide_api_light/src/structure.rs
index 8bd57555f..3c6f39e16 100644
--- a/crates/ra_ide_api_light/src/structure.rs
+++ b/crates/ra_ide_api_light/src/structure.rs
@@ -87,7 +87,7 @@ fn structure_node(node: &SyntaxNode) -> Option<StructureNode> {
87#[cfg(test)] 87#[cfg(test)]
88mod tests { 88mod tests {
89 use super::*; 89 use super::*;
90 use test_utils::assert_eq_dbg; 90 use insta::assert_debug_snapshot_matches;
91 91
92 #[test] 92 #[test]
93 fn test_file_structure() { 93 fn test_file_structure() {
@@ -112,18 +112,6 @@ impl fmt::Debug for E {}
112"#, 112"#,
113 ); 113 );
114 let structure = file_structure(&file); 114 let structure = file_structure(&file);
115 assert_eq_dbg( 115 assert_debug_snapshot_matches!("file_structure", structure);
116 r#"[StructureNode { parent: None, label: "Foo", navigation_range: [8; 11), node_range: [1; 26), kind: STRUCT_DEF },
117 StructureNode { parent: Some(0), label: "x", navigation_range: [18; 19), node_range: [18; 24), kind: NAMED_FIELD_DEF },
118 StructureNode { parent: None, label: "m", navigation_range: [32; 33), node_range: [28; 53), kind: MODULE },
119 StructureNode { parent: Some(2), label: "bar", navigation_range: [43; 46), node_range: [40; 51), kind: FN_DEF },
120 StructureNode { parent: None, label: "E", navigation_range: [60; 61), node_range: [55; 75), kind: ENUM_DEF },
121 StructureNode { parent: None, label: "T", navigation_range: [81; 82), node_range: [76; 88), kind: TYPE_DEF },
122 StructureNode { parent: None, label: "S", navigation_range: [96; 97), node_range: [89; 108), kind: STATIC_DEF },
123 StructureNode { parent: None, label: "C", navigation_range: [115; 116), node_range: [109; 127), kind: CONST_DEF },
124 StructureNode { parent: None, label: "impl E", navigation_range: [134; 135), node_range: [129; 138), kind: IMPL_BLOCK },
125 StructureNode { parent: None, label: "impl fmt::Debug for E", navigation_range: [160; 161), node_range: [140; 164), kind: IMPL_BLOCK }]"#,
126 &structure,
127 )
128 } 116 }
129} 117}