@@ -752,12 +752,11 @@ export class TestState {
752
752
) {
753
753
this . goToMarkerOrNameOrRange ( markerOrRange ) ;
754
754
const defs = getDefs ( ) ;
755
- return this . baselineReferencesWorker < ReturnType < typeof getDefs > , ts . DefinitionInfo | ts . ImplementationLocation > (
755
+ return this . baselineReferencesWorker < ts . DefinitionInfo | ts . ImplementationLocation > (
756
756
refType ,
757
757
markerOrRange ,
758
- defs ,
759
- defs => defs ? ts . isArray ( defs ) ? defs : defs . definitions : undefined ,
760
- defs => defs && ! ts . isArray ( defs ) ? "// === TextSpan ===\n" + this . getBaselineContentForGroupedReferences (
758
+ defs ? ts . isArray ( defs ) ? defs : defs . definitions : undefined ,
759
+ defs && ! ts . isArray ( defs ) ? "// === TextSpan ===\n" + this . getBaselineContentForGroupedReferences (
761
760
refType ,
762
761
[ [ { fileName : this . activeFile . fileName , textSpan : defs . textSpan } ] ] ,
763
762
markerOrRange ,
@@ -1213,20 +1212,28 @@ export class TestState {
1213
1212
return this . baselineReferencesWorker (
1214
1213
"/*FIND ALL REFS*/" ,
1215
1214
markerOrRange ,
1216
- references ,
1217
- references => ts . flatMap ( references , ( r , def ) => {
1215
+ ts . flatMap ( references , ( r , def ) => {
1218
1216
defIdMap . set ( r . definition , def ) ;
1219
1217
r . references . forEach ( r => defIdMap . set ( r , def ) ) ;
1220
1218
return r . references ;
1221
1219
} ) ,
1222
- references => references ? "// === Definitions ===\n" + this . baselineReferencesWorker (
1223
- "/*FIND ALL REFS*/" ,
1224
- markerOrRange ,
1225
- references . map ( r => r . definition ) ,
1226
- ts . identity ,
1227
- /*skipJson*/ true ,
1228
- def => `defId: ${ defIdMap . get ( def ) } ` ,
1229
- ) : "" ,
1220
+ references ? "// === Definitions ===\n" +
1221
+ this . baselineReferencesWorker (
1222
+ "/*FIND ALL REFS*/" ,
1223
+ markerOrRange ,
1224
+ references . map ( r => r . definition ) ,
1225
+ /*additionalBaseline*/ undefined ,
1226
+ def => `defId: ${ defIdMap . get ( def ) } ` ,
1227
+ /*skipExtraInfo*/ true ,
1228
+ ) +
1229
+ "// === Definitions Details ===\n" +
1230
+ JSON . stringify ( references . map ( r => ( {
1231
+ defId : defIdMap . get ( r . definition ) ,
1232
+ ...r . definition ,
1233
+ fileName : undefined ,
1234
+ textSpan : undefined ,
1235
+ contextSpan : undefined ,
1236
+ } ) ) , undefined , " " ) : "" ,
1230
1237
ref => `defId: ${ defIdMap . get ( ref ) } ` ,
1231
1238
) ;
1232
1239
}
@@ -1241,49 +1248,46 @@ export class TestState {
1241
1248
"/*FIND ALL REFS*/" ,
1242
1249
/*markerName*/ undefined ,
1243
1250
references ,
1244
- ts . identity ,
1245
1251
) ;
1246
1252
}
1247
1253
1248
- private baselineReferencesWorker < R , T extends ts . DocumentSpan > (
1254
+ private baselineReferencesWorker < T extends ts . DocumentSpan > (
1249
1255
refType : string ,
1250
1256
markerOrRange : MarkerOrNameOrRange | undefined ,
1251
- result : R ,
1252
- getDocumentSpanArray : ( result : R ) => readonly T [ ] | undefined ,
1253
- skipJsonOrGetAdditionalBaseline ?: true | ( ( result : R ) => string ) ,
1254
- documentSpanToPrefix ?: ( span : T ) => string ,
1257
+ spans : readonly T [ ] | undefined ,
1258
+ additionalBaseline ?: string ,
1259
+ documentSpanId ?: ( span : T ) => string ,
1260
+ skipExtraInfo ?: boolean ,
1255
1261
endMarker ?: string ,
1256
1262
startMarkerPrefix ?: ( span : T ) => string | undefined ,
1257
1263
endMarkerSuffix ?: ( span : T ) => string | undefined ,
1258
1264
ignoredDocumentSpanProperties ?: readonly string [ ] ,
1259
1265
) : string {
1260
- const spans = getDocumentSpanArray ( result ) ;
1261
1266
const spansByFile = spans ? ts . group ( spans , span => span . fileName ) : ts . emptyArray ;
1262
1267
// Write input files
1263
1268
const baselineContent = this . getBaselineContentForGroupedReferences (
1264
1269
refType ,
1265
1270
spansByFile ,
1266
1271
markerOrRange ,
1267
- // Skip additional marker file since its already added in prev baseline,
1268
- skipJsonOrGetAdditionalBaseline === true ,
1269
- documentSpanToPrefix ,
1272
+ documentSpanId ,
1273
+ skipExtraInfo ,
1270
1274
endMarker ,
1271
1275
startMarkerPrefix ,
1272
1276
endMarkerSuffix ,
1273
1277
ignoredDocumentSpanProperties ,
1274
1278
) ;
1275
- if ( skipJsonOrGetAdditionalBaseline === true ) return baselineContent ;
1276
- const additionalBaseline = skipJsonOrGetAdditionalBaseline ?.( result ) || "" ;
1277
1279
// Write response JSON
1278
- return baselineContent + additionalBaseline + JSON . stringify ( result , undefined , 2 ) ;
1280
+ return baselineContent +
1281
+ ( additionalBaseline || "" ) +
1282
+ ( ! spans ?. length ? JSON . stringify ( spans , undefined , 2 ) : "" ) ;
1279
1283
}
1280
1284
1281
1285
private getBaselineContentForGroupedReferences < T extends ts . DocumentSpan > (
1282
1286
refType : string ,
1283
1287
refsByFile : readonly ( readonly T [ ] ) [ ] ,
1284
1288
markerOrRange : MarkerOrNameOrRange | undefined ,
1285
- skipMarkerOnlyFile ?: boolean ,
1286
- documentSpanToPrefix ?: ( span : T ) => string ,
1289
+ documentSpanId ?: ( span : T ) => string ,
1290
+ skipExtraInfo ?: boolean ,
1287
1291
endMarker ?: string ,
1288
1292
startMarkerPrefix ?: ( span : T ) => string | undefined ,
1289
1293
endMarkerSuffix ?: ( span : T ) => string | undefined ,
@@ -1314,15 +1318,17 @@ export class TestState {
1314
1318
baselineContent += `// === ${ group [ 0 ] . fileName } ===\n// Unavailable file content:\n` ;
1315
1319
for ( const span of group ) {
1316
1320
baselineContent += `// textSpan: ${ JSON . stringify ( span . textSpan ) } ${ span . contextSpan ? `, contextSpan: ${ JSON . stringify ( span . contextSpan ) } ` : "" } ` ;
1317
- const text = convertDocumentSpanToString ( span , documentSpanToPrefix ?.( span ) ) ;
1321
+ const text = ! skipExtraInfo ?
1322
+ convertDocumentSpanToString ( span , documentSpanId ?.( span ) ) :
1323
+ documentSpanId ?.( span ) ;
1318
1324
if ( text ) baselineContent += ` ${ text } ` ;
1319
1325
baselineContent = "\n\n" ;
1320
1326
}
1321
1327
foundMarker ||= marker ?. fileName === group [ 0 ] . fileName ;
1322
1328
}
1323
1329
}
1324
1330
}
1325
- if ( ! skipMarkerOnlyFile && ! foundMarker && marker ?. fileName ) {
1331
+ if ( ! skipExtraInfo && ! foundMarker && marker ?. fileName ) {
1326
1332
const content = this . getFileContent ( marker . fileName ) ;
1327
1333
const newContent = `=== ${ marker . fileName } ===\n` +
1328
1334
content . slice ( 0 , marker . position ) +
@@ -1441,7 +1447,9 @@ export class TestState {
1441
1447
if ( span ) {
1442
1448
switch ( type ) {
1443
1449
case "textStart" :
1444
- let text = convertDocumentSpanToString ( span , documentSpanToPrefix ?.( span ) , ignoredDocumentSpanProperties ) ;
1450
+ let text = ! skipExtraInfo ?
1451
+ convertDocumentSpanToString ( span , documentSpanId ?.( span ) , ignoredDocumentSpanProperties ) :
1452
+ documentSpanId ?.( span ) ;
1445
1453
const contextId = spanToContextId . get ( span ) ;
1446
1454
if ( contextId !== undefined ) {
1447
1455
text = `contextId: ${ contextId } ` + ( text ? ", " : "" ) + text ;
@@ -1690,9 +1698,9 @@ export class TestState {
1690
1698
"/*RENAME*/" ,
1691
1699
markerOrRange ,
1692
1700
locations ,
1693
- ts . identity ,
1694
- /*skipJsonOrGetAdditionalBaseline */ undefined ,
1695
- /*documentSpanToPrefix */ undefined ,
1701
+ /*additionalBaseline*/ undefined ,
1702
+ /*documentSpanId */ undefined ,
1703
+ /*skipExtraInfo */ undefined ,
1696
1704
"RENAME|]" ,
1697
1705
span => span . prefixText ? `/*START PREFIX*/${ span . prefixText } ` : "" ,
1698
1706
span => span . suffixText ? `${ span . suffixText } /*END SUFFIX*/` : "" ,
@@ -3549,7 +3557,6 @@ export class TestState {
3549
3557
"/*OCCURENCES*/" ,
3550
3558
markerOrRange ,
3551
3559
occurrences ,
3552
- ts . identity ,
3553
3560
) ;
3554
3561
}
3555
3562
@@ -3576,7 +3583,7 @@ export class TestState {
3576
3583
markerOrRange
3577
3584
) ;
3578
3585
// Write response JSON
3579
- return filesToSearch + baselineContent + JSON . stringify ( highlights , undefined , 2 ) ;
3586
+ return filesToSearch + baselineContent + ( ! highlights ?. length ? JSON . stringify ( highlights , undefined , 2 ) : "" ) ;
3580
3587
}
3581
3588
3582
3589
public verifyBaselineDocumentHighlights ( markerOrRange : ArrayOrSingle < MarkerOrNameOrRange > , options : FourSlashInterface . VerifyDocumentHighlightsOptions | undefined ) {
0 commit comments