diff options
-rw-r--r-- | crates/ra_assists/src/assists/auto_import.rs | 4 | ||||
-rw-r--r-- | crates/ra_assists/src/doc_tests.rs | 10 | ||||
-rw-r--r-- | crates/ra_assists/src/doc_tests/generated.rs | 4 | ||||
-rw-r--r-- | docs/user/assists.md | 2 | ||||
-rw-r--r-- | xtask/src/codegen/gen_assists_docs.rs | 42 |
5 files changed, 42 insertions, 20 deletions
diff --git a/crates/ra_assists/src/assists/auto_import.rs b/crates/ra_assists/src/assists/auto_import.rs index 219051063..f16b08c43 100644 --- a/crates/ra_assists/src/assists/auto_import.rs +++ b/crates/ra_assists/src/assists/auto_import.rs | |||
@@ -18,14 +18,16 @@ use ra_ide_db::imports_locator::ImportsLocatorIde; | |||
18 | // fn main() { | 18 | // fn main() { |
19 | // let map = HashMap<|>::new(); | 19 | // let map = HashMap<|>::new(); |
20 | // } | 20 | // } |
21 | // # pub mod std { pub mod collections { pub struct HashMap { } } } | ||
21 | // ``` | 22 | // ``` |
22 | // -> | 23 | // -> |
23 | // ``` | 24 | // ``` |
24 | // use std::collections::HashMap; | 25 | // use std::collections::HashMap; |
25 | // | 26 | // |
26 | // fn main() { | 27 | // fn main() { |
27 | // let map = HashMap<|>::new(); | 28 | // let map = HashMap::new(); |
28 | // } | 29 | // } |
30 | // # pub mod std { pub mod collections { pub struct HashMap { } } } | ||
29 | // ``` | 31 | // ``` |
30 | pub(crate) fn auto_import(ctx: AssistCtx) -> Option<Assist> { | 32 | pub(crate) fn auto_import(ctx: AssistCtx) -> Option<Assist> { |
31 | let path_to_import: ast::Path = ctx.find_node_at_offset()?; | 33 | let path_to_import: ast::Path = ctx.find_node_at_offset()?; |
diff --git a/crates/ra_assists/src/doc_tests.rs b/crates/ra_assists/src/doc_tests.rs index 370b64225..56020028c 100644 --- a/crates/ra_assists/src/doc_tests.rs +++ b/crates/ra_assists/src/doc_tests.rs | |||
@@ -5,18 +5,12 @@ | |||
5 | 5 | ||
6 | mod generated; | 6 | mod generated; |
7 | 7 | ||
8 | use ra_db::{fixture::WithFixture, FileRange}; | 8 | use ra_db::FileRange; |
9 | use test_utils::{assert_eq_text, extract_range_or_offset}; | 9 | use test_utils::{assert_eq_text, extract_range_or_offset}; |
10 | 10 | ||
11 | use ra_ide_db::RootDatabase; | ||
12 | |||
13 | fn check(assist_id: &str, before: &str, after: &str) { | 11 | fn check(assist_id: &str, before: &str, after: &str) { |
14 | // FIXME we cannot get the imports search functionality here yet, but still need to generate a test and a doc for an assist | ||
15 | if assist_id == "auto_import" { | ||
16 | return; | ||
17 | } | ||
18 | let (selection, before) = extract_range_or_offset(before); | 12 | let (selection, before) = extract_range_or_offset(before); |
19 | let (db, file_id) = RootDatabase::with_single_file(&before); | 13 | let (db, file_id) = crate::helpers::with_single_file(&before); |
20 | let frange = FileRange { file_id, range: selection.into() }; | 14 | let frange = FileRange { file_id, range: selection.into() }; |
21 | 15 | ||
22 | let assist = crate::assists(&db, frange) | 16 | let assist = crate::assists(&db, frange) |
diff --git a/crates/ra_assists/src/doc_tests/generated.rs b/crates/ra_assists/src/doc_tests/generated.rs index ec4587ce7..0d95b957b 100644 --- a/crates/ra_assists/src/doc_tests/generated.rs +++ b/crates/ra_assists/src/doc_tests/generated.rs | |||
@@ -222,13 +222,15 @@ fn doctest_auto_import() { | |||
222 | fn main() { | 222 | fn main() { |
223 | let map = HashMap<|>::new(); | 223 | let map = HashMap<|>::new(); |
224 | } | 224 | } |
225 | pub mod std { pub mod collections { pub struct HashMap { } } } | ||
225 | "#####, | 226 | "#####, |
226 | r#####" | 227 | r#####" |
227 | use std::collections::HashMap; | 228 | use std::collections::HashMap; |
228 | 229 | ||
229 | fn main() { | 230 | fn main() { |
230 | let map = HashMap<|>::new(); | 231 | let map = HashMap::new(); |
231 | } | 232 | } |
233 | pub mod std { pub mod collections { pub struct HashMap { } } } | ||
232 | "#####, | 234 | "#####, |
233 | ) | 235 | ) |
234 | } | 236 | } |
diff --git a/docs/user/assists.md b/docs/user/assists.md index c36c5df6a..1e2dd7485 100644 --- a/docs/user/assists.md +++ b/docs/user/assists.md | |||
@@ -223,7 +223,7 @@ fn main() { | |||
223 | use std::collections::HashMap; | 223 | use std::collections::HashMap; |
224 | 224 | ||
225 | fn main() { | 225 | fn main() { |
226 | let map = HashMap┃::new(); | 226 | let map = HashMap::new(); |
227 | } | 227 | } |
228 | ``` | 228 | ``` |
229 | 229 | ||
diff --git a/xtask/src/codegen/gen_assists_docs.rs b/xtask/src/codegen/gen_assists_docs.rs index 69f9b4872..697e830df 100644 --- a/xtask/src/codegen/gen_assists_docs.rs +++ b/xtask/src/codegen/gen_assists_docs.rs | |||
@@ -20,6 +20,28 @@ struct Assist { | |||
20 | after: String, | 20 | after: String, |
21 | } | 21 | } |
22 | 22 | ||
23 | fn hide_hash_comments(text: &str) -> String { | ||
24 | text.split('\n') // want final newline | ||
25 | .filter(|&it| !(it.starts_with("# ") || it == "#")) | ||
26 | .map(|it| format!("{}\n", it)) | ||
27 | .collect() | ||
28 | } | ||
29 | |||
30 | fn reveal_hash_comments(text: &str) -> String { | ||
31 | text.split('\n') // want final newline | ||
32 | .map(|it| { | ||
33 | if it.starts_with("# ") { | ||
34 | &it[2..] | ||
35 | } else if it == "#" { | ||
36 | "" | ||
37 | } else { | ||
38 | it | ||
39 | } | ||
40 | }) | ||
41 | .map(|it| format!("{}\n", it)) | ||
42 | .collect() | ||
43 | } | ||
44 | |||
23 | fn collect_assists() -> Result<Vec<Assist>> { | 45 | fn collect_assists() -> Result<Vec<Assist>> { |
24 | let mut res = Vec::new(); | 46 | let mut res = Vec::new(); |
25 | for entry in fs::read_dir(project_root().join(codegen::ASSISTS_DIR))? { | 47 | for entry in fs::read_dir(project_root().join(codegen::ASSISTS_DIR))? { |
@@ -91,13 +113,14 @@ fn doctest_{}() {{ | |||
91 | check( | 113 | check( |
92 | "{}", | 114 | "{}", |
93 | r#####" | 115 | r#####" |
94 | {} | 116 | {}"#####, r#####" |
95 | "#####, r#####" | 117 | {}"#####) |
96 | {} | ||
97 | "#####) | ||
98 | }} | 118 | }} |
99 | "######, | 119 | "######, |
100 | assist.id, assist.id, assist.before, assist.after | 120 | assist.id, |
121 | assist.id, | ||
122 | reveal_hash_comments(&assist.before), | ||
123 | reveal_hash_comments(&assist.after) | ||
101 | ); | 124 | ); |
102 | 125 | ||
103 | buf.push_str(&test) | 126 | buf.push_str(&test) |
@@ -123,12 +146,13 @@ fn generate_docs(assists: &[Assist], mode: Mode) -> Result<()> { | |||
123 | ```rust | 146 | ```rust |
124 | // BEFORE | 147 | // BEFORE |
125 | {} | 148 | {} |
126 | |||
127 | // AFTER | 149 | // AFTER |
128 | {} | 150 | {}``` |
129 | ``` | ||
130 | ", | 151 | ", |
131 | assist.id, assist.doc, before, after | 152 | assist.id, |
153 | assist.doc, | ||
154 | hide_hash_comments(&before), | ||
155 | hide_hash_comments(&after) | ||
132 | ); | 156 | ); |
133 | buf.push_str(&docs); | 157 | buf.push_str(&docs); |
134 | } | 158 | } |