@typescript-deploys/pr-build 5.0.0-pr-52244-8 → 5.0.0-pr-52382-14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/tsc.js +9 -6
- package/lib/tsserver.js +39 -30
- package/lib/tsserverlibrary.d.ts +1 -1
- package/lib/tsserverlibrary.js +36 -31
- package/lib/typescript.d.ts +1 -1
- package/lib/typescript.js +31 -30
- package/lib/typingsInstaller.js +5655 -8
- package/package.json +1 -1
package/lib/tsc.js
CHANGED
|
@@ -23,7 +23,7 @@ var __export = (target, all) => {
|
|
|
23
23
|
|
|
24
24
|
// src/compiler/corePublic.ts
|
|
25
25
|
var versionMajorMinor = "5.0";
|
|
26
|
-
var version = `${versionMajorMinor}.0-insiders.
|
|
26
|
+
var version = `${versionMajorMinor}.0-insiders.20230125`;
|
|
27
27
|
|
|
28
28
|
// src/compiler/core.ts
|
|
29
29
|
var emptyArray = [];
|
|
@@ -46308,7 +46308,7 @@ function createTypeChecker(host) {
|
|
|
46308
46308
|
return writer ? symbolToStringWorker(writer).getText() : usingSingleLineStringWriter(symbolToStringWorker);
|
|
46309
46309
|
function symbolToStringWorker(writer2) {
|
|
46310
46310
|
const entity = builder(symbol, meaning, enclosingDeclaration, nodeFlags);
|
|
46311
|
-
const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ?
|
|
46311
|
+
const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ? createPrinterWithRemoveCommentsNeverAsciiEscape() : createPrinterWithRemoveComments();
|
|
46312
46312
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
46313
46313
|
printer.writeNode(
|
|
46314
46314
|
4 /* Unspecified */,
|
|
@@ -46330,7 +46330,7 @@ function createTypeChecker(host) {
|
|
|
46330
46330
|
sigOutput = kind === 1 /* Construct */ ? 177 /* ConstructSignature */ : 176 /* CallSignature */;
|
|
46331
46331
|
}
|
|
46332
46332
|
const sig = nodeBuilder.signatureToSignatureDeclaration(signature, sigOutput, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */);
|
|
46333
|
-
const printer =
|
|
46333
|
+
const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
|
|
46334
46334
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
46335
46335
|
printer.writeNode(
|
|
46336
46336
|
4 /* Unspecified */,
|
|
@@ -46347,8 +46347,7 @@ function createTypeChecker(host) {
|
|
|
46347
46347
|
const typeNode = nodeBuilder.typeToTypeNode(type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | (noTruncation ? 1 /* NoTruncation */ : 0));
|
|
46348
46348
|
if (typeNode === void 0)
|
|
46349
46349
|
return Debug.fail("should always get typenode");
|
|
46350
|
-
const
|
|
46351
|
-
const printer = createPrinter(options);
|
|
46350
|
+
const printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults();
|
|
46352
46351
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
46353
46352
|
printer.writeNode(
|
|
46354
46353
|
4 /* Unspecified */,
|
|
@@ -49699,7 +49698,7 @@ function createTypeChecker(host) {
|
|
|
49699
49698
|
typePredicate.type && nodeBuilder.typeToTypeNode(typePredicate.type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */)
|
|
49700
49699
|
// TODO: GH#18217
|
|
49701
49700
|
);
|
|
49702
|
-
const printer =
|
|
49701
|
+
const printer = createPrinterWithRemoveComments();
|
|
49703
49702
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
49704
49703
|
printer.writeNode(
|
|
49705
49704
|
4 /* Unspecified */,
|
|
@@ -106274,6 +106273,10 @@ function emitUsingBuildInfoWorker(config, host, getCommandLine, customTransforme
|
|
|
106274
106273
|
);
|
|
106275
106274
|
return outputFiles;
|
|
106276
106275
|
}
|
|
106276
|
+
var createPrinterWithDefaults = memoize(() => createPrinter({}));
|
|
106277
|
+
var createPrinterWithRemoveComments = memoize(() => createPrinter({ removeComments: true }));
|
|
106278
|
+
var createPrinterWithRemoveCommentsNeverAsciiEscape = memoize(() => createPrinter({ removeComments: true, neverAsciiEscape: true }));
|
|
106279
|
+
var createPrinterWithRemoveCommentsOmitTrailingSemicolon = memoize(() => createPrinter({ removeComments: true, omitTrailingSemicolon: true }));
|
|
106277
106280
|
function createPrinter(printerOptions = {}, handlers = {}) {
|
|
106278
106281
|
const {
|
|
106279
106282
|
hasGlobalName,
|
package/lib/tsserver.js
CHANGED
|
@@ -429,6 +429,10 @@ __export(server_exports, {
|
|
|
429
429
|
createPatternMatcher: () => createPatternMatcher,
|
|
430
430
|
createPrependNodes: () => createPrependNodes,
|
|
431
431
|
createPrinter: () => createPrinter,
|
|
432
|
+
createPrinterWithDefaults: () => createPrinterWithDefaults,
|
|
433
|
+
createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,
|
|
434
|
+
createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,
|
|
435
|
+
createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,
|
|
432
436
|
createProgram: () => createProgram,
|
|
433
437
|
createProgramHost: () => createProgramHost,
|
|
434
438
|
createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,
|
|
@@ -2373,7 +2377,7 @@ __export(ts_server_exports3, {
|
|
|
2373
2377
|
|
|
2374
2378
|
// src/compiler/corePublic.ts
|
|
2375
2379
|
var versionMajorMinor = "5.0";
|
|
2376
|
-
var version = `${versionMajorMinor}.0-insiders.
|
|
2380
|
+
var version = `${versionMajorMinor}.0-insiders.20230125`;
|
|
2377
2381
|
var Comparison = /* @__PURE__ */ ((Comparison3) => {
|
|
2378
2382
|
Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
|
|
2379
2383
|
Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
|
|
@@ -50977,7 +50981,7 @@ function createTypeChecker(host) {
|
|
|
50977
50981
|
return writer ? symbolToStringWorker(writer).getText() : usingSingleLineStringWriter(symbolToStringWorker);
|
|
50978
50982
|
function symbolToStringWorker(writer2) {
|
|
50979
50983
|
const entity = builder(symbol, meaning, enclosingDeclaration, nodeFlags);
|
|
50980
|
-
const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ?
|
|
50984
|
+
const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ? createPrinterWithRemoveCommentsNeverAsciiEscape() : createPrinterWithRemoveComments();
|
|
50981
50985
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
50982
50986
|
printer.writeNode(
|
|
50983
50987
|
4 /* Unspecified */,
|
|
@@ -50999,7 +51003,7 @@ function createTypeChecker(host) {
|
|
|
50999
51003
|
sigOutput = kind === 1 /* Construct */ ? 177 /* ConstructSignature */ : 176 /* CallSignature */;
|
|
51000
51004
|
}
|
|
51001
51005
|
const sig = nodeBuilder.signatureToSignatureDeclaration(signature, sigOutput, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */);
|
|
51002
|
-
const printer =
|
|
51006
|
+
const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
|
|
51003
51007
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
51004
51008
|
printer.writeNode(
|
|
51005
51009
|
4 /* Unspecified */,
|
|
@@ -51016,8 +51020,7 @@ function createTypeChecker(host) {
|
|
|
51016
51020
|
const typeNode = nodeBuilder.typeToTypeNode(type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | (noTruncation ? 1 /* NoTruncation */ : 0));
|
|
51017
51021
|
if (typeNode === void 0)
|
|
51018
51022
|
return Debug.fail("should always get typenode");
|
|
51019
|
-
const
|
|
51020
|
-
const printer = createPrinter(options);
|
|
51023
|
+
const printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults();
|
|
51021
51024
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
51022
51025
|
printer.writeNode(
|
|
51023
51026
|
4 /* Unspecified */,
|
|
@@ -54368,7 +54371,7 @@ function createTypeChecker(host) {
|
|
|
54368
54371
|
typePredicate.type && nodeBuilder.typeToTypeNode(typePredicate.type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */)
|
|
54369
54372
|
// TODO: GH#18217
|
|
54370
54373
|
);
|
|
54371
|
-
const printer =
|
|
54374
|
+
const printer = createPrinterWithRemoveComments();
|
|
54372
54375
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
54373
54376
|
printer.writeNode(
|
|
54374
54377
|
4 /* Unspecified */,
|
|
@@ -111125,6 +111128,10 @@ function emitUsingBuildInfoWorker(config, host, getCommandLine, customTransforme
|
|
|
111125
111128
|
);
|
|
111126
111129
|
return outputFiles;
|
|
111127
111130
|
}
|
|
111131
|
+
var createPrinterWithDefaults = memoize(() => createPrinter({}));
|
|
111132
|
+
var createPrinterWithRemoveComments = memoize(() => createPrinter({ removeComments: true }));
|
|
111133
|
+
var createPrinterWithRemoveCommentsNeverAsciiEscape = memoize(() => createPrinter({ removeComments: true, neverAsciiEscape: true }));
|
|
111134
|
+
var createPrinterWithRemoveCommentsOmitTrailingSemicolon = memoize(() => createPrinter({ removeComments: true, omitTrailingSemicolon: true }));
|
|
111128
111135
|
function createPrinter(printerOptions = {}, handlers = {}) {
|
|
111129
111136
|
const {
|
|
111130
111137
|
hasGlobalName,
|
|
@@ -126912,6 +126919,10 @@ __export(ts_exports3, {
|
|
|
126912
126919
|
createPatternMatcher: () => createPatternMatcher,
|
|
126913
126920
|
createPrependNodes: () => createPrependNodes,
|
|
126914
126921
|
createPrinter: () => createPrinter,
|
|
126922
|
+
createPrinterWithDefaults: () => createPrinterWithDefaults,
|
|
126923
|
+
createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,
|
|
126924
|
+
createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,
|
|
126925
|
+
createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,
|
|
126915
126926
|
createProgram: () => createProgram,
|
|
126916
126927
|
createProgramHost: () => createProgramHost,
|
|
126917
126928
|
createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,
|
|
@@ -131004,7 +131015,7 @@ function signatureToDisplayParts(typechecker, signature, enclosingDeclaration, f
|
|
|
131004
131015
|
function nodeToDisplayParts(node, enclosingDeclaration) {
|
|
131005
131016
|
const file = enclosingDeclaration.getSourceFile();
|
|
131006
131017
|
return mapToDisplayParts((writer) => {
|
|
131007
|
-
const printer =
|
|
131018
|
+
const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
|
|
131008
131019
|
printer.writeNode(4 /* Unspecified */, node, file, writer);
|
|
131009
131020
|
});
|
|
131010
131021
|
}
|
|
@@ -137389,12 +137400,9 @@ function createLanguageService(host, documentRegistry = createDocumentRegistry(h
|
|
|
137389
137400
|
Debug.assertEqual(action.type, "install package");
|
|
137390
137401
|
return host.installPackage ? host.installPackage({ fileName: getPath(action.file), packageName: action.packageName }) : Promise.reject("Host does not implement `installPackage`");
|
|
137391
137402
|
}
|
|
137392
|
-
function getDocCommentTemplateAtPosition2(fileName, position, options) {
|
|
137393
|
-
|
|
137394
|
-
|
|
137395
|
-
/*formatSettings*/
|
|
137396
|
-
void 0
|
|
137397
|
-
), syntaxTreeCache.getCurrentSourceFile(fileName), position, options);
|
|
137403
|
+
function getDocCommentTemplateAtPosition2(fileName, position, options, formatOptions) {
|
|
137404
|
+
const formatSettings = formatOptions ? ts_formatting_exports.getFormatContext(formatOptions, host).options : void 0;
|
|
137405
|
+
return ts_JsDoc_exports.getDocCommentTemplateAtPosition(getNewLineOrDefaultFromHost(host, formatSettings), syntaxTreeCache.getCurrentSourceFile(fileName), position, options);
|
|
137398
137406
|
}
|
|
137399
137407
|
function isValidBraceCompletionAtPosition(fileName, position, openingBrace) {
|
|
137400
137408
|
if (openingBrace === 60 /* lessThan */) {
|
|
@@ -138575,10 +138583,10 @@ var LanguageServiceShimObject = class extends ShimBase {
|
|
|
138575
138583
|
}
|
|
138576
138584
|
);
|
|
138577
138585
|
}
|
|
138578
|
-
getDocCommentTemplateAtPosition(fileName, position, options) {
|
|
138586
|
+
getDocCommentTemplateAtPosition(fileName, position, options, formatOptions) {
|
|
138579
138587
|
return this.forwardJSONCall(
|
|
138580
138588
|
`getDocCommentTemplateAtPosition('${fileName}', ${position})`,
|
|
138581
|
-
() => this.languageService.getDocCommentTemplateAtPosition(fileName, position, options)
|
|
138589
|
+
() => this.languageService.getDocCommentTemplateAtPosition(fileName, position, options, formatOptions)
|
|
138582
138590
|
);
|
|
138583
138591
|
}
|
|
138584
138592
|
/// NAVIGATE TO
|
|
@@ -139470,7 +139478,7 @@ function getCallHierarchyItemName(program, node) {
|
|
|
139470
139478
|
}
|
|
139471
139479
|
}
|
|
139472
139480
|
if (text === void 0) {
|
|
139473
|
-
const printer =
|
|
139481
|
+
const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
|
|
139474
139482
|
text = usingSingleLineStringWriter((writer) => printer.writeNode(4 /* Unspecified */, node, node.getSourceFile(), writer));
|
|
139475
139483
|
}
|
|
139476
139484
|
return { text, pos: declName.getStart(), end: declName.getEnd() };
|
|
@@ -157240,8 +157248,7 @@ function provideInlayHints(context) {
|
|
|
157240
157248
|
}
|
|
157241
157249
|
function printTypeInSingleLine(type) {
|
|
157242
157250
|
const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;
|
|
157243
|
-
const
|
|
157244
|
-
const printer = createPrinter(options);
|
|
157251
|
+
const printer = createPrinterWithRemoveComments();
|
|
157245
157252
|
return usingSingleLineStringWriter((writer) => {
|
|
157246
157253
|
const typeNode = checker.typeToTypeNode(
|
|
157247
157254
|
type,
|
|
@@ -157331,6 +157338,8 @@ var jsDocTagNames = [
|
|
|
157331
157338
|
"lends",
|
|
157332
157339
|
"license",
|
|
157333
157340
|
"link",
|
|
157341
|
+
"linkcode",
|
|
157342
|
+
"linkplain",
|
|
157334
157343
|
"listens",
|
|
157335
157344
|
"member",
|
|
157336
157345
|
"memberof",
|
|
@@ -157343,6 +157352,7 @@ var jsDocTagNames = [
|
|
|
157343
157352
|
"package",
|
|
157344
157353
|
"param",
|
|
157345
157354
|
"private",
|
|
157355
|
+
"prop",
|
|
157346
157356
|
"property",
|
|
157347
157357
|
"protected",
|
|
157348
157358
|
"public",
|
|
@@ -164169,7 +164179,7 @@ function createTypeHelpItems(symbol, { argumentCount, argumentsSpan: applicableS
|
|
|
164169
164179
|
}
|
|
164170
164180
|
function getTypeHelpItem(symbol, typeParameters, checker, enclosingDeclaration, sourceFile) {
|
|
164171
164181
|
const typeSymbolDisplay = symbolToDisplayParts(checker, symbol);
|
|
164172
|
-
const printer =
|
|
164182
|
+
const printer = createPrinterWithRemoveComments();
|
|
164173
164183
|
const parameters = typeParameters.map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));
|
|
164174
164184
|
const documentation = symbol.getDocumentationComment(checker);
|
|
164175
164185
|
const tags = symbol.getJsDocTags(checker);
|
|
@@ -164213,7 +164223,7 @@ function returnTypeToDisplayParts(candidateSignature, enclosingDeclaration, chec
|
|
|
164213
164223
|
}
|
|
164214
164224
|
function itemInfoForTypeParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {
|
|
164215
164225
|
const typeParameters = (candidateSignature.target || candidateSignature).typeParameters;
|
|
164216
|
-
const printer =
|
|
164226
|
+
const printer = createPrinterWithRemoveComments();
|
|
164217
164227
|
const parameters = (typeParameters || emptyArray).map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));
|
|
164218
164228
|
const thisParameter = candidateSignature.thisParameter ? [checker.symbolToParameterDeclaration(candidateSignature.thisParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags)] : [];
|
|
164219
164229
|
return checker.getExpandedParameters(candidateSignature).map((paramList) => {
|
|
@@ -164225,7 +164235,7 @@ function itemInfoForTypeParameters(candidateSignature, checker, enclosingDeclara
|
|
|
164225
164235
|
});
|
|
164226
164236
|
}
|
|
164227
164237
|
function itemInfoForParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {
|
|
164228
|
-
const printer =
|
|
164238
|
+
const printer = createPrinterWithRemoveComments();
|
|
164229
164239
|
const typeParameterParts = mapToDisplayParts((writer) => {
|
|
164230
164240
|
if (candidateSignature.typeParameters && candidateSignature.typeParameters.length) {
|
|
164231
164241
|
const args = factory.createNodeArray(candidateSignature.typeParameters.map((p) => checker.typeParameterToDeclaration(p, enclosingDeclaration, signatureHelpNodeBuilderFlags)));
|
|
@@ -164600,7 +164610,6 @@ function getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, so
|
|
|
164600
164610
|
let hasAddedSymbolInfo = false;
|
|
164601
164611
|
const isThisExpression = location.kind === 108 /* ThisKeyword */ && isInExpressionContext(location) || isThisInTypeQuery(location);
|
|
164602
164612
|
let type;
|
|
164603
|
-
let printer;
|
|
164604
164613
|
let documentationFromAlias;
|
|
164605
164614
|
let tagsFromAlias;
|
|
164606
164615
|
let hasMultipleSignatures = false;
|
|
@@ -164752,16 +164761,15 @@ function getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, so
|
|
|
164752
164761
|
writeTypeParametersOfSymbol(symbol, sourceFile);
|
|
164753
164762
|
}
|
|
164754
164763
|
if (symbolFlags & 524288 /* TypeAlias */ && semanticMeaning & 2 /* Type */) {
|
|
164755
|
-
const exportSymbol = typeChecker.getExportSymbolOfSymbol(symbol);
|
|
164756
164764
|
prefixNextMeaning();
|
|
164757
164765
|
displayParts.push(keywordPart(154 /* TypeKeyword */));
|
|
164758
164766
|
displayParts.push(spacePart());
|
|
164759
164767
|
addFullSymbolName(symbol);
|
|
164760
|
-
writeTypeParametersOfSymbol(
|
|
164768
|
+
writeTypeParametersOfSymbol(symbol, sourceFile);
|
|
164761
164769
|
displayParts.push(spacePart());
|
|
164762
164770
|
displayParts.push(operatorPart(63 /* EqualsToken */));
|
|
164763
164771
|
displayParts.push(spacePart());
|
|
164764
|
-
addRange(displayParts, typeToDisplayParts(typeChecker, isConstTypeReference(location.parent) ? typeChecker.getTypeAtLocation(location.parent) : typeChecker.getDeclaredTypeOfSymbol(
|
|
164772
|
+
addRange(displayParts, typeToDisplayParts(typeChecker, isConstTypeReference(location.parent) ? typeChecker.getTypeAtLocation(location.parent) : typeChecker.getDeclaredTypeOfSymbol(symbol), enclosingDeclaration, 8388608 /* InTypeAlias */));
|
|
164765
164773
|
}
|
|
164766
164774
|
if (symbolFlags & 384 /* Enum */) {
|
|
164767
164775
|
prefixNextMeaning();
|
|
@@ -164994,10 +165002,7 @@ function getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, so
|
|
|
164994
165002
|
}
|
|
164995
165003
|
return { displayParts, documentation, symbolKind, tags: tags.length === 0 ? void 0 : tags };
|
|
164996
165004
|
function getPrinter() {
|
|
164997
|
-
|
|
164998
|
-
printer = createPrinter({ removeComments: true });
|
|
164999
|
-
}
|
|
165000
|
-
return printer;
|
|
165005
|
+
return createPrinterWithRemoveComments();
|
|
165001
165006
|
}
|
|
165002
165007
|
function prefixNextMeaning() {
|
|
165003
165008
|
if (displayParts.length) {
|
|
@@ -178154,7 +178159,7 @@ Project '${project.projectName}' (${ProjectKind[project.projectKind]}) ${counter
|
|
|
178154
178159
|
getDocCommentTemplate(args) {
|
|
178155
178160
|
const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);
|
|
178156
178161
|
const position = this.getPositionInFile(args, file);
|
|
178157
|
-
return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file));
|
|
178162
|
+
return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file), this.getFormatOptions(file));
|
|
178158
178163
|
}
|
|
178159
178164
|
getSpanOfEnclosingComment(args) {
|
|
178160
178165
|
const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);
|
|
@@ -181077,6 +181082,10 @@ start(initializeNodeSystem(), require("os").platform());
|
|
|
181077
181082
|
createPatternMatcher,
|
|
181078
181083
|
createPrependNodes,
|
|
181079
181084
|
createPrinter,
|
|
181085
|
+
createPrinterWithDefaults,
|
|
181086
|
+
createPrinterWithRemoveComments,
|
|
181087
|
+
createPrinterWithRemoveCommentsNeverAsciiEscape,
|
|
181088
|
+
createPrinterWithRemoveCommentsOmitTrailingSemicolon,
|
|
181080
181089
|
createProgram,
|
|
181081
181090
|
createProgramHost,
|
|
181082
181091
|
createPropertyNameNodeForIdentifierOrLiteral,
|
package/lib/tsserverlibrary.d.ts
CHANGED
|
@@ -9990,7 +9990,7 @@ declare namespace ts {
|
|
|
9990
9990
|
getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[];
|
|
9991
9991
|
getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[];
|
|
9992
9992
|
getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[];
|
|
9993
|
-
getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined;
|
|
9993
|
+
getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): TextInsertion | undefined;
|
|
9994
9994
|
isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean;
|
|
9995
9995
|
/**
|
|
9996
9996
|
* This will return a defined result if the position is after the `>` of the opening tag, or somewhere in the text, of a JSXElement with no closing tag.
|
package/lib/tsserverlibrary.js
CHANGED
|
@@ -42,7 +42,7 @@ var ts = (() => {
|
|
|
42
42
|
"src/compiler/corePublic.ts"() {
|
|
43
43
|
"use strict";
|
|
44
44
|
versionMajorMinor = "5.0";
|
|
45
|
-
version = `${versionMajorMinor}.0-insiders.
|
|
45
|
+
version = `${versionMajorMinor}.0-insiders.20230125`;
|
|
46
46
|
Comparison = /* @__PURE__ */ ((Comparison3) => {
|
|
47
47
|
Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
|
|
48
48
|
Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
|
|
@@ -48708,7 +48708,7 @@ ${lanes.join("\n")}
|
|
|
48708
48708
|
return writer ? symbolToStringWorker(writer).getText() : usingSingleLineStringWriter(symbolToStringWorker);
|
|
48709
48709
|
function symbolToStringWorker(writer2) {
|
|
48710
48710
|
const entity = builder(symbol, meaning, enclosingDeclaration, nodeFlags);
|
|
48711
|
-
const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ?
|
|
48711
|
+
const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ? createPrinterWithRemoveCommentsNeverAsciiEscape() : createPrinterWithRemoveComments();
|
|
48712
48712
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
48713
48713
|
printer.writeNode(
|
|
48714
48714
|
4 /* Unspecified */,
|
|
@@ -48730,7 +48730,7 @@ ${lanes.join("\n")}
|
|
|
48730
48730
|
sigOutput = kind === 1 /* Construct */ ? 177 /* ConstructSignature */ : 176 /* CallSignature */;
|
|
48731
48731
|
}
|
|
48732
48732
|
const sig = nodeBuilder.signatureToSignatureDeclaration(signature, sigOutput, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */);
|
|
48733
|
-
const printer =
|
|
48733
|
+
const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
|
|
48734
48734
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
48735
48735
|
printer.writeNode(
|
|
48736
48736
|
4 /* Unspecified */,
|
|
@@ -48747,8 +48747,7 @@ ${lanes.join("\n")}
|
|
|
48747
48747
|
const typeNode = nodeBuilder.typeToTypeNode(type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | (noTruncation ? 1 /* NoTruncation */ : 0));
|
|
48748
48748
|
if (typeNode === void 0)
|
|
48749
48749
|
return Debug.fail("should always get typenode");
|
|
48750
|
-
const
|
|
48751
|
-
const printer = createPrinter(options);
|
|
48750
|
+
const printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults();
|
|
48752
48751
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
48753
48752
|
printer.writeNode(
|
|
48754
48753
|
4 /* Unspecified */,
|
|
@@ -52099,7 +52098,7 @@ ${lanes.join("\n")}
|
|
|
52099
52098
|
typePredicate.type && nodeBuilder.typeToTypeNode(typePredicate.type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */)
|
|
52100
52099
|
// TODO: GH#18217
|
|
52101
52100
|
);
|
|
52102
|
-
const printer =
|
|
52101
|
+
const printer = createPrinterWithRemoveComments();
|
|
52103
52102
|
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
|
|
52104
52103
|
printer.writeNode(
|
|
52105
52104
|
4 /* Unspecified */,
|
|
@@ -113784,7 +113783,7 @@ ${lanes.join("\n")}
|
|
|
113784
113783
|
function getEmitListItem(emit, parenthesizerRule) {
|
|
113785
113784
|
return emit.length === 1 ? emitListItemNoParenthesizer : typeof parenthesizerRule === "object" ? emitListItemWithParenthesizerRuleSelector : emitListItemWithParenthesizerRule;
|
|
113786
113785
|
}
|
|
113787
|
-
var brackets, notImplementedResolver, TempFlags;
|
|
113786
|
+
var brackets, notImplementedResolver, createPrinterWithDefaults, createPrinterWithRemoveComments, createPrinterWithRemoveCommentsNeverAsciiEscape, createPrinterWithRemoveCommentsOmitTrailingSemicolon, TempFlags;
|
|
113788
113787
|
var init_emitter = __esm({
|
|
113789
113788
|
"src/compiler/emitter.ts"() {
|
|
113790
113789
|
"use strict";
|
|
@@ -113835,6 +113834,10 @@ ${lanes.join("\n")}
|
|
|
113835
113834
|
getDeclarationStatementsForSourceFile: notImplemented,
|
|
113836
113835
|
isImportRequiredByAugmentation: notImplemented
|
|
113837
113836
|
};
|
|
113837
|
+
createPrinterWithDefaults = memoize(() => createPrinter({}));
|
|
113838
|
+
createPrinterWithRemoveComments = memoize(() => createPrinter({ removeComments: true }));
|
|
113839
|
+
createPrinterWithRemoveCommentsNeverAsciiEscape = memoize(() => createPrinter({ removeComments: true, neverAsciiEscape: true }));
|
|
113840
|
+
createPrinterWithRemoveCommentsOmitTrailingSemicolon = memoize(() => createPrinter({ removeComments: true, omitTrailingSemicolon: true }));
|
|
113838
113841
|
TempFlags = /* @__PURE__ */ ((TempFlags2) => {
|
|
113839
113842
|
TempFlags2[TempFlags2["Auto"] = 0] = "Auto";
|
|
113840
113843
|
TempFlags2[TempFlags2["CountMask"] = 268435455] = "CountMask";
|
|
@@ -126889,7 +126892,7 @@ ${lanes.join("\n")}
|
|
|
126889
126892
|
function nodeToDisplayParts(node, enclosingDeclaration) {
|
|
126890
126893
|
const file = enclosingDeclaration.getSourceFile();
|
|
126891
126894
|
return mapToDisplayParts((writer) => {
|
|
126892
|
-
const printer =
|
|
126895
|
+
const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
|
|
126893
126896
|
printer.writeNode(4 /* Unspecified */, node, file, writer);
|
|
126894
126897
|
});
|
|
126895
126898
|
}
|
|
@@ -132743,12 +132746,9 @@ ${lanes.join("\n")}
|
|
|
132743
132746
|
Debug.assertEqual(action.type, "install package");
|
|
132744
132747
|
return host.installPackage ? host.installPackage({ fileName: getPath(action.file), packageName: action.packageName }) : Promise.reject("Host does not implement `installPackage`");
|
|
132745
132748
|
}
|
|
132746
|
-
function getDocCommentTemplateAtPosition2(fileName, position, options) {
|
|
132747
|
-
|
|
132748
|
-
|
|
132749
|
-
/*formatSettings*/
|
|
132750
|
-
void 0
|
|
132751
|
-
), syntaxTreeCache.getCurrentSourceFile(fileName), position, options);
|
|
132749
|
+
function getDocCommentTemplateAtPosition2(fileName, position, options, formatOptions) {
|
|
132750
|
+
const formatSettings = formatOptions ? ts_formatting_exports.getFormatContext(formatOptions, host).options : void 0;
|
|
132751
|
+
return ts_JsDoc_exports.getDocCommentTemplateAtPosition(getNewLineOrDefaultFromHost(host, formatSettings), syntaxTreeCache.getCurrentSourceFile(fileName), position, options);
|
|
132752
132752
|
}
|
|
132753
132753
|
function isValidBraceCompletionAtPosition(fileName, position, openingBrace) {
|
|
132754
132754
|
if (openingBrace === 60 /* lessThan */) {
|
|
@@ -134620,10 +134620,10 @@ ${lanes.join("\n")}
|
|
|
134620
134620
|
}
|
|
134621
134621
|
);
|
|
134622
134622
|
}
|
|
134623
|
-
getDocCommentTemplateAtPosition(fileName, position, options) {
|
|
134623
|
+
getDocCommentTemplateAtPosition(fileName, position, options, formatOptions) {
|
|
134624
134624
|
return this.forwardJSONCall(
|
|
134625
134625
|
`getDocCommentTemplateAtPosition('${fileName}', ${position})`,
|
|
134626
|
-
() => this.languageService.getDocCommentTemplateAtPosition(fileName, position, options)
|
|
134626
|
+
() => this.languageService.getDocCommentTemplateAtPosition(fileName, position, options, formatOptions)
|
|
134627
134627
|
);
|
|
134628
134628
|
}
|
|
134629
134629
|
/// NAVIGATE TO
|
|
@@ -135517,7 +135517,7 @@ ${lanes.join("\n")}
|
|
|
135517
135517
|
}
|
|
135518
135518
|
}
|
|
135519
135519
|
if (text === void 0) {
|
|
135520
|
-
const printer =
|
|
135520
|
+
const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
|
|
135521
135521
|
text = usingSingleLineStringWriter((writer) => printer.writeNode(4 /* Unspecified */, node, node.getSourceFile(), writer));
|
|
135522
135522
|
}
|
|
135523
135523
|
return { text, pos: declName.getStart(), end: declName.getEnd() };
|
|
@@ -153998,8 +153998,7 @@ ${lanes.join("\n")}
|
|
|
153998
153998
|
}
|
|
153999
153999
|
function printTypeInSingleLine(type) {
|
|
154000
154000
|
const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;
|
|
154001
|
-
const
|
|
154002
|
-
const printer = createPrinter(options);
|
|
154001
|
+
const printer = createPrinterWithRemoveComments();
|
|
154003
154002
|
return usingSingleLineStringWriter((writer) => {
|
|
154004
154003
|
const typeNode = checker.typeToTypeNode(
|
|
154005
154004
|
type,
|
|
@@ -154415,6 +154414,8 @@ ${lanes.join("\n")}
|
|
|
154415
154414
|
"lends",
|
|
154416
154415
|
"license",
|
|
154417
154416
|
"link",
|
|
154417
|
+
"linkcode",
|
|
154418
|
+
"linkplain",
|
|
154418
154419
|
"listens",
|
|
154419
154420
|
"member",
|
|
154420
154421
|
"memberof",
|
|
@@ -154427,6 +154428,7 @@ ${lanes.join("\n")}
|
|
|
154427
154428
|
"package",
|
|
154428
154429
|
"param",
|
|
154429
154430
|
"private",
|
|
154431
|
+
"prop",
|
|
154430
154432
|
"property",
|
|
154431
154433
|
"protected",
|
|
154432
154434
|
"public",
|
|
@@ -161171,7 +161173,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
|
|
|
161171
161173
|
}
|
|
161172
161174
|
function getTypeHelpItem(symbol, typeParameters, checker, enclosingDeclaration, sourceFile) {
|
|
161173
161175
|
const typeSymbolDisplay = symbolToDisplayParts(checker, symbol);
|
|
161174
|
-
const printer =
|
|
161176
|
+
const printer = createPrinterWithRemoveComments();
|
|
161175
161177
|
const parameters = typeParameters.map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));
|
|
161176
161178
|
const documentation = symbol.getDocumentationComment(checker);
|
|
161177
161179
|
const tags = symbol.getJsDocTags(checker);
|
|
@@ -161214,7 +161216,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
|
|
|
161214
161216
|
}
|
|
161215
161217
|
function itemInfoForTypeParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {
|
|
161216
161218
|
const typeParameters = (candidateSignature.target || candidateSignature).typeParameters;
|
|
161217
|
-
const printer =
|
|
161219
|
+
const printer = createPrinterWithRemoveComments();
|
|
161218
161220
|
const parameters = (typeParameters || emptyArray).map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));
|
|
161219
161221
|
const thisParameter = candidateSignature.thisParameter ? [checker.symbolToParameterDeclaration(candidateSignature.thisParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags)] : [];
|
|
161220
161222
|
return checker.getExpandedParameters(candidateSignature).map((paramList) => {
|
|
@@ -161226,7 +161228,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
|
|
|
161226
161228
|
});
|
|
161227
161229
|
}
|
|
161228
161230
|
function itemInfoForParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {
|
|
161229
|
-
const printer =
|
|
161231
|
+
const printer = createPrinterWithRemoveComments();
|
|
161230
161232
|
const typeParameterParts = mapToDisplayParts((writer) => {
|
|
161231
161233
|
if (candidateSignature.typeParameters && candidateSignature.typeParameters.length) {
|
|
161232
161234
|
const args = factory.createNodeArray(candidateSignature.typeParameters.map((p) => checker.typeParameterToDeclaration(p, enclosingDeclaration, signatureHelpNodeBuilderFlags)));
|
|
@@ -161632,7 +161634,6 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
|
|
|
161632
161634
|
let hasAddedSymbolInfo = false;
|
|
161633
161635
|
const isThisExpression = location.kind === 108 /* ThisKeyword */ && isInExpressionContext(location) || isThisInTypeQuery(location);
|
|
161634
161636
|
let type;
|
|
161635
|
-
let printer;
|
|
161636
161637
|
let documentationFromAlias;
|
|
161637
161638
|
let tagsFromAlias;
|
|
161638
161639
|
let hasMultipleSignatures = false;
|
|
@@ -161784,16 +161785,15 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
|
|
|
161784
161785
|
writeTypeParametersOfSymbol(symbol, sourceFile);
|
|
161785
161786
|
}
|
|
161786
161787
|
if (symbolFlags & 524288 /* TypeAlias */ && semanticMeaning & 2 /* Type */) {
|
|
161787
|
-
const exportSymbol = typeChecker.getExportSymbolOfSymbol(symbol);
|
|
161788
161788
|
prefixNextMeaning();
|
|
161789
161789
|
displayParts.push(keywordPart(154 /* TypeKeyword */));
|
|
161790
161790
|
displayParts.push(spacePart());
|
|
161791
161791
|
addFullSymbolName(symbol);
|
|
161792
|
-
writeTypeParametersOfSymbol(
|
|
161792
|
+
writeTypeParametersOfSymbol(symbol, sourceFile);
|
|
161793
161793
|
displayParts.push(spacePart());
|
|
161794
161794
|
displayParts.push(operatorPart(63 /* EqualsToken */));
|
|
161795
161795
|
displayParts.push(spacePart());
|
|
161796
|
-
addRange(displayParts, typeToDisplayParts(typeChecker, isConstTypeReference(location.parent) ? typeChecker.getTypeAtLocation(location.parent) : typeChecker.getDeclaredTypeOfSymbol(
|
|
161796
|
+
addRange(displayParts, typeToDisplayParts(typeChecker, isConstTypeReference(location.parent) ? typeChecker.getTypeAtLocation(location.parent) : typeChecker.getDeclaredTypeOfSymbol(symbol), enclosingDeclaration, 8388608 /* InTypeAlias */));
|
|
161797
161797
|
}
|
|
161798
161798
|
if (symbolFlags & 384 /* Enum */) {
|
|
161799
161799
|
prefixNextMeaning();
|
|
@@ -162026,10 +162026,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
|
|
|
162026
162026
|
}
|
|
162027
162027
|
return { displayParts, documentation, symbolKind, tags: tags.length === 0 ? void 0 : tags };
|
|
162028
162028
|
function getPrinter() {
|
|
162029
|
-
|
|
162030
|
-
printer = createPrinter({ removeComments: true });
|
|
162031
|
-
}
|
|
162032
|
-
return printer;
|
|
162029
|
+
return createPrinterWithRemoveComments();
|
|
162033
162030
|
}
|
|
162034
162031
|
function prefixNextMeaning() {
|
|
162035
162032
|
if (displayParts.length) {
|
|
@@ -175500,7 +175497,7 @@ Project '${project.projectName}' (${ProjectKind[project.projectKind]}) ${counter
|
|
|
175500
175497
|
getDocCommentTemplate(args) {
|
|
175501
175498
|
const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);
|
|
175502
175499
|
const position = this.getPositionInFile(args, file);
|
|
175503
|
-
return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file));
|
|
175500
|
+
return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file), this.getFormatOptions(file));
|
|
175504
175501
|
}
|
|
175505
175502
|
getSpanOfEnclosingComment(args) {
|
|
175506
175503
|
const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);
|
|
@@ -177736,6 +177733,10 @@ ${e.message}`;
|
|
|
177736
177733
|
createPatternMatcher: () => createPatternMatcher,
|
|
177737
177734
|
createPrependNodes: () => createPrependNodes,
|
|
177738
177735
|
createPrinter: () => createPrinter,
|
|
177736
|
+
createPrinterWithDefaults: () => createPrinterWithDefaults,
|
|
177737
|
+
createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,
|
|
177738
|
+
createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,
|
|
177739
|
+
createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,
|
|
177739
177740
|
createProgram: () => createProgram,
|
|
177740
177741
|
createProgramHost: () => createProgramHost,
|
|
177741
177742
|
createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,
|
|
@@ -180088,6 +180089,10 @@ ${e.message}`;
|
|
|
180088
180089
|
createPatternMatcher: () => createPatternMatcher,
|
|
180089
180090
|
createPrependNodes: () => createPrependNodes,
|
|
180090
180091
|
createPrinter: () => createPrinter,
|
|
180092
|
+
createPrinterWithDefaults: () => createPrinterWithDefaults,
|
|
180093
|
+
createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,
|
|
180094
|
+
createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,
|
|
180095
|
+
createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,
|
|
180091
180096
|
createProgram: () => createProgram,
|
|
180092
180097
|
createProgramHost: () => createProgramHost,
|
|
180093
180098
|
createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,
|
package/lib/typescript.d.ts
CHANGED
|
@@ -6088,7 +6088,7 @@ declare namespace ts {
|
|
|
6088
6088
|
getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[];
|
|
6089
6089
|
getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[];
|
|
6090
6090
|
getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[];
|
|
6091
|
-
getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined;
|
|
6091
|
+
getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): TextInsertion | undefined;
|
|
6092
6092
|
isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean;
|
|
6093
6093
|
/**
|
|
6094
6094
|
* This will return a defined result if the position is after the `>` of the opening tag, or somewhere in the text, of a JSXElement with no closing tag.
|