diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-04-07 23:12:43 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2021-04-07 23:12:43 +0100 |
commit | 0c0d648b492b9e8491504e021f61df42e5627592 (patch) | |
tree | dd8efec02d078aa255f44c1f4d9d1e14e50ed7ca /crates | |
parent | 3191a93185b34c6deebca2aad0584d2840ad6d43 (diff) | |
parent | 4b555ab1d99a8f6cacf4987fe85e1c8b5dee7262 (diff) |
Merge #8412
8412: Emit folding ranges for multiline array literals r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <[email protected]>
Diffstat (limited to 'crates')
-rw-r--r-- | crates/ide/src/folding_ranges.rs | 17 | ||||
-rw-r--r-- | crates/rust-analyzer/src/to_proto.rs | 3 |
2 files changed, 19 insertions, 1 deletions
diff --git a/crates/ide/src/folding_ranges.rs b/crates/ide/src/folding_ranges.rs index 153726ce8..2b9ed123c 100644 --- a/crates/ide/src/folding_ranges.rs +++ b/crates/ide/src/folding_ranges.rs | |||
@@ -19,6 +19,7 @@ pub enum FoldKind { | |||
19 | Region, | 19 | Region, |
20 | Consts, | 20 | Consts, |
21 | Statics, | 21 | Statics, |
22 | Array, | ||
22 | } | 23 | } |
23 | 24 | ||
24 | #[derive(Debug)] | 25 | #[derive(Debug)] |
@@ -119,6 +120,7 @@ fn fold_kind(kind: SyntaxKind) -> Option<FoldKind> { | |||
119 | match kind { | 120 | match kind { |
120 | COMMENT => Some(FoldKind::Comment), | 121 | COMMENT => Some(FoldKind::Comment), |
121 | ARG_LIST | PARAM_LIST => Some(FoldKind::ArgList), | 122 | ARG_LIST | PARAM_LIST => Some(FoldKind::ArgList), |
123 | ARRAY_EXPR => Some(FoldKind::Array), | ||
122 | ASSOC_ITEM_LIST | 124 | ASSOC_ITEM_LIST |
123 | | RECORD_FIELD_LIST | 125 | | RECORD_FIELD_LIST |
124 | | RECORD_PAT_FIELD_LIST | 126 | | RECORD_PAT_FIELD_LIST |
@@ -269,6 +271,7 @@ mod tests { | |||
269 | FoldKind::Region => "region", | 271 | FoldKind::Region => "region", |
270 | FoldKind::Consts => "consts", | 272 | FoldKind::Consts => "consts", |
271 | FoldKind::Statics => "statics", | 273 | FoldKind::Statics => "statics", |
274 | FoldKind::Array => "array", | ||
272 | }; | 275 | }; |
273 | assert_eq!(kind, &attr.unwrap()); | 276 | assert_eq!(kind, &attr.unwrap()); |
274 | } | 277 | } |
@@ -465,6 +468,20 @@ fn foo<fold arglist>( | |||
465 | } | 468 | } |
466 | 469 | ||
467 | #[test] | 470 | #[test] |
471 | fn fold_multiline_array() { | ||
472 | check( | ||
473 | r#" | ||
474 | const FOO: [usize; 4] = <fold array>[ | ||
475 | 1, | ||
476 | 2, | ||
477 | 3, | ||
478 | 4, | ||
479 | ]</fold>; | ||
480 | "#, | ||
481 | ) | ||
482 | } | ||
483 | |||
484 | #[test] | ||
468 | fn fold_region() { | 485 | fn fold_region() { |
469 | check( | 486 | check( |
470 | r#" | 487 | r#" |
diff --git a/crates/rust-analyzer/src/to_proto.rs b/crates/rust-analyzer/src/to_proto.rs index c3820944b..2ac31d981 100644 --- a/crates/rust-analyzer/src/to_proto.rs +++ b/crates/rust-analyzer/src/to_proto.rs | |||
@@ -497,7 +497,8 @@ pub(crate) fn folding_range( | |||
497 | | FoldKind::Block | 497 | | FoldKind::Block |
498 | | FoldKind::ArgList | 498 | | FoldKind::ArgList |
499 | | FoldKind::Consts | 499 | | FoldKind::Consts |
500 | | FoldKind::Statics => None, | 500 | | FoldKind::Statics |
501 | | FoldKind::Array => None, | ||
501 | }; | 502 | }; |
502 | 503 | ||
503 | let range = range(line_index, fold.range); | 504 | let range = range(line_index, fold.range); |