File tree Expand file tree Collapse file tree 4 files changed +54
-4
lines changed Expand file tree Collapse file tree 4 files changed +54
-4
lines changed Original file line number Diff line number Diff line change @@ -154,6 +154,15 @@ describe("ScopeInfoBuilder", () => {
154
154
155
155
assertStrictEquals ( info . ranges [ 0 ] ?. isStackFrame , true ) ;
156
156
} ) ;
157
+
158
+ it ( "can set isHidden via option" , ( ) => {
159
+ const info = builder . startRange ( 0 , 0 , { isHidden : true } ) . endRange (
160
+ 10 ,
161
+ 0 ,
162
+ ) . build ( ) ;
163
+
164
+ assertStrictEquals ( info . ranges [ 0 ] ?. isHidden , true ) ;
165
+ } ) ;
157
166
} ) ;
158
167
159
168
describe ( "setRangeDefinitionScope" , ( ) => {
@@ -179,13 +188,23 @@ describe("ScopeInfoBuilder", () => {
179
188
const info = builder . startRange ( 0 , 0 ) . setRangeStackFrame ( true ) . endRange (
180
189
10 ,
181
190
0 ,
182
- )
183
- . build ( ) ;
191
+ ) . build ( ) ;
184
192
185
193
assertStrictEquals ( info . ranges [ 0 ] ?. isStackFrame , true ) ;
186
194
} ) ;
187
195
} ) ;
188
196
197
+ describe ( "setRangeHidden" , ( ) => {
198
+ it ( "sets the isHidden flag" , ( ) => {
199
+ const info = builder . startRange ( 0 , 0 ) . setRangeHidden ( true ) . endRange (
200
+ 10 ,
201
+ 0 ,
202
+ ) . build ( ) ;
203
+
204
+ assertStrictEquals ( info . ranges [ 0 ] ?. isHidden , true ) ;
205
+ } ) ;
206
+ } ) ;
207
+
189
208
describe ( "endRange" , ( ) => {
190
209
it ( "does nothing when no range is open" , ( ) => {
191
210
builder . endRange ( 0 , 20 ) ;
Original file line number Diff line number Diff line change @@ -113,13 +113,17 @@ export class ScopeInfoBuilder {
113
113
startRange (
114
114
line : number ,
115
115
column : number ,
116
- options ?: { scope ?: number | OriginalScope ; isStackFrame ?: boolean } ,
116
+ options ?: {
117
+ scope ?: number | OriginalScope ;
118
+ isStackFrame ?: boolean ;
119
+ isHidden ?: boolean ;
120
+ } ,
117
121
) : this {
118
122
const range : GeneratedRange = {
119
123
start : { line, column } ,
120
124
end : { line, column } ,
121
125
isStackFrame : Boolean ( options ?. isStackFrame ) ,
122
- isHidden : false ,
126
+ isHidden : Boolean ( options ?. isHidden ) ,
123
127
values : [ ] ,
124
128
children : [ ] ,
125
129
} ;
@@ -159,6 +163,13 @@ export class ScopeInfoBuilder {
159
163
return this ;
160
164
}
161
165
166
+ setRangeHidden ( isHidden : boolean ) : this {
167
+ const range = this . #rangeStack. at ( - 1 ) ;
168
+ if ( range ) range . isHidden = isHidden ;
169
+
170
+ return this ;
171
+ }
172
+
162
173
endRange ( line : number , column : number ) : this {
163
174
const range = this . #rangeStack. pop ( ) ;
164
175
if ( ! range ) return this ;
Original file line number Diff line number Diff line change @@ -201,6 +201,18 @@ describe("SafeScopeInfoBuilder", () => {
201
201
} ) ;
202
202
} ) ;
203
203
204
+ describe ( "setRangeHidden" , ( ) => {
205
+ it ( "throws when no range is on open" , ( ) => {
206
+ assertThrows ( ( ) => builder . setRangeHidden ( true ) ) ;
207
+ } ) ;
208
+
209
+ it ( "throws while building a scope" , ( ) => {
210
+ builder . startScope ( 0 , 0 ) ;
211
+
212
+ assertThrows ( ( ) => builder . setRangeHidden ( true ) ) ;
213
+ } ) ;
214
+ } ) ;
215
+
204
216
describe ( "endRange" , ( ) => {
205
217
it ( "throws when the range stack is empty" , ( ) => {
206
218
assertThrows ( ( ) => builder . endRange ( 5 , 0 ) ) ;
Original file line number Diff line number Diff line change @@ -170,6 +170,14 @@ export class SafeScopeInfoBuilder extends ScopeInfoBuilder {
170
170
return this ;
171
171
}
172
172
173
+ override setRangeHidden ( isHidden : boolean ) : this {
174
+ this . #verifyEmptyScopeStack( "setRangeHidden" ) ;
175
+ this . #verifyRangePresent( "setRangeHidden" ) ;
176
+
177
+ super . setRangeHidden ( isHidden ) ;
178
+ return this ;
179
+ }
180
+
173
181
override endRange ( line : number , column : number ) : this {
174
182
this . #verifyEmptyScopeStack( "endRange" ) ;
175
183
You can’t perform that action at this time.
0 commit comments