@@ -13,13 +13,13 @@ public class TokenOperationsTests
13
13
/// <summary>
14
14
/// Helper methiod 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
// This PowerShell script will exercise all of the
@@ -100,21 +100,21 @@ double quoted herestrings should also fold
100
100
$something = $true
101
101
#endregion Comment Block 3" ;
102
102
private FoldingReference [ ] expectedAllInOneScriptFolds = {
103
- new FoldingReference ( 0 , 0 , 4 , 10 , "region" ) ,
104
- new FoldingReference ( 1 , 0 , 3 , 2 , "comment" ) ,
105
- new FoldingReference ( 10 , 0 , 15 , 2 , "comment" ) ,
106
- new FoldingReference ( 16 , 30 , 60 , 1 , null ) ,
107
- new FoldingReference ( 17 , 0 , 22 , 2 , "comment" ) ,
108
- new FoldingReference ( 23 , 7 , 26 , 2 , null ) ,
109
- new FoldingReference ( 28 , 5 , 31 , 2 , null ) ,
110
- new FoldingReference ( 35 , 2 , 37 , 0 , "comment" ) ,
111
- new FoldingReference ( 39 , 2 , 49 , 14 , "region" ) ,
112
- new FoldingReference ( 41 , 4 , 45 , 14 , "region" ) ,
113
- new FoldingReference ( 51 , 7 , 53 , 3 , null ) ,
114
- new FoldingReference ( 56 , 7 , 59 , 3 , null ) ,
115
- new FoldingReference ( 64 , 0 , 66 , 0 , "comment" ) ,
116
- new FoldingReference ( 67 , 0 , 72 , 26 , "region" ) ,
117
- new FoldingReference ( 68 , 0 , 70 , 0 , "comment" )
103
+ new FoldingReference ( 0 , 0 , 3 , 10 , "region" ) ,
104
+ new FoldingReference ( 1 , 0 , 2 , 2 , "comment" ) ,
105
+ new FoldingReference ( 10 , 0 , 14 , 2 , "comment" ) ,
106
+ new FoldingReference ( 16 , 30 , 59 , 1 , null ) ,
107
+ new FoldingReference ( 17 , 0 , 21 , 2 , "comment" ) ,
108
+ new FoldingReference ( 23 , 7 , 25 , 2 , null ) ,
109
+ new FoldingReference ( 28 , 5 , 30 , 2 , null ) ,
110
+ new FoldingReference ( 35 , 2 , 36 , 0 , "comment" ) ,
111
+ new FoldingReference ( 39 , 2 , 48 , 14 , "region" ) ,
112
+ new FoldingReference ( 41 , 4 , 44 , 14 , "region" ) ,
113
+ new FoldingReference ( 51 , 7 , 52 , 3 , null ) ,
114
+ new FoldingReference ( 56 , 7 , 58 , 3 , null ) ,
115
+ new FoldingReference ( 64 , 0 , 65 , 0 , "comment" ) ,
116
+ new FoldingReference ( 67 , 0 , 71 , 26 , "region" ) ,
117
+ new FoldingReference ( 68 , 0 , 69 , 0 , "comment" )
118
118
} ;
119
119
120
120
/// <summary>
@@ -155,6 +155,19 @@ public void LaguageServiceFindsFoldablRegionsWithCRLF() {
155
155
AssertFoldingReferenceArrays ( expectedAllInOneScriptFolds , result ) ;
156
156
}
157
157
158
+ [ Fact ]
159
+ public void LaguageServiceFindsFoldablRegionsWithoutLastLine ( ) {
160
+ FoldingReference [ ] result = GetRegions ( allInOneScript , false ) ;
161
+ // Incrememnt the end line of the expected regions by one as we will
162
+ // be hiding the last line
163
+ FoldingReference [ ] expectedFolds = expectedAllInOneScriptFolds . Clone ( ) as FoldingReference [ ] ;
164
+ for ( int index = 0 ; index < expectedFolds . Length ; index ++ )
165
+ {
166
+ expectedFolds [ index ] . endLine ++ ;
167
+ }
168
+ AssertFoldingReferenceArrays ( expectedFolds , result ) ;
169
+ }
170
+
158
171
[ Fact ]
159
172
public void LaguageServiceFindsFoldablRegionsWithMismatchedRegions ( ) {
160
173
string testString =
@@ -167,7 +180,7 @@ public void LaguageServiceFindsFoldablRegionsWithMismatchedRegions() {
167
180
#region should not fold - mismatched
168
181
" ;
169
182
FoldingReference [ ] expectedFolds = {
170
- new FoldingReference ( 2 , 0 , 4 , 10 , "region" )
183
+ new FoldingReference ( 2 , 0 , 3 , 10 , "region" )
171
184
} ;
172
185
173
186
FoldingReference [ ] result = GetRegions ( testString ) ;
@@ -184,8 +197,8 @@ public void LaguageServiceFindsFoldablRegionsWithDuplicateRegions() {
184
197
})
185
198
" ;
186
199
FoldingReference [ ] expectedFolds = {
187
- new FoldingReference ( 1 , 64 , 2 , 27 , null ) ,
188
- new FoldingReference ( 2 , 35 , 4 , 2 , null )
200
+ new FoldingReference ( 1 , 64 , 1 , 27 , null ) ,
201
+ new FoldingReference ( 2 , 35 , 3 , 2 , null )
189
202
} ;
190
203
191
204
FoldingReference [ ] result = GetRegions ( testString ) ;
0 commit comments