From 4b555ab1d99a8f6cacf4987fe85e1c8b5dee7262 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Thu, 8 Apr 2021 00:05:08 +0200 Subject: Emit folding ranges for multiline array literals --- crates/ide/src/folding_ranges.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'crates/ide/src') 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 { Region, Consts, Statics, + Array, } #[derive(Debug)] @@ -119,6 +120,7 @@ fn fold_kind(kind: SyntaxKind) -> Option { match kind { COMMENT => Some(FoldKind::Comment), ARG_LIST | PARAM_LIST => Some(FoldKind::ArgList), + ARRAY_EXPR => Some(FoldKind::Array), ASSOC_ITEM_LIST | RECORD_FIELD_LIST | RECORD_PAT_FIELD_LIST @@ -269,6 +271,7 @@ mod tests { FoldKind::Region => "region", FoldKind::Consts => "consts", FoldKind::Statics => "statics", + FoldKind::Array => "array", }; assert_eq!(kind, &attr.unwrap()); } @@ -464,6 +467,20 @@ fn foo( ) } + #[test] + fn fold_multiline_array() { + check( + r#" +const FOO: [usize; 4] = [ + 1, + 2, + 3, + 4, +]; +"#, + ) + } + #[test] fn fold_region() { check( -- cgit v1.2.3