@@ -43,6 +43,7 @@ export class HtmlQueryResultsRenderer {
4343 public content : HTMLDivElement | null = null ;
4444
4545 private readonly ulElementStack : HTMLUListElement [ ] = [ ] ;
46+ private readonly renderedListItems : Set < ListItem > = new Set < ListItem > ( ) ;
4647
4748 constructor (
4849 renderMarkdown : (
@@ -185,12 +186,12 @@ export class HtmlQueryResultsRenderer {
185186 // will be empty, and no headings will be added.
186187 await this . addGroupHeadings ( group . groupHeadings ) ;
187188
188- const renderedListItems : Set < ListItem > = new Set ( ) ;
189+ this . renderedListItems . clear ( ) ;
189190 // TODO re-extract the method to include this back
190191 const taskList = createAndAppendElement ( 'ul' , this . getContent ( ) ) ;
191192 this . ulElementStack . push ( taskList ) ;
192193 try {
193- await this . createTaskList ( group . tasks , queryRendererParameters , renderedListItems ) ;
194+ await this . createTaskList ( group . tasks , queryRendererParameters ) ;
194195 } finally {
195196 this . ulElementStack . pop ( ) ;
196197 }
@@ -200,7 +201,6 @@ export class HtmlQueryResultsRenderer {
200201 private async createTaskList (
201202 listItems : ListItem [ ] ,
202203 queryRendererParameters : QueryRendererParameters ,
203- renderedListItems : Set < ListItem > ,
204204 ) : Promise < void > {
205205 const taskList = this . currentULElement ( ) ;
206206 taskList . classList . add (
@@ -231,14 +231,7 @@ export class HtmlQueryResultsRenderer {
231231 * - Tasks are rendered in the order specified in 'sort by' instructions and default sort order.
232232 */
233233 if ( listItem instanceof Task ) {
234- await this . addTask (
235- taskLineRenderer ,
236- listItem ,
237- listItemIndex ,
238- queryRendererParameters ,
239- [ ] ,
240- renderedListItems ,
241- ) ;
234+ await this . addTask ( taskLineRenderer , listItem , listItemIndex , queryRendererParameters , [ ] ) ;
242235 }
243236 } else {
244237 /* New-style rendering of tasks:
@@ -257,19 +250,18 @@ export class HtmlQueryResultsRenderer {
257250 listItemIndex ,
258251 queryRendererParameters ,
259252 listItems ,
260- renderedListItems ,
261253 ) ;
262254 }
263255 }
264256 }
265257
266- private willBeRenderedLater ( listItem : ListItem , renderedListItems : Set < ListItem > , listItems : ListItem [ ] ) {
258+ private willBeRenderedLater ( listItem : ListItem , listItems : ListItem [ ] ) {
267259 const closestParentTask = listItem . findClosestParentTask ( ) ;
268260 if ( ! closestParentTask ) {
269261 return false ;
270262 }
271263
272- if ( ! renderedListItems . has ( closestParentTask ) ) {
264+ if ( ! this . renderedListItems . has ( closestParentTask ) ) {
273265 // This task is a direct or indirect child of another task that we are waiting to draw,
274266 // so don't draw it yet, it will be done recursively later.
275267 if ( listItems . includes ( closestParentTask ) ) {
@@ -280,8 +272,8 @@ export class HtmlQueryResultsRenderer {
280272 return false ;
281273 }
282274
283- private alreadyRendered ( listItem : ListItem , renderedListItems : Set < ListItem > ) {
284- return renderedListItems . has ( listItem ) ;
275+ private alreadyRendered ( listItem : ListItem ) {
276+ return this . renderedListItems . has ( listItem ) ;
285277 }
286278
287279 private async addTaskOrListItemAndChildren (
@@ -290,27 +282,20 @@ export class HtmlQueryResultsRenderer {
290282 taskIndex : number ,
291283 queryRendererParameters : QueryRendererParameters ,
292284 listItems : ListItem [ ] ,
293- renderedListItems : Set < ListItem > ,
294285 ) {
295- if ( this . alreadyRendered ( listItem , renderedListItems ) ) {
286+ if ( this . alreadyRendered ( listItem ) ) {
296287 return ;
297288 }
298289
299- if ( this . willBeRenderedLater ( listItem , renderedListItems , listItems ) ) {
290+ if ( this . willBeRenderedLater ( listItem , listItems ) ) {
300291 return ;
301292 }
302293
303- await this . createTaskOrListItem (
304- taskLineRenderer ,
305- listItem ,
306- taskIndex ,
307- queryRendererParameters ,
308- renderedListItems ,
309- ) ;
310- renderedListItems . add ( listItem ) ;
294+ await this . createTaskOrListItem ( taskLineRenderer , listItem , taskIndex , queryRendererParameters ) ;
295+ this . renderedListItems . add ( listItem ) ;
311296
312297 for ( const childTask of listItem . children ) {
313- renderedListItems . add ( childTask ) ;
298+ this . renderedListItems . add ( childTask ) ;
314299 }
315300 }
316301
@@ -319,26 +304,11 @@ export class HtmlQueryResultsRenderer {
319304 listItem : ListItem ,
320305 taskIndex : number ,
321306 queryRendererParameters : QueryRendererParameters ,
322- renderedListItems : Set < ListItem > ,
323307 ) : Promise < void > {
324308 if ( listItem instanceof Task ) {
325- await this . addTask (
326- taskLineRenderer ,
327- listItem ,
328- taskIndex ,
329- queryRendererParameters ,
330- listItem . children ,
331- renderedListItems ,
332- ) ;
309+ await this . addTask ( taskLineRenderer , listItem , taskIndex , queryRendererParameters , listItem . children ) ;
333310 } else {
334- await this . addListItem (
335- taskLineRenderer ,
336- listItem ,
337- taskIndex ,
338- listItem . children ,
339- queryRendererParameters ,
340- renderedListItems ,
341- ) ;
311+ await this . addListItem ( taskLineRenderer , listItem , taskIndex , listItem . children , queryRendererParameters ) ;
342312 }
343313 }
344314
@@ -348,7 +318,6 @@ export class HtmlQueryResultsRenderer {
348318 listItemIndex : number ,
349319 children : ListItem [ ] ,
350320 queryRendererParameters : QueryRendererParameters ,
351- renderedListItems : Set < ListItem > ,
352321 ) : Promise < void > {
353322 const listItemElement = await taskLineRenderer . renderListItem ( this . currentULElement ( ) , listItem , listItemIndex ) ;
354323
@@ -357,7 +326,7 @@ export class HtmlQueryResultsRenderer {
357326 const taskList1 = createAndAppendElement ( 'ul' , listItemElement ) ;
358327 this . ulElementStack . push ( taskList1 ) ;
359328 try {
360- await this . createTaskList ( children , queryRendererParameters , renderedListItems ) ;
329+ await this . createTaskList ( children , queryRendererParameters ) ;
361330 } finally {
362331 this . ulElementStack . pop ( ) ;
363332 }
@@ -370,7 +339,6 @@ export class HtmlQueryResultsRenderer {
370339 taskIndex : number ,
371340 queryRendererParameters : QueryRendererParameters ,
372341 children : ListItem [ ] ,
373- renderedListItems : Set < ListItem > ,
374342 ) : Promise < void > {
375343 const isFilenameUnique = this . isFilenameUnique ( { task } , queryRendererParameters . allMarkdownFiles ) ;
376344 const listItem = await taskLineRenderer . renderTaskLine ( {
@@ -412,7 +380,7 @@ export class HtmlQueryResultsRenderer {
412380 const taskList1 = createAndAppendElement ( 'ul' , listItem ) ;
413381 this . ulElementStack . push ( taskList1 ) ;
414382 try {
415- await this . createTaskList ( children , queryRendererParameters , renderedListItems ) ;
383+ await this . createTaskList ( children , queryRendererParameters ) ;
416384 } finally {
417385 this . ulElementStack . pop ( ) ;
418386 }
0 commit comments