@artel/artc 0.9.26021 → 0.9.26023-pre-release
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/build/Cli.js +3 -3
- package/build/api/Api.js +2 -2
- package/build/api/ApiNodeJS.js +3 -3
- package/build/api/ApiServices.js +700 -239
- package/build/{chunk-FRGVWOKG.js → chunk-2BLIDCVA.js} +1 -1
- package/build/{chunk-RKCSFKQS.js → chunk-4YCJNPUR.js} +5297 -4089
- package/build/{chunk-NMHOQ26L.js → chunk-GLYRYS42.js} +2 -2
- package/build/types/analysis/a/Analyzer.d.ts +1 -0
- package/build/types/analysis/m/Analyzer.d.ts +4 -2
- package/build/types/analysis/m/ResolvedTranslationPackage.d.ts +10 -2
- package/build/types/analysis/m/TranslatedEntityNameConflictsValidator.d.ts +1 -0
- package/build/types/diagnostic/DiagnosticCode.d.ts +16 -10
- package/build/types/entities/IEntity.d.ts +3 -3
- package/build/types/entities/TypeEntityMembers.d.ts +6 -0
- package/build/types/entities/interfaces/BaseOrdinaryPackageFunctionEntity.d.ts +3 -3
- package/build/types/entities/interfaces/BasePackageMemberAccessorEntity.d.ts +3 -3
- package/build/types/entities/interfaces/DereferenceOperatorEntity.d.ts +6 -6
- package/build/types/entities/interfaces/FunctionEntity.d.ts +3 -4
- package/build/types/entities/interfaces/IndexerEntity.d.ts +6 -6
- package/build/types/entities/interfaces/VariableEntity.d.ts +5 -5
- package/build/types/entities/intrinsic/IntrinsicConstructorEntity.d.ts +6 -6
- package/build/types/entities/intrinsic/IntrinsicFunctionEntity.d.ts +6 -6
- package/build/types/entities/intrinsic/IntrinsicTypeParameterEntity.d.ts +3 -3
- package/build/types/entities/intrinsic/IntrinsicVariableEntity.d.ts +13 -13
- package/build/types/entities/source/a/SourceAliasTypeEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourceConstructorEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourceDereferenceOperatorEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourceDestructorEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourceFunctionEntity.d.ts +18 -19
- package/build/types/entities/source/a/SourceFunctionTypeEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourceGetterEntity.d.ts +12 -12
- package/build/types/entities/source/a/SourceIndexerEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourcePackageAliasEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourcePackageEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourceReducedTypeEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourceSetterEntity.d.ts +12 -12
- package/build/types/entities/source/a/SourceStructuredTypeEntity.d.ts +6 -6
- package/build/types/entities/source/a/SourceTextTranslationEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourceTypeExtensionEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourceTypeParameterEntity.d.ts +3 -3
- package/build/types/entities/source/a/SourceVariableEntity.d.ts +42 -42
- package/build/types/entities/source/a/SourceVariantTypeEntity.d.ts +3 -3
- package/build/types/entities/source/m/SourceAliasTypeEntity.d.ts +3 -3
- package/build/types/entities/source/m/SourceConstructorEntity.d.ts +3 -3
- package/build/types/entities/source/m/SourceDestructorEntity.d.ts +3 -3
- package/build/types/entities/source/m/SourceFunctionEntity.d.ts +21 -22
- package/build/types/entities/source/m/SourceFunctionTypeEntity.d.ts +3 -3
- package/build/types/entities/source/m/SourceGetterEntity.d.ts +12 -12
- package/build/types/entities/source/m/SourceIndexerEntity.d.ts +3 -3
- package/build/types/entities/source/m/SourcePackageAliasEntity.d.ts +3 -3
- package/build/types/entities/source/m/SourcePackageEntity.d.ts +3 -3
- package/build/types/entities/source/m/SourceSetterEntity.d.ts +12 -12
- package/build/types/entities/source/m/SourceStructuredTypeEntity.d.ts +6 -6
- package/build/types/entities/source/m/SourceTextTranslationEntity.d.ts +3 -3
- package/build/types/entities/source/m/SourceTypeParameterEntity.d.ts +3 -3
- package/build/types/entities/source/m/SourceVariableEntity.d.ts +51 -51
- package/build/types/entities/source/m/SourceVariantTypeEntity.d.ts +3 -3
- package/build/types/entities/translated/TranslatedAliasTypeEntity.d.ts +3 -4
- package/build/types/entities/translated/TranslatedDereferenceOperatorEntity.d.ts +3 -4
- package/build/types/entities/translated/TranslatedFunctionEntity.d.ts +6 -8
- package/build/types/entities/translated/TranslatedFunctionTypeEntity.d.ts +3 -4
- package/build/types/entities/translated/TranslatedIndexerEntity.d.ts +3 -4
- package/build/types/entities/translated/TranslatedPackageEntity.d.ts +3 -4
- package/build/types/entities/translated/TranslatedPackageMemberAccessorEntity.d.ts +3 -4
- package/build/types/entities/translated/TranslatedParameterEntity.d.ts +3 -4
- package/build/types/entities/translated/TranslatedReducedTypeEntity.d.ts +3 -4
- package/build/types/entities/translated/TranslatedStructuredTypeEntity.d.ts +9 -12
- package/build/types/entities/translated/TranslatedTypeExtensionEntity.d.ts +3 -4
- package/build/types/entities/translated/TranslatedTypeMemberAccessorEntity.d.ts +6 -7
- package/build/types/entities/translated/TranslatedTypeParameterEntity.d.ts +3 -4
- package/build/types/entities/translated/TranslatedVariableEntity.d.ts +7 -9
- package/build/types/entities/translated/TranslatedVariantTypeEntity.d.ts +3 -4
- package/build/types/entities/translated/source/m/SourceTranslatedIndexedElementAccessorEntity.d.ts +13 -0
- package/build/types/entities/translated/source/m/SourceTranslatedIndexerEntity.d.ts +7 -5
- package/build/types/entities/translated/source/m/index.d.ts +1 -0
- package/build/types/parser/a/TokenKind.d.ts +26 -28
- package/build/types/parser/m/TokenKind.d.ts +27 -29
- package/build/types/services/common/Types.d.ts +2 -1
- package/build/types/services/m/NodeSemanticInfo.d.ts +7 -3
- package/build/types/tree/a/Nodes.d.ts +30 -30
- package/build/types/tree/a/SyntaxFactory.d.ts +1 -1
- package/build/types/tree/a/TokenKind.d.ts +10 -10
- package/build/types/tree/m/NodeKind.d.ts +9 -8
- package/build/types/tree/m/Nodes.d.ts +618 -572
- package/build/types/tree/m/SyntaxFactory.d.ts +51 -0
- package/build/types/tree/m/SyntaxToCode.d.ts +25 -24
- package/build/types/tree/m/TokenKind.d.ts +16 -16
- package/build/types/tree/m/index.d.ts +1 -0
- package/build/types/ts-interop/Entities.d.ts +51 -52
- package/build/types/ts-interop/TsInteropContext.d.ts +3 -3
- package/build/types/ts-interop/TypeEntities.d.ts +27 -27
- package/package.json +1 -1
package/build/api/ApiServices.js
CHANGED
|
@@ -29,6 +29,7 @@ import {
|
|
|
29
29
|
IndexerDeclaration_typeMember,
|
|
30
30
|
JavaScriptInterfacePackageImplementationConfig,
|
|
31
31
|
JsonConfigurationFileNameSet,
|
|
32
|
+
Keyword2 as Keyword,
|
|
32
33
|
LocaleByConfigurationDirectoryName,
|
|
33
34
|
LocaleByJsonConfigurationFileName,
|
|
34
35
|
LocalizationHelper,
|
|
@@ -56,10 +57,12 @@ import {
|
|
|
56
57
|
SourcePackageDependencyGraph,
|
|
57
58
|
Substitutions,
|
|
58
59
|
SyntaxFactory,
|
|
60
|
+
SyntaxFactory2,
|
|
59
61
|
SyntaxToCode,
|
|
60
62
|
SyntaxToCode2,
|
|
61
63
|
TargetPlatformConfig,
|
|
62
64
|
TaskController,
|
|
65
|
+
Token2 as Token,
|
|
63
66
|
TreeQuery,
|
|
64
67
|
TreeQuery2,
|
|
65
68
|
TsInteropInputs,
|
|
@@ -103,6 +106,8 @@ import {
|
|
|
103
106
|
isNarrowableReferenceExpression2,
|
|
104
107
|
isNodeM,
|
|
105
108
|
isNonEmptyArray,
|
|
109
|
+
isOperatorDefinedByKeyword,
|
|
110
|
+
isOperatorDefinedByToken,
|
|
106
111
|
isPackageMemberDeclaration,
|
|
107
112
|
isPackageMemberDeclaration2,
|
|
108
113
|
isPackageMemberEntity,
|
|
@@ -123,16 +128,18 @@ import {
|
|
|
123
128
|
isUnaryOperatorKind,
|
|
124
129
|
isVariableEntityWithExplicitAccessors,
|
|
125
130
|
kebabCaseToCamelCase,
|
|
131
|
+
keywordKindByOperatorKind,
|
|
126
132
|
localeToString,
|
|
127
133
|
modifierKindsInSortOrder,
|
|
128
134
|
operatorKinds,
|
|
129
135
|
operatorKinds2,
|
|
130
136
|
setUserLocale,
|
|
131
137
|
sortModifiers,
|
|
138
|
+
tokenKindByOperatorKind,
|
|
132
139
|
traverseTreeAsync,
|
|
133
140
|
traverseTreeAsync2,
|
|
134
141
|
yieldTask
|
|
135
|
-
} from "../chunk-
|
|
142
|
+
} from "../chunk-4YCJNPUR.js";
|
|
136
143
|
|
|
137
144
|
// source/services/common/Types.ts
|
|
138
145
|
import * as ls from "vscode-languageserver";
|
|
@@ -442,8 +449,17 @@ var TranslationsGenerator = class _TranslationsGenerator {
|
|
|
442
449
|
);
|
|
443
450
|
}
|
|
444
451
|
}).join(`${newLine}${newLine}`);
|
|
445
|
-
|
|
446
|
-
let
|
|
452
|
+
let editText;
|
|
453
|
+
let editRange;
|
|
454
|
+
const translationsKeywordLine = this.sourceFile.getPositionAt(translationsDeclaration.translationsKeyword.rangeWithoutTrivia.start).line;
|
|
455
|
+
const closeBraceTokenLine = this.sourceFile.getPositionAt(translationsDeclaration.closeBraceToken.rangeWithoutTrivia.start).line;
|
|
456
|
+
if (translationsKeywordLine === closeBraceTokenLine) {
|
|
457
|
+
editText = newLine + memberTranslationsCode + newLine;
|
|
458
|
+
editRange = Range.empty(translationsDeclaration.closeBraceToken.rangeWithoutTrivia.start);
|
|
459
|
+
} else {
|
|
460
|
+
editText = newLine + memberTranslationsCode;
|
|
461
|
+
editRange = Range.empty(translationsDeclaration.openBraceToken.rangeWithoutTrivia.end);
|
|
462
|
+
}
|
|
447
463
|
if (translationsDeclaration.translationList.translationDeclarations.count() > 0) {
|
|
448
464
|
editText += newLine;
|
|
449
465
|
}
|
|
@@ -495,8 +511,19 @@ var TranslationsGenerator = class _TranslationsGenerator {
|
|
|
495
511
|
let editText;
|
|
496
512
|
let editRange;
|
|
497
513
|
if (typeTranslation.openBraceToken !== void 0) {
|
|
498
|
-
|
|
499
|
-
|
|
514
|
+
Debug.assert(typeTranslation.closeBraceToken !== void 0);
|
|
515
|
+
const typeKeywordLine = this.sourceFile.getPositionAt(typeTranslation.typeKeyword.rangeWithoutTrivia.start).line;
|
|
516
|
+
const closeBraceTokenLine = this.sourceFile.getPositionAt(typeTranslation.closeBraceToken.rangeWithoutTrivia.start).line;
|
|
517
|
+
const closeBraceTokenIndentation = " ".repeat(
|
|
518
|
+
this.sourceFile.getPositionAt(typeTranslation.rangeWithoutTrivia.start).character
|
|
519
|
+
);
|
|
520
|
+
if (typeKeywordLine === closeBraceTokenLine) {
|
|
521
|
+
editText = newLine + memberTranslationsCode + newLine + closeBraceTokenIndentation;
|
|
522
|
+
editRange = Range.empty(typeTranslation.closeBraceToken.rangeWithoutTrivia.start);
|
|
523
|
+
} else {
|
|
524
|
+
editText = newLine + memberTranslationsCode + closeBraceTokenIndentation;
|
|
525
|
+
editRange = Range.empty(typeTranslation.openBraceToken.rangeWithoutTrivia.end);
|
|
526
|
+
}
|
|
500
527
|
if (typeTranslation.memberList !== void 0 && typeTranslation.memberList.members.count() > 0) {
|
|
501
528
|
editText += newLine;
|
|
502
529
|
}
|
|
@@ -568,7 +595,7 @@ var TranslationsGenerator = class _TranslationsGenerator {
|
|
|
568
595
|
return this.translationPackage.translatedTargetPackage.getMembers().getNamedMembers().filter((m) => this.isNotTranslatedEntity(m) && ResolvedTranslationPackage.isPackageMemberEntityThatShouldBeTranslatedByUser(m));
|
|
569
596
|
}
|
|
570
597
|
isNotTranslatedEntity(entity) {
|
|
571
|
-
const translation = entity.
|
|
598
|
+
const translation = entity.translation;
|
|
572
599
|
return translation === void 0 || translation.definition.kind === "intrinsic";
|
|
573
600
|
}
|
|
574
601
|
createPackageMemberTranslationNode(entity) {
|
|
@@ -629,7 +656,7 @@ var TranslationsGenerator = class _TranslationsGenerator {
|
|
|
629
656
|
}
|
|
630
657
|
createFieldTranslation(entity) {
|
|
631
658
|
const name = this.getNameText(entity.getName());
|
|
632
|
-
return SyntaxFactory.
|
|
659
|
+
return SyntaxFactory.fieldOrVariantValueTranslation(name, name);
|
|
633
660
|
}
|
|
634
661
|
createMethodTranslation(entity) {
|
|
635
662
|
switch (entity.methodKind) {
|
|
@@ -1277,7 +1304,7 @@ var CompletionServiceA = class {
|
|
|
1277
1304
|
const precedingSegmentNames = packageImport.packageName.segments.takeWhile((s) => s.rangeWithTrivia.start < tokenOrKeyword.value.rangeWithTrivia.start).map((p) => this.analyzer.createNameFromIdentifier(p)).toArray();
|
|
1278
1305
|
return new PackageImportCompletionContext(precedingSegmentNames, void 0);
|
|
1279
1306
|
}
|
|
1280
|
-
if (tokenOrKeyword.isToken(
|
|
1307
|
+
if (tokenOrKeyword.isToken(49 /* OpenBrace */) && tokenOrKeyword.parent.kind === 6 /* PackageGroupImportDirective */ || this.tokenOrKeywordIsPackageImportListChild(tokenOrKeyword)) {
|
|
1281
1308
|
return new PackageImportCompletionContext([], void 0);
|
|
1282
1309
|
}
|
|
1283
1310
|
if (tokenOrKeyword.isToken(34 /* Dot */) && tokenOrKeyword.parent.kind === 72 /* MemberAccessExpression */) {
|
|
@@ -1738,7 +1765,7 @@ var CompletionServiceA = class {
|
|
|
1738
1765
|
return false;
|
|
1739
1766
|
}
|
|
1740
1767
|
const tokenOrKeyword = positionDescription.tokenOrKeyword;
|
|
1741
|
-
return tokenOrKeyword.isToken(
|
|
1768
|
+
return tokenOrKeyword.isToken(50 /* OpenParenthesis */) && tokenOrKeyword.parent.kind === 151 /* Modifier */;
|
|
1742
1769
|
}
|
|
1743
1770
|
isElseOrElseIfKeywordContext(positionDescription) {
|
|
1744
1771
|
if (positionDescription.kind !== "after-token-or-keyword") {
|
|
@@ -2543,7 +2570,7 @@ var VariableEntityCompletionItemInfo = class {
|
|
|
2543
2570
|
case "package":
|
|
2544
2571
|
return 7 /* PackageVariable */;
|
|
2545
2572
|
case "field":
|
|
2546
|
-
return this.entity.
|
|
2573
|
+
return this.entity.isVariantValue() ? 12 /* VariantValue */ : 2 /* Field */;
|
|
2547
2574
|
case "parameter":
|
|
2548
2575
|
return 10 /* Parameter */;
|
|
2549
2576
|
case "local":
|
|
@@ -3121,7 +3148,7 @@ var SyntaxContextFactory = class {
|
|
|
3121
3148
|
isStatementContext: false
|
|
3122
3149
|
};
|
|
3123
3150
|
}
|
|
3124
|
-
if (tokenOrKeyword.isToken(
|
|
3151
|
+
if (tokenOrKeyword.isToken(49 /* OpenBrace */) && (tokenOrKeyword.parent.kind === 91 /* StatementBlock */ || tokenOrKeyword.parent.kind === 92 /* FunctionBlock */)) {
|
|
3125
3152
|
return {
|
|
3126
3153
|
expressionContext: { expressionRole: new ExpressionRole_other(void 0) },
|
|
3127
3154
|
isStatementContext: true
|
|
@@ -3130,7 +3157,7 @@ var SyntaxContextFactory = class {
|
|
|
3130
3157
|
if (tokenOrKeyword.isToken(58 /* Semicolon */) && tokenOrKeyword.parent.kind === 90 /* StatementList */) {
|
|
3131
3158
|
return { expressionContext: { expressionRole: new ExpressionRole_other(void 0) }, isStatementContext: true };
|
|
3132
3159
|
}
|
|
3133
|
-
if (tokenOrKeyword.isToken(
|
|
3160
|
+
if (tokenOrKeyword.isToken(50 /* OpenParenthesis */)) {
|
|
3134
3161
|
if (tokenOrKeyword.parent.kind === 69 /* ParenthesizedExpression */) {
|
|
3135
3162
|
const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.expression);
|
|
3136
3163
|
return { expressionContext: { expressionRole }, isStatementContext: false };
|
|
@@ -3163,11 +3190,11 @@ var SyntaxContextFactory = class {
|
|
|
3163
3190
|
return { expressionContext: { expressionRole }, isStatementContext: false };
|
|
3164
3191
|
}
|
|
3165
3192
|
}
|
|
3166
|
-
if (tokenOrKeyword.isToken(
|
|
3193
|
+
if (tokenOrKeyword.isToken(51 /* OpenSquareBracket */) && tokenOrKeyword.parent.kind === 66 /* IndexedAccessExpression */) {
|
|
3167
3194
|
const expressionRole = new ExpressionRole_argument(tokenOrKeyword.parent.argumentList, 0);
|
|
3168
3195
|
return { expressionContext: { expressionRole }, isStatementContext: false };
|
|
3169
3196
|
}
|
|
3170
|
-
if (tokenOrKeyword.isToken(
|
|
3197
|
+
if (tokenOrKeyword.isToken(51 /* OpenSquareBracket */) && tokenOrKeyword.parent.kind === 55 /* ArrayLiteral */) {
|
|
3171
3198
|
const expressionRole = new ExpressionRole_arrayElement(tokenOrKeyword.parent);
|
|
3172
3199
|
return { expressionContext: { expressionRole }, isStatementContext: false };
|
|
3173
3200
|
}
|
|
@@ -3285,7 +3312,7 @@ var SyntaxContextFactory = class {
|
|
|
3285
3312
|
if (tokenOrKeyword.isToken(28 /* CloseBrace */) && (tokenOrKeyword.parent.kind === 120 /* TranslationsDeclaration */ || tokenOrKeyword.parent.kind === 20 /* PackageMemberGroupDeclaration */ || tokenOrKeyword.parent.kind === 6 /* PackageGroupImportDirective */ || tokenOrKeyword.parent.kind === 92 /* FunctionBlock */ && (tokenOrKeyword.parent.parent.kind === 21 /* PackageConstructorDeclaration */ || tokenOrKeyword.parent.parent.kind === 22 /* PackageEntryPointDeclaration */ || tokenOrKeyword.parent.parent.kind === 23 /* PackageFunctionDeclaration */))) {
|
|
3286
3313
|
return true;
|
|
3287
3314
|
}
|
|
3288
|
-
if (tokenOrKeyword.isToken(
|
|
3315
|
+
if (tokenOrKeyword.isToken(49 /* OpenBrace */) && tokenOrKeyword.parent.kind === 20 /* PackageMemberGroupDeclaration */) {
|
|
3289
3316
|
return true;
|
|
3290
3317
|
}
|
|
3291
3318
|
if (this.packageDeclarations.some((kind) => SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, kind))) {
|
|
@@ -3322,7 +3349,7 @@ var SyntaxContextFactory = class {
|
|
|
3322
3349
|
if (tokenOrKeyword.isToken(58 /* Semicolon */) && tokenOrKeyword.parent.kind === 25 /* TypeMemberDeclarationList */) {
|
|
3323
3350
|
return true;
|
|
3324
3351
|
}
|
|
3325
|
-
if (tokenOrKeyword.isToken(
|
|
3352
|
+
if (tokenOrKeyword.isToken(49 /* OpenBrace */) && tokenOrKeyword.parent.kind === 26 /* TypeMemberDeclarationBlock */) {
|
|
3326
3353
|
return true;
|
|
3327
3354
|
}
|
|
3328
3355
|
if (tokenOrKeyword.isToken(28 /* CloseBrace */) && tokenOrKeyword.parent.kind === 26 /* TypeMemberDeclarationBlock */ && tokenOrKeyword.parent.parent.kind === 39 /* TypeMemberGroupDeclaration */) {
|
|
@@ -3387,7 +3414,7 @@ var SyntaxContextFactory = class {
|
|
|
3387
3414
|
if (tokenOrKeyword.isKeyword(6 /* ExtensionTo */) && tokenOrKeyword.parent.kind === 35 /* TypeExtensionDeclaration */) {
|
|
3388
3415
|
return { allowsAnonymousTypes: false };
|
|
3389
3416
|
}
|
|
3390
|
-
if (tokenOrKeyword.isToken(
|
|
3417
|
+
if (tokenOrKeyword.isToken(44 /* LessThan */) && tokenOrKeyword.parent.kind === 154 /* TypeArgumentClause */) {
|
|
3391
3418
|
return { allowsAnonymousTypes: true };
|
|
3392
3419
|
}
|
|
3393
3420
|
if (tokenOrKeyword.isToken(32 /* Comma */) && (tokenOrKeyword.parent.kind === 24 /* BaseTypeList */ || tokenOrKeyword.parent.kind === 155 /* TypeArgumentList */)) {
|
|
@@ -3411,7 +3438,7 @@ var SyntaxContextFactory = class {
|
|
|
3411
3438
|
if (tokenOrKeyword.isToken(10 /* Ampersand */) && tokenOrKeyword.parent.kind === 12 /* IntersectionTypeSpecifier */) {
|
|
3412
3439
|
return { allowsAnonymousTypes: false };
|
|
3413
3440
|
}
|
|
3414
|
-
if (tokenOrKeyword.isToken(
|
|
3441
|
+
if (tokenOrKeyword.isToken(50 /* OpenParenthesis */) && tokenOrKeyword.parent.kind === 13 /* ParenthesizedTypeSpecifier */) {
|
|
3415
3442
|
return { allowsAnonymousTypes: true };
|
|
3416
3443
|
}
|
|
3417
3444
|
return void 0;
|
|
@@ -3420,7 +3447,7 @@ var SyntaxContextFactory = class {
|
|
|
3420
3447
|
if (tokenOrKeyword.isToken(58 /* Semicolon */) && tokenOrKeyword.parent.kind === 121 /* TopLevelTranslationList */) {
|
|
3421
3448
|
return { translationsDeclaration: tokenOrKeyword.parent.parent };
|
|
3422
3449
|
}
|
|
3423
|
-
if (tokenOrKeyword.isToken(
|
|
3450
|
+
if (tokenOrKeyword.isToken(49 /* OpenBrace */) && tokenOrKeyword.parent.kind === 120 /* TranslationsDeclaration */) {
|
|
3424
3451
|
return { translationsDeclaration: tokenOrKeyword.parent };
|
|
3425
3452
|
}
|
|
3426
3453
|
const type = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(
|
|
@@ -3457,7 +3484,7 @@ var SyntaxContextFactory = class {
|
|
|
3457
3484
|
if (tokenOrKeyword.isToken(58 /* Semicolon */) && tokenOrKeyword.parent.kind === 135 /* TypeMemberTranslationList */) {
|
|
3458
3485
|
return { typeTranslation: tokenOrKeyword.parent.parent };
|
|
3459
3486
|
}
|
|
3460
|
-
if (tokenOrKeyword.isToken(
|
|
3487
|
+
if (tokenOrKeyword.isToken(49 /* OpenBrace */) && tokenOrKeyword.parent.kind === 136 /* TypeTranslationDeclaration */) {
|
|
3461
3488
|
return { typeTranslation: tokenOrKeyword.parent };
|
|
3462
3489
|
}
|
|
3463
3490
|
const indexer = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(tokenOrKeyword, 126 /* IndexerTranslation */);
|
|
@@ -3702,7 +3729,7 @@ var NodeSemanticInfoServiceA = class {
|
|
|
3702
3729
|
return this.ofDefaultMatchExpression(analyzer, tokenOrKeyword.parent);
|
|
3703
3730
|
} else if (tokenOrKeyword.isKeyword(16 /* Function */) && tokenOrKeyword.parent.kind === 61 /* FunctionLiteral */) {
|
|
3704
3731
|
return this.ofRegularOrBlockFunctionLiteral(analyzer, tokenOrKeyword.parent);
|
|
3705
|
-
} else if (tokenOrKeyword.isToken(
|
|
3732
|
+
} else if (tokenOrKeyword.isToken(49 /* OpenBrace */) && tokenOrKeyword.parent.kind === 92 /* FunctionBlock */ && tokenOrKeyword.parent.parent.kind === 62 /* FunctionBlockLiteral */) {
|
|
3706
3733
|
return this.ofRegularOrBlockFunctionLiteral(analyzer, tokenOrKeyword.parent.parent);
|
|
3707
3734
|
} else if (tokenOrKeyword.isKeyword(35 /* Creation */) && tokenOrKeyword.parent.kind === 88 /* OwnConstructorCallExpression */) {
|
|
3708
3735
|
return this.ofOwnConstructorCallExpression(analyzer, tokenOrKeyword.parent, options7);
|
|
@@ -3710,19 +3737,19 @@ var NodeSemanticInfoServiceA = class {
|
|
|
3710
3737
|
return this.ofObjectExpression(analyzer, tokenOrKeyword.parent, options7);
|
|
3711
3738
|
} else if (tokenOrKeyword.isKeyword(60 /* Base */) && tokenOrKeyword.parent.kind === 84 /* BaseExpression */) {
|
|
3712
3739
|
return this.ofBaseExpression(analyzer, tokenOrKeyword.parent, options7);
|
|
3713
|
-
} else if ((tokenOrKeyword.isToken(
|
|
3740
|
+
} else if ((tokenOrKeyword.isToken(51 /* OpenSquareBracket */) || tokenOrKeyword.isToken(30 /* CloseSquareBracket */)) && tokenOrKeyword.parent.kind === 44 /* IndexParameterClause */) {
|
|
3714
3741
|
return this.ofIndexedElementAccessorDeclaration(analyzer, tokenOrKeyword.parent.parent);
|
|
3715
|
-
} else if ((tokenOrKeyword.isToken(
|
|
3742
|
+
} else if ((tokenOrKeyword.isToken(51 /* OpenSquareBracket */) || tokenOrKeyword.isToken(30 /* CloseSquareBracket */)) && tokenOrKeyword.parent.kind === 66 /* IndexedAccessExpression */) {
|
|
3716
3743
|
return this.ofIndexedAccessExpressionOperator(analyzer, tokenOrKeyword.parent, options7);
|
|
3717
3744
|
} else if (tokenOrKeyword.isKeyword(35 /* Creation */) && tokenOrKeyword.parent.kind === 124 /* ConstructorTranslation */) {
|
|
3718
3745
|
return this.ofConstructorTranslationSourceConstructor(analyzer, tokenOrKeyword.parent, options7);
|
|
3719
3746
|
} else if (tokenOrKeyword.isKeyword(7 /* Object */) && tokenOrKeyword.parent.kind === 146 /* ParameterDeclaration */) {
|
|
3720
3747
|
return this.ofObjectParameterDeclaration(analyzer, tokenOrKeyword.parent, tokenOrKeyword.value);
|
|
3721
|
-
} else if ((tokenOrKeyword.isToken(
|
|
3748
|
+
} else if ((tokenOrKeyword.isToken(50 /* OpenParenthesis */) || tokenOrKeyword.isToken(29 /* CloseParenthesis */)) && tokenOrKeyword.parent.kind === 123 /* TranslationParameterClause */ && tokenOrKeyword.parent.parent.kind === 124 /* ConstructorTranslation */ && tokenOrKeyword.parent.parent.translatedParameterClause === tokenOrKeyword.parent) {
|
|
3722
3749
|
return this.ofConstructorTranslationTranslatedConstructor(analyzer, tokenOrKeyword.parent.parent, options7);
|
|
3723
|
-
} else if ((tokenOrKeyword.isToken(
|
|
3750
|
+
} else if ((tokenOrKeyword.isToken(51 /* OpenSquareBracket */) || tokenOrKeyword.isToken(30 /* CloseSquareBracket */)) && tokenOrKeyword.parent.kind === 125 /* IndexParameterTranslationClause */ && tokenOrKeyword.parent.parent.kind === 126 /* IndexerTranslation */ && tokenOrKeyword.parent.parent.sourceParameterClause === tokenOrKeyword.parent) {
|
|
3724
3751
|
return this.ofIndexerTranslationSourceIndexer(analyzer, tokenOrKeyword.parent.parent, options7);
|
|
3725
|
-
} else if ((tokenOrKeyword.isToken(
|
|
3752
|
+
} else if ((tokenOrKeyword.isToken(51 /* OpenSquareBracket */) || tokenOrKeyword.isToken(30 /* CloseSquareBracket */)) && tokenOrKeyword.parent.kind === 125 /* IndexParameterTranslationClause */ && tokenOrKeyword.parent.parent.kind === 126 /* IndexerTranslation */ && tokenOrKeyword.parent.parent.translatedParameterClause === tokenOrKeyword.parent) {
|
|
3726
3753
|
return this.ofIndexerTranslationTranslatedIndexer(analyzer, tokenOrKeyword.parent.parent, options7);
|
|
3727
3754
|
}
|
|
3728
3755
|
return void 0;
|
|
@@ -4826,11 +4853,44 @@ function getEntitySourceLocations(analyzer, entity) {
|
|
|
4826
4853
|
} else if (entity.kind === 3 /* Indexer */) {
|
|
4827
4854
|
const definition = entity.getDefinition();
|
|
4828
4855
|
if (definition.kind === 0 /* Source */) {
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
|
|
4856
|
+
const result2 = [];
|
|
4857
|
+
for (const node of definition.nodes) {
|
|
4858
|
+
switch (node.kind) {
|
|
4859
|
+
case 42 /* IndexedElementGetterDeclaration */: {
|
|
4860
|
+
const range = node.parameterClause.rangeWithoutTrivia;
|
|
4861
|
+
const sourceFile = analyzer.getProjectSourceFile(node.sourceFile);
|
|
4862
|
+
result2.push(new SourceLocation(sourceFile, range));
|
|
4863
|
+
break;
|
|
4864
|
+
}
|
|
4865
|
+
case 43 /* IndexedElementSetterDeclaration */: {
|
|
4866
|
+
const range = node.parameterClause.rangeWithoutTrivia;
|
|
4867
|
+
const sourceFile = analyzer.getProjectSourceFile(node.sourceFile);
|
|
4868
|
+
result2.push(new SourceLocation(sourceFile, range));
|
|
4869
|
+
break;
|
|
4870
|
+
}
|
|
4871
|
+
case 1045 /* IndexedElementGetterDeclaration */: {
|
|
4872
|
+
const range = new Range(
|
|
4873
|
+
node.openSquareBracketToken.rangeWithoutTrivia.start,
|
|
4874
|
+
node.openSquareBracketToken.rangeWithoutTrivia.end
|
|
4875
|
+
);
|
|
4876
|
+
const sourceFile = analyzer.getProjectSourceFile(node.sourceFile);
|
|
4877
|
+
result2.push(new SourceLocation(sourceFile, range));
|
|
4878
|
+
break;
|
|
4879
|
+
}
|
|
4880
|
+
case 1047 /* IndexedElementSetterDeclaration */: {
|
|
4881
|
+
const range = new Range(
|
|
4882
|
+
node.openSquareBracketToken.rangeWithoutTrivia.start,
|
|
4883
|
+
node.equalsToken.rangeWithoutTrivia.end
|
|
4884
|
+
);
|
|
4885
|
+
const sourceFile = analyzer.getProjectSourceFile(node.sourceFile);
|
|
4886
|
+
result2.push(new SourceLocation(sourceFile, range));
|
|
4887
|
+
break;
|
|
4888
|
+
}
|
|
4889
|
+
default:
|
|
4890
|
+
Debug.never(node);
|
|
4891
|
+
}
|
|
4892
|
+
}
|
|
4893
|
+
return result2;
|
|
4834
4894
|
}
|
|
4835
4895
|
} else if (entity.kind === 4 /* DereferenceOperator */) {
|
|
4836
4896
|
const definition = entity.getDefinition();
|
|
@@ -4934,14 +4994,20 @@ function getEntitySourceLocations(analyzer, entity) {
|
|
|
4934
4994
|
range = node.varKeyword.rangeWithoutTrivia;
|
|
4935
4995
|
break;
|
|
4936
4996
|
case 1030 /* FieldGetterDeclaration */:
|
|
4937
|
-
case
|
|
4997
|
+
case 1031 /* FieldSetterDeclaration */:
|
|
4938
4998
|
range = node.varKeyword.rangeWithoutTrivia;
|
|
4939
4999
|
break;
|
|
4940
|
-
case
|
|
4941
|
-
range =
|
|
5000
|
+
case 1045 /* IndexedElementGetterDeclaration */:
|
|
5001
|
+
range = new Range(
|
|
5002
|
+
node.openSquareBracketToken.rangeWithoutTrivia.start,
|
|
5003
|
+
node.openSquareBracketToken.rangeWithoutTrivia.end
|
|
5004
|
+
);
|
|
4942
5005
|
break;
|
|
4943
5006
|
case 1047 /* IndexedElementSetterDeclaration */:
|
|
4944
|
-
range =
|
|
5007
|
+
range = new Range(
|
|
5008
|
+
node.openSquareBracketToken.rangeWithoutTrivia.start,
|
|
5009
|
+
node.equalsToken.rangeWithoutTrivia.end
|
|
5010
|
+
);
|
|
4945
5011
|
break;
|
|
4946
5012
|
case 1038 /* FunctionLiteral */:
|
|
4947
5013
|
range = node.functionKeyword.rangeWithoutTrivia;
|
|
@@ -5250,7 +5316,7 @@ var DefinitionServiceA = class extends DefinitionService {
|
|
|
5250
5316
|
const tokenOrKeyword = getTokenOrKeywordsTouchingOffset(sourceFile.getSyntaxNode(), offset).getSingleWithHighestPriority((t) => {
|
|
5251
5317
|
if (t.isToken(9 /* Identifier */) || t.isKeyword()) {
|
|
5252
5318
|
return 2;
|
|
5253
|
-
} else if (t.isToken(27 /* Caret */) || t.isToken(
|
|
5319
|
+
} else if (t.isToken(27 /* Caret */) || t.isToken(51 /* OpenSquareBracket */) || t.isToken(30 /* CloseSquareBracket */)) {
|
|
5254
5320
|
return 1;
|
|
5255
5321
|
} else {
|
|
5256
5322
|
return 0;
|
|
@@ -5543,7 +5609,7 @@ var HoverServiceA = class extends HoverService {
|
|
|
5543
5609
|
return 2;
|
|
5544
5610
|
} else if (t.isToken(13 /* Asterisk */)) {
|
|
5545
5611
|
return 1;
|
|
5546
|
-
} else if (t.isToken(27 /* Caret */) || t.isToken(
|
|
5612
|
+
} else if (t.isToken(27 /* Caret */) || t.isToken(51 /* OpenSquareBracket */) || t.isToken(30 /* CloseSquareBracket */) || t.isToken(49 /* OpenBrace */)) {
|
|
5547
5613
|
return 1;
|
|
5548
5614
|
} else {
|
|
5549
5615
|
return 0;
|
|
@@ -5663,7 +5729,7 @@ var DefinitionInfoFinderA = class {
|
|
|
5663
5729
|
const tokenOrKeyword = getTokenOrKeywordsTouchingOffset(sourceFile.getSyntaxNode(), offset).getSingleWithHighestPriority((t) => {
|
|
5664
5730
|
if (t.isToken(9 /* Identifier */) || t.isKeyword()) {
|
|
5665
5731
|
return 2;
|
|
5666
|
-
} else if (t.isToken(27 /* Caret */) || t.isToken(
|
|
5732
|
+
} else if (t.isToken(27 /* Caret */) || t.isToken(51 /* OpenSquareBracket */) || t.isToken(30 /* CloseSquareBracket */)) {
|
|
5667
5733
|
return 1;
|
|
5668
5734
|
} else {
|
|
5669
5735
|
return 0;
|
|
@@ -5701,17 +5767,6 @@ var DefinitionInfoFinderA = class {
|
|
|
5701
5767
|
// source/services/m/NodeSemanticInfo.ts
|
|
5702
5768
|
var NodeSemanticInfoServiceM = class {
|
|
5703
5769
|
static ofTokenOrKeyword(analyzer, tokenOrKeyword, options7) {
|
|
5704
|
-
const parent = tokenOrKeyword.value.parent;
|
|
5705
|
-
if (parent.kind === 1062 /* MethodDeclaration */) {
|
|
5706
|
-
if (tokenOrKeyword.value === parent.name) {
|
|
5707
|
-
return new DefinitionNodeSemanticInfo(analyzer.entity.ofMethodDeclaration(parent));
|
|
5708
|
-
}
|
|
5709
|
-
}
|
|
5710
|
-
if (parent.kind === 1046 /* IndexedElementGetterDeclaration */ || parent.kind === 1047 /* IndexedElementSetterDeclaration */) {
|
|
5711
|
-
if (tokenOrKeyword.value === parent.openSquareBracketToken || tokenOrKeyword.value === parent.closeSquareBracketToken) {
|
|
5712
|
-
return new DefinitionNodeSemanticInfo(analyzer.entity.ofIndexerDeclaration(parent));
|
|
5713
|
-
}
|
|
5714
|
-
}
|
|
5715
5770
|
if (isIdentifier2(tokenOrKeyword.value)) {
|
|
5716
5771
|
return this.ofNonKeywordIdentifier(analyzer, tokenOrKeyword.value, options7);
|
|
5717
5772
|
} else if (tokenOrKeyword.parent.kind === 1095 /* PrefixUnaryExpression */) {
|
|
@@ -5724,20 +5779,28 @@ var NodeSemanticInfoServiceM = class {
|
|
|
5724
5779
|
return this.ofDefaultMatchExpression(analyzer, tokenOrKeyword.parent);
|
|
5725
5780
|
} else if (tokenOrKeyword.isKeyword(1017 /* Function */) && tokenOrKeyword.parent.kind === 1038 /* FunctionLiteral */) {
|
|
5726
5781
|
return this.ofRegularOrBlockFunctionLiteral(analyzer, tokenOrKeyword.parent);
|
|
5727
|
-
} else if (tokenOrKeyword.isToken(
|
|
5782
|
+
} else if (tokenOrKeyword.isToken(1046 /* OpenBrace */) && tokenOrKeyword.parent.kind === 1036 /* FunctionBlock */ && tokenOrKeyword.parent.parent.kind === 1037 /* FunctionBlockLiteral */) {
|
|
5728
5783
|
return this.ofRegularOrBlockFunctionLiteral(analyzer, tokenOrKeyword.parent.parent);
|
|
5729
5784
|
} else if (tokenOrKeyword.isKeyword(1025 /* Object */) && tokenOrKeyword.parent.kind === 1073 /* ObjectExpression */) {
|
|
5730
5785
|
return this.ofObjectExpression(analyzer, tokenOrKeyword.parent, options7);
|
|
5731
5786
|
} else if (tokenOrKeyword.isKeyword(1002 /* Base */) && tokenOrKeyword.parent.kind === 1009 /* BaseExpression */) {
|
|
5732
5787
|
return this.ofBaseExpression(analyzer, tokenOrKeyword.parent, options7);
|
|
5733
|
-
} else if ((tokenOrKeyword.isToken(
|
|
5788
|
+
} else if ((tokenOrKeyword.isToken(1048 /* OpenSquareBracket */) || tokenOrKeyword.isToken(1022 /* CloseSquareBracket */)) && tokenOrKeyword.parent.kind === 1044 /* IndexedAccessExpression */) {
|
|
5734
5789
|
return this.ofIndexedAccessExpressionOperator(analyzer, tokenOrKeyword.parent, options7);
|
|
5735
5790
|
} else if (tokenOrKeyword.isKeyword(1025 /* Object */) && tokenOrKeyword.parent.kind === 1091 /* ParameterDeclaration */) {
|
|
5736
5791
|
return this.ofObjectParameterDeclaration(analyzer, tokenOrKeyword.parent, tokenOrKeyword.value);
|
|
5737
|
-
} else if (
|
|
5738
|
-
return this.
|
|
5739
|
-
} else if (
|
|
5740
|
-
return this.
|
|
5792
|
+
} else if (tokenOrKeyword.parent.kind === 1062 /* MethodDeclaration */ && tokenOrKeyword.value === tokenOrKeyword.parent.name) {
|
|
5793
|
+
return this.ofOperatorDeclaration(analyzer, tokenOrKeyword.parent);
|
|
5794
|
+
} else if (tokenOrKeyword.parent.kind === 1063 /* MethodTranslation */ && tokenOrKeyword.value === tokenOrKeyword.parent.sourceName) {
|
|
5795
|
+
return this.ofOperatorTranslationSourceOperator(analyzer, tokenOrKeyword.parent, options7);
|
|
5796
|
+
} else if (tokenOrKeyword.parent.kind === 1063 /* MethodTranslation */ && tokenOrKeyword.value === tokenOrKeyword.parent.translatedName) {
|
|
5797
|
+
return this.ofOperatorTranslationTranslatedOperator(analyzer, tokenOrKeyword.parent, options7);
|
|
5798
|
+
} else if (tokenOrKeyword.parent.kind === 1045 /* IndexedElementGetterDeclaration */ && (tokenOrKeyword.value === tokenOrKeyword.parent.openSquareBracketToken || tokenOrKeyword.value === tokenOrKeyword.parent.closeSquareBracketToken) || tokenOrKeyword.parent.kind === 1047 /* IndexedElementSetterDeclaration */ && (tokenOrKeyword.value === tokenOrKeyword.parent.openSquareBracketToken || tokenOrKeyword.value === tokenOrKeyword.parent.closeSquareBracketToken || tokenOrKeyword.value === tokenOrKeyword.parent.equalsToken)) {
|
|
5799
|
+
return this.ofIndexerDeclaration(analyzer, tokenOrKeyword.parent);
|
|
5800
|
+
} else if (tokenOrKeyword.parent.kind === 1046 /* IndexedElementGetterTranslation */ && (tokenOrKeyword.value === tokenOrKeyword.parent.sourceOpenSquareBracketToken || tokenOrKeyword.value === tokenOrKeyword.parent.sourceCloseSquareBracketToken) || tokenOrKeyword.parent.kind === 1048 /* IndexedElementSetterTranslation */ && (tokenOrKeyword.value === tokenOrKeyword.parent.sourceOpenSquareBracketToken || tokenOrKeyword.value === tokenOrKeyword.parent.sourceCloseSquareBracketToken || tokenOrKeyword.value === tokenOrKeyword.parent.sourceEqualsToken)) {
|
|
5801
|
+
return this.ofIndexerTranslationSourceIndexer(analyzer, tokenOrKeyword.parent, options7);
|
|
5802
|
+
} else if (tokenOrKeyword.parent.kind === 1046 /* IndexedElementGetterTranslation */ && (tokenOrKeyword.value === tokenOrKeyword.parent.translatedOpenSquareBracketToken || tokenOrKeyword.value === tokenOrKeyword.parent.translatedCloseSquareBracketToken) || tokenOrKeyword.parent.kind === 1048 /* IndexedElementSetterTranslation */ && (tokenOrKeyword.value === tokenOrKeyword.parent.translatedOpenSquareBracketToken || tokenOrKeyword.value === tokenOrKeyword.parent.translatedCloseSquareBracketToken || tokenOrKeyword.value === tokenOrKeyword.parent.translatedEqualsToken)) {
|
|
5803
|
+
return this.ofIndexerTranslationTranslatedIndexer(analyzer, tokenOrKeyword.parent, options7);
|
|
5741
5804
|
}
|
|
5742
5805
|
return void 0;
|
|
5743
5806
|
}
|
|
@@ -5824,7 +5887,8 @@ var NodeSemanticInfoServiceM = class {
|
|
|
5824
5887
|
}
|
|
5825
5888
|
break;
|
|
5826
5889
|
}
|
|
5827
|
-
case
|
|
5890
|
+
case 1032 /* FieldTranslation */:
|
|
5891
|
+
case 1145 /* VariantValueTranslation */:
|
|
5828
5892
|
case 1063 /* MethodTranslation */: {
|
|
5829
5893
|
const translationPackage = this.getResolvedContainingTranslationPackage(analyzer, node);
|
|
5830
5894
|
const translationTargets = translationPackage?.getTypeMemberTranslationTargets(parent);
|
|
@@ -5877,7 +5941,7 @@ var NodeSemanticInfoServiceM = class {
|
|
|
5877
5941
|
result = new DefinitionNodeSemanticInfo(analyzer.entity.ofComputedPackageVariableDeclaration(parent));
|
|
5878
5942
|
break;
|
|
5879
5943
|
case 1030 /* FieldGetterDeclaration */:
|
|
5880
|
-
case
|
|
5944
|
+
case 1031 /* FieldSetterDeclaration */:
|
|
5881
5945
|
result = new DefinitionNodeSemanticInfo(analyzer.entity.ofComputedFieldDeclaration(parent));
|
|
5882
5946
|
break;
|
|
5883
5947
|
case 1122 /* TranslationTextTemplateParameter */:
|
|
@@ -6380,10 +6444,6 @@ var NodeSemanticInfoServiceM = class {
|
|
|
6380
6444
|
}
|
|
6381
6445
|
return result;
|
|
6382
6446
|
}
|
|
6383
|
-
static ofIndexedElementAccessorDeclaration(analyzer, node) {
|
|
6384
|
-
const entity = analyzer.entity.ofIndexerDeclaration(node);
|
|
6385
|
-
return new DefinitionNodeSemanticInfo(entity);
|
|
6386
|
-
}
|
|
6387
6447
|
static ofIndexedAccessExpressionOperator(analyzer, node, options7) {
|
|
6388
6448
|
const meaning = analyzer.resolveIndexedAccessExpression(node);
|
|
6389
6449
|
if (meaning.kind === "resolved") {
|
|
@@ -6496,6 +6556,44 @@ var NodeSemanticInfoServiceM = class {
|
|
|
6496
6556
|
}
|
|
6497
6557
|
return result;
|
|
6498
6558
|
}
|
|
6559
|
+
static ofOperatorDeclaration(analyzer, node) {
|
|
6560
|
+
return new DefinitionNodeSemanticInfo(analyzer.entity.ofMethodDeclaration(node));
|
|
6561
|
+
}
|
|
6562
|
+
static ofOperatorTranslationSourceOperator(analyzer, node, options7) {
|
|
6563
|
+
let result = void 0;
|
|
6564
|
+
const translationPackage = this.getResolvedContainingTranslationPackage(analyzer, node);
|
|
6565
|
+
const translationTargets = translationPackage?.getTypeMemberTranslationTargets(node);
|
|
6566
|
+
if (translationTargets !== void 0 && translationTargets.values.length > 0) {
|
|
6567
|
+
const targets = translationTargets.values.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
|
6568
|
+
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
|
|
6569
|
+
if (options7.includeBetterReferenceTargets) {
|
|
6570
|
+
result = this.getBetterReferenceTargetsOrPreserve(result);
|
|
6571
|
+
}
|
|
6572
|
+
}
|
|
6573
|
+
return result;
|
|
6574
|
+
}
|
|
6575
|
+
static ofOperatorTranslationTranslatedOperator(analyzer, node, options7) {
|
|
6576
|
+
let result = void 0;
|
|
6577
|
+
const translationPackage = this.getResolvedContainingTranslationPackage(analyzer, node);
|
|
6578
|
+
const translationTargets = translationPackage?.getTypeMemberTranslationTargets(node);
|
|
6579
|
+
if (translationPackage !== void 0 && translationTargets !== void 0 && translationTargets.values.length > 0) {
|
|
6580
|
+
const targets = translationTargets.values.map((f) => new EntityReferenceTarget(
|
|
6581
|
+
translationPackage.localizationContext.getLocalizedTypeMemberEntity(f),
|
|
6582
|
+
0 /* Get */
|
|
6583
|
+
));
|
|
6584
|
+
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
|
|
6585
|
+
if (options7.includeBetterReferenceTargets) {
|
|
6586
|
+
result = this.getBetterReferenceTargetsOrPreserve(result);
|
|
6587
|
+
}
|
|
6588
|
+
}
|
|
6589
|
+
return result;
|
|
6590
|
+
}
|
|
6591
|
+
static ofIndexerDeclaration(analyzer, node) {
|
|
6592
|
+
return new DefinitionNodeSemanticInfo(analyzer.entity.ofIndexerDeclaration(node));
|
|
6593
|
+
}
|
|
6594
|
+
static ofIndexedElementAccessorDeclaration(analyzer, node) {
|
|
6595
|
+
return new DefinitionNodeSemanticInfo(analyzer.entity.ofIndexedElementAccessorDeclaration(node));
|
|
6596
|
+
}
|
|
6499
6597
|
static ofIndexerTranslationSourceIndexer(analyzer, node, options7) {
|
|
6500
6598
|
let result;
|
|
6501
6599
|
const translationPackage = this.getResolvedContainingTranslationPackage(analyzer, node);
|
|
@@ -6514,8 +6612,8 @@ var NodeSemanticInfoServiceM = class {
|
|
|
6514
6612
|
const translationPackage = this.getResolvedContainingTranslationPackage(analyzer, node);
|
|
6515
6613
|
const translationTargets = translationPackage?.getTypeMemberTranslationTargets(node);
|
|
6516
6614
|
if (translationPackage !== void 0 && translationTargets !== void 0 && translationTargets.values.length > 0) {
|
|
6517
|
-
const targets = translationTargets.values.map((
|
|
6518
|
-
translationPackage.localizationContext.getLocalizedTypeMemberEntity(
|
|
6615
|
+
const targets = translationTargets.values.map((f) => new EntityReferenceTarget(
|
|
6616
|
+
translationPackage.localizationContext.getLocalizedTypeMemberEntity(f),
|
|
6519
6617
|
0 /* Get */
|
|
6520
6618
|
));
|
|
6521
6619
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
|
|
@@ -6630,7 +6728,8 @@ var NodeSemanticInfoServiceM = class {
|
|
|
6630
6728
|
translationTargets = translationPackage.getPackageMemberTranslationTargets(translationDeclaration);
|
|
6631
6729
|
break;
|
|
6632
6730
|
case 1063 /* MethodTranslation */:
|
|
6633
|
-
case
|
|
6731
|
+
case 1046 /* IndexedElementGetterTranslation */:
|
|
6732
|
+
case 1048 /* IndexedElementSetterTranslation */:
|
|
6634
6733
|
translationTargets = translationPackage.getTypeMemberTranslationTargets(translationDeclaration);
|
|
6635
6734
|
break;
|
|
6636
6735
|
default:
|
|
@@ -6946,7 +7045,7 @@ var DefinitionInfoFinderM = class {
|
|
|
6946
7045
|
const tokenOrKeyword = getTokenOrKeywordsTouchingOffset2(sourceFile.getSyntaxNode(), offset).getSingleWithHighestPriority((t) => {
|
|
6947
7046
|
if (t.isToken(1037 /* Identifier */) || t.isKeyword()) {
|
|
6948
7047
|
return 2;
|
|
6949
|
-
} else if (t.isToken(1019 /* Caret */) || t.isToken(
|
|
7048
|
+
} else if (t.isToken(1019 /* Caret */) || t.isToken(1048 /* OpenSquareBracket */) || t.isToken(1022 /* CloseSquareBracket */)) {
|
|
6950
7049
|
return 1;
|
|
6951
7050
|
} else {
|
|
6952
7051
|
return 0;
|
|
@@ -7037,8 +7136,8 @@ var ReferencesFinder = class {
|
|
|
7037
7136
|
return true;
|
|
7038
7137
|
}
|
|
7039
7138
|
if (this.isForRename) {
|
|
7040
|
-
const entity1Translation = entity1.
|
|
7041
|
-
const entity2Translation = entity2.
|
|
7139
|
+
const entity1Translation = entity1.translation;
|
|
7140
|
+
const entity2Translation = entity2.translation;
|
|
7042
7141
|
if (entity1Translation !== void 0 && entity2Translation !== void 0 && entity1Translation.equals(entity2Translation)) {
|
|
7043
7142
|
return true;
|
|
7044
7143
|
}
|
|
@@ -7379,17 +7478,7 @@ var ReferencesFinderM = class extends ReferencesFinder {
|
|
|
7379
7478
|
result.push(new Reference(sourceFile, node.keyword.rangeWithoutTrivia, referenceKind));
|
|
7380
7479
|
}
|
|
7381
7480
|
}
|
|
7382
|
-
if (
|
|
7383
|
-
const semanticInfo = NodeSemanticInfoServiceM.ofIndexedElementAccessorDeclaration(
|
|
7384
|
-
this.analyzer.dialectM,
|
|
7385
|
-
node
|
|
7386
|
-
);
|
|
7387
|
-
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(semanticInfo);
|
|
7388
|
-
if (referenceKind !== void 0) {
|
|
7389
|
-
result.push(new Reference(sourceFile, node.parameterClause.rangeWithoutTrivia, referenceKind));
|
|
7390
|
-
}
|
|
7391
|
-
}
|
|
7392
|
-
if (node.kind === 1045 /* IndexedAccessExpression */ && this.restrictions.canBeIndexer) {
|
|
7481
|
+
if (node.kind === 1044 /* IndexedAccessExpression */ && this.restrictions.canBeIndexer) {
|
|
7393
7482
|
const semanticInfo = NodeSemanticInfoServiceM.ofIndexedAccessExpressionOperator(
|
|
7394
7483
|
this.analyzer.dialectM,
|
|
7395
7484
|
node,
|
|
@@ -7404,39 +7493,95 @@ var ReferencesFinderM = class extends ReferencesFinder {
|
|
|
7404
7493
|
result.push(new Reference(sourceFile, range, referenceKind));
|
|
7405
7494
|
}
|
|
7406
7495
|
}
|
|
7407
|
-
|
|
7408
|
-
|
|
7409
|
-
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7413
|
-
|
|
7414
|
-
|
|
7415
|
-
|
|
7416
|
-
|
|
7417
|
-
|
|
7496
|
+
}
|
|
7497
|
+
if (node.kind === 1062 /* MethodDeclaration */) {
|
|
7498
|
+
const semanticInfo = NodeSemanticInfoServiceM.ofOperatorDeclaration(
|
|
7499
|
+
this.analyzer.dialectM,
|
|
7500
|
+
node
|
|
7501
|
+
);
|
|
7502
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(semanticInfo);
|
|
7503
|
+
if (referenceKind !== void 0) {
|
|
7504
|
+
result.push(new Reference(sourceFile, node.name.rangeWithoutTrivia, referenceKind));
|
|
7505
|
+
}
|
|
7506
|
+
}
|
|
7507
|
+
if (node.kind === 1063 /* MethodTranslation */) {
|
|
7508
|
+
{
|
|
7509
|
+
const semanticInfo = NodeSemanticInfoServiceM.ofOperatorTranslationSourceOperator(
|
|
7510
|
+
this.analyzer.dialectM,
|
|
7511
|
+
node,
|
|
7512
|
+
semanticInfoOptions
|
|
7513
|
+
);
|
|
7514
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(semanticInfo);
|
|
7515
|
+
if (referenceKind !== void 0) {
|
|
7516
|
+
result.push(new Reference(sourceFile, node.sourceName.rangeWithoutTrivia, referenceKind));
|
|
7418
7517
|
}
|
|
7419
|
-
|
|
7420
|
-
|
|
7421
|
-
|
|
7422
|
-
|
|
7423
|
-
|
|
7424
|
-
|
|
7425
|
-
|
|
7426
|
-
|
|
7427
|
-
|
|
7428
|
-
|
|
7429
|
-
node.translatedParameterClause.rangeWithoutTrivia,
|
|
7430
|
-
referenceKind
|
|
7431
|
-
));
|
|
7432
|
-
}
|
|
7518
|
+
}
|
|
7519
|
+
{
|
|
7520
|
+
const semanticInfo = NodeSemanticInfoServiceM.ofOperatorTranslationTranslatedOperator(
|
|
7521
|
+
this.analyzer.dialectM,
|
|
7522
|
+
node,
|
|
7523
|
+
semanticInfoOptions
|
|
7524
|
+
);
|
|
7525
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(semanticInfo);
|
|
7526
|
+
if (referenceKind !== void 0) {
|
|
7527
|
+
result.push(new Reference(sourceFile, node.translatedName.rangeWithoutTrivia, referenceKind));
|
|
7433
7528
|
}
|
|
7434
7529
|
}
|
|
7435
|
-
|
|
7436
|
-
|
|
7530
|
+
}
|
|
7531
|
+
if (node.kind === 1045 /* IndexedElementGetterDeclaration */ || node.kind === 1047 /* IndexedElementSetterDeclaration */) {
|
|
7532
|
+
{
|
|
7533
|
+
const range = node.kind === 1045 /* IndexedElementGetterDeclaration */ ? new Range(
|
|
7534
|
+
node.openSquareBracketToken.rangeWithoutTrivia.start,
|
|
7535
|
+
node.closeSquareBracketToken.rangeWithoutTrivia.end
|
|
7536
|
+
) : new Range(
|
|
7537
|
+
node.openSquareBracketToken.rangeWithoutTrivia.start,
|
|
7538
|
+
node.equalsToken.rangeWithoutTrivia.end
|
|
7539
|
+
);
|
|
7540
|
+
const semanticInfo = NodeSemanticInfoServiceM.ofIndexerDeclaration(
|
|
7541
|
+
this.analyzer.dialectM,
|
|
7542
|
+
node
|
|
7543
|
+
);
|
|
7437
7544
|
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(semanticInfo);
|
|
7438
7545
|
if (referenceKind !== void 0) {
|
|
7439
|
-
result.push(new Reference(sourceFile,
|
|
7546
|
+
result.push(new Reference(sourceFile, range, referenceKind));
|
|
7547
|
+
}
|
|
7548
|
+
}
|
|
7549
|
+
}
|
|
7550
|
+
if (node.kind === 1046 /* IndexedElementGetterTranslation */ || node.kind === 1048 /* IndexedElementSetterTranslation */) {
|
|
7551
|
+
{
|
|
7552
|
+
const range = node.kind === 1046 /* IndexedElementGetterTranslation */ ? new Range(
|
|
7553
|
+
node.sourceOpenSquareBracketToken.rangeWithoutTrivia.start,
|
|
7554
|
+
node.sourceCloseSquareBracketToken.rangeWithoutTrivia.end
|
|
7555
|
+
) : new Range(
|
|
7556
|
+
node.sourceOpenSquareBracketToken.rangeWithoutTrivia.start,
|
|
7557
|
+
node.sourceEqualsToken.rangeWithoutTrivia.end
|
|
7558
|
+
);
|
|
7559
|
+
const semanticInfo = NodeSemanticInfoServiceM.ofIndexerTranslationSourceIndexer(
|
|
7560
|
+
this.analyzer.dialectM,
|
|
7561
|
+
node,
|
|
7562
|
+
semanticInfoOptions
|
|
7563
|
+
);
|
|
7564
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(semanticInfo);
|
|
7565
|
+
if (referenceKind !== void 0) {
|
|
7566
|
+
result.push(new Reference(sourceFile, range, referenceKind));
|
|
7567
|
+
}
|
|
7568
|
+
}
|
|
7569
|
+
{
|
|
7570
|
+
const range = node.kind === 1046 /* IndexedElementGetterTranslation */ ? new Range(
|
|
7571
|
+
node.translatedOpenSquareBracketToken.rangeWithoutTrivia.start,
|
|
7572
|
+
node.translatedCloseSquareBracketToken.rangeWithoutTrivia.end
|
|
7573
|
+
) : new Range(
|
|
7574
|
+
node.translatedOpenSquareBracketToken.rangeWithoutTrivia.start,
|
|
7575
|
+
node.translatedEqualsToken.rangeWithoutTrivia.end
|
|
7576
|
+
);
|
|
7577
|
+
const semanticInfo = NodeSemanticInfoServiceM.ofIndexerTranslationTranslatedIndexer(
|
|
7578
|
+
this.analyzer.dialectM,
|
|
7579
|
+
node,
|
|
7580
|
+
semanticInfoOptions
|
|
7581
|
+
);
|
|
7582
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(semanticInfo);
|
|
7583
|
+
if (referenceKind !== void 0) {
|
|
7584
|
+
result.push(new Reference(sourceFile, range, referenceKind));
|
|
7440
7585
|
}
|
|
7441
7586
|
}
|
|
7442
7587
|
}
|
|
@@ -7944,7 +8089,7 @@ var SemanticTokensServiceA = class {
|
|
|
7944
8089
|
const meaning = analyzer.resolveIdentifierExpression(node);
|
|
7945
8090
|
if (meaning.kind === "variable-access") {
|
|
7946
8091
|
const variable = meaning.variable.entity;
|
|
7947
|
-
if (variable.subkind === "field" && variable.
|
|
8092
|
+
if (variable.subkind === "field" && variable.isVariantValue()) {
|
|
7948
8093
|
result.push(new SemanticToken(
|
|
7949
8094
|
node.rangeWithoutTrivia,
|
|
7950
8095
|
3 /* Variant */,
|
|
@@ -7991,7 +8136,7 @@ var SemanticTokensServiceA = class {
|
|
|
7991
8136
|
const meaning = analyzer.resolveMemberAccessExpression(node);
|
|
7992
8137
|
if (meaning.kind === "static-field-access") {
|
|
7993
8138
|
const entity = meaning.field.entity;
|
|
7994
|
-
if (entity.subkind === "field" && entity.
|
|
8139
|
+
if (entity.subkind === "field" && entity.isVariantValue()) {
|
|
7995
8140
|
result.push(
|
|
7996
8141
|
new SemanticToken(
|
|
7997
8142
|
node.memberName.rangeWithoutTrivia,
|
|
@@ -11467,7 +11612,7 @@ var EntityToSyntax = class {
|
|
|
11467
11612
|
);
|
|
11468
11613
|
}
|
|
11469
11614
|
convertField(entity) {
|
|
11470
|
-
if (entity.
|
|
11615
|
+
if (entity.isVariantValue()) {
|
|
11471
11616
|
return this.convertVariant(entity);
|
|
11472
11617
|
}
|
|
11473
11618
|
let result;
|
|
@@ -12046,7 +12191,7 @@ var SourceGenerationService = class extends RxObject7 {
|
|
|
12046
12191
|
}
|
|
12047
12192
|
getOrGeneratePackageSource(analyzer, packageEntity, taskController) {
|
|
12048
12193
|
return __async(this, null, function* () {
|
|
12049
|
-
const packageLocale = packageEntity.
|
|
12194
|
+
const packageLocale = packageEntity.locale;
|
|
12050
12195
|
const key = `${packageEntity.getName().toString()}-${localeToString(packageLocale)}`;
|
|
12051
12196
|
let result = this.generatedPackageStates.get(key);
|
|
12052
12197
|
if (result !== void 0 && result.originalPackageEntity !== packageEntity) {
|
|
@@ -12578,7 +12723,7 @@ var SourceFileItemsServiceM = class {
|
|
|
12578
12723
|
));
|
|
12579
12724
|
break;
|
|
12580
12725
|
}
|
|
12581
|
-
case
|
|
12726
|
+
case 1031 /* FieldSetterDeclaration */: {
|
|
12582
12727
|
result.push(this.createItem(
|
|
12583
12728
|
16 /* FieldSetter */,
|
|
12584
12729
|
node2.name.value,
|
|
@@ -12600,7 +12745,7 @@ var SourceFileItemsServiceM = class {
|
|
|
12600
12745
|
}
|
|
12601
12746
|
break;
|
|
12602
12747
|
}
|
|
12603
|
-
case
|
|
12748
|
+
case 1045 /* IndexedElementGetterDeclaration */: {
|
|
12604
12749
|
result.push(this.createItem(
|
|
12605
12750
|
18 /* IndexedElementGetter */,
|
|
12606
12751
|
void 0,
|
|
@@ -12873,10 +13018,33 @@ var TranslationsGenerator2 = class _TranslationsGenerator {
|
|
|
12873
13018
|
);
|
|
12874
13019
|
}
|
|
12875
13020
|
}).join(`${newLine}${newLine}`);
|
|
12876
|
-
|
|
12877
|
-
let
|
|
12878
|
-
if (translationsDeclaration.
|
|
12879
|
-
|
|
13021
|
+
let editText;
|
|
13022
|
+
let editRange;
|
|
13023
|
+
if (translationsDeclaration.openBraceToken !== void 0) {
|
|
13024
|
+
Debug.assert(translationsDeclaration.closeBraceToken !== void 0);
|
|
13025
|
+
const translationsKeywordLine = this.sourceFile.getPositionAt(translationsDeclaration.translationsKeyword.rangeWithoutTrivia.start).line;
|
|
13026
|
+
const closeBraceTokenLine = this.sourceFile.getPositionAt(translationsDeclaration.closeBraceToken.rangeWithoutTrivia.start).line;
|
|
13027
|
+
if (translationsKeywordLine === closeBraceTokenLine) {
|
|
13028
|
+
editText = newLine + memberTranslationsCode + newLine;
|
|
13029
|
+
editRange = Range.empty(translationsDeclaration.closeBraceToken.rangeWithoutTrivia.start);
|
|
13030
|
+
} else {
|
|
13031
|
+
editText = newLine + memberTranslationsCode;
|
|
13032
|
+
editRange = Range.empty(translationsDeclaration.openBraceToken.rangeWithoutTrivia.end);
|
|
13033
|
+
}
|
|
13034
|
+
if (translationsDeclaration.translationList.translationDeclarations.count() > 0) {
|
|
13035
|
+
editText += newLine;
|
|
13036
|
+
}
|
|
13037
|
+
} else {
|
|
13038
|
+
Debug.assert(translationsDeclaration.endKeyword !== void 0);
|
|
13039
|
+
const translationsKeywordLine = this.sourceFile.getPositionAt(translationsDeclaration.translationsKeyword.rangeWithoutTrivia.start).line;
|
|
13040
|
+
const endKeywordLine = this.sourceFile.getPositionAt(translationsDeclaration.endKeyword.rangeWithoutTrivia.start).line;
|
|
13041
|
+
if (translationsKeywordLine === endKeywordLine) {
|
|
13042
|
+
editText = newLine + memberTranslationsCode + newLine;
|
|
13043
|
+
editRange = Range.empty(translationsDeclaration.endKeyword.rangeWithoutTrivia.start);
|
|
13044
|
+
} else {
|
|
13045
|
+
editText = this.hasAtLeastOneTranslatedPackageMember() ? newLine + memberTranslationsCode + newLine : newLine + memberTranslationsCode;
|
|
13046
|
+
editRange = Range.empty(translationsDeclaration.translationsKeyword.rangeWithoutTrivia.end);
|
|
13047
|
+
}
|
|
12880
13048
|
}
|
|
12881
13049
|
result.push(new SourceFileEdit(this.sourceFile, editRange, editText));
|
|
12882
13050
|
}
|
|
@@ -12926,17 +13094,36 @@ var TranslationsGenerator2 = class _TranslationsGenerator {
|
|
|
12926
13094
|
let editText;
|
|
12927
13095
|
let editRange;
|
|
12928
13096
|
if (typeTranslation.openBraceToken !== void 0) {
|
|
12929
|
-
|
|
12930
|
-
|
|
13097
|
+
Debug.assert(typeTranslation.closeBraceToken !== void 0);
|
|
13098
|
+
const typeKeywordLine = this.sourceFile.getPositionAt(typeTranslation.typeKeyword.rangeWithoutTrivia.start).line;
|
|
13099
|
+
const closeBraceTokenLine = this.sourceFile.getPositionAt(typeTranslation.closeBraceToken.rangeWithoutTrivia.start).line;
|
|
13100
|
+
const closeBraceTokenIndentation = " ".repeat(
|
|
13101
|
+
this.sourceFile.getPositionAt(typeTranslation.rangeWithoutTrivia.start).character
|
|
13102
|
+
);
|
|
13103
|
+
if (typeKeywordLine === closeBraceTokenLine) {
|
|
13104
|
+
editText = newLine + memberTranslationsCode + newLine + closeBraceTokenIndentation;
|
|
13105
|
+
editRange = Range.empty(typeTranslation.closeBraceToken.rangeWithoutTrivia.start);
|
|
13106
|
+
} else {
|
|
13107
|
+
editText = newLine + memberTranslationsCode + closeBraceTokenIndentation;
|
|
13108
|
+
editRange = Range.empty(typeTranslation.openBraceToken.rangeWithoutTrivia.end);
|
|
13109
|
+
}
|
|
12931
13110
|
if (typeTranslation.memberList !== void 0 && typeTranslation.memberList.members.count() > 0) {
|
|
12932
13111
|
editText += newLine;
|
|
12933
13112
|
}
|
|
12934
13113
|
} else {
|
|
12935
|
-
|
|
13114
|
+
Debug.assert(typeTranslation.endKeyword !== void 0);
|
|
13115
|
+
const typeKeywordLine = this.sourceFile.getPositionAt(typeTranslation.typeKeyword.rangeWithoutTrivia.start).line;
|
|
13116
|
+
const endKeywordLine = this.sourceFile.getPositionAt(typeTranslation.endKeyword.rangeWithoutTrivia.start).line;
|
|
13117
|
+
const endKeywordIndentation = " ".repeat(
|
|
12936
13118
|
this.sourceFile.getPositionAt(typeTranslation.rangeWithoutTrivia.start).character
|
|
12937
13119
|
);
|
|
12938
|
-
|
|
12939
|
-
|
|
13120
|
+
if (typeKeywordLine === endKeywordLine) {
|
|
13121
|
+
editText = newLine + memberTranslationsCode + newLine + endKeywordIndentation;
|
|
13122
|
+
editRange = Range.empty(typeTranslation.endKeyword.rangeWithoutTrivia.start);
|
|
13123
|
+
} else {
|
|
13124
|
+
editText = this.hasAtLeastOneTranslatedTypeMember(entity) ? newLine + memberTranslationsCode + newLine + endKeywordIndentation : newLine + memberTranslationsCode + endKeywordIndentation;
|
|
13125
|
+
editRange = Range.empty((typeTranslation.translatedTypeParameterClause ?? typeTranslation.translatedName).rangeWithoutTrivia.end);
|
|
13126
|
+
}
|
|
12940
13127
|
}
|
|
12941
13128
|
return [new SourceFileEdit(this.sourceFile, editRange, editText)];
|
|
12942
13129
|
}
|
|
@@ -12944,6 +13131,10 @@ var TranslationsGenerator2 = class _TranslationsGenerator {
|
|
|
12944
13131
|
const translatedTypeEntity = this.translationPackage.localizationContext.getLocalizedPackageTypeEntity(entity);
|
|
12945
13132
|
return translatedTypeEntity.getMembers().getAll().filter((m) => this.isNotTranslatedEntity(m) && ResolvedTranslationPackage2.isTypeMemberEntityThatShouldBeTranslatedByUser(m)).map((m) => m.originalEntity);
|
|
12946
13133
|
}
|
|
13134
|
+
hasAtLeastOneTranslatedTypeMember(entity) {
|
|
13135
|
+
const translatedTypeEntity = this.translationPackage.localizationContext.getLocalizedPackageTypeEntity(entity);
|
|
13136
|
+
return translatedTypeEntity.getMembers().getAll().find((m) => !this.isNotTranslatedEntity(m) && ResolvedTranslationPackage2.isTypeMemberEntityThatShouldBeTranslatedByUser(m)) !== void 0;
|
|
13137
|
+
}
|
|
12947
13138
|
detectIndentationForPackageMemberTranslations(translationsDeclaration) {
|
|
12948
13139
|
let indentationSize;
|
|
12949
13140
|
const firstMember = translationsDeclaration.translationList.translationDeclarations.first();
|
|
@@ -12998,15 +13189,174 @@ var TranslationsGenerator2 = class _TranslationsGenerator {
|
|
|
12998
13189
|
collectNotTranslatedPackageMembers() {
|
|
12999
13190
|
return this.translationPackage.translatedTargetPackage.getMembers().getNamedMembers().filter((m) => this.isNotTranslatedEntity(m) && ResolvedTranslationPackage2.isPackageMemberEntityThatShouldBeTranslatedByUser(m));
|
|
13000
13191
|
}
|
|
13192
|
+
hasAtLeastOneTranslatedPackageMember() {
|
|
13193
|
+
return this.translationPackage.translatedTargetPackage.getMembers().getNamedMembers().find((m) => !this.isNotTranslatedEntity(m) && ResolvedTranslationPackage2.isPackageMemberEntityThatShouldBeTranslatedByUser(m)) !== void 0;
|
|
13194
|
+
}
|
|
13001
13195
|
isNotTranslatedEntity(entity) {
|
|
13002
|
-
const translation = entity.
|
|
13196
|
+
const translation = entity.translation;
|
|
13003
13197
|
return translation === void 0 || translation.definition.kind === "intrinsic";
|
|
13004
13198
|
}
|
|
13005
13199
|
createPackageMemberTranslationNode(entity) {
|
|
13006
|
-
|
|
13200
|
+
switch (entity.kind) {
|
|
13201
|
+
case 0 /* Variable */:
|
|
13202
|
+
return this.createPackageVariableTranslation(entity);
|
|
13203
|
+
case 1 /* Function */:
|
|
13204
|
+
return this.createPackageFunctionTranslation(entity);
|
|
13205
|
+
case 2 /* Type */: {
|
|
13206
|
+
const aliasTarget = ifTypeEntityIsFunctionTypeAliasThenFunctionType(entity);
|
|
13207
|
+
if (aliasTarget !== void 0 && entity.typeEntityKind === 4 /* Alias */) {
|
|
13208
|
+
return this.createFunctionTypeAliasTranslation(entity, aliasTarget);
|
|
13209
|
+
}
|
|
13210
|
+
return this.createPackageTypeWithMembersTranslation(entity);
|
|
13211
|
+
}
|
|
13212
|
+
case 6 /* TypeExtension */:
|
|
13213
|
+
case 8 /* TextTranslation */:
|
|
13214
|
+
return void 0;
|
|
13215
|
+
default:
|
|
13216
|
+
Debug.never(entity);
|
|
13217
|
+
}
|
|
13218
|
+
}
|
|
13219
|
+
createPackageVariableTranslation(entity) {
|
|
13220
|
+
const name = this.getNameText(entity.getName());
|
|
13221
|
+
return SyntaxFactory2.packageVariableTranslation(name, name);
|
|
13222
|
+
}
|
|
13223
|
+
createPackageFunctionTranslation(entity) {
|
|
13224
|
+
const name = this.getNameText(entity.getName());
|
|
13225
|
+
const typeParameters = entity.getTypeParameters().map((p) => this.getNameText(p.getName()));
|
|
13226
|
+
const parameters = this.createParameters(entity.getParameters());
|
|
13227
|
+
return SyntaxFactory2.packageFunctionTranslation(name, typeParameters, parameters, name, typeParameters, parameters);
|
|
13228
|
+
}
|
|
13229
|
+
createPackageTypeWithMembersTranslation(entity) {
|
|
13230
|
+
const name = this.getNameText(entity.getName());
|
|
13231
|
+
const typeParameters = entity.getTypeParameters().map((p) => this.getNameText(p.getName()));
|
|
13232
|
+
const members = Query.from(this.collectNotTranslatedTypeMembers(entity)).mapAndFilter((e) => this.createTypeMemberTranslationNode(e)).filter((n) => n !== void 0).uniqueWithComparator(compareNodes2).toArray();
|
|
13233
|
+
return SyntaxFactory2.typeTranslation(name, typeParameters, name, typeParameters, members);
|
|
13234
|
+
}
|
|
13235
|
+
createFunctionTypeAliasTranslation(entity, aliasTarget) {
|
|
13236
|
+
const name = this.getNameText(entity.getName());
|
|
13237
|
+
const typeParameters = entity.getTypeParameters().map((p) => this.getNameText(p.getName()));
|
|
13238
|
+
const parameters = this.createParameters(aliasTarget.getParameters());
|
|
13239
|
+
return SyntaxFactory2.functionTypeTranslation(name, typeParameters, parameters, name, typeParameters, parameters);
|
|
13007
13240
|
}
|
|
13008
13241
|
createTypeMemberTranslationNode(entity) {
|
|
13009
|
-
|
|
13242
|
+
switch (entity.kind) {
|
|
13243
|
+
case 0 /* Variable */:
|
|
13244
|
+
if (entity.isVariantValue()) {
|
|
13245
|
+
return this.createVariantValueTranslation(entity);
|
|
13246
|
+
}
|
|
13247
|
+
return this.createFieldTranslation(entity);
|
|
13248
|
+
case 1 /* Function */:
|
|
13249
|
+
return this.createMethodOrIndexedElementAccessorTranslation(entity);
|
|
13250
|
+
case 3 /* Indexer */:
|
|
13251
|
+
return void 0;
|
|
13252
|
+
case 4 /* DereferenceOperator */:
|
|
13253
|
+
return void 0;
|
|
13254
|
+
default:
|
|
13255
|
+
Debug.never(entity);
|
|
13256
|
+
}
|
|
13257
|
+
}
|
|
13258
|
+
createFieldTranslation(entity) {
|
|
13259
|
+
const name = this.getNameText(entity.getName());
|
|
13260
|
+
return SyntaxFactory2.fieldTranslation(name, name);
|
|
13261
|
+
}
|
|
13262
|
+
createVariantValueTranslation(entity) {
|
|
13263
|
+
const name = this.getNameText(entity.getName());
|
|
13264
|
+
return SyntaxFactory2.variantValueTranslation(name, name);
|
|
13265
|
+
}
|
|
13266
|
+
createMethodOrIndexedElementAccessorTranslation(entity) {
|
|
13267
|
+
switch (entity.methodKind) {
|
|
13268
|
+
case 0 /* Ordinary */: {
|
|
13269
|
+
const name = this.getNameText(entity.getName());
|
|
13270
|
+
const typeParameters = entity.getTypeParameters().map((p) => this.getNameText(p.getName()));
|
|
13271
|
+
const parameters = this.createParameters(entity.getParameters());
|
|
13272
|
+
return SyntaxFactory2.methodTranslation(name, typeParameters, parameters, name, typeParameters, parameters);
|
|
13273
|
+
}
|
|
13274
|
+
case 3 /* Operator */: {
|
|
13275
|
+
const operatorKind = entity.getOperatorKind();
|
|
13276
|
+
if (operatorKind === void 0) {
|
|
13277
|
+
return void 0;
|
|
13278
|
+
}
|
|
13279
|
+
const syntacticalOperatorKind = this.analyzer.convertSemanticOperatorKind(operatorKind);
|
|
13280
|
+
if (syntacticalOperatorKind === void 0) {
|
|
13281
|
+
return void 0;
|
|
13282
|
+
}
|
|
13283
|
+
let tokenOrKeyword = void 0;
|
|
13284
|
+
if (isOperatorDefinedByToken(syntacticalOperatorKind)) {
|
|
13285
|
+
const tokenKind = tokenKindByOperatorKind[syntacticalOperatorKind];
|
|
13286
|
+
tokenOrKeyword = new Token(tokenKind, "", [], [], 0 /* None */, void 0, void 0);
|
|
13287
|
+
}
|
|
13288
|
+
if (isOperatorDefinedByKeyword(syntacticalOperatorKind)) {
|
|
13289
|
+
const keywordKind = keywordKindByOperatorKind[syntacticalOperatorKind];
|
|
13290
|
+
tokenOrKeyword = new Keyword([], keywordKind, 0 /* None */, void 0, void 0);
|
|
13291
|
+
}
|
|
13292
|
+
if (tokenOrKeyword === void 0) {
|
|
13293
|
+
return void 0;
|
|
13294
|
+
}
|
|
13295
|
+
const parameters = this.createParameters(entity.getParameters());
|
|
13296
|
+
return SyntaxFactory2.operatorTranslation(tokenOrKeyword, [], parameters, tokenOrKeyword, [], parameters);
|
|
13297
|
+
}
|
|
13298
|
+
case 1 /* Constructor */: {
|
|
13299
|
+
const sourceName = this.getNameText(entity.getName());
|
|
13300
|
+
const translatedName = this.analyzer.getReservedName(
|
|
13301
|
+
2 /* Creation */,
|
|
13302
|
+
this.translationPackage.getTranslationLocale()
|
|
13303
|
+
).key;
|
|
13304
|
+
const parameters = this.createParameters(entity.getParameters());
|
|
13305
|
+
return SyntaxFactory2.methodTranslation(sourceName, [], parameters, translatedName, [], parameters);
|
|
13306
|
+
}
|
|
13307
|
+
case 2 /* Destructor */: {
|
|
13308
|
+
const sourceName = this.getNameText(entity.getName());
|
|
13309
|
+
const translatedName = this.analyzer.getReservedName(
|
|
13310
|
+
3 /* Destruction */,
|
|
13311
|
+
this.translationPackage.getTranslationLocale()
|
|
13312
|
+
).key;
|
|
13313
|
+
const parameters = this.createParameters(entity.getParameters());
|
|
13314
|
+
return SyntaxFactory2.methodTranslation(sourceName, [], parameters, translatedName, [], parameters);
|
|
13315
|
+
}
|
|
13316
|
+
case 4 /* Accessor */:
|
|
13317
|
+
if (entity.accessorKind === 4 /* IndexedElementGetter */) {
|
|
13318
|
+
const parameters = this.createParameters(entity.getParameters());
|
|
13319
|
+
return SyntaxFactory2.indexedElementGetterTranslation(parameters, parameters);
|
|
13320
|
+
}
|
|
13321
|
+
if (entity.accessorKind === 5 /* IndexedElementSetter */) {
|
|
13322
|
+
const sourceParameters = this.createParameters(entity.getParameters());
|
|
13323
|
+
const translatedParameters = this.createSetterParametersWithTranslatedValue(entity.getParameters());
|
|
13324
|
+
return SyntaxFactory2.indexedElementSetterTranslation(sourceParameters, translatedParameters);
|
|
13325
|
+
}
|
|
13326
|
+
return void 0;
|
|
13327
|
+
default:
|
|
13328
|
+
Debug.never(entity.methodKind);
|
|
13329
|
+
}
|
|
13330
|
+
}
|
|
13331
|
+
createParameters(parameters) {
|
|
13332
|
+
return parameters.map((p) => {
|
|
13333
|
+
const nameText = this.getNameText(p.getName());
|
|
13334
|
+
let flags = 0 /* None */;
|
|
13335
|
+
if (p.isObjectParameter()) {
|
|
13336
|
+
flags |= 512 /* ObjectParameterName */;
|
|
13337
|
+
}
|
|
13338
|
+
return SyntaxFactory2.identifier(nameText, flags);
|
|
13339
|
+
});
|
|
13340
|
+
}
|
|
13341
|
+
createSetterParametersWithTranslatedValue(parameters) {
|
|
13342
|
+
return parameters.map((p, i, arr) => {
|
|
13343
|
+
if (i === arr.length - 1) {
|
|
13344
|
+
const value = this.analyzer.getReservedName(
|
|
13345
|
+
1 /* Value */,
|
|
13346
|
+
this.translationPackage.getTranslationLocale()
|
|
13347
|
+
);
|
|
13348
|
+
return SyntaxFactory2.identifier(value.key);
|
|
13349
|
+
}
|
|
13350
|
+
const nameText = this.getNameText(p.getName());
|
|
13351
|
+
let flags = 0 /* None */;
|
|
13352
|
+
if (p.isObjectParameter()) {
|
|
13353
|
+
flags |= 512 /* ObjectParameterName */;
|
|
13354
|
+
}
|
|
13355
|
+
return SyntaxFactory2.identifier(nameText, flags);
|
|
13356
|
+
});
|
|
13357
|
+
}
|
|
13358
|
+
getNameText(name) {
|
|
13359
|
+
return name.getPreferredUnescapedOriginal();
|
|
13010
13360
|
}
|
|
13011
13361
|
// TODO: Работать с синтаксическим деревом и использовать Trivia для добавления перевода строки. Требуется доработка
|
|
13012
13362
|
// SyntaxToCode и возможность добавлять Trivia в узлы, создаваемые через SyntaxFactory.
|
|
@@ -13030,7 +13380,10 @@ function compareNodes2(node1, node2) {
|
|
|
13030
13380
|
return false;
|
|
13031
13381
|
}
|
|
13032
13382
|
if (node1.kind === 1001 /* Token */ && node2.kind === 1001 /* Token */) {
|
|
13033
|
-
return node1.value === node2.value;
|
|
13383
|
+
return node1.tokenKind === node2.tokenKind && node1.operatorKind === node2.operatorKind && node1.value === node2.value;
|
|
13384
|
+
}
|
|
13385
|
+
if (node1.kind === 1002 /* Keyword */ && node2.kind === 1002 /* Keyword */) {
|
|
13386
|
+
return node1.keywordKind === node2.keywordKind && node1.operatorKind === node2.operatorKind;
|
|
13034
13387
|
}
|
|
13035
13388
|
if (node1.children.length !== node2.children.length) {
|
|
13036
13389
|
return false;
|
|
@@ -13142,7 +13495,7 @@ var SignatureForNode2 = class _SignatureForNode {
|
|
|
13142
13495
|
switch (node.kind) {
|
|
13143
13496
|
case 1013 /* CallExpression */:
|
|
13144
13497
|
return _SignatureForNode.getSignaturesForCallExpression(analyzer, node);
|
|
13145
|
-
case
|
|
13498
|
+
case 1044 /* IndexedAccessExpression */:
|
|
13146
13499
|
return _SignatureForNode.getSignaturesForIndexedAccessExpression(analyzer, node);
|
|
13147
13500
|
case 1108 /* Tag */:
|
|
13148
13501
|
return _SignatureForNode.getSignaturesForTag(analyzer, node);
|
|
@@ -13535,7 +13888,7 @@ var CompletionServiceM = class {
|
|
|
13535
13888
|
if (tokenOrKeyword.isKeyword(1019 /* Import */) && tokenOrKeyword.parent.kind === 1078 /* PackageImportDirective */) {
|
|
13536
13889
|
return new PackageImportCompletionContext2([], void 0);
|
|
13537
13890
|
}
|
|
13538
|
-
if (tokenOrKeyword.isKeyword(1017 /* Function */) && (tokenOrKeyword.parent.kind === 1062 /* MethodDeclaration */ || tokenOrKeyword.parent.kind === 1105 /* StaticMethodDeclaration */ || tokenOrKeyword.parent.kind ===
|
|
13891
|
+
if (tokenOrKeyword.isKeyword(1017 /* Function */) && (tokenOrKeyword.parent.kind === 1062 /* MethodDeclaration */ || tokenOrKeyword.parent.kind === 1105 /* StaticMethodDeclaration */ || tokenOrKeyword.parent.kind === 1045 /* IndexedElementGetterDeclaration */ || tokenOrKeyword.parent.kind === 1047 /* IndexedElementSetterDeclaration */)) {
|
|
13539
13892
|
return new OperatorNameCompletionContext2(void 0);
|
|
13540
13893
|
}
|
|
13541
13894
|
if (tokenOrKeyword.isToken(1030 /* Equals */) && tokenOrKeyword.parent.kind === 1077 /* PackageImport */) {
|
|
@@ -13546,7 +13899,7 @@ var CompletionServiceM = class {
|
|
|
13546
13899
|
const precedingSegmentNames = packageImport.packageName.segments.takeWhile((s) => s.rangeWithTrivia.start < tokenOrKeyword.value.rangeWithTrivia.start).map((p) => this.analyzer.createNameFromIdentifier(p)).toArray();
|
|
13547
13900
|
return new PackageImportCompletionContext2(precedingSegmentNames, void 0);
|
|
13548
13901
|
}
|
|
13549
|
-
if (tokenOrKeyword.isToken(
|
|
13902
|
+
if (tokenOrKeyword.isToken(1046 /* OpenBrace */) && tokenOrKeyword.parent.kind === 1078 /* PackageImportDirective */ || this.tokenOrKeywordIsPackageImportListChild(tokenOrKeyword)) {
|
|
13550
13903
|
return new PackageImportCompletionContext2([], void 0);
|
|
13551
13904
|
}
|
|
13552
13905
|
if (tokenOrKeyword.isToken(1026 /* Dot */) && tokenOrKeyword.parent.kind === 1061 /* MemberAccessExpression */) {
|
|
@@ -13585,7 +13938,7 @@ var CompletionServiceM = class {
|
|
|
13585
13938
|
const showConstructors = containingEntity?.kind === 1 /* Function */ && containingEntity?.subkind === "method" && containingEntity?.methodKind === 1 /* Constructor */;
|
|
13586
13939
|
return new TypeMemberCompletionContext2(type, lookupContext, lookupOptions, showConstructors);
|
|
13587
13940
|
}
|
|
13588
|
-
if (tokenOrKeyword.isToken(
|
|
13941
|
+
if (tokenOrKeyword.isToken(1047 /* OpenParenthesis */) && tokenOrKeyword.parent.kind === 1013 /* CallExpression */) {
|
|
13589
13942
|
const type = this.getDenotedVariantType(tokenOrKeyword.parent, semanticContext);
|
|
13590
13943
|
if (type !== void 0) {
|
|
13591
13944
|
const lookupContext = semanticContext.getTypeMemberLookupContext();
|
|
@@ -13729,12 +14082,17 @@ var CompletionServiceM = class {
|
|
|
13729
14082
|
}
|
|
13730
14083
|
if (tokenOrKeyword.isKeyword(1033 /* Type */) && (tokenOrKeyword.parent.kind === 1141 /* TypeTranslationDeclaration */ || tokenOrKeyword.parent.kind === 1039 /* FunctionTypeTranslationDeclaration */)) {
|
|
13731
14084
|
translationsDeclaration = tokenOrKeyword.parent.parent.parent;
|
|
13732
|
-
translationKind =
|
|
14085
|
+
translationKind = 3 /* Type */;
|
|
13733
14086
|
hasPrecedingKeyword = true;
|
|
13734
14087
|
}
|
|
13735
14088
|
if (tokenOrKeyword.isKeyword(1017 /* Function */) && tokenOrKeyword.parent.kind === 1076 /* PackageFunctionTranslationDeclaration */) {
|
|
13736
14089
|
translationsDeclaration = tokenOrKeyword.parent.parent.parent;
|
|
13737
|
-
translationKind = 1 /*
|
|
14090
|
+
translationKind = 1 /* Function */;
|
|
14091
|
+
hasPrecedingKeyword = true;
|
|
14092
|
+
}
|
|
14093
|
+
if (tokenOrKeyword.isKeyword(1034 /* Var */) && tokenOrKeyword.parent.kind === 1089 /* PackageVariableTranslationDeclaration */) {
|
|
14094
|
+
translationsDeclaration = tokenOrKeyword.parent.parent.parent;
|
|
14095
|
+
translationKind = 2 /* Variable */;
|
|
13738
14096
|
hasPrecedingKeyword = true;
|
|
13739
14097
|
}
|
|
13740
14098
|
if (translationsDeclaration !== void 0) {
|
|
@@ -13766,11 +14124,21 @@ var CompletionServiceM = class {
|
|
|
13766
14124
|
translationKind = 0 /* Any */;
|
|
13767
14125
|
hasPrecedingKeyword = false;
|
|
13768
14126
|
}
|
|
13769
|
-
if (tokenOrKeyword.isKeyword(1017 /* Function */) && tokenOrKeyword.parent.kind === 1063 /* MethodTranslation */) {
|
|
14127
|
+
if (tokenOrKeyword.isKeyword(1017 /* Function */) && (tokenOrKeyword.parent.kind === 1063 /* MethodTranslation */ || tokenOrKeyword.parent.kind === 1046 /* IndexedElementGetterTranslation */ || tokenOrKeyword.parent.kind === 1048 /* IndexedElementSetterTranslation */)) {
|
|
13770
14128
|
typeTranslation = tokenOrKeyword.parent.parent.parent;
|
|
13771
14129
|
translationKind = 1 /* Method */;
|
|
13772
14130
|
hasPrecedingKeyword = true;
|
|
13773
14131
|
}
|
|
14132
|
+
if (tokenOrKeyword.isKeyword(1034 /* Var */) && tokenOrKeyword.parent.kind === 1032 /* FieldTranslation */) {
|
|
14133
|
+
typeTranslation = tokenOrKeyword.parent.parent.parent;
|
|
14134
|
+
translationKind = 2 /* Field */;
|
|
14135
|
+
hasPrecedingKeyword = true;
|
|
14136
|
+
}
|
|
14137
|
+
if (tokenOrKeyword.isKeyword(1004 /* Case */) && tokenOrKeyword.parent.kind === 1145 /* VariantValueTranslation */) {
|
|
14138
|
+
typeTranslation = tokenOrKeyword.parent.parent.parent;
|
|
14139
|
+
translationKind = 3 /* VariantValue */;
|
|
14140
|
+
hasPrecedingKeyword = true;
|
|
14141
|
+
}
|
|
13774
14142
|
if (typeTranslation !== void 0) {
|
|
13775
14143
|
let type;
|
|
13776
14144
|
if (this.sourceFile.package.kind === "translation") {
|
|
@@ -13797,7 +14165,7 @@ var CompletionServiceM = class {
|
|
|
13797
14165
|
signatures = SignatureForNode2.getSignaturesForTag(this.analyzer, role.argumentList.parent);
|
|
13798
14166
|
args = ArgumentFactory2.createArgumentsOfTag(role.argumentList.parent);
|
|
13799
14167
|
break;
|
|
13800
|
-
case
|
|
14168
|
+
case 1044 /* IndexedAccessExpression */:
|
|
13801
14169
|
signatures = SignatureForNode2.getSignaturesForIndexedAccessExpression(
|
|
13802
14170
|
this.analyzer,
|
|
13803
14171
|
role.argumentList.parent
|
|
@@ -13897,7 +14265,7 @@ var CompletionServiceM = class {
|
|
|
13897
14265
|
let isVariantValueAccess = false;
|
|
13898
14266
|
if (positionDescription.kind === "after-token-or-keyword") {
|
|
13899
14267
|
const tokenOrKeyword = positionDescription.tokenOrKeyword;
|
|
13900
|
-
if (tokenOrKeyword.isToken(
|
|
14268
|
+
if (tokenOrKeyword.isToken(1047 /* OpenParenthesis */) && tokenOrKeyword.parent.kind === 1013 /* CallExpression */) {
|
|
13901
14269
|
const call = tokenOrKeyword.parent;
|
|
13902
14270
|
const type = this.analyzer.type.ofExpression(call.expression);
|
|
13903
14271
|
if (type.kind === "variant") {
|
|
@@ -14075,7 +14443,7 @@ var CompletionServiceM = class {
|
|
|
14075
14443
|
case 1034 /* ForStatement */:
|
|
14076
14444
|
case 1058 /* LoopStatement */:
|
|
14077
14445
|
case 1014 /* CaseClause */:
|
|
14078
|
-
case
|
|
14446
|
+
case 1146 /* WhileStatement */:
|
|
14079
14447
|
return false;
|
|
14080
14448
|
default:
|
|
14081
14449
|
Debug.never(statementBlockParent);
|
|
@@ -14118,7 +14486,7 @@ var CompletionServiceM = class {
|
|
|
14118
14486
|
case 1034 /* ForStatement */:
|
|
14119
14487
|
case 1058 /* LoopStatement */:
|
|
14120
14488
|
case 1014 /* CaseClause */:
|
|
14121
|
-
case
|
|
14489
|
+
case 1146 /* WhileStatement */:
|
|
14122
14490
|
return false;
|
|
14123
14491
|
default:
|
|
14124
14492
|
Debug.never(statementBlockParent);
|
|
@@ -14161,7 +14529,7 @@ var CompletionServiceM = class {
|
|
|
14161
14529
|
case 1034 /* ForStatement */:
|
|
14162
14530
|
case 1058 /* LoopStatement */:
|
|
14163
14531
|
case 1014 /* CaseClause */:
|
|
14164
|
-
case
|
|
14532
|
+
case 1146 /* WhileStatement */:
|
|
14165
14533
|
return false;
|
|
14166
14534
|
default:
|
|
14167
14535
|
Debug.never(statementBlockParent);
|
|
@@ -14255,7 +14623,7 @@ var CompletionServiceM = class {
|
|
|
14255
14623
|
case 1033 /* FinallyClause */:
|
|
14256
14624
|
case 1034 /* ForStatement */:
|
|
14257
14625
|
case 1058 /* LoopStatement */:
|
|
14258
|
-
case
|
|
14626
|
+
case 1146 /* WhileStatement */:
|
|
14259
14627
|
return false;
|
|
14260
14628
|
default:
|
|
14261
14629
|
Debug.never(statementBlockParent);
|
|
@@ -14270,7 +14638,7 @@ var CompletionServiceM = class {
|
|
|
14270
14638
|
return false;
|
|
14271
14639
|
}
|
|
14272
14640
|
const tokenOrKeyword = positionDescription.tokenOrKeyword;
|
|
14273
|
-
if ((tokenOrKeyword.isToken(
|
|
14641
|
+
if ((tokenOrKeyword.isToken(1040 /* LessThan */) || tokenOrKeyword.isToken(1024 /* Comma */)) && (tokenOrKeyword.parent.kind === 1136 /* TypeParameterClause */ || tokenOrKeyword.parent.kind === 1106 /* StaticNameClause */ || tokenOrKeyword.parent.kind === 1138 /* TypeParameterDeclarationList */ || tokenOrKeyword.parent.kind === 1140 /* TypeParameterReferenceList */)) {
|
|
14274
14642
|
return true;
|
|
14275
14643
|
}
|
|
14276
14644
|
return false;
|
|
@@ -14291,7 +14659,7 @@ var CompletionServiceM = class {
|
|
|
14291
14659
|
isVariantValueCompletionContext(positionDescription) {
|
|
14292
14660
|
if (positionDescription.kind === "after-token-or-keyword") {
|
|
14293
14661
|
const tokenOrKeyword = positionDescription.tokenOrKeyword;
|
|
14294
|
-
if (tokenOrKeyword.isToken(
|
|
14662
|
+
if (tokenOrKeyword.isToken(1047 /* OpenParenthesis */) && tokenOrKeyword.parent.kind === 1013 /* CallExpression */) {
|
|
14295
14663
|
const call = tokenOrKeyword.parent;
|
|
14296
14664
|
const type = this.analyzer.type.ofExpression(call.expression);
|
|
14297
14665
|
if (type.kind === "variant") {
|
|
@@ -14540,7 +14908,7 @@ var CompletionServiceM = class {
|
|
|
14540
14908
|
}
|
|
14541
14909
|
getTopLevelAliasListCompletionItemInfos(ctx) {
|
|
14542
14910
|
let result;
|
|
14543
|
-
if (ctx.translationKind === 1 /*
|
|
14911
|
+
if (ctx.translationKind === 1 /* Function */) {
|
|
14544
14912
|
result = Query.from(ctx.packageMemberLookup.getNamedMembers(ctx.lookupContext)).mapAndFilter((d) => {
|
|
14545
14913
|
if (d.kind === 1 /* Function */) {
|
|
14546
14914
|
return new TranslationsSourceFunctionCompletionItemInfo(
|
|
@@ -14551,7 +14919,7 @@ var CompletionServiceM = class {
|
|
|
14551
14919
|
}
|
|
14552
14920
|
return void 0;
|
|
14553
14921
|
});
|
|
14554
|
-
} else if (ctx.translationKind ===
|
|
14922
|
+
} else if (ctx.translationKind === 3 /* Type */) {
|
|
14555
14923
|
result = Query.from(ctx.packageMemberLookup.getNamedMembers(ctx.lookupContext)).mapAndFilter((d) => {
|
|
14556
14924
|
if (d.kind === 2 /* Type */) {
|
|
14557
14925
|
return new TranslationsSourcePackageTypeCompletionItemInfo2(
|
|
@@ -14562,11 +14930,26 @@ var CompletionServiceM = class {
|
|
|
14562
14930
|
}
|
|
14563
14931
|
return void 0;
|
|
14564
14932
|
});
|
|
14933
|
+
} else if (ctx.translationKind === 2 /* Variable */) {
|
|
14934
|
+
result = Query.from(ctx.packageMemberLookup.getNamedMembers(ctx.lookupContext)).mapAndFilter((d) => {
|
|
14935
|
+
if (d.kind === 0 /* Variable */) {
|
|
14936
|
+
return new TranslationsSourceVariableCompletionItemInfo2(
|
|
14937
|
+
this.completionItemInfoContext,
|
|
14938
|
+
d,
|
|
14939
|
+
!ctx.hasPrecedingKeyword
|
|
14940
|
+
);
|
|
14941
|
+
}
|
|
14942
|
+
return void 0;
|
|
14943
|
+
});
|
|
14565
14944
|
} else if (ctx.translationKind === 0 /* Any */) {
|
|
14566
14945
|
result = Query.from(ctx.packageMemberLookup.getNamedMembers(ctx.lookupContext)).map((d) => {
|
|
14567
14946
|
switch (d.kind) {
|
|
14568
14947
|
case 0 /* Variable */:
|
|
14569
|
-
return new TranslationsSourceVariableCompletionItemInfo2(
|
|
14948
|
+
return new TranslationsSourceVariableCompletionItemInfo2(
|
|
14949
|
+
this.completionItemInfoContext,
|
|
14950
|
+
d,
|
|
14951
|
+
!ctx.hasPrecedingKeyword
|
|
14952
|
+
);
|
|
14570
14953
|
case 1 /* Function */:
|
|
14571
14954
|
return new TranslationsSourceFunctionCompletionItemInfo(
|
|
14572
14955
|
this.completionItemInfoContext,
|
|
@@ -14589,7 +14972,9 @@ var CompletionServiceM = class {
|
|
|
14589
14972
|
if (!ctx.hasPrecedingKeyword) {
|
|
14590
14973
|
const keywords = [
|
|
14591
14974
|
1033 /* Type */,
|
|
14592
|
-
1017 /* Function
|
|
14975
|
+
1017 /* Function */,
|
|
14976
|
+
1034 /* Var */,
|
|
14977
|
+
1011 /* End */
|
|
14593
14978
|
];
|
|
14594
14979
|
result = result.chain(
|
|
14595
14980
|
Query.from(keywords).map((k) => LocalizationHelperM.localizeKeyword(k, this.locale).map((v) => new KeywordCompletionItemInfo2(this.completionItemInfoContext, k, v.value))).flatMap((i) => i)
|
|
@@ -14601,7 +14986,13 @@ var CompletionServiceM = class {
|
|
|
14601
14986
|
let result = Query.empty();
|
|
14602
14987
|
if (ctx.typeEntity !== void 0) {
|
|
14603
14988
|
if (ctx.translationKind === 1 /* Method */) {
|
|
14604
|
-
|
|
14989
|
+
const namedMembersAndOperatorsAndIndexedElementAccessors = [
|
|
14990
|
+
...ctx.typeEntity.getMembers().getNamedMembersM(),
|
|
14991
|
+
...ctx.typeEntity.getMembers().getOperators(),
|
|
14992
|
+
...ctx.typeEntity.getMembers().getIndexers().map((it) => it.getGetter()).filter((it) => it !== void 0),
|
|
14993
|
+
...ctx.typeEntity.getMembers().getIndexers().map((it) => it.getSetter()).filter((it) => it !== void 0)
|
|
14994
|
+
];
|
|
14995
|
+
result = Query.from(namedMembersAndOperatorsAndIndexedElementAccessors).mapAndFilter((m) => {
|
|
14605
14996
|
if (m.kind === 1 /* Function */) {
|
|
14606
14997
|
return new TranslationsSourceFunctionCompletionItemInfo(
|
|
14607
14998
|
this.completionItemInfoContext,
|
|
@@ -14611,12 +15002,42 @@ var CompletionServiceM = class {
|
|
|
14611
15002
|
}
|
|
14612
15003
|
return void 0;
|
|
14613
15004
|
});
|
|
14614
|
-
} else if (ctx.translationKind === 2 /*
|
|
14615
|
-
result = Query.from(ctx.typeEntity.getMembers().getIndexers()).map((i) => new TranslationsSourceIndexerCompletionItemInfo2(this.completionItemInfoContext, i));
|
|
14616
|
-
} else if (ctx.translationKind === 0 /* Any */) {
|
|
15005
|
+
} else if (ctx.translationKind === 2 /* Field */) {
|
|
14617
15006
|
result = Query.from(ctx.typeEntity.getMembers().getNamedMembersM()).mapAndFilter((m) => {
|
|
15007
|
+
if (m.kind === 0 /* Variable */ && m.subkind === "field" && !m.isVariantValue()) {
|
|
15008
|
+
return new TranslationsSourceVariableCompletionItemInfo2(
|
|
15009
|
+
this.completionItemInfoContext,
|
|
15010
|
+
m,
|
|
15011
|
+
!ctx.hasPrecedingKeyword
|
|
15012
|
+
);
|
|
15013
|
+
}
|
|
15014
|
+
return void 0;
|
|
15015
|
+
});
|
|
15016
|
+
} else if (ctx.translationKind === 3 /* VariantValue */) {
|
|
15017
|
+
result = Query.from(ctx.typeEntity.getMembers().getNamedMembersM()).mapAndFilter((m) => {
|
|
15018
|
+
if (m.kind === 0 /* Variable */ && m.subkind === "field" && m.isVariantValue()) {
|
|
15019
|
+
return new TranslationsSourceVariableCompletionItemInfo2(
|
|
15020
|
+
this.completionItemInfoContext,
|
|
15021
|
+
m,
|
|
15022
|
+
!ctx.hasPrecedingKeyword
|
|
15023
|
+
);
|
|
15024
|
+
}
|
|
15025
|
+
return void 0;
|
|
15026
|
+
});
|
|
15027
|
+
} else if (ctx.translationKind === 0 /* Any */) {
|
|
15028
|
+
const namedMembersAndOperatorsAndIndexedElementAccessors = [
|
|
15029
|
+
...ctx.typeEntity.getMembers().getNamedMembersM(),
|
|
15030
|
+
...ctx.typeEntity.getMembers().getOperators(),
|
|
15031
|
+
...ctx.typeEntity.getMembers().getIndexers().map((it) => it.getGetter()).filter((it) => it !== void 0),
|
|
15032
|
+
...ctx.typeEntity.getMembers().getIndexers().map((it) => it.getSetter()).filter((it) => it !== void 0)
|
|
15033
|
+
];
|
|
15034
|
+
result = Query.from(namedMembersAndOperatorsAndIndexedElementAccessors).mapAndFilter((m) => {
|
|
14618
15035
|
if (m.kind === 0 /* Variable */) {
|
|
14619
|
-
return new TranslationsSourceVariableCompletionItemInfo2(
|
|
15036
|
+
return new TranslationsSourceVariableCompletionItemInfo2(
|
|
15037
|
+
this.completionItemInfoContext,
|
|
15038
|
+
m,
|
|
15039
|
+
!ctx.hasPrecedingKeyword
|
|
15040
|
+
);
|
|
14620
15041
|
} else if (m.kind === 1 /* Function */) {
|
|
14621
15042
|
return new TranslationsSourceFunctionCompletionItemInfo(
|
|
14622
15043
|
this.completionItemInfoContext,
|
|
@@ -14625,16 +15046,17 @@ var CompletionServiceM = class {
|
|
|
14625
15046
|
);
|
|
14626
15047
|
}
|
|
14627
15048
|
return void 0;
|
|
14628
|
-
})
|
|
14629
|
-
ctx.typeEntity.getMembers().getIndexers().map((i) => new TranslationsSourceIndexerCompletionItemInfo2(this.completionItemInfoContext, i))
|
|
14630
|
-
);
|
|
15049
|
+
});
|
|
14631
15050
|
} else {
|
|
14632
15051
|
Debug.never(ctx.translationKind);
|
|
14633
15052
|
}
|
|
14634
15053
|
}
|
|
14635
15054
|
if (!ctx.hasPrecedingKeyword) {
|
|
14636
15055
|
const keywords = [
|
|
14637
|
-
1017 /* Function
|
|
15056
|
+
1017 /* Function */,
|
|
15057
|
+
1034 /* Var */,
|
|
15058
|
+
1004 /* Case */,
|
|
15059
|
+
1011 /* End */
|
|
14638
15060
|
];
|
|
14639
15061
|
result = result.chain(
|
|
14640
15062
|
Query.from(keywords).map((k) => LocalizationHelperM.localizeKeyword(k, this.locale).map((v) => new KeywordCompletionItemInfo2(this.completionItemInfoContext, k, v.value))).flatMap((i) => i)
|
|
@@ -15033,7 +15455,7 @@ var VariableEntityCompletionItemInfo2 = class {
|
|
|
15033
15455
|
case "package":
|
|
15034
15456
|
return 7 /* PackageVariable */;
|
|
15035
15457
|
case "field":
|
|
15036
|
-
return this.entity.
|
|
15458
|
+
return this.entity.isVariantValue() ? 12 /* VariantValue */ : 2 /* Field */;
|
|
15037
15459
|
case "parameter":
|
|
15038
15460
|
return 10 /* Parameter */;
|
|
15039
15461
|
case "local":
|
|
@@ -15246,11 +15668,15 @@ var TargetSignatureParameterCompletionItemInfo2 = class {
|
|
|
15246
15668
|
}
|
|
15247
15669
|
};
|
|
15248
15670
|
var TranslationsSourceVariableCompletionItemInfo2 = class {
|
|
15249
|
-
constructor(ctx, variable) {
|
|
15671
|
+
constructor(ctx, variable, includeVarOrCaseKeyword) {
|
|
15250
15672
|
this.ctx = ctx;
|
|
15251
15673
|
this.variable = variable;
|
|
15674
|
+
this.includeVarOrCaseKeyword = includeVarOrCaseKeyword;
|
|
15252
15675
|
this.kind = "translations-source-variable";
|
|
15253
15676
|
}
|
|
15677
|
+
get keywordKind() {
|
|
15678
|
+
return this.variable.subkind === "field" && this.variable.isVariantValue() ? 1004 /* Case */ : 1034 /* Var */;
|
|
15679
|
+
}
|
|
15254
15680
|
getLabel() {
|
|
15255
15681
|
return this.ctx.getInsertTextForName(this.variable.getName());
|
|
15256
15682
|
}
|
|
@@ -15272,7 +15698,8 @@ var TranslationsSourceVariableCompletionItemInfo2 = class {
|
|
|
15272
15698
|
return this.ctx.displayService.displayEntity(this.variable);
|
|
15273
15699
|
}
|
|
15274
15700
|
getInsertText() {
|
|
15275
|
-
|
|
15701
|
+
const keywordWithWhitespace = this.includeVarOrCaseKeyword ? `${this.ctx.displayService.m.displayKeyword(this.keywordKind)} ` : "";
|
|
15702
|
+
return `${keywordWithWhitespace}${this.ctx.getInsertTextForName(this.variable.getName())}`;
|
|
15276
15703
|
}
|
|
15277
15704
|
getInsertTextFormat() {
|
|
15278
15705
|
return 0 /* PlainText */;
|
|
@@ -15290,9 +15717,32 @@ var TranslationsSourceFunctionCompletionItemInfo = class {
|
|
|
15290
15717
|
this.func = func;
|
|
15291
15718
|
this.includeFunctionKeyword = includeFunctionKeyword;
|
|
15292
15719
|
this.kind = "translations-source-function";
|
|
15720
|
+
this.name_ = new Cached();
|
|
15721
|
+
}
|
|
15722
|
+
get name() {
|
|
15723
|
+
return this.name_.getOrInsertWith(() => {
|
|
15724
|
+
if (this.func.subkind !== "method") {
|
|
15725
|
+
return this.ctx.getInsertTextForName(this.func.getName());
|
|
15726
|
+
}
|
|
15727
|
+
if (this.func.methodKind === 4 /* Accessor */) {
|
|
15728
|
+
if (this.func.accessorKind === 4 /* IndexedElementGetter */) {
|
|
15729
|
+
return "[]";
|
|
15730
|
+
}
|
|
15731
|
+
if (this.func.accessorKind === 5 /* IndexedElementSetter */) {
|
|
15732
|
+
return "[]=";
|
|
15733
|
+
}
|
|
15734
|
+
}
|
|
15735
|
+
if (this.func.methodKind === 3 /* Operator */) {
|
|
15736
|
+
const operatorKind = this.func.getOperatorKind();
|
|
15737
|
+
if (operatorKind !== void 0) {
|
|
15738
|
+
return LocalizationHelperM.localizeOperatorKind(operatorKind, this.ctx.locale);
|
|
15739
|
+
}
|
|
15740
|
+
}
|
|
15741
|
+
return this.ctx.getInsertTextForName(this.func.getName());
|
|
15742
|
+
});
|
|
15293
15743
|
}
|
|
15294
15744
|
getLabel() {
|
|
15295
|
-
return this.
|
|
15745
|
+
return this.name;
|
|
15296
15746
|
}
|
|
15297
15747
|
getCompletionItemKind() {
|
|
15298
15748
|
switch (this.func.subkind) {
|
|
@@ -15314,7 +15764,7 @@ var TranslationsSourceFunctionCompletionItemInfo = class {
|
|
|
15314
15764
|
const typeParameters = this.func.getTypeParameters().map((p) => this.ctx.getInsertTextForName(p.getName())).join(", ");
|
|
15315
15765
|
const typeParametersWithAngles = typeParameters.length > 0 ? `<${typeParameters}>` : "";
|
|
15316
15766
|
const parameters = this.func.getParameters().map((p) => this.ctx.getInsertTextForName(p.getName())).join(", ");
|
|
15317
|
-
return `${keywordWithWhitespace}${this.
|
|
15767
|
+
return `${keywordWithWhitespace}${this.name}${typeParametersWithAngles}(${parameters})`;
|
|
15318
15768
|
}
|
|
15319
15769
|
getInsertTextFormat() {
|
|
15320
15770
|
return 0 /* PlainText */;
|
|
@@ -15386,39 +15836,6 @@ var TranslationsSourcePackageTypeCompletionItemInfo2 = class {
|
|
|
15386
15836
|
return void 0;
|
|
15387
15837
|
}
|
|
15388
15838
|
};
|
|
15389
|
-
var TranslationsSourceIndexerCompletionItemInfo2 = class {
|
|
15390
|
-
constructor(ctx, indexer) {
|
|
15391
|
-
this.ctx = ctx;
|
|
15392
|
-
this.indexer = indexer;
|
|
15393
|
-
this.kind = "translations-source-type-indexer";
|
|
15394
|
-
this.label_ = new Cached();
|
|
15395
|
-
}
|
|
15396
|
-
get label() {
|
|
15397
|
-
return this.label_.getOrInsertWith(() => this.ctx.displayService.displayIndexerDeclaration(new IndexerDeclaration_entity(this.indexer)));
|
|
15398
|
-
}
|
|
15399
|
-
getLabel() {
|
|
15400
|
-
return this.label;
|
|
15401
|
-
}
|
|
15402
|
-
getCompletionItemKind() {
|
|
15403
|
-
return 5 /* Indexer */;
|
|
15404
|
-
}
|
|
15405
|
-
getDetails() {
|
|
15406
|
-
return this.label;
|
|
15407
|
-
}
|
|
15408
|
-
getInsertText() {
|
|
15409
|
-
const parameters = this.indexer.getParameters().map((p) => this.ctx.getInsertTextForName(p.getName())).join(", ");
|
|
15410
|
-
return `[${parameters}]`;
|
|
15411
|
-
}
|
|
15412
|
-
getInsertTextFormat() {
|
|
15413
|
-
return 0 /* PlainText */;
|
|
15414
|
-
}
|
|
15415
|
-
getSortText() {
|
|
15416
|
-
return void 0;
|
|
15417
|
-
}
|
|
15418
|
-
getEditRange() {
|
|
15419
|
-
return void 0;
|
|
15420
|
-
}
|
|
15421
|
-
};
|
|
15422
15839
|
var OperatorNameCompletionItemInfo2 = class {
|
|
15423
15840
|
constructor(ctx, value, editRange) {
|
|
15424
15841
|
this.ctx = ctx;
|
|
@@ -15577,7 +15994,7 @@ var SyntaxContextFactory2 = class {
|
|
|
15577
15994
|
precedingExpression = SyntaxContextUtils2.tokenOrKeywordIsValidEndOfExpression(positionDescription.tokenOrKeyword)?.expression;
|
|
15578
15995
|
if (precedingExpression !== void 0) {
|
|
15579
15996
|
const parent = precedingExpression.getParentSkippingParenthesizedExpressions();
|
|
15580
|
-
if (parent.kind === 1042 /* IfStatement */ || parent.kind === 1023 /* ElseIfClause */ || parent.kind === 1014 /* CaseClause */ || parent.kind === 1034 /* ForStatement */ || parent.kind ===
|
|
15997
|
+
if (parent.kind === 1042 /* IfStatement */ || parent.kind === 1023 /* ElseIfClause */ || parent.kind === 1014 /* CaseClause */ || parent.kind === 1034 /* ForStatement */ || parent.kind === 1146 /* WhileStatement */) {
|
|
15581
15998
|
expressionContext = { expressionRole: new ExpressionRole_other2(void 0) };
|
|
15582
15999
|
statementContext = { statementRole: new StatementRole_inBlock(parent.block) };
|
|
15583
16000
|
}
|
|
@@ -15661,7 +16078,7 @@ var SyntaxContextFactory2 = class {
|
|
|
15661
16078
|
statementContext: void 0
|
|
15662
16079
|
};
|
|
15663
16080
|
}
|
|
15664
|
-
const hasBrace = tokenOrKeyword.isToken(
|
|
16081
|
+
const hasBrace = tokenOrKeyword.isToken(1046 /* OpenBrace */);
|
|
15665
16082
|
if (hasBrace) {
|
|
15666
16083
|
if (tokenOrKeyword.parent.kind === 1100 /* StatementBlock */ || tokenOrKeyword.parent.kind === 1036 /* FunctionBlock */) {
|
|
15667
16084
|
return {
|
|
@@ -15692,7 +16109,7 @@ var SyntaxContextFactory2 = class {
|
|
|
15692
16109
|
};
|
|
15693
16110
|
}
|
|
15694
16111
|
break;
|
|
15695
|
-
case
|
|
16112
|
+
case 1045 /* IndexedElementGetterDeclaration */:
|
|
15696
16113
|
case 1047 /* IndexedElementSetterDeclaration */:
|
|
15697
16114
|
if (tokenOrKeyword.parent.parent.block !== void 0) {
|
|
15698
16115
|
return {
|
|
@@ -15723,10 +16140,10 @@ var SyntaxContextFactory2 = class {
|
|
|
15723
16140
|
);
|
|
15724
16141
|
if (typeAnnotation !== void 0) {
|
|
15725
16142
|
switch (typeAnnotation.parent.kind) {
|
|
15726
|
-
case
|
|
16143
|
+
case 1045 /* IndexedElementGetterDeclaration */:
|
|
15727
16144
|
case 1047 /* IndexedElementSetterDeclaration */:
|
|
15728
16145
|
case 1030 /* FieldGetterDeclaration */:
|
|
15729
|
-
case
|
|
16146
|
+
case 1031 /* FieldSetterDeclaration */:
|
|
15730
16147
|
case 1062 /* MethodDeclaration */:
|
|
15731
16148
|
case 1070 /* NestedFunctionDeclaration */:
|
|
15732
16149
|
case 1075 /* PackageFunctionDeclaration */:
|
|
@@ -15753,7 +16170,7 @@ var SyntaxContextFactory2 = class {
|
|
|
15753
16170
|
statementContext: { statementRole: new StatementRole_inBlock(tokenOrKeyword.parent.parent) }
|
|
15754
16171
|
};
|
|
15755
16172
|
}
|
|
15756
|
-
if (tokenOrKeyword.isToken(
|
|
16173
|
+
if (tokenOrKeyword.isToken(1047 /* OpenParenthesis */)) {
|
|
15757
16174
|
if (tokenOrKeyword.parent.kind === 1093 /* ParenthesizedExpression */) {
|
|
15758
16175
|
const expressionRole = new ExpressionRole_other2(tokenOrKeyword.parent.expression);
|
|
15759
16176
|
return { expressionContext: { expressionRole }, statementContext: void 0 };
|
|
@@ -15778,11 +16195,11 @@ var SyntaxContextFactory2 = class {
|
|
|
15778
16195
|
return { expressionContext: { expressionRole }, statementContext: void 0 };
|
|
15779
16196
|
}
|
|
15780
16197
|
}
|
|
15781
|
-
if (tokenOrKeyword.isToken(
|
|
16198
|
+
if (tokenOrKeyword.isToken(1048 /* OpenSquareBracket */) && tokenOrKeyword.parent.kind === 1044 /* IndexedAccessExpression */) {
|
|
15782
16199
|
const expressionRole = new ExpressionRole_argument2(tokenOrKeyword.parent.argumentList, 0);
|
|
15783
16200
|
return { expressionContext: { expressionRole }, statementContext: void 0 };
|
|
15784
16201
|
}
|
|
15785
|
-
if (tokenOrKeyword.isToken(
|
|
16202
|
+
if (tokenOrKeyword.isToken(1048 /* OpenSquareBracket */) && tokenOrKeyword.parent.kind === 1005 /* ArrayLiteral */) {
|
|
15786
16203
|
const expressionRole = new ExpressionRole_arrayElement2(tokenOrKeyword.parent);
|
|
15787
16204
|
return { expressionContext: { expressionRole }, statementContext: void 0 };
|
|
15788
16205
|
}
|
|
@@ -15853,11 +16270,11 @@ var SyntaxContextFactory2 = class {
|
|
|
15853
16270
|
const expressionRole = new ExpressionRole_other2(tokenOrKeyword.parent.enumeratedExpression);
|
|
15854
16271
|
return { expressionContext: { expressionRole }, statementContext: void 0 };
|
|
15855
16272
|
}
|
|
15856
|
-
if (tokenOrKeyword.isKeyword(1035 /* While */) && tokenOrKeyword.parent.kind ===
|
|
16273
|
+
if (tokenOrKeyword.isKeyword(1035 /* While */) && tokenOrKeyword.parent.kind === 1146 /* WhileStatement */) {
|
|
15857
16274
|
const expressionRole = new ExpressionRole_other2(tokenOrKeyword.parent.condition);
|
|
15858
16275
|
return { expressionContext: { expressionRole }, statementContext: void 0 };
|
|
15859
16276
|
}
|
|
15860
|
-
if (tokenOrKeyword.isKeyword(1037 /* Yield */) && tokenOrKeyword.parent.kind ===
|
|
16277
|
+
if (tokenOrKeyword.isKeyword(1037 /* Yield */) && tokenOrKeyword.parent.kind === 1147 /* YieldStatement */) {
|
|
15861
16278
|
const expressionRole = new ExpressionRole_other2(tokenOrKeyword.parent.expression);
|
|
15862
16279
|
return { expressionContext: { expressionRole }, statementContext: void 0 };
|
|
15863
16280
|
}
|
|
@@ -15865,7 +16282,7 @@ var SyntaxContextFactory2 = class {
|
|
|
15865
16282
|
const expressionRole = new ExpressionRole_other2(tokenOrKeyword.parent.condition);
|
|
15866
16283
|
return { expressionContext: { expressionRole }, statementContext: void 0 };
|
|
15867
16284
|
}
|
|
15868
|
-
if (tokenOrKeyword.isToken(
|
|
16285
|
+
if (tokenOrKeyword.isToken(1047 /* OpenParenthesis */) && tokenOrKeyword.parent.kind === 1059 /* MatchExpressionGroup */) {
|
|
15869
16286
|
const expressionRole = new ExpressionRole_matchListElement2(tokenOrKeyword.parent.parent.parent.parent);
|
|
15870
16287
|
return { expressionContext: { expressionRole }, statementContext: void 0 };
|
|
15871
16288
|
}
|
|
@@ -15915,7 +16332,7 @@ var SyntaxContextFactory2 = class {
|
|
|
15915
16332
|
if ((tokenOrKeyword.isToken(1020 /* CloseBrace */) || tokenOrKeyword.isKeyword(1011 /* End */)) && (tokenOrKeyword.parent.kind === 1127 /* TranslationsDeclaration */ || tokenOrKeyword.parent.kind === 1082 /* PackageMemberGroupDeclaration */ || tokenOrKeyword.parent.kind === 1078 /* PackageImportDirective */ || tokenOrKeyword.parent.kind === 1036 /* FunctionBlock */ && tokenOrKeyword.parent.parent.kind === 1075 /* PackageFunctionDeclaration */)) {
|
|
15916
16333
|
return true;
|
|
15917
16334
|
}
|
|
15918
|
-
if (tokenOrKeyword.isToken(
|
|
16335
|
+
if (tokenOrKeyword.isToken(1046 /* OpenBrace */) && tokenOrKeyword.parent.kind === 1082 /* PackageMemberGroupDeclaration */) {
|
|
15919
16336
|
return true;
|
|
15920
16337
|
}
|
|
15921
16338
|
if (this.packageDeclarations.some((kind) => SyntaxContextUtils2.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, kind))) {
|
|
@@ -15931,8 +16348,8 @@ var SyntaxContextFactory2 = class {
|
|
|
15931
16348
|
this.typeDeclarations = [
|
|
15932
16349
|
1029 /* FieldDeclaration */,
|
|
15933
16350
|
1030 /* FieldGetterDeclaration */,
|
|
15934
|
-
|
|
15935
|
-
|
|
16351
|
+
1031 /* FieldSetterDeclaration */,
|
|
16352
|
+
1045 /* IndexedElementGetterDeclaration */,
|
|
15936
16353
|
1047 /* IndexedElementSetterDeclaration */,
|
|
15937
16354
|
1062 /* MethodDeclaration */,
|
|
15938
16355
|
1144 /* VariantValueDeclaration */
|
|
@@ -15942,7 +16359,7 @@ var SyntaxContextFactory2 = class {
|
|
|
15942
16359
|
if (tokenOrKeyword.isToken(1059 /* Semicolon */) && tokenOrKeyword.parent.kind === 1133 /* TypeMemberDeclarationList */) {
|
|
15943
16360
|
return true;
|
|
15944
16361
|
}
|
|
15945
|
-
if (tokenOrKeyword.isToken(
|
|
16362
|
+
if (tokenOrKeyword.isToken(1046 /* OpenBrace */) && tokenOrKeyword.parent.kind === 1132 /* TypeMemberDeclarationBlock */) {
|
|
15946
16363
|
return true;
|
|
15947
16364
|
}
|
|
15948
16365
|
if (tokenOrKeyword.isToken(1034 /* GreaterThan */) && tokenOrKeyword.parent.kind === 1136 /* TypeParameterClause */ && tokenOrKeyword.parent.parent.kind === 1085 /* PackageTypeDeclaration */) {
|
|
@@ -16004,7 +16421,7 @@ var SyntaxContextFactory2 = class {
|
|
|
16004
16421
|
if (tokenOrKeyword.isKeyword(1013 /* Extends */) && (tokenOrKeyword.parent.kind === 1028 /* ExtendsClause */ || tokenOrKeyword.parent.kind === 1137 /* TypeParameterDeclaration */)) {
|
|
16005
16422
|
return { allowsLocalTypes: false };
|
|
16006
16423
|
}
|
|
16007
|
-
if (tokenOrKeyword.isToken(
|
|
16424
|
+
if (tokenOrKeyword.isToken(1040 /* LessThan */) && tokenOrKeyword.parent.kind === 1130 /* TypeArgumentClause */) {
|
|
16008
16425
|
return { allowsLocalTypes: true };
|
|
16009
16426
|
}
|
|
16010
16427
|
if (tokenOrKeyword.isToken(1024 /* Comma */) && (tokenOrKeyword.parent.kind === 1010 /* BaseTypeList */ || tokenOrKeyword.parent.kind === 1131 /* TypeArgumentList */)) {
|
|
@@ -16019,7 +16436,7 @@ var SyntaxContextFactory2 = class {
|
|
|
16019
16436
|
if (tokenOrKeyword.isToken(1009 /* Bar */) && tokenOrKeyword.parent.kind === 1142 /* UnionTypeSpecifier */) {
|
|
16020
16437
|
return { allowsLocalTypes: false };
|
|
16021
16438
|
}
|
|
16022
|
-
if (tokenOrKeyword.isToken(
|
|
16439
|
+
if (tokenOrKeyword.isToken(1047 /* OpenParenthesis */) && tokenOrKeyword.parent.kind === 1094 /* ParenthesizedTypeSpecifier */) {
|
|
16023
16440
|
return { allowsLocalTypes: true };
|
|
16024
16441
|
}
|
|
16025
16442
|
if (tokenOrKeyword.isKeyword(1034 /* Var */) && tokenOrKeyword.parent.kind === 1086 /* PackageVariableDeclaration */ || tokenOrKeyword.parent.kind === 1087 /* PackageVariableGetterDeclaration */ || tokenOrKeyword.parent.kind === 1088 /* PackageVariableSetterDeclaration */ || tokenOrKeyword.parent.kind === 1102 /* StaticFieldDeclaration */ || tokenOrKeyword.parent.kind === 1103 /* StaticFieldGetterDeclaration */ || tokenOrKeyword.parent.kind === 1104 /* StaticFieldSetterDeclaration */) {
|
|
@@ -16034,7 +16451,10 @@ var SyntaxContextFactory2 = class {
|
|
|
16034
16451
|
if (tokenOrKeyword.isToken(1059 /* Semicolon */) && tokenOrKeyword.parent.kind === 1117 /* TopLevelTranslationList */) {
|
|
16035
16452
|
return { translationsDeclaration: tokenOrKeyword.parent.parent };
|
|
16036
16453
|
}
|
|
16037
|
-
if (tokenOrKeyword.isToken(
|
|
16454
|
+
if (tokenOrKeyword.isToken(1046 /* OpenBrace */) && tokenOrKeyword.parent.kind === 1127 /* TranslationsDeclaration */) {
|
|
16455
|
+
return { translationsDeclaration: tokenOrKeyword.parent };
|
|
16456
|
+
}
|
|
16457
|
+
if (tokenOrKeyword.isKeyword(1031 /* Translations */) && tokenOrKeyword.parent.kind === 1127 /* TranslationsDeclaration */) {
|
|
16038
16458
|
return { translationsDeclaration: tokenOrKeyword.parent };
|
|
16039
16459
|
}
|
|
16040
16460
|
const type = SyntaxContextUtils2.ifTokenIsValidEndOfNodeThenNode(
|
|
@@ -16071,19 +16491,46 @@ var SyntaxContextFactory2 = class {
|
|
|
16071
16491
|
if (tokenOrKeyword.isToken(1059 /* Semicolon */) && tokenOrKeyword.parent.kind === 1135 /* TypeMemberTranslationList */) {
|
|
16072
16492
|
return { typeTranslation: tokenOrKeyword.parent.parent };
|
|
16073
16493
|
}
|
|
16074
|
-
if (tokenOrKeyword.isToken(
|
|
16494
|
+
if (tokenOrKeyword.isToken(1046 /* OpenBrace */) && tokenOrKeyword.parent.kind === 1141 /* TypeTranslationDeclaration */) {
|
|
16075
16495
|
return { typeTranslation: tokenOrKeyword.parent };
|
|
16076
16496
|
}
|
|
16077
|
-
|
|
16078
|
-
|
|
16079
|
-
return { typeTranslation: indexer.parent.parent };
|
|
16497
|
+
if (tokenOrKeyword.isToken(1037 /* Identifier */) && tokenOrKeyword.parent.kind === 1141 /* TypeTranslationDeclaration */ && tokenOrKeyword.parent.translatedName === tokenOrKeyword.value) {
|
|
16498
|
+
return { typeTranslation: tokenOrKeyword.parent };
|
|
16080
16499
|
}
|
|
16081
|
-
const
|
|
16500
|
+
const translatedTypeParameterClause = SyntaxContextUtils2.ifTokenIsValidEndOfNodeThenNode(
|
|
16082
16501
|
tokenOrKeyword,
|
|
16083
|
-
|
|
16502
|
+
1125 /* TranslationTypeParameterClause */
|
|
16084
16503
|
);
|
|
16085
|
-
if (
|
|
16086
|
-
return { typeTranslation:
|
|
16504
|
+
if (translatedTypeParameterClause !== void 0 && tokenOrKeyword.parent.kind === 1141 /* TypeTranslationDeclaration */ && tokenOrKeyword.parent.translatedTypeParameterClause === translatedTypeParameterClause) {
|
|
16505
|
+
return { typeTranslation: tokenOrKeyword.parent };
|
|
16506
|
+
}
|
|
16507
|
+
const indexedElementGetter = SyntaxContextUtils2.ifTokenIsValidEndOfNodeThenNode(
|
|
16508
|
+
tokenOrKeyword,
|
|
16509
|
+
1046 /* IndexedElementGetterTranslation */
|
|
16510
|
+
);
|
|
16511
|
+
if (indexedElementGetter !== void 0) {
|
|
16512
|
+
return { typeTranslation: indexedElementGetter.parent.parent };
|
|
16513
|
+
}
|
|
16514
|
+
const indexedElementSetter = SyntaxContextUtils2.ifTokenIsValidEndOfNodeThenNode(
|
|
16515
|
+
tokenOrKeyword,
|
|
16516
|
+
1048 /* IndexedElementSetterTranslation */
|
|
16517
|
+
);
|
|
16518
|
+
if (indexedElementSetter !== void 0) {
|
|
16519
|
+
return { typeTranslation: indexedElementSetter.parent.parent };
|
|
16520
|
+
}
|
|
16521
|
+
const field = SyntaxContextUtils2.ifTokenIsValidEndOfNodeThenNode(
|
|
16522
|
+
tokenOrKeyword,
|
|
16523
|
+
1032 /* FieldTranslation */
|
|
16524
|
+
);
|
|
16525
|
+
if (field !== void 0) {
|
|
16526
|
+
return { typeTranslation: field.parent.parent };
|
|
16527
|
+
}
|
|
16528
|
+
const variantValue = SyntaxContextUtils2.ifTokenIsValidEndOfNodeThenNode(
|
|
16529
|
+
tokenOrKeyword,
|
|
16530
|
+
1145 /* VariantValueTranslation */
|
|
16531
|
+
);
|
|
16532
|
+
if (variantValue !== void 0) {
|
|
16533
|
+
return { typeTranslation: variantValue.parent.parent };
|
|
16087
16534
|
}
|
|
16088
16535
|
const method = SyntaxContextUtils2.ifTokenIsValidEndOfNodeThenNode(
|
|
16089
16536
|
tokenOrKeyword,
|
|
@@ -16201,7 +16648,7 @@ var DefinitionServiceM = class extends DefinitionService {
|
|
|
16201
16648
|
const tokenOrKeyword = getTokenOrKeywordsTouchingOffset2(sourceFile.getSyntaxNode(), offset).getSingleWithHighestPriority((t) => {
|
|
16202
16649
|
if (t.isToken(1037 /* Identifier */) || t.isKeyword()) {
|
|
16203
16650
|
return 2;
|
|
16204
|
-
} else if (t.isToken(1019 /* Caret */) || t.isToken(
|
|
16651
|
+
} else if (t.isToken(1019 /* Caret */) || t.isToken(1048 /* OpenSquareBracket */) || t.isToken(1022 /* CloseSquareBracket */)) {
|
|
16205
16652
|
return 1;
|
|
16206
16653
|
} else {
|
|
16207
16654
|
return 0;
|
|
@@ -16345,7 +16792,7 @@ var EvaluatableExpressionServiceM = class {
|
|
|
16345
16792
|
case 1087 /* PackageVariableGetterDeclaration */:
|
|
16346
16793
|
case 1088 /* PackageVariableSetterDeclaration */:
|
|
16347
16794
|
case 1030 /* FieldGetterDeclaration */:
|
|
16348
|
-
case
|
|
16795
|
+
case 1031 /* FieldSetterDeclaration */:
|
|
16349
16796
|
case 1122 /* TranslationTextTemplateParameter */:
|
|
16350
16797
|
case 1091 /* ParameterDeclaration */:
|
|
16351
16798
|
case 1085 /* PackageTypeDeclaration */:
|
|
@@ -16366,7 +16813,8 @@ var EvaluatableExpressionServiceM = class {
|
|
|
16366
16813
|
case 1076 /* PackageFunctionTranslationDeclaration */:
|
|
16367
16814
|
case 1039 /* FunctionTypeTranslationDeclaration */:
|
|
16368
16815
|
case 1089 /* PackageVariableTranslationDeclaration */:
|
|
16369
|
-
case
|
|
16816
|
+
case 1032 /* FieldTranslation */:
|
|
16817
|
+
case 1145 /* VariantValueTranslation */:
|
|
16370
16818
|
case 1141 /* TypeTranslationDeclaration */:
|
|
16371
16819
|
case 1096 /* QualifiedName */:
|
|
16372
16820
|
case 1063 /* MethodTranslation */:
|
|
@@ -16390,7 +16838,7 @@ var HoverServiceM = class extends HoverService {
|
|
|
16390
16838
|
return 2;
|
|
16391
16839
|
} else if (t.isToken(1004 /* Asterisk */)) {
|
|
16392
16840
|
return 1;
|
|
16393
|
-
} else if (t.isToken(1019 /* Caret */) || t.isToken(
|
|
16841
|
+
} else if (t.isToken(1019 /* Caret */) || t.isToken(1048 /* OpenSquareBracket */) || t.isToken(1022 /* CloseSquareBracket */) || t.isToken(1046 /* OpenBrace */)) {
|
|
16394
16842
|
return 1;
|
|
16395
16843
|
} else {
|
|
16396
16844
|
return 0;
|
|
@@ -16533,7 +16981,7 @@ var SemanticTokensServiceM = class {
|
|
|
16533
16981
|
const meaning = analyzer.resolveIdentifierExpression(node);
|
|
16534
16982
|
if (meaning.kind === "variable-access") {
|
|
16535
16983
|
const variable = meaning.variable.entity;
|
|
16536
|
-
if (variable.subkind === "field" && variable.
|
|
16984
|
+
if (variable.subkind === "field" && variable.isVariantValue()) {
|
|
16537
16985
|
result.push(new SemanticToken(
|
|
16538
16986
|
node.rangeWithoutTrivia,
|
|
16539
16987
|
3 /* Variant */,
|
|
@@ -16577,7 +17025,7 @@ var SemanticTokensServiceM = class {
|
|
|
16577
17025
|
}
|
|
16578
17026
|
if (meaning.kind === "variant-value-access") {
|
|
16579
17027
|
const entity = meaning.field.entity;
|
|
16580
|
-
if (entity.
|
|
17028
|
+
if (entity.isVariantValue()) {
|
|
16581
17029
|
result.push(
|
|
16582
17030
|
new SemanticToken(
|
|
16583
17031
|
node.identifier.rangeWithoutTrivia,
|
|
@@ -16592,7 +17040,7 @@ var SemanticTokensServiceM = class {
|
|
|
16592
17040
|
const meaning = analyzer.resolveMemberAccessExpression(node);
|
|
16593
17041
|
if (meaning.kind === "static-field-access") {
|
|
16594
17042
|
const entity = meaning.field.entity;
|
|
16595
|
-
if (entity.subkind === "field" && entity.
|
|
17043
|
+
if (entity.subkind === "field" && entity.isVariantValue()) {
|
|
16596
17044
|
result.push(
|
|
16597
17045
|
new SemanticToken(
|
|
16598
17046
|
node.memberName.rangeWithoutTrivia,
|
|
@@ -16800,7 +17248,7 @@ var ParametersSignatureHelpProvider2 = class {
|
|
|
16800
17248
|
}
|
|
16801
17249
|
break;
|
|
16802
17250
|
}
|
|
16803
|
-
case
|
|
17251
|
+
case 1044 /* IndexedAccessExpression */: {
|
|
16804
17252
|
if (this.offset >= node.openSquareBracketToken.rangeWithoutTrivia.end && (node.closeSquareBracketToken.rangeWithoutTrivia.isEmpty || this.offset <= node.closeSquareBracketToken.rangeWithoutTrivia.start)) {
|
|
16805
17253
|
const args = ArgumentFactory2.createArgumentsOfIndexedAccessExpression(node);
|
|
16806
17254
|
const argumentIndex = this.getArgumentIndexInList(node.argumentList.elements, this.offset);
|
|
@@ -18222,24 +18670,37 @@ ${e}`);
|
|
|
18222
18670
|
});
|
|
18223
18671
|
}
|
|
18224
18672
|
onCompletionResolve(item) {
|
|
18225
|
-
|
|
18226
|
-
|
|
18227
|
-
|
|
18228
|
-
|
|
18229
|
-
|
|
18230
|
-
|
|
18231
|
-
|
|
18232
|
-
|
|
18233
|
-
|
|
18234
|
-
|
|
18235
|
-
|
|
18236
|
-
|
|
18237
|
-
|
|
18673
|
+
return __async(this, null, function* () {
|
|
18674
|
+
if (!isCompletionItemData(item.data)) {
|
|
18675
|
+
return item;
|
|
18676
|
+
}
|
|
18677
|
+
const { cacheId, indexInCache, dialect } = item.data;
|
|
18678
|
+
let resolutionResult;
|
|
18679
|
+
switch (dialect) {
|
|
18680
|
+
case 0 /* ArtelA */:
|
|
18681
|
+
resolutionResult = this.completionServiceA.resolveCompletionItem(cacheId, indexInCache);
|
|
18682
|
+
break;
|
|
18683
|
+
case 1 /* ArtelM */:
|
|
18684
|
+
resolutionResult = this.completionServiceM.resolveCompletionItem(cacheId, indexInCache);
|
|
18685
|
+
break;
|
|
18686
|
+
default:
|
|
18687
|
+
Debug.never(dialect);
|
|
18688
|
+
}
|
|
18689
|
+
let result;
|
|
18690
|
+
if (resolutionResult.kind === "item") {
|
|
18691
|
+
result = this.convertCompletionItem(resolutionResult.value, resolutionResult.sourceFile);
|
|
18692
|
+
result.textEdit = item.textEdit;
|
|
18693
|
+
} else {
|
|
18694
|
+
result = item;
|
|
18695
|
+
}
|
|
18696
|
+
return result;
|
|
18697
|
+
});
|
|
18238
18698
|
}
|
|
18239
18699
|
convertCompletionItem(item, sourceFile) {
|
|
18240
18700
|
const data = {
|
|
18241
18701
|
cacheId: item.cacheId,
|
|
18242
|
-
indexInCache: item.indexInCache
|
|
18702
|
+
indexInCache: item.indexInCache,
|
|
18703
|
+
dialect: sourceFile.dialect
|
|
18243
18704
|
};
|
|
18244
18705
|
let textEdit;
|
|
18245
18706
|
if (item.editRange !== void 0) {
|