@@ -13,13 +13,13 @@ public class TokenOperationsTests
13
13
/// <summary>
14
14
/// Helper method to create a stub script file and then call FoldableRegions
15
15
/// </summary>
16
- private FoldingReference [ ] GetRegions ( string text ) {
16
+ private FoldingReference [ ] GetRegions ( string text , bool showLastLine = true ) {
17
17
ScriptFile scriptFile = new ScriptFile (
18
18
"testfile" ,
19
19
"clienttestfile" ,
20
20
text ,
21
21
Version . Parse ( "5.0" ) ) ;
22
- return Microsoft . PowerShell . EditorServices . TokenOperations . FoldableRegions ( scriptFile . ScriptTokens ) ;
22
+ return Microsoft . PowerShell . EditorServices . TokenOperations . FoldableRegions ( scriptFile . ScriptTokens , showLastLine ) ;
23
23
}
24
24
25
25
/// <summary>
@@ -113,21 +113,21 @@ double quoted herestrings should also fold
113
113
$something = $true
114
114
#endregion Comment Block 3" ;
115
115
private FoldingReference [ ] expectedAllInOneScriptFolds = {
116
- CreateFoldingReference ( 0 , 0 , 4 , 10 , "region" ) ,
117
- CreateFoldingReference ( 1 , 0 , 3 , 2 , "comment" ) ,
118
- CreateFoldingReference ( 10 , 0 , 15 , 2 , "comment" ) ,
119
- CreateFoldingReference ( 16 , 30 , 60 , 1 , null ) ,
120
- CreateFoldingReference ( 17 , 0 , 22 , 2 , "comment" ) ,
121
- CreateFoldingReference ( 23 , 7 , 26 , 2 , null ) ,
122
- CreateFoldingReference ( 28 , 5 , 31 , 2 , null ) ,
123
- CreateFoldingReference ( 35 , 2 , 37 , 0 , "comment" ) ,
124
- CreateFoldingReference ( 39 , 2 , 49 , 14 , "region" ) ,
125
- CreateFoldingReference ( 41 , 4 , 45 , 14 , "region" ) ,
126
- CreateFoldingReference ( 51 , 7 , 53 , 3 , null ) ,
127
- CreateFoldingReference ( 56 , 7 , 59 , 3 , null ) ,
128
- CreateFoldingReference ( 64 , 0 , 66 , 0 , "comment" ) ,
129
- CreateFoldingReference ( 67 , 0 , 72 , 26 , "region" ) ,
130
- CreateFoldingReference ( 68 , 0 , 70 , 0 , "comment" )
116
+ CreateFoldingReference ( 0 , 0 , 3 , 10 , "region" ) ,
117
+ CreateFoldingReference ( 1 , 0 , 2 , 2 , "comment" ) ,
118
+ CreateFoldingReference ( 10 , 0 , 14 , 2 , "comment" ) ,
119
+ CreateFoldingReference ( 16 , 30 , 59 , 1 , null ) ,
120
+ CreateFoldingReference ( 17 , 0 , 21 , 2 , "comment" ) ,
121
+ CreateFoldingReference ( 23 , 7 , 25 , 2 , null ) ,
122
+ CreateFoldingReference ( 28 , 5 , 30 , 2 , null ) ,
123
+ CreateFoldingReference ( 35 , 2 , 36 , 0 , "comment" ) ,
124
+ CreateFoldingReference ( 39 , 2 , 48 , 14 , "region" ) ,
125
+ CreateFoldingReference ( 41 , 4 , 44 , 14 , "region" ) ,
126
+ CreateFoldingReference ( 51 , 7 , 52 , 3 , null ) ,
127
+ CreateFoldingReference ( 56 , 7 , 58 , 3 , null ) ,
128
+ CreateFoldingReference ( 64 , 0 , 65 , 0 , "comment" ) ,
129
+ CreateFoldingReference ( 67 , 0 , 71 , 26 , "region" ) ,
130
+ CreateFoldingReference ( 68 , 0 , 69 , 0 , "comment" )
131
131
} ;
132
132
133
133
/// <summary>
@@ -168,6 +168,19 @@ public void LaguageServiceFindsFoldablRegionsWithCRLF() {
168
168
AssertFoldingReferenceArrays ( expectedAllInOneScriptFolds , result ) ;
169
169
}
170
170
171
+ [ Fact ]
172
+ public void LaguageServiceFindsFoldablRegionsWithoutLastLine ( ) {
173
+ FoldingReference [ ] result = GetRegions ( allInOneScript , false ) ;
174
+ // Incrememnt the end line of the expected regions by one as we will
175
+ // be hiding the last line
176
+ FoldingReference [ ] expectedFolds = expectedAllInOneScriptFolds . Clone ( ) as FoldingReference [ ] ;
177
+ for ( int index = 0 ; index < expectedFolds . Length ; index ++ )
178
+ {
179
+ expectedFolds [ index ] . EndLine ++ ;
180
+ }
181
+ AssertFoldingReferenceArrays ( expectedFolds , result ) ;
182
+ }
183
+
171
184
[ Fact ]
172
185
public void LaguageServiceFindsFoldablRegionsWithMismatchedRegions ( ) {
173
186
string testString =
@@ -180,7 +193,7 @@ public void LaguageServiceFindsFoldablRegionsWithMismatchedRegions() {
180
193
#region should not fold - mismatched
181
194
" ;
182
195
FoldingReference [ ] expectedFolds = {
183
- CreateFoldingReference ( 2 , 0 , 4 , 10 , "region" )
196
+ CreateFoldingReference ( 2 , 0 , 3 , 10 , "region" )
184
197
} ;
185
198
186
199
FoldingReference [ ] result = GetRegions ( testString ) ;
@@ -197,8 +210,8 @@ public void LaguageServiceFindsFoldablRegionsWithDuplicateRegions() {
197
210
})
198
211
" ;
199
212
FoldingReference [ ] expectedFolds = {
200
- CreateFoldingReference ( 1 , 64 , 2 , 27 , null ) ,
201
- CreateFoldingReference ( 2 , 35 , 4 , 2 , null )
213
+ CreateFoldingReference ( 1 , 64 , 1 , 27 , null ) ,
214
+ CreateFoldingReference ( 2 , 35 , 3 , 2 , null )
202
215
} ;
203
216
204
217
FoldingReference [ ] result = GetRegions ( testString ) ;
0 commit comments