@@ -44,7 +44,7 @@ import { CoverageBarSource, ManagedTestCoverageBars } from 'vs/workbench/contrib
44
44
import { TestCommandId , Testing } from 'vs/workbench/contrib/testing/common/constants' ;
45
45
import { ComputedFileCoverage , FileCoverage , TestCoverage , getTotalCoveragePercent } from 'vs/workbench/contrib/testing/common/testCoverage' ;
46
46
import { ITestCoverageService } from 'vs/workbench/contrib/testing/common/testCoverageService' ;
47
- import { CoverageDetails , DetailType , ICoveredCount , IFunctionCoverage , TestResultState } from 'vs/workbench/contrib/testing/common/testTypes' ;
47
+ import { CoverageDetails , DetailType , ICoveredCount , IDeclarationCoverage , TestResultState } from 'vs/workbench/contrib/testing/common/testTypes' ;
48
48
import { ACTIVE_GROUP , IEditorService , SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService' ;
49
49
50
50
const enum CoverageSortOrder {
@@ -97,10 +97,10 @@ export class TestCoverageView extends ViewPane {
97
97
98
98
let fnNodeId = 0 ;
99
99
100
- class FunctionCoverageNode {
100
+ class DeclarationCoverageNode {
101
101
public readonly id = String ( fnNodeId ++ ) ;
102
102
public readonly containedDetails = new Set < CoverageDetails > ( ) ;
103
- public readonly children : FunctionCoverageNode [ ] = [ ] ;
103
+ public readonly children : DeclarationCoverageNode [ ] = [ ] ;
104
104
105
105
public get hits ( ) {
106
106
return this . data . count ;
@@ -121,7 +121,7 @@ class FunctionCoverageNode {
121
121
122
122
constructor (
123
123
public readonly uri : URI ,
124
- private readonly data : IFunctionCoverage ,
124
+ private readonly data : IDeclarationCoverage ,
125
125
details : readonly CoverageDetails [ ] ,
126
126
) {
127
127
if ( data . location instanceof Range ) {
@@ -172,11 +172,11 @@ class FunctionCoverageNode {
172
172
}
173
173
}
174
174
175
- class RevealUncoveredFunctions {
175
+ class RevealUncoveredDeclarations {
176
176
public readonly id = String ( fnNodeId ++ ) ;
177
177
178
178
public get label ( ) {
179
- return localize ( 'functionsWithoutCoverage' , "{0} functions without coverage..." , this . n ) ;
179
+ return localize ( 'functionsWithoutCoverage' , "{0} declarations without coverage..." , this . n ) ;
180
180
}
181
181
182
182
constructor ( public readonly n : number ) { }
@@ -189,12 +189,12 @@ class LoadingDetails {
189
189
190
190
/** Type of nodes returned from {@link TestCoverage}. Note: value is *always* defined. */
191
191
type TestCoverageFileNode = IPrefixTreeNode < ComputedFileCoverage | FileCoverage > ;
192
- type CoverageTreeElement = TestCoverageFileNode | FunctionCoverageNode | LoadingDetails | RevealUncoveredFunctions ;
192
+ type CoverageTreeElement = TestCoverageFileNode | DeclarationCoverageNode | LoadingDetails | RevealUncoveredDeclarations ;
193
193
194
194
const isFileCoverage = ( c : CoverageTreeElement ) : c is TestCoverageFileNode => typeof c === 'object' && 'value' in c ;
195
- const isFunctionCoverage = ( c : CoverageTreeElement ) : c is FunctionCoverageNode => c instanceof FunctionCoverageNode ;
196
- const shouldShowFunctionDetailsOnExpand = ( c : CoverageTreeElement ) : c is IPrefixTreeNode < FileCoverage > =>
197
- isFileCoverage ( c ) && c . value instanceof FileCoverage && ! ! c . value . function ?. total ;
195
+ const isDeclarationCoverage = ( c : CoverageTreeElement ) : c is DeclarationCoverageNode => c instanceof DeclarationCoverageNode ;
196
+ const shouldShowDeclDetailsOnExpand = ( c : CoverageTreeElement ) : c is IPrefixTreeNode < FileCoverage > =>
197
+ isFileCoverage ( c ) && c . value instanceof FileCoverage && ! ! c . value . declaration ?. total ;
198
198
199
199
class TestCoverageTree extends Disposable {
200
200
private readonly tree : WorkbenchCompressibleObjectTree < CoverageTreeElement , void > ;
@@ -215,7 +215,7 @@ class TestCoverageTree extends Disposable {
215
215
new TestCoverageTreeListDelegate ( ) ,
216
216
[
217
217
instantiationService . createInstance ( FileCoverageRenderer , labels ) ,
218
- instantiationService . createInstance ( FunctionCoverageRenderer ) ,
218
+ instantiationService . createInstance ( DeclarationCoverageRenderer ) ,
219
219
instantiationService . createInstance ( BasicRenderer ) ,
220
220
] ,
221
221
{
@@ -256,7 +256,7 @@ class TestCoverageTree extends Disposable {
256
256
this . _register ( this . tree ) ;
257
257
this . _register ( this . tree . onDidChangeCollapseState ( e => {
258
258
const el = e . node . element ;
259
- if ( ! e . node . collapsed && ! e . node . children . length && el && shouldShowFunctionDetailsOnExpand ( el ) ) {
259
+ if ( ! e . node . collapsed && ! e . node . children . length && el && shouldShowDeclDetailsOnExpand ( el ) ) {
260
260
if ( el . value ! . hasSynchronousDetails ) {
261
261
this . tree . setChildren ( el , [ { element : new LoadingDetails ( ) , incompressible : true } ] ) ;
262
262
}
@@ -270,7 +270,7 @@ class TestCoverageTree extends Disposable {
270
270
if ( e . element ) {
271
271
if ( isFileCoverage ( e . element ) && ! e . element . children ?. size ) {
272
272
resource = e . element . value ! . uri ;
273
- } else if ( isFunctionCoverage ( e . element ) ) {
273
+ } else if ( isDeclarationCoverage ( e . element ) ) {
274
274
resource = e . element . uri ;
275
275
selection = e . element . location ;
276
276
}
@@ -310,7 +310,7 @@ class TestCoverageTree extends Disposable {
310
310
incompressible : isFile ,
311
311
collapsed : isFile ,
312
312
// directories can be expanded, and items with function info can be expanded
313
- collapsible : ! isFile || ! ! file . value ?. function ?. total ,
313
+ collapsible : ! isFile || ! ! file . value ?. declaration ?. total ,
314
314
children : file . children && Iterable . map ( file . children ?. values ( ) , toChild )
315
315
} ;
316
316
} ;
@@ -327,13 +327,13 @@ class TestCoverageTree extends Disposable {
327
327
return ; // avoid any issues if the tree changes in the meanwhile
328
328
}
329
329
330
- const functions : FunctionCoverageNode [ ] = [ ] ;
330
+ const decl : DeclarationCoverageNode [ ] = [ ] ;
331
331
for ( const fn of details ) {
332
- if ( fn . type !== DetailType . Function ) {
332
+ if ( fn . type !== DetailType . Declaration ) {
333
333
continue ;
334
334
}
335
335
336
- let arr = functions ;
336
+ let arr = decl ;
337
337
while ( true ) {
338
338
const parent = arr . find ( p => p . containedDetails . has ( fn ) ) ;
339
339
if ( parent ) {
@@ -343,18 +343,18 @@ class TestCoverageTree extends Disposable {
343
343
}
344
344
}
345
345
346
- arr . push ( new FunctionCoverageNode ( el . value ! . uri , fn , details ) ) ;
346
+ arr . push ( new DeclarationCoverageNode ( el . value ! . uri , fn , details ) ) ;
347
347
}
348
348
349
- const makeChild = ( fn : FunctionCoverageNode ) : ICompressedTreeElement < CoverageTreeElement > => ( {
349
+ const makeChild = ( fn : DeclarationCoverageNode ) : ICompressedTreeElement < CoverageTreeElement > => ( {
350
350
element : fn ,
351
351
incompressible : true ,
352
352
collapsed : true ,
353
353
collapsible : fn . children . length > 0 ,
354
354
children : fn . children . map ( makeChild )
355
355
} ) ;
356
356
357
- this . tree . setChildren ( el , functions . map ( makeChild ) ) ;
357
+ this . tree . setChildren ( el , decl . map ( makeChild ) ) ;
358
358
}
359
359
}
360
360
@@ -367,10 +367,10 @@ class TestCoverageTreeListDelegate implements IListVirtualDelegate<CoverageTreeE
367
367
if ( isFileCoverage ( element ) ) {
368
368
return FileCoverageRenderer . ID ;
369
369
}
370
- if ( isFunctionCoverage ( element ) ) {
371
- return FunctionCoverageRenderer . ID ;
370
+ if ( isDeclarationCoverage ( element ) ) {
371
+ return DeclarationCoverageRenderer . ID ;
372
372
}
373
- if ( element instanceof LoadingDetails || element instanceof RevealUncoveredFunctions ) {
373
+ if ( element instanceof LoadingDetails || element instanceof RevealUncoveredDeclarations ) {
374
374
return BasicRenderer . ID ;
375
375
}
376
376
assertNever ( element ) ;
@@ -389,7 +389,7 @@ class Sorter implements ITreeSorter<CoverageTreeElement> {
389
389
case CoverageSortOrder . Coverage :
390
390
return b . value ! . tpc - a . value ! . tpc ;
391
391
}
392
- } else if ( isFunctionCoverage ( a ) && isFunctionCoverage ( b ) ) {
392
+ } else if ( isDeclarationCoverage ( a ) && isDeclarationCoverage ( b ) ) {
393
393
switch ( order ) {
394
394
case CoverageSortOrder . Location :
395
395
return Position . compare (
@@ -474,24 +474,24 @@ class FileCoverageRenderer implements ICompressibleTreeRenderer<CoverageTreeElem
474
474
}
475
475
}
476
476
477
- interface FunctionTemplateData {
477
+ interface DeclarationTemplateData {
478
478
container : HTMLElement ;
479
479
bars : ManagedTestCoverageBars ;
480
480
templateDisposables : DisposableStore ;
481
481
icon : HTMLElement ;
482
482
label : HTMLElement ;
483
483
}
484
484
485
- class FunctionCoverageRenderer implements ICompressibleTreeRenderer < CoverageTreeElement , FuzzyScore , FunctionTemplateData > {
485
+ class DeclarationCoverageRenderer implements ICompressibleTreeRenderer < CoverageTreeElement , FuzzyScore , DeclarationTemplateData > {
486
486
public static readonly ID = 'N' ;
487
- public readonly templateId = FunctionCoverageRenderer . ID ;
487
+ public readonly templateId = DeclarationCoverageRenderer . ID ;
488
488
489
489
constructor (
490
490
@IInstantiationService private readonly instantiationService : IInstantiationService ,
491
491
) { }
492
492
493
493
/** @inheritdoc */
494
- public renderTemplate ( container : HTMLElement ) : FunctionTemplateData {
494
+ public renderTemplate ( container : HTMLElement ) : DeclarationTemplateData {
495
495
const templateDisposables = new DisposableStore ( ) ;
496
496
container . classList . add ( 'test-coverage-list-item' ) ;
497
497
const icon = dom . append ( container , dom . $ ( '.state' ) ) ;
@@ -507,21 +507,21 @@ class FunctionCoverageRenderer implements ICompressibleTreeRenderer<CoverageTree
507
507
}
508
508
509
509
/** @inheritdoc */
510
- public renderElement ( node : ITreeNode < CoverageTreeElement , FuzzyScore > , _index : number , templateData : FunctionTemplateData ) : void {
511
- this . doRender ( node . element as FunctionCoverageNode , templateData , node . filterData ) ;
510
+ public renderElement ( node : ITreeNode < CoverageTreeElement , FuzzyScore > , _index : number , templateData : DeclarationTemplateData ) : void {
511
+ this . doRender ( node . element as DeclarationCoverageNode , templateData , node . filterData ) ;
512
512
}
513
513
514
514
/** @inheritdoc */
515
- public renderCompressedElements ( node : ITreeNode < ICompressedTreeNode < CoverageTreeElement > , FuzzyScore > , _index : number , templateData : FunctionTemplateData ) : void {
516
- this . doRender ( node . element . elements [ node . element . elements . length - 1 ] as FunctionCoverageNode , templateData , node . filterData ) ;
515
+ public renderCompressedElements ( node : ITreeNode < ICompressedTreeNode < CoverageTreeElement > , FuzzyScore > , _index : number , templateData : DeclarationTemplateData ) : void {
516
+ this . doRender ( node . element . elements [ node . element . elements . length - 1 ] as DeclarationCoverageNode , templateData , node . filterData ) ;
517
517
}
518
518
519
- public disposeTemplate ( templateData : FunctionTemplateData ) {
519
+ public disposeTemplate ( templateData : DeclarationTemplateData ) {
520
520
templateData . templateDisposables . dispose ( ) ;
521
521
}
522
522
523
523
/** @inheritdoc */
524
- private doRender ( element : FunctionCoverageNode , templateData : FunctionTemplateData , _filterData : FuzzyScore | undefined ) {
524
+ private doRender ( element : DeclarationCoverageNode , templateData : DeclarationTemplateData , _filterData : FuzzyScore | undefined ) {
525
525
const covered = ! ! element . hits ;
526
526
const icon = covered ? testingWasCovered : testingStatesToIcons . get ( TestResultState . Unset ) ;
527
527
templateData . container . classList . toggle ( 'not-covered' , ! covered ) ;
@@ -552,7 +552,7 @@ class BasicRenderer implements ICompressibleTreeRenderer<CoverageTreeElement, Fu
552
552
}
553
553
554
554
private renderInner ( element : CoverageTreeElement , container : HTMLElement ) {
555
- container . innerText = ( element as RevealUncoveredFunctions | LoadingDetails ) . label ;
555
+ container . innerText = ( element as RevealUncoveredDeclarations | LoadingDetails ) . label ;
556
556
}
557
557
}
558
558
@@ -585,9 +585,9 @@ registerAction2(class TestCoverageChangeSortingAction extends ViewAction<TestCov
585
585
const disposables = new DisposableStore ( ) ;
586
586
const quickInput = disposables . add ( accessor . get ( IQuickInputService ) . createQuickPick < Item > ( ) ) ;
587
587
const items : Item [ ] = [
588
- { label : localize ( 'testing.coverageSortByLocation' , 'Sort by Location' ) , value : CoverageSortOrder . Location , description : localize ( 'testing.coverageSortByLocationDescription' , 'Files are sorted alphabetically, functions are sorted by position' ) } ,
589
- { label : localize ( 'testing.coverageSortByCoverage' , 'Sort by Coverage' ) , value : CoverageSortOrder . Coverage , description : localize ( 'testing.coverageSortByCoverageDescription' , 'Files and functions are sorted by total coverage' ) } ,
590
- { label : localize ( 'testing.coverageSortByName' , 'Sort by Name' ) , value : CoverageSortOrder . Name , description : localize ( 'testing.coverageSortByNameDescription' , 'Files and functions are sorted alphabetically' ) } ,
588
+ { label : localize ( 'testing.coverageSortByLocation' , 'Sort by Location' ) , value : CoverageSortOrder . Location , description : localize ( 'testing.coverageSortByLocationDescription' , 'Files are sorted alphabetically, declarations are sorted by position' ) } ,
589
+ { label : localize ( 'testing.coverageSortByCoverage' , 'Sort by Coverage' ) , value : CoverageSortOrder . Coverage , description : localize ( 'testing.coverageSortByCoverageDescription' , 'Files and declarations are sorted by total coverage' ) } ,
590
+ { label : localize ( 'testing.coverageSortByName' , 'Sort by Name' ) , value : CoverageSortOrder . Name , description : localize ( 'testing.coverageSortByNameDescription' , 'Files and declarations are sorted alphabetically' ) } ,
591
591
] ;
592
592
593
593
quickInput . placeholder = localize ( 'testing.coverageSortPlaceholder' , 'Sort the Test Coverage view...' ) ;
0 commit comments