@artel/artc 0.6.25243 → 0.6.25245
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 +30 -22
- package/build/api/ApiNodeJS.js +3 -3
- package/build/api/ApiServices.js +501 -917
- package/build/{chunk-EU5AITNE.js → chunk-FVBS6MPY.js} +1 -1
- package/build/{chunk-7D775S4V.js → chunk-T7WG4Z7I.js} +21039 -19038
- package/build/{chunk-7MCQTANE.js → chunk-TVZEHLXD.js} +2 -2
- package/build/types/analysis/AnalyzedTranslationPackage.d.ts +49 -80
- package/build/types/analysis/Analyzer.d.ts +59 -73
- package/build/types/analysis/ArgumentToParameterMatchResult.d.ts +8 -10
- package/build/types/analysis/AutotypeCallExpressionMeaning.d.ts +3 -4
- package/build/types/analysis/BaseExpressionMeaning.d.ts +3 -4
- package/build/types/analysis/BaseMemberConflictsValidator.d.ts +6 -6
- package/build/types/analysis/CallExpressionMeaning.d.ts +7 -9
- package/build/types/analysis/ConstructorOverloadResolver.d.ts +4 -7
- package/build/types/analysis/DeclarationsUsageCounter.d.ts +1 -2
- package/build/types/analysis/DereferenceExpressionMeaning.d.ts +2 -3
- package/build/types/analysis/DiagnosticCollector.d.ts +1 -0
- package/build/types/analysis/IdentifierExpressionMeaning.d.ts +16 -17
- package/build/types/analysis/ImportedPackageNameTree.d.ts +1 -7
- package/build/types/analysis/IndexedAccessExpressionMeaning.d.ts +4 -5
- package/build/types/analysis/Localization.d.ts +19 -25
- package/build/types/analysis/MemberAccessExpressionMeaning.d.ts +29 -31
- package/build/types/analysis/NamedTypeResolver.d.ts +6 -8
- package/build/types/analysis/NamedTypeSpecifierResolver.d.ts +3 -5
- package/build/types/analysis/ObjectExpressionMeaning.d.ts +3 -4
- package/build/types/analysis/PackageMemberLookup.d.ts +4 -9
- package/build/types/analysis/PackageMemberNameConflictsValidator.d.ts +2 -2
- package/build/types/analysis/SourceFileMembers.d.ts +3 -3
- package/build/types/analysis/TagMeaning.d.ts +18 -20
- package/build/types/analysis/Tags.d.ts +1 -1
- package/build/types/analysis/TypeMemberConflictsValidator.d.ts +2 -2
- package/build/types/analysis/TypeMemberLookup.d.ts +23 -31
- package/build/types/analysis/TypeNarrower.d.ts +1 -0
- package/build/types/analysis/UserDefinableBinaryOperatorResolver.d.ts +1 -2
- package/build/types/analysis/UserDefinableUnaryOperatorResolver.d.ts +1 -2
- package/build/types/analysis/WellKnownDeclarations.d.ts +100 -31
- package/build/types/analysis/semantic-context/FieldWithInitializerSemanticContext.d.ts +5 -6
- package/build/types/analysis/semantic-context/SemanticContextBase.d.ts +11 -14
- package/build/types/analysis/semantic-context/SemanticContextValidatingNameConflicts.d.ts +5 -6
- package/build/types/analysis/semantic-context/SourceFileSemanticContext.d.ts +5 -8
- package/build/types/analysis/semantic-context/SubprogramSemanticContext.d.ts +5 -6
- package/build/types/analysis/semantic-context/TypeSemanticContext.d.ts +11 -12
- package/build/types/api/Api.d.ts +0 -3
- package/build/types/common/Name.d.ts +9 -14
- package/build/types/common/TreeQuery.d.ts +2 -0
- package/build/types/common/index.d.ts +0 -1
- package/build/types/diagnostic/DiagnosticCode.d.ts +1 -1
- package/build/types/emitter/EntityMap.d.ts +1 -0
- package/build/types/entities/AliasTypeEntity.d.ts +9 -41
- package/build/types/entities/AliasedType.d.ts +62 -0
- package/build/types/entities/ConstructorEntity.d.ts +10 -2
- package/build/types/entities/DereferenceOperatorEntity.d.ts +5 -0
- package/build/types/entities/DestructorEntity.d.ts +6 -2
- package/build/types/entities/EntityLocalizationContext.d.ts +53 -0
- package/build/types/entities/FunctionEntity.d.ts +20 -0
- package/build/types/entities/FunctionTypeEntity.d.ts +15 -4
- package/build/types/entities/GetterEntity.d.ts +15 -2
- package/build/types/entities/IndexerEntity.d.ts +5 -0
- package/build/types/entities/OperatorEntity.d.ts +9 -3
- package/build/types/entities/PackageAliasEntity.d.ts +5 -0
- package/build/types/entities/PackageEntity.d.ts +8 -3
- package/build/types/entities/PackageMembers.d.ts +3 -2
- package/build/types/entities/SetterEntity.d.ts +15 -2
- package/build/types/entities/StructuredTypeEntity.d.ts +64 -15
- package/build/types/entities/TypeEntityMembers.d.ts +2 -5
- package/build/types/entities/TypeExtensionEntity.d.ts +9 -5
- package/build/types/entities/TypeMemberContainer.d.ts +2 -2
- package/build/types/entities/TypeParameterEntity.d.ts +26 -8
- package/build/types/entities/VariableEntity.d.ts +41 -1
- package/build/types/entities/VariantTypeEntity.d.ts +13 -4
- package/build/types/entities/index.d.ts +5 -4
- package/build/types/entities/translated/TranslatedAliasTypeEntity.d.ts +54 -0
- package/build/types/entities/translated/TranslatedConstructorEntity.d.ts +25 -0
- package/build/types/entities/translated/TranslatedDereferenceOperatorEntity.d.ts +34 -0
- package/build/types/entities/translated/TranslatedDestructorEntity.d.ts +24 -0
- package/build/types/entities/translated/TranslatedFunctionEntity.d.ts +75 -0
- package/build/types/entities/translated/TranslatedFunctionTypeEntity.d.ts +83 -0
- package/build/types/entities/translated/TranslatedGetterEntity.d.ts +25 -0
- package/build/types/entities/translated/TranslatedIndexerEntity.d.ts +37 -0
- package/build/types/entities/translated/TranslatedOperatorEntity.d.ts +35 -0
- package/build/types/entities/translated/TranslatedPackageEntity.d.ts +28 -0
- package/build/types/entities/translated/TranslatedSetterEntity.d.ts +22 -0
- package/build/types/entities/translated/TranslatedStructuredTypeEntity.d.ts +107 -0
- package/build/types/entities/translated/TranslatedTypeExtensionEntity.d.ts +28 -0
- package/build/types/entities/translated/TranslatedTypeParameterEntity.d.ts +46 -0
- package/build/types/entities/translated/TranslatedVariableEntity.d.ts +97 -0
- package/build/types/entities/translated/TranslatedVariantTypeEntity.d.ts +76 -0
- package/build/types/project/SourcePackage.d.ts +1 -0
- package/build/types/services/DefinitionService.d.ts +0 -1
- package/build/types/services/DisplayService.d.ts +39 -134
- package/build/types/services/NodeSemanticInfo.d.ts +7 -7
- package/build/types/services/ReferencesService.d.ts +5 -3
- package/build/types/services/signature-help/SignatureWithValueParameters.d.ts +7 -10
- package/build/types/services/source-generation/EntityToSyntax.d.ts +1 -3
- package/build/types/services/source-generation/SourceGenerationService.d.ts +1 -2
- package/build/types/tree/NodeKind.d.ts +1 -1
- package/build/types/tree/green/Nodes.d.ts +7 -7
- package/build/types/tree/green/Token.d.ts +6 -7
- package/build/types/tree/red/Nodes.d.ts +10 -10
- package/build/types/ts-interop/Entities.d.ts +64 -13
- package/build/types/ts-interop/TsInteropContext.d.ts +17 -5
- package/build/types/ts-interop/TsPackageContents.d.ts +2 -2
- package/build/types/ts-interop/TsPackageMembersCreator.d.ts +3 -3
- package/build/types/ts-interop/TsTypeMembersCreator.d.ts +4 -4
- package/build/types/types/StandardTypes.d.ts +3 -2
- package/build/types/types/Substitutions.d.ts +3 -0
- package/build/types/types/Type.d.ts +3 -0
- package/package.json +1 -1
- package/build/types/analysis/EntityLocalizationHelper.d.ts +0 -17
- package/build/types/analysis/FoundDeclaration.d.ts +0 -19
- package/build/types/analysis/LocalizationContext.d.ts +0 -15
- package/build/types/common/SearchName.d.ts +0 -14
- package/build/types/types/Internal.d.ts +0 -1
package/build/api/ApiServices.js
CHANGED
@@ -27,7 +27,6 @@ import {
|
|
27
27
|
DiagnosticCollector,
|
28
28
|
DisplayService,
|
29
29
|
Emitter,
|
30
|
-
EntityLocalizationHelper,
|
31
30
|
FieldDeclaration,
|
32
31
|
FieldGetterDeclaration,
|
33
32
|
FieldOrVariantTranslation,
|
@@ -57,8 +56,6 @@ import {
|
|
57
56
|
KeywordExpression,
|
58
57
|
LocaleByConfigurationDirectoryName,
|
59
58
|
LocaleByJsonConfigurationFileName,
|
60
|
-
Localization,
|
61
|
-
LocalizationContext,
|
62
59
|
LocalizationHelper,
|
63
60
|
Logger,
|
64
61
|
MethodDeclaration,
|
@@ -115,7 +112,6 @@ import {
|
|
115
112
|
Token,
|
116
113
|
TokenExpression,
|
117
114
|
TopLevelTranslationList,
|
118
|
-
Translation,
|
119
115
|
TranslationParameterClause,
|
120
116
|
TranslationParameterList,
|
121
117
|
TranslationTypeParameterClause,
|
@@ -182,7 +178,7 @@ import {
|
|
182
178
|
unwrapParenthesizedExpressions,
|
183
179
|
visitChildren,
|
184
180
|
yieldExecution
|
185
|
-
} from "../chunk-
|
181
|
+
} from "../chunk-T7WG4Z7I.js";
|
186
182
|
|
187
183
|
// source/services/CustomCommand.ts
|
188
184
|
import * as ls from "vscode-languageserver";
|
@@ -2156,7 +2152,7 @@ var SyntaxToCode = class _SyntaxToCode {
|
|
2156
2152
|
[142 /* TranslationTextTemplate */]: this.prototype.writeNodeDefault,
|
2157
2153
|
[143 /* TranslationTextTemplateSpanList */]: this.prototype.writeNodeDefault,
|
2158
2154
|
[144 /* TranslationTextTemplateSpan */]: this.prototype.writeNodeDefault,
|
2159
|
-
[145 /*
|
2155
|
+
[145 /* TranslationTextTemplateParameterDeclaration */]: this.prototype.writeNodeDefault
|
2160
2156
|
};
|
2161
2157
|
return writeFunctions;
|
2162
2158
|
}
|
@@ -2405,7 +2401,7 @@ var TranslationsGenerator = class _TranslationsGenerator {
|
|
2405
2401
|
if (memberEntities.length > 0) {
|
2406
2402
|
const newLine = this.detectNewLine();
|
2407
2403
|
const syntaxToCodeOptions = {
|
2408
|
-
keywordsLocale: this._translationPackage.
|
2404
|
+
keywordsLocale: this._translationPackage.getTargetPackage().getLocale(),
|
2409
2405
|
keywordsDialect: this._dialect,
|
2410
2406
|
initialIndentation: this.detectIndentationForPackageMemberTranslations(translationsDeclaration),
|
2411
2407
|
indentationStep: this.detectIndentationStepForTypeMemberTranslations(translationsDeclaration),
|
@@ -2465,7 +2461,7 @@ var TranslationsGenerator = class _TranslationsGenerator {
|
|
2465
2461
|
}
|
2466
2462
|
const newLine = this.detectNewLine();
|
2467
2463
|
const syntaxToCodeOptions = {
|
2468
|
-
keywordsLocale: this._translationPackage.
|
2464
|
+
keywordsLocale: this._translationPackage.getTargetPackage().getLocale(),
|
2469
2465
|
keywordsDialect: this._dialect,
|
2470
2466
|
initialIndentation: this.detectIndentationForTypeMemberTranslations(typeTranslation),
|
2471
2467
|
indentationStep: this.detectIndentationStepForTypeMemberTranslations(typeTranslation),
|
@@ -2498,33 +2494,32 @@ var TranslationsGenerator = class _TranslationsGenerator {
|
|
2498
2494
|
}
|
2499
2495
|
collectNotTranslatedTypeMembers(entity) {
|
2500
2496
|
const result = new Array();
|
2501
|
-
const
|
2502
|
-
const
|
2503
|
-
const
|
2504
|
-
for (const member of membersOfTargetType.getNamedMembers()) {
|
2497
|
+
const translatedTypeEntity = this._translationPackage.entityLocalizationContext.getLocalizedPackageTypeEntity(entity);
|
2498
|
+
const members = translatedTypeEntity.getMembers();
|
2499
|
+
for (const member of members.getNamedMembers()) {
|
2505
2500
|
if (member.isHidden() !== void 0) {
|
2506
2501
|
continue;
|
2507
2502
|
}
|
2508
|
-
if (
|
2503
|
+
if (this.isNotTranslatedEntity(member)) {
|
2509
2504
|
result.push(member);
|
2510
2505
|
}
|
2511
2506
|
}
|
2512
|
-
for (const constructor of
|
2507
|
+
for (const constructor of members.getConstructors()) {
|
2513
2508
|
if (constructor.isHidden() !== void 0) {
|
2514
2509
|
continue;
|
2515
2510
|
}
|
2516
2511
|
if (constructor.isDefault() !== void 0) {
|
2517
2512
|
continue;
|
2518
2513
|
}
|
2519
|
-
if (constructor.getValueParameters().length > 0 && this.
|
2514
|
+
if (constructor.getValueParameters().length > 0 && this.isNotTranslatedEntity(constructor)) {
|
2520
2515
|
result.push(constructor);
|
2521
2516
|
}
|
2522
2517
|
}
|
2523
|
-
for (const indexer of
|
2518
|
+
for (const indexer of members.getIndexers()) {
|
2524
2519
|
if (indexer.isHidden() !== void 0) {
|
2525
2520
|
continue;
|
2526
2521
|
}
|
2527
|
-
if (indexer.getValueParameters().length > 0 && this.
|
2522
|
+
if (indexer.getValueParameters().length > 0 && this.isNotTranslatedEntity(indexer)) {
|
2528
2523
|
result.push(indexer);
|
2529
2524
|
}
|
2530
2525
|
}
|
@@ -2582,18 +2577,11 @@ var TranslationsGenerator = class _TranslationsGenerator {
|
|
2582
2577
|
return " ".repeat(indentationSize);
|
2583
2578
|
}
|
2584
2579
|
collectNotTranslatedPackageMembers() {
|
2585
|
-
|
2586
|
-
|
2587
|
-
|
2588
|
-
|
2589
|
-
|
2590
|
-
continue;
|
2591
|
-
}
|
2592
|
-
if (!translatedPackageMembers.has(member)) {
|
2593
|
-
result.push(member);
|
2594
|
-
}
|
2595
|
-
}
|
2596
|
-
return result;
|
2580
|
+
return this._translationPackage.getPackageInTranslatedLanguage().getMembers().getNamedMembers().filter((m) => m.isHidden() === void 0 && this.isNotTranslatedEntity(m));
|
2581
|
+
}
|
2582
|
+
isNotTranslatedEntity(entity) {
|
2583
|
+
const localization = entity.getLocalization();
|
2584
|
+
return localization.kind === "original" || localization.translation.definition.kind === "intrinsic" && localization.translation.definition.isMissingTranslationReplacement;
|
2597
2585
|
}
|
2598
2586
|
createPackageMemberTranslationNode(entity) {
|
2599
2587
|
switch (entity.kind) {
|
@@ -2672,7 +2660,7 @@ var TranslationsGenerator = class _TranslationsGenerator {
|
|
2672
2660
|
return SyntaxFactory.indexerTranslation(parameters, parameters);
|
2673
2661
|
}
|
2674
2662
|
getNameText(name) {
|
2675
|
-
const flags = name.flags & ~
|
2663
|
+
const flags = name.flags & ~8 /* ConflictResolvingParameterName */;
|
2676
2664
|
return name.getPreferredUnescapedOriginal(flags);
|
2677
2665
|
}
|
2678
2666
|
// TODO: Работать с синтаксическим деревом и использовать Trivia для добавления перевода строки. Требуется доработка
|
@@ -3028,16 +3016,7 @@ var AccessedFunctionSignature = class {
|
|
3028
3016
|
this.func = func;
|
3029
3017
|
}
|
3030
3018
|
getValueParameters() {
|
3031
|
-
return this._valueParameters.getOrInsertWith(() =>
|
3032
|
-
const localizedSignature = EntityLocalizationHelper.getLocalizedFunctionSignature(
|
3033
|
-
this.func.value.getEntity(),
|
3034
|
-
this.func.localization
|
3035
|
-
);
|
3036
|
-
return Query.from(this.func.value.getValueParameters()).zip(
|
3037
|
-
localizedSignature.getValueParameterNames(),
|
3038
|
-
(p, n) => new UniversalValueParameter(n.value, p.type, p.entity, n.localization)
|
3039
|
-
).toArray();
|
3040
|
-
});
|
3019
|
+
return this._valueParameters.getOrInsertWith(() => this.func.getValueParameters().map((p) => new UniversalValueParameter(p.type, p.entity)));
|
3041
3020
|
}
|
3042
3021
|
};
|
3043
3022
|
var FunctionTypeSignature = class {
|
@@ -3047,16 +3026,7 @@ var FunctionTypeSignature = class {
|
|
3047
3026
|
this.functionType = functionType;
|
3048
3027
|
}
|
3049
3028
|
getValueParameters() {
|
3050
|
-
return this._valueParameters.getOrInsertWith(
|
3051
|
-
() => this.functionType.getValueParameters().map(
|
3052
|
-
(p) => new UniversalValueParameter(
|
3053
|
-
p.getName(),
|
3054
|
-
p.getType(),
|
3055
|
-
p.getEntity(),
|
3056
|
-
Localization.Original.ofEntity(p.getEntity())
|
3057
|
-
)
|
3058
|
-
)
|
3059
|
-
);
|
3029
|
+
return this._valueParameters.getOrInsertWith(() => this.functionType.getValueParameters().map((p) => new UniversalValueParameter(p.getType(), p.getEntity())));
|
3060
3030
|
}
|
3061
3031
|
};
|
3062
3032
|
var ConstructorSignature = class {
|
@@ -3066,16 +3036,7 @@ var ConstructorSignature = class {
|
|
3066
3036
|
this.constructor_ = constructor_;
|
3067
3037
|
}
|
3068
3038
|
getValueParameters() {
|
3069
|
-
return this._valueParameters.getOrInsertWith(() =>
|
3070
|
-
const localizedSignature = EntityLocalizationHelper.getLocalizedConstructorSignature(
|
3071
|
-
this.constructor_.value.getEntity(),
|
3072
|
-
this.constructor_.localization
|
3073
|
-
);
|
3074
|
-
return Query.from(this.constructor_.value.getValueParameters()).zip(
|
3075
|
-
localizedSignature.getValueParameterNames(),
|
3076
|
-
(p, n) => new UniversalValueParameter(n.value, p.getType(), p.getEntity(), n.localization)
|
3077
|
-
).toArray();
|
3078
|
-
});
|
3039
|
+
return this._valueParameters.getOrInsertWith(() => this.constructor_.getValueParameters().map((p) => new UniversalValueParameter(p.getType(), p.getEntity())));
|
3079
3040
|
}
|
3080
3041
|
};
|
3081
3042
|
var IndexerSignature = class {
|
@@ -3085,27 +3046,16 @@ var IndexerSignature = class {
|
|
3085
3046
|
this.indexer = indexer;
|
3086
3047
|
}
|
3087
3048
|
getValueParameters() {
|
3088
|
-
return this._valueParameters.getOrInsertWith(() =>
|
3089
|
-
const localizedSignature = EntityLocalizationHelper.getLocalizedIndexerSignature(
|
3090
|
-
this.indexer.value.getEntity(),
|
3091
|
-
this.indexer.localization
|
3092
|
-
);
|
3093
|
-
return Query.from(this.indexer.value.getValueParameters()).zip(
|
3094
|
-
localizedSignature.getValueParameterNames(),
|
3095
|
-
(p, n) => new UniversalValueParameter(n.value, p.getType(), p.getEntity(), n.localization)
|
3096
|
-
).toArray();
|
3097
|
-
});
|
3049
|
+
return this._valueParameters.getOrInsertWith(() => this.indexer.getValueParameters().map((p) => new UniversalValueParameter(p.getType(), p.getEntity())));
|
3098
3050
|
}
|
3099
3051
|
};
|
3100
3052
|
var UniversalValueParameter = class {
|
3101
|
-
constructor(
|
3102
|
-
this.name = name;
|
3053
|
+
constructor(type, entity) {
|
3103
3054
|
this.type = type;
|
3104
3055
|
this.entity = entity;
|
3105
|
-
this.localization = localization;
|
3106
3056
|
}
|
3107
3057
|
getName() {
|
3108
|
-
return this.
|
3058
|
+
return this.entity.getName();
|
3109
3059
|
}
|
3110
3060
|
getType() {
|
3111
3061
|
return this.type;
|
@@ -3121,11 +3071,7 @@ var CompletionService = class {
|
|
3121
3071
|
get completionItemInfoContext() {
|
3122
3072
|
return this._completionItemInfoContext.getOrInsertWith(
|
3123
3073
|
() => new CompletionItemInfoContext(
|
3124
|
-
new DisplayService(
|
3125
|
-
this._analyzer,
|
3126
|
-
this._analyzer.createLocalizationContext(this._sourceFile),
|
3127
|
-
this._dialect
|
3128
|
-
),
|
3074
|
+
new DisplayService(this._analyzer, this._locale, this._dialect),
|
3129
3075
|
this._locale,
|
3130
3076
|
Query.from(getOrCreateKeywordDictionary(this._locale, this._dialect).values()).mapAndFilter((k) => k.keywordKind !== 0 /* Unknown */ ? k.value : void 0).uniqueToSet()
|
3131
3077
|
)
|
@@ -3236,10 +3182,7 @@ var CompletionService = class {
|
|
3236
3182
|
if (info !== void 0) {
|
3237
3183
|
let lookup;
|
3238
3184
|
if (info.packageTreeNode.package !== void 0) {
|
3239
|
-
lookup = new PackageMemberLookup(
|
3240
|
-
info.packageTreeNode.package.value,
|
3241
|
-
semanticContext.getLocalizationContext()
|
3242
|
-
);
|
3185
|
+
lookup = new PackageMemberLookup(info.packageTreeNode.package);
|
3243
3186
|
}
|
3244
3187
|
const hidingMatcher2 = semanticContext.getHidingMatcher();
|
3245
3188
|
return new PackageNameSegmentCompletionContext(info.packageTreeNode, lookup, hidingMatcher2);
|
@@ -3250,7 +3193,7 @@ var CompletionService = class {
|
|
3250
3193
|
if (info !== void 0) {
|
3251
3194
|
const package_ = info.packageAlias.getPackage();
|
3252
3195
|
if (package_ !== void 0) {
|
3253
|
-
const lookup = new PackageMemberLookup(package_
|
3196
|
+
const lookup = new PackageMemberLookup(package_);
|
3254
3197
|
const hidingMatcher2 = semanticContext.getHidingMatcher();
|
3255
3198
|
return new PackageAliasMemberCompletionContext(lookup, hidingMatcher2);
|
3256
3199
|
}
|
@@ -3258,16 +3201,9 @@ var CompletionService = class {
|
|
3258
3201
|
}
|
3259
3202
|
}
|
3260
3203
|
const type = this._analyzer.type.ofExpression(memberAccess.expression);
|
3261
|
-
const localizationContext = semanticContext.getLocalizationContext();
|
3262
3204
|
const isStaticAccess = this._analyzer.checkExpressionDenotesType(memberAccess.expression) !== void 0;
|
3263
3205
|
const hidingMatcher = semanticContext.getHidingMatcher();
|
3264
|
-
return new TypeMemberCompletionContext(
|
3265
|
-
type,
|
3266
|
-
localizationContext,
|
3267
|
-
isStaticAccess,
|
3268
|
-
hidingMatcher,
|
3269
|
-
semanticContext
|
3270
|
-
);
|
3206
|
+
return new TypeMemberCompletionContext(type, isStaticAccess, hidingMatcher, semanticContext);
|
3271
3207
|
}
|
3272
3208
|
if (tokenOrKeyword.isToken(27 /* Dot */) && tokenOrKeyword.parent.kind === 135 /* QualifiedName */ && tokenOrKeyword.parent.parent.kind === 10 /* NamedTypeSpecifier */) {
|
3273
3209
|
const namedTypeSpecifier = tokenOrKeyword.parent.parent;
|
@@ -3286,10 +3222,7 @@ var CompletionService = class {
|
|
3286
3222
|
if (resolvedQualifier.kind === "package-name-segment") {
|
3287
3223
|
let lookup;
|
3288
3224
|
if (resolvedQualifier.packageTreeNode.package !== void 0) {
|
3289
|
-
lookup = new PackageMemberLookup(
|
3290
|
-
resolvedQualifier.packageTreeNode.package.value,
|
3291
|
-
semanticContext.getLocalizationContext()
|
3292
|
-
);
|
3225
|
+
lookup = new PackageMemberLookup(resolvedQualifier.packageTreeNode.package);
|
3293
3226
|
}
|
3294
3227
|
const hidingMatcher = semanticContext.getHidingMatcher();
|
3295
3228
|
const typeSearchLocation = new PackageNameSegmentTypeSearchLocation(
|
@@ -3302,7 +3235,7 @@ var CompletionService = class {
|
|
3302
3235
|
if (resolvedQualifier.kind === "package-alias") {
|
3303
3236
|
const package_ = resolvedQualifier.packageAlias.getPackage();
|
3304
3237
|
if (package_ !== void 0) {
|
3305
|
-
const lookup = new PackageMemberLookup(package_
|
3238
|
+
const lookup = new PackageMemberLookup(package_);
|
3306
3239
|
const hidingMatcher = semanticContext.getHidingMatcher();
|
3307
3240
|
const typeSearchLocation = new PackageAliasTypeSearchLocation(lookup, hidingMatcher);
|
3308
3241
|
return new TypeCompletionContext(typeSearchLocation, completionInIsOrAsExpressionInfo);
|
@@ -3322,10 +3255,7 @@ var CompletionService = class {
|
|
3322
3255
|
if (resolvedQualifier.kind === "package-name-segment") {
|
3323
3256
|
let lookup;
|
3324
3257
|
if (resolvedQualifier.packageTreeNode.package !== void 0) {
|
3325
|
-
lookup = new PackageMemberLookup(
|
3326
|
-
resolvedQualifier.packageTreeNode.package.value,
|
3327
|
-
semanticContext.getLocalizationContext()
|
3328
|
-
);
|
3258
|
+
lookup = new PackageMemberLookup(resolvedQualifier.packageTreeNode.package);
|
3329
3259
|
}
|
3330
3260
|
const hidingMatcher = semanticContext.getHidingMatcher();
|
3331
3261
|
const typeSearchLocation = new PackageNameSegmentTypeSearchLocation(
|
@@ -3338,7 +3268,7 @@ var CompletionService = class {
|
|
3338
3268
|
if (resolvedQualifier.kind === "package-alias") {
|
3339
3269
|
const package_ = resolvedQualifier.packageAlias.getPackage();
|
3340
3270
|
if (package_ !== void 0) {
|
3341
|
-
const lookup = new PackageMemberLookup(package_
|
3271
|
+
const lookup = new PackageMemberLookup(package_);
|
3342
3272
|
const hidingMatcher = semanticContext.getHidingMatcher();
|
3343
3273
|
const typeSearchLocation = new PackageAliasTypeSearchLocation(lookup, hidingMatcher);
|
3344
3274
|
return new TagCompletionContext(typeSearchLocation);
|
@@ -3363,13 +3293,7 @@ var CompletionService = class {
|
|
3363
3293
|
}
|
3364
3294
|
if (syntaxContext.isExpressionContext !== void 0) {
|
3365
3295
|
const { targetTypes, targetSignaturesParameters } = this.getTargetTypesAndTargetSignaturesParameters(syntaxContext.isExpressionContext.expressionRole, semanticContext);
|
3366
|
-
|
3367
|
-
return new ExpressionCompletionContext(
|
3368
|
-
semanticContext,
|
3369
|
-
targetSignaturesParameters,
|
3370
|
-
targetTypes,
|
3371
|
-
localizationContext
|
3372
|
-
);
|
3296
|
+
return new ExpressionCompletionContext(semanticContext, targetSignaturesParameters, targetTypes);
|
3373
3297
|
}
|
3374
3298
|
const topLevelTranslationCompletionContext = this.tryGetTopLevelTranslationCompletionContext(
|
3375
3299
|
syntaxContext,
|
@@ -3422,11 +3346,8 @@ var CompletionService = class {
|
|
3422
3346
|
hasPrecedingKeyword = true;
|
3423
3347
|
}
|
3424
3348
|
if (translationsDeclaration !== void 0) {
|
3425
|
-
const sourceLocale = translationPackage.
|
3426
|
-
const translatedPackageMemberLookup = new PackageMemberLookup(
|
3427
|
-
translationPackage.getTranslatedPackage(),
|
3428
|
-
semanticContext.getLocalizationContext()
|
3429
|
-
);
|
3349
|
+
const sourceLocale = translationPackage.getTargetPackage().getLocale();
|
3350
|
+
const translatedPackageMemberLookup = new PackageMemberLookup(translationPackage.getTargetPackage());
|
3430
3351
|
const hidingMatcher = semanticContext.getHidingMatcher();
|
3431
3352
|
return new TopLevelTranslationListCompletionContext(
|
3432
3353
|
sourceLocale,
|
@@ -3440,7 +3361,7 @@ var CompletionService = class {
|
|
3440
3361
|
const qualifiedName = tokenOrKeyword.parent;
|
3441
3362
|
if (qualifiedName.parent.kind === 134 /* PackageImportTranslation */ && qualifiedName === qualifiedName.parent.sourceName) {
|
3442
3363
|
const precedingSegmentNames = qualifiedName.qualifiers.takeWhile((s) => s.rangeStart < tokenOrKeyword.value.rangeStart).map((p) => this._analyzer.createNameFromIdentifier(p)).toArray();
|
3443
|
-
const sourceLocale = translationPackage.
|
3364
|
+
const sourceLocale = translationPackage.getTargetPackage().getLocale();
|
3444
3365
|
return new PackageImportCompletionContext(precedingSegmentNames, { sourceLocale });
|
3445
3366
|
}
|
3446
3367
|
}
|
@@ -3474,7 +3395,7 @@ var CompletionService = class {
|
|
3474
3395
|
hasPrecedingKeyword = true;
|
3475
3396
|
}
|
3476
3397
|
if (typeTranslation !== void 0) {
|
3477
|
-
const sourceLocale = translationPackage.
|
3398
|
+
const sourceLocale = translationPackage.getTargetPackage().getLocale();
|
3478
3399
|
let type;
|
3479
3400
|
if (this._sourceFile.package.kind === "translation") {
|
3480
3401
|
const translationPackage2 = this._analyzer.getAnalyzedTranslationPackageIfTargetResolved(
|
@@ -3553,13 +3474,14 @@ var CompletionService = class {
|
|
3553
3474
|
return { targetTypes: void 0, targetSignaturesParameters: void 0 };
|
3554
3475
|
}
|
3555
3476
|
if (role.kind === "error-value") {
|
3556
|
-
const
|
3557
|
-
|
3558
|
-
|
3477
|
+
const standardTypes = this._analyzer.getLocalizedStandardTypes(
|
3478
|
+
TreeQuery.fromNode(role.errorStatement).locale(this._analyzer)
|
3479
|
+
);
|
3480
|
+
return { targetTypes: [standardTypes.error, standardTypes.text], targetSignaturesParameters: void 0 };
|
3559
3481
|
}
|
3560
3482
|
if (role.kind === "function-block-expression") {
|
3561
3483
|
const targetType = semanticContext.getContainingSubprogram()?.getReturnType();
|
3562
|
-
if (targetType !== void 0 && !targetType.equals(this._analyzer.
|
3484
|
+
if (targetType !== void 0 && !targetType.equals(this._analyzer.originalStandardTypes.none)) {
|
3563
3485
|
return { targetTypes: [targetType], targetSignaturesParameters: void 0 };
|
3564
3486
|
}
|
3565
3487
|
return { targetTypes: void 0, targetSignaturesParameters: void 0 };
|
@@ -3789,9 +3711,9 @@ var CompletionService = class {
|
|
3789
3711
|
return result;
|
3790
3712
|
}
|
3791
3713
|
prioritizeItemsFromUnionType(items, type) {
|
3792
|
-
const constituentTypeEntities = Query.from(type.unaliasedFlattenedTypes).mapAndFilter((t) => t.getEntity()).uniqueToSet();
|
3714
|
+
const constituentTypeEntities = Query.from(type.unaliasedFlattenedTypes).mapAndFilter((t) => t.getEntity()?.getOriginalEntity()).uniqueToSet();
|
3793
3715
|
for (const item of items) {
|
3794
|
-
if (item.kind === "named-type" && constituentTypeEntities.has(item.entity)) {
|
3716
|
+
if (item.kind === "named-type" && constituentTypeEntities.has(item.entity.getOriginalEntity())) {
|
3795
3717
|
item.prefix = "*";
|
3796
3718
|
item.sortText = "10" /* Highest */;
|
3797
3719
|
}
|
@@ -3802,53 +3724,33 @@ var CompletionService = class {
|
|
3802
3724
|
}
|
3803
3725
|
getScopeCompletionItemInfos(semanticContext) {
|
3804
3726
|
return Query.from(semanticContext.getNamedDeclarations()).map((d) => {
|
3805
|
-
switch (d.
|
3727
|
+
switch (d.kind) {
|
3806
3728
|
case "variable": {
|
3807
|
-
if (d.value.
|
3808
|
-
return new VariableEntityCompletionItemInfo(
|
3809
|
-
this.completionItemInfoContext,
|
3810
|
-
d.value.value.value,
|
3811
|
-
d.name,
|
3812
|
-
d.requiresExplicitOriginalName
|
3813
|
-
);
|
3729
|
+
if (d.value.kind === "entity") {
|
3730
|
+
return new VariableEntityCompletionItemInfo(this.completionItemInfoContext, d.value.value);
|
3814
3731
|
} else {
|
3815
|
-
return new FieldCompletionItemInfo(
|
3816
|
-
this.completionItemInfoContext,
|
3817
|
-
d.value.value.value,
|
3818
|
-
d.name,
|
3819
|
-
d.requiresExplicitOriginalName
|
3820
|
-
);
|
3732
|
+
return new FieldCompletionItemInfo(this.completionItemInfoContext, d.value.value);
|
3821
3733
|
}
|
3822
3734
|
}
|
3823
3735
|
case "function": {
|
3824
|
-
if (d.value.
|
3825
|
-
return new FunctionEntityCompletionItemInfo(
|
3826
|
-
this.completionItemInfoContext,
|
3827
|
-
d.value.value.value,
|
3828
|
-
d.name,
|
3829
|
-
d.requiresExplicitOriginalName
|
3830
|
-
);
|
3736
|
+
if (d.value.kind === "entity") {
|
3737
|
+
return new FunctionEntityCompletionItemInfo(this.completionItemInfoContext, d.value.value);
|
3831
3738
|
} else {
|
3832
|
-
return new MethodCompletionItemInfo(
|
3833
|
-
this.completionItemInfoContext,
|
3834
|
-
d.value.value.value,
|
3835
|
-
d.name,
|
3836
|
-
d.requiresExplicitOriginalName
|
3837
|
-
);
|
3739
|
+
return new MethodCompletionItemInfo(this.completionItemInfoContext, d.value.value);
|
3838
3740
|
}
|
3839
3741
|
}
|
3840
3742
|
case "type": {
|
3841
|
-
return this.createTypeEntityCompletionItemInfo(d.value
|
3743
|
+
return this.createTypeEntityCompletionItemInfo(d.value);
|
3842
3744
|
}
|
3843
3745
|
case "package-alias":
|
3844
|
-
return new PackageAliasEntityCompletionItemInfo(this.completionItemInfoContext, d.value
|
3746
|
+
return new PackageAliasEntityCompletionItemInfo(this.completionItemInfoContext, d.value);
|
3845
3747
|
case "package-name-segment":
|
3846
|
-
return new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, d.name
|
3748
|
+
return new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, d.value.name);
|
3847
3749
|
default:
|
3848
|
-
Debug.never(d
|
3750
|
+
Debug.never(d);
|
3849
3751
|
}
|
3850
3752
|
}).chain(
|
3851
|
-
Query.from(semanticContext.getOperators()).map((o) => new OperatorCompletionItemInfo(this.completionItemInfoContext, o
|
3753
|
+
Query.from(semanticContext.getOperators()).map((o) => new OperatorCompletionItemInfo(this.completionItemInfoContext, o))
|
3852
3754
|
);
|
3853
3755
|
}
|
3854
3756
|
getTypeCompletionItemInfos(ctx) {
|
@@ -3874,13 +3776,8 @@ var CompletionService = class {
|
|
3874
3776
|
}
|
3875
3777
|
getTypeCompletionItemInfosFromPackage(searchLocation) {
|
3876
3778
|
return searchLocation.packageMemberLookup.getNamedMembers(searchLocation.hidingMatcher).map((m) => {
|
3877
|
-
if (m.
|
3878
|
-
return new NamedTypeCompletionItemInfo(
|
3879
|
-
this.completionItemInfoContext,
|
3880
|
-
m.value,
|
3881
|
-
m.name,
|
3882
|
-
m.requiresExplicitOriginalName
|
3883
|
-
);
|
3779
|
+
if (m.kind === 2 /* Type */) {
|
3780
|
+
return new NamedTypeCompletionItemInfo(this.completionItemInfoContext, m);
|
3884
3781
|
}
|
3885
3782
|
return void 0;
|
3886
3783
|
}).filter((i) => i !== void 0);
|
@@ -3891,13 +3788,8 @@ var CompletionService = class {
|
|
3891
3788
|
const lookup = searchLocation.packageMemberLookup;
|
3892
3789
|
query = query.chain(
|
3893
3790
|
lookup.getNamedMembers(searchLocation.hidingMatcher).map((m) => {
|
3894
|
-
if (m.
|
3895
|
-
return new NamedTypeCompletionItemInfo(
|
3896
|
-
this.completionItemInfoContext,
|
3897
|
-
m.value,
|
3898
|
-
m.name,
|
3899
|
-
m.requiresExplicitOriginalName
|
3900
|
-
);
|
3791
|
+
if (m.kind === 2 /* Type */) {
|
3792
|
+
return new NamedTypeCompletionItemInfo(this.completionItemInfoContext, m);
|
3901
3793
|
}
|
3902
3794
|
return void 0;
|
3903
3795
|
}).filter((i) => i !== void 0)
|
@@ -3907,21 +3799,16 @@ var CompletionService = class {
|
|
3907
3799
|
}
|
3908
3800
|
getTypeCompletionItemInfosFromScope(searchLocation) {
|
3909
3801
|
return searchLocation.semanticContext.getTypesOrContainersWithTypes().map((d) => {
|
3910
|
-
switch (d.
|
3802
|
+
switch (d.kind) {
|
3911
3803
|
case "type": {
|
3912
|
-
return new NamedTypeCompletionItemInfo(
|
3913
|
-
this.completionItemInfoContext,
|
3914
|
-
d.value.value,
|
3915
|
-
d.name,
|
3916
|
-
d.requiresExplicitOriginalName
|
3917
|
-
);
|
3804
|
+
return new NamedTypeCompletionItemInfo(this.completionItemInfoContext, d.value);
|
3918
3805
|
}
|
3919
3806
|
case "package-name-segment":
|
3920
|
-
return new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, d.name
|
3807
|
+
return new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, d.value.name);
|
3921
3808
|
case "package-alias":
|
3922
|
-
return new PackageAliasEntityCompletionItemInfo(this.completionItemInfoContext, d.value
|
3809
|
+
return new PackageAliasEntityCompletionItemInfo(this.completionItemInfoContext, d.value);
|
3923
3810
|
default:
|
3924
|
-
Debug.never(d
|
3811
|
+
Debug.never(d);
|
3925
3812
|
}
|
3926
3813
|
});
|
3927
3814
|
}
|
@@ -3942,20 +3829,10 @@ var CompletionService = class {
|
|
3942
3829
|
}
|
3943
3830
|
getTagCompletionItemInfosFromPackage(searchLocation) {
|
3944
3831
|
return searchLocation.packageMemberLookup.getNamedMembers(searchLocation.hidingMatcher).map((m) => {
|
3945
|
-
if (m.
|
3946
|
-
return new NamedTypeCompletionItemInfo(
|
3947
|
-
|
3948
|
-
|
3949
|
-
m.name,
|
3950
|
-
m.requiresExplicitOriginalName
|
3951
|
-
);
|
3952
|
-
} else if (m.value.kind === 1 /* Function */) {
|
3953
|
-
return new FunctionEntityCompletionItemInfo(
|
3954
|
-
this.completionItemInfoContext,
|
3955
|
-
m.value,
|
3956
|
-
m.name,
|
3957
|
-
m.requiresExplicitOriginalName
|
3958
|
-
);
|
3832
|
+
if (m.kind === 2 /* Type */) {
|
3833
|
+
return new NamedTypeCompletionItemInfo(this.completionItemInfoContext, m);
|
3834
|
+
} else if (m.kind === 1 /* Function */) {
|
3835
|
+
return new FunctionEntityCompletionItemInfo(this.completionItemInfoContext, m);
|
3959
3836
|
}
|
3960
3837
|
return void 0;
|
3961
3838
|
}).filter((i) => i !== void 0);
|
@@ -3966,20 +3843,10 @@ var CompletionService = class {
|
|
3966
3843
|
const lookup = searchLocation.packageMemberLookup;
|
3967
3844
|
query = query.chain(
|
3968
3845
|
lookup.getNamedMembers(searchLocation.hidingMatcher).map((m) => {
|
3969
|
-
if (m.
|
3970
|
-
return new NamedTypeCompletionItemInfo(
|
3971
|
-
|
3972
|
-
|
3973
|
-
m.name,
|
3974
|
-
m.requiresExplicitOriginalName
|
3975
|
-
);
|
3976
|
-
} else if (m.value.kind === 1 /* Function */) {
|
3977
|
-
return new FunctionEntityCompletionItemInfo(
|
3978
|
-
this.completionItemInfoContext,
|
3979
|
-
m.value,
|
3980
|
-
m.name,
|
3981
|
-
m.requiresExplicitOriginalName
|
3982
|
-
);
|
3846
|
+
if (m.kind === 2 /* Type */) {
|
3847
|
+
return new NamedTypeCompletionItemInfo(this.completionItemInfoContext, m);
|
3848
|
+
} else if (m.kind === 1 /* Function */) {
|
3849
|
+
return new FunctionEntityCompletionItemInfo(this.completionItemInfoContext, m);
|
3983
3850
|
}
|
3984
3851
|
return void 0;
|
3985
3852
|
}).filter((i) => i !== void 0)
|
@@ -3989,104 +3856,67 @@ var CompletionService = class {
|
|
3989
3856
|
}
|
3990
3857
|
getTagCompletionItemInfosFromScope(searchLocation) {
|
3991
3858
|
return searchLocation.semanticContext.getNamedDeclarations().map((d) => {
|
3992
|
-
switch (d.
|
3859
|
+
switch (d.kind) {
|
3993
3860
|
case "type":
|
3994
|
-
return new NamedTypeCompletionItemInfo(
|
3995
|
-
this.completionItemInfoContext,
|
3996
|
-
d.value.value,
|
3997
|
-
d.name,
|
3998
|
-
d.requiresExplicitOriginalName
|
3999
|
-
);
|
3861
|
+
return new NamedTypeCompletionItemInfo(this.completionItemInfoContext, d.value);
|
4000
3862
|
case "function":
|
4001
|
-
return new FunctionEntityCompletionItemInfo(
|
4002
|
-
this.completionItemInfoContext,
|
4003
|
-
d.value.value.getEntity(),
|
4004
|
-
d.name,
|
4005
|
-
d.requiresExplicitOriginalName
|
4006
|
-
);
|
3863
|
+
return new FunctionEntityCompletionItemInfo(this.completionItemInfoContext, d.value.getEntity());
|
4007
3864
|
case "package-name-segment":
|
4008
|
-
return new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, d.name
|
3865
|
+
return new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, d.value.name);
|
4009
3866
|
case "package-alias":
|
4010
|
-
return new PackageAliasEntityCompletionItemInfo(this.completionItemInfoContext, d.value
|
3867
|
+
return new PackageAliasEntityCompletionItemInfo(this.completionItemInfoContext, d.value);
|
4011
3868
|
case "variable":
|
4012
3869
|
return void 0;
|
4013
3870
|
default:
|
4014
|
-
Debug.never(d
|
3871
|
+
Debug.never(d);
|
4015
3872
|
}
|
4016
3873
|
}).filter((i) => i !== void 0);
|
4017
3874
|
}
|
4018
3875
|
getPackageAliasMemberCompletionItemInfos(ctx) {
|
4019
|
-
return ctx.packageMemberLookup.getNamedMembers(ctx.hidingMatcher).map((m) => this.packageMemberToCompletionItemInfo(m
|
3876
|
+
return ctx.packageMemberLookup.getNamedMembers(ctx.hidingMatcher).map((m) => this.packageMemberToCompletionItemInfo(m));
|
4020
3877
|
}
|
4021
3878
|
getPackageNameSegmentCompletionItemInfos(ctx) {
|
4022
3879
|
let query = Query.from(ctx.packageTreeNode.getChildren()).map((c) => new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, c.name));
|
4023
3880
|
if (ctx.packageMemberLookup !== void 0) {
|
4024
3881
|
const lookup = ctx.packageMemberLookup;
|
4025
3882
|
query = query.chain(
|
4026
|
-
lookup.getNamedMembers(ctx.hidingMatcher).map((m) => this.packageMemberToCompletionItemInfo(m
|
3883
|
+
lookup.getNamedMembers(ctx.hidingMatcher).map((m) => this.packageMemberToCompletionItemInfo(m))
|
4027
3884
|
);
|
4028
3885
|
}
|
4029
3886
|
return query.toArray();
|
4030
3887
|
}
|
4031
|
-
packageMemberToCompletionItemInfo(member
|
3888
|
+
packageMemberToCompletionItemInfo(member) {
|
4032
3889
|
switch (member.kind) {
|
4033
3890
|
case 0 /* Variable */:
|
4034
|
-
return new VariableEntityCompletionItemInfo(
|
4035
|
-
this.completionItemInfoContext,
|
4036
|
-
member,
|
4037
|
-
name,
|
4038
|
-
isNameExplicitlyOriginal
|
4039
|
-
);
|
3891
|
+
return new VariableEntityCompletionItemInfo(this.completionItemInfoContext, member);
|
4040
3892
|
case 1 /* Function */:
|
4041
|
-
return new FunctionEntityCompletionItemInfo(
|
4042
|
-
this.completionItemInfoContext,
|
4043
|
-
member,
|
4044
|
-
name,
|
4045
|
-
isNameExplicitlyOriginal
|
4046
|
-
);
|
3893
|
+
return new FunctionEntityCompletionItemInfo(this.completionItemInfoContext, member);
|
4047
3894
|
case 2 /* Type */:
|
4048
|
-
return this.createTypeEntityCompletionItemInfo(member
|
3895
|
+
return this.createTypeEntityCompletionItemInfo(member);
|
4049
3896
|
default:
|
4050
3897
|
Debug.never(member);
|
4051
3898
|
}
|
4052
3899
|
}
|
4053
|
-
createTypeEntityCompletionItemInfo(entity,
|
4054
|
-
return new NamedTypeCompletionItemInfo(
|
4055
|
-
this.completionItemInfoContext,
|
4056
|
-
entity,
|
4057
|
-
name,
|
4058
|
-
isNameExplicitlyOriginal,
|
4059
|
-
prefix,
|
4060
|
-
sortText
|
4061
|
-
);
|
3900
|
+
createTypeEntityCompletionItemInfo(entity, prefix = "", sortText = "") {
|
3901
|
+
return new NamedTypeCompletionItemInfo(this.completionItemInfoContext, entity, prefix, sortText);
|
4062
3902
|
}
|
4063
3903
|
getTypeMemberCompletionItemInfos(ctx) {
|
4064
3904
|
const type = this._analyzer.excludeNoneFromType(ctx.type);
|
4065
|
-
const memberLookup = TypeMemberLookup.ofType(this._analyzer, type,
|
3905
|
+
const memberLookup = TypeMemberLookup.ofType(this._analyzer, type, this._locale);
|
4066
3906
|
const options6 = ctx.isStaticAccess ? 2 /* OnlyStaticMembers */ : 1 /* OnlyInstanceMembers */;
|
4067
3907
|
return memberLookup.getNamedMembers(options6, ctx.hidingMatcher, ctx.typeExtensionLookup).map((m) => {
|
4068
|
-
switch (m.
|
3908
|
+
switch (m.kind) {
|
4069
3909
|
case "method":
|
4070
|
-
return new MethodCompletionItemInfo(
|
4071
|
-
this.completionItemInfoContext,
|
4072
|
-
m.value,
|
4073
|
-
m.name,
|
4074
|
-
m.requiresExplicitOriginalName
|
4075
|
-
);
|
3910
|
+
return new MethodCompletionItemInfo(this.completionItemInfoContext, m);
|
4076
3911
|
case "field":
|
4077
|
-
return new FieldCompletionItemInfo(
|
4078
|
-
this.completionItemInfoContext,
|
4079
|
-
m.value,
|
4080
|
-
m.name,
|
4081
|
-
m.requiresExplicitOriginalName
|
4082
|
-
);
|
3912
|
+
return new FieldCompletionItemInfo(this.completionItemInfoContext, m);
|
4083
3913
|
default:
|
4084
|
-
Debug.never(m
|
3914
|
+
Debug.never(m);
|
4085
3915
|
}
|
4086
|
-
}).concat(memberLookup.getOperators(options6, ctx.hidingMatcher, ctx.typeExtensionLookup).map((o) => new OperatorCompletionItemInfo(this.completionItemInfoContext, o
|
3916
|
+
}).concat(memberLookup.getOperators(options6, ctx.hidingMatcher, ctx.typeExtensionLookup).map((o) => new OperatorCompletionItemInfo(this.completionItemInfoContext, o)));
|
4087
3917
|
}
|
4088
3918
|
getPackageImportCompletionItemInfos(ctx) {
|
4089
|
-
const result = this._analyzer.packageImports.getPackagesAvailableForImport(this._sourceFile.package).map((p) => p.
|
3919
|
+
const result = this._analyzer.packageImports.getPackagesAvailableForImport(this._sourceFile.package).map((p) => p.getName()).filter((n) => {
|
4090
3920
|
if (ctx.precedingSegmentNames.length === 0) {
|
4091
3921
|
return true;
|
4092
3922
|
}
|
@@ -4108,7 +3938,7 @@ var CompletionService = class {
|
|
4108
3938
|
if (this._sourceFile.package.kind === "translation") {
|
4109
3939
|
const analyzedTranslationPackage = this._analyzer.getAnalyzedTranslationPackageIfTargetResolved(this._sourceFile.package);
|
4110
3940
|
if (analyzedTranslationPackage !== void 0) {
|
4111
|
-
const name = analyzedTranslationPackage.
|
3941
|
+
const name = analyzedTranslationPackage.getTargetPackage().getName();
|
4112
3942
|
items = Query.from([
|
4113
3943
|
new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, name.segments[0])
|
4114
3944
|
]);
|
@@ -4117,10 +3947,10 @@ var CompletionService = class {
|
|
4117
3947
|
result = items ?? Query.empty();
|
4118
3948
|
} else if (ctx.translationKind === 2 /* Method */) {
|
4119
3949
|
result = Query.from(ctx.packageMemberLookup.getNamedMembers(ctx.hidingMatcher)).mapAndFilter((d) => {
|
4120
|
-
if (d.
|
3950
|
+
if (d.kind === 1 /* Function */) {
|
4121
3951
|
return new AliasesSourceFunctionCompletionItemInfo(
|
4122
3952
|
this.completionItemInfoContext,
|
4123
|
-
d
|
3953
|
+
d,
|
4124
3954
|
!ctx.hasPrecedingKeyword,
|
4125
3955
|
displayService_
|
4126
3956
|
);
|
@@ -4129,10 +3959,10 @@ var CompletionService = class {
|
|
4129
3959
|
});
|
4130
3960
|
} else if (ctx.translationKind === 3 /* Type */) {
|
4131
3961
|
result = Query.from(ctx.packageMemberLookup.getNamedMembers(ctx.hidingMatcher)).mapAndFilter((d) => {
|
4132
|
-
if (d.
|
3962
|
+
if (d.kind === 2 /* Type */) {
|
4133
3963
|
return new AliasesSourcePackageTypeCompletionItemInfo(
|
4134
3964
|
this.completionItemInfoContext,
|
4135
|
-
d
|
3965
|
+
d,
|
4136
3966
|
!ctx.hasPrecedingKeyword,
|
4137
3967
|
displayService_
|
4138
3968
|
);
|
@@ -4144,7 +3974,7 @@ var CompletionService = class {
|
|
4144
3974
|
if (this._sourceFile.package.kind === "translation") {
|
4145
3975
|
const analyzedTranslationPackage = this._analyzer.getAnalyzedTranslationPackageIfTargetResolved(this._sourceFile.package);
|
4146
3976
|
if (analyzedTranslationPackage !== void 0) {
|
4147
|
-
const name = analyzedTranslationPackage.
|
3977
|
+
const name = analyzedTranslationPackage.getTargetPackage().getName();
|
4148
3978
|
packageNameItems = Query.from([
|
4149
3979
|
new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, name.segments[0])
|
4150
3980
|
]);
|
@@ -4152,29 +3982,25 @@ var CompletionService = class {
|
|
4152
3982
|
}
|
4153
3983
|
result = Query.from(packageNameItems ?? []).chain(
|
4154
3984
|
Query.from(ctx.packageMemberLookup.getNamedMembers(ctx.hidingMatcher)).map((d) => {
|
4155
|
-
switch (d.
|
3985
|
+
switch (d.kind) {
|
4156
3986
|
case 0 /* Variable */:
|
4157
|
-
return new AliasesSourceVariableCompletionItemInfo(
|
4158
|
-
this.completionItemInfoContext,
|
4159
|
-
d.value,
|
4160
|
-
displayService_
|
4161
|
-
);
|
3987
|
+
return new AliasesSourceVariableCompletionItemInfo(this.completionItemInfoContext, d, displayService_);
|
4162
3988
|
case 1 /* Function */:
|
4163
3989
|
return new AliasesSourceFunctionCompletionItemInfo(
|
4164
3990
|
this.completionItemInfoContext,
|
4165
|
-
d
|
3991
|
+
d,
|
4166
3992
|
!ctx.hasPrecedingKeyword,
|
4167
3993
|
displayService_
|
4168
3994
|
);
|
4169
3995
|
case 2 /* Type */:
|
4170
3996
|
return new AliasesSourcePackageTypeCompletionItemInfo(
|
4171
3997
|
this.completionItemInfoContext,
|
4172
|
-
d
|
3998
|
+
d,
|
4173
3999
|
!ctx.hasPrecedingKeyword,
|
4174
4000
|
displayService_
|
4175
4001
|
);
|
4176
4002
|
default:
|
4177
|
-
Debug.never(d
|
4003
|
+
Debug.never(d);
|
4178
4004
|
}
|
4179
4005
|
})
|
4180
4006
|
);
|
@@ -4439,9 +4265,8 @@ var PackageImportCompletionContext = class {
|
|
4439
4265
|
}
|
4440
4266
|
};
|
4441
4267
|
var TypeMemberCompletionContext = class {
|
4442
|
-
constructor(type,
|
4268
|
+
constructor(type, isStaticAccess, hidingMatcher, typeExtensionLookup) {
|
4443
4269
|
this.type = type;
|
4444
|
-
this.localizationContext = localizationContext;
|
4445
4270
|
this.isStaticAccess = isStaticAccess;
|
4446
4271
|
this.hidingMatcher = hidingMatcher;
|
4447
4272
|
this.typeExtensionLookup = typeExtensionLookup;
|
@@ -4504,11 +4329,10 @@ var PackageNameSegmentTypeSearchLocation = class {
|
|
4504
4329
|
}
|
4505
4330
|
};
|
4506
4331
|
var ExpressionCompletionContext = class {
|
4507
|
-
constructor(semanticContext, targetSignaturesValueParameters, targetTypes
|
4332
|
+
constructor(semanticContext, targetSignaturesValueParameters, targetTypes) {
|
4508
4333
|
this.semanticContext = semanticContext;
|
4509
4334
|
this.targetSignaturesValueParameters = targetSignaturesValueParameters;
|
4510
4335
|
this.targetTypes = targetTypes;
|
4511
|
-
this.localizationContext = localizationContext;
|
4512
4336
|
this.kind = "expression";
|
4513
4337
|
}
|
4514
4338
|
};
|
@@ -4540,13 +4364,13 @@ var CompletionItemInfoContext = class {
|
|
4540
4364
|
}
|
4541
4365
|
getInsertTextForName(name, withoutBackQuotes = false) {
|
4542
4366
|
let flags = name.flags;
|
4543
|
-
const flagsForNameWithoutBackQuotes = name.flags & ~(
|
4367
|
+
const flagsForNameWithoutBackQuotes = name.flags & ~(16 /* BackingVariableName */ | 8 /* ConflictResolvingParameterName */);
|
4544
4368
|
const nameWithoutBackQuotes = name.getPreferredUnescapedOriginal(flagsForNameWithoutBackQuotes);
|
4545
|
-
if ((flags &
|
4546
|
-
flags |=
|
4369
|
+
if ((flags & 4 /* RequiresQuotes */) === 0 && this._singleWordKeywordValues.has(nameWithoutBackQuotes)) {
|
4370
|
+
flags |= 4 /* RequiresQuotes */;
|
4547
4371
|
}
|
4548
4372
|
if (withoutBackQuotes) {
|
4549
|
-
flags &= ~(
|
4373
|
+
flags &= ~(16 /* BackingVariableName */ | 8 /* ConflictResolvingParameterName */);
|
4550
4374
|
}
|
4551
4375
|
let result;
|
4552
4376
|
if (flags === flagsForNameWithoutBackQuotes) {
|
@@ -4608,23 +4432,19 @@ var PackageAliasEntityCompletionItemInfo = class {
|
|
4608
4432
|
}
|
4609
4433
|
};
|
4610
4434
|
var FieldCompletionItemInfo = class {
|
4611
|
-
constructor(ctx, field
|
4435
|
+
constructor(ctx, field) {
|
4612
4436
|
this.ctx = ctx;
|
4613
4437
|
this.field = field;
|
4614
|
-
this.name = name;
|
4615
|
-
this.isNameExplicitlyOriginal = isNameExplicitlyOriginal;
|
4616
4438
|
this.kind = "field";
|
4617
4439
|
}
|
4618
4440
|
getLabel() {
|
4619
|
-
return
|
4441
|
+
return this.ctx.getInsertTextForName(this.field.getName());
|
4620
4442
|
}
|
4621
4443
|
getCompletionItemKind() {
|
4622
4444
|
return this.field.isVariant() ? 12 /* Variant */ : 2 /* Field */;
|
4623
4445
|
}
|
4624
4446
|
getDetails() {
|
4625
|
-
return this.ctx.displayService.
|
4626
|
-
new VariableDeclaration_typeMember(this.field, this.name.localization)
|
4627
|
-
);
|
4447
|
+
return this.ctx.displayService.displayTypeMember(this.field);
|
4628
4448
|
}
|
4629
4449
|
getInsertText() {
|
4630
4450
|
return void 0;
|
@@ -4637,23 +4457,19 @@ var FieldCompletionItemInfo = class {
|
|
4637
4457
|
}
|
4638
4458
|
};
|
4639
4459
|
var MethodCompletionItemInfo = class {
|
4640
|
-
constructor(ctx, method
|
4460
|
+
constructor(ctx, method) {
|
4641
4461
|
this.ctx = ctx;
|
4642
4462
|
this.method = method;
|
4643
|
-
this.name = name;
|
4644
|
-
this.isNameExplicitlyOriginal = isNameExplicitlyOriginal;
|
4645
4463
|
this.kind = "method";
|
4646
4464
|
}
|
4647
4465
|
getLabel() {
|
4648
|
-
return
|
4466
|
+
return this.ctx.getInsertTextForName(this.method.getName());
|
4649
4467
|
}
|
4650
4468
|
getCompletionItemKind() {
|
4651
4469
|
return 3 /* Method */;
|
4652
4470
|
}
|
4653
4471
|
getDetails() {
|
4654
|
-
return this.ctx.displayService.
|
4655
|
-
new FunctionDeclaration_typeMember(this.method, this.name.localization)
|
4656
|
-
);
|
4472
|
+
return this.ctx.displayService.displayTypeMember(this.method);
|
4657
4473
|
}
|
4658
4474
|
getInsertText() {
|
4659
4475
|
return void 0;
|
@@ -4666,22 +4482,19 @@ var MethodCompletionItemInfo = class {
|
|
4666
4482
|
}
|
4667
4483
|
};
|
4668
4484
|
var OperatorCompletionItemInfo = class {
|
4669
|
-
constructor(ctx, operator
|
4485
|
+
constructor(ctx, operator) {
|
4670
4486
|
this.ctx = ctx;
|
4671
4487
|
this.operator = operator;
|
4672
|
-
this.localization = localization;
|
4673
4488
|
this.kind = "operator";
|
4674
4489
|
}
|
4675
4490
|
getLabel() {
|
4676
|
-
return `'${this.ctx.displayService.displayOperatorKind(this.operator.getOperatorKind()
|
4491
|
+
return `'${this.ctx.displayService.displayOperatorKind(this.operator.getOperatorKind())}'`;
|
4677
4492
|
}
|
4678
4493
|
getCompletionItemKind() {
|
4679
4494
|
return 4 /* Operator */;
|
4680
4495
|
}
|
4681
4496
|
getDetails() {
|
4682
|
-
return this.ctx.displayService.
|
4683
|
-
new OperatorDeclaration_typeMember(this.operator, this.localization)
|
4684
|
-
);
|
4497
|
+
return this.ctx.displayService.displayTypeMember(this.operator);
|
4685
4498
|
}
|
4686
4499
|
getInsertText() {
|
4687
4500
|
return void 0;
|
@@ -4694,15 +4507,13 @@ var OperatorCompletionItemInfo = class {
|
|
4694
4507
|
}
|
4695
4508
|
};
|
4696
4509
|
var VariableEntityCompletionItemInfo = class {
|
4697
|
-
constructor(ctx, entity
|
4510
|
+
constructor(ctx, entity) {
|
4698
4511
|
this.ctx = ctx;
|
4699
4512
|
this.entity = entity;
|
4700
|
-
this.name = name;
|
4701
|
-
this.isNameExplicitlyOriginal = isNameExplicitlyOriginal;
|
4702
4513
|
this.kind = "variable-entity";
|
4703
4514
|
}
|
4704
4515
|
getLabel() {
|
4705
|
-
return
|
4516
|
+
return this.ctx.getInsertTextForName(this.entity.getName());
|
4706
4517
|
}
|
4707
4518
|
getCompletionItemKind() {
|
4708
4519
|
switch (this.entity.subkind) {
|
@@ -4719,9 +4530,7 @@ var VariableEntityCompletionItemInfo = class {
|
|
4719
4530
|
}
|
4720
4531
|
}
|
4721
4532
|
getDetails() {
|
4722
|
-
return this.ctx.displayService.
|
4723
|
-
new VariableDeclaration_entity(this.entity, this.name.localization)
|
4724
|
-
);
|
4533
|
+
return this.ctx.displayService.displayEntity(this.entity);
|
4725
4534
|
}
|
4726
4535
|
getInsertText() {
|
4727
4536
|
return void 0;
|
@@ -4734,15 +4543,13 @@ var VariableEntityCompletionItemInfo = class {
|
|
4734
4543
|
}
|
4735
4544
|
};
|
4736
4545
|
var FunctionEntityCompletionItemInfo = class {
|
4737
|
-
constructor(ctx, entity
|
4546
|
+
constructor(ctx, entity) {
|
4738
4547
|
this.ctx = ctx;
|
4739
4548
|
this.entity = entity;
|
4740
|
-
this.name = name;
|
4741
|
-
this.isNameExplicitlyOriginal = isNameExplicitlyOriginal;
|
4742
4549
|
this.kind = "function-entity";
|
4743
4550
|
}
|
4744
4551
|
getLabel() {
|
4745
|
-
return
|
4552
|
+
return this.ctx.getInsertTextForName(this.entity.getName());
|
4746
4553
|
}
|
4747
4554
|
getCompletionItemKind() {
|
4748
4555
|
switch (this.entity.subkind) {
|
@@ -4757,9 +4564,7 @@ var FunctionEntityCompletionItemInfo = class {
|
|
4757
4564
|
}
|
4758
4565
|
}
|
4759
4566
|
getDetails() {
|
4760
|
-
return this.ctx.displayService.
|
4761
|
-
new FunctionDeclaration_entity(this.entity, this.name.localization)
|
4762
|
-
);
|
4567
|
+
return this.ctx.displayService.displayEntity(this.entity);
|
4763
4568
|
}
|
4764
4569
|
getInsertText() {
|
4765
4570
|
return void 0;
|
@@ -4772,17 +4577,15 @@ var FunctionEntityCompletionItemInfo = class {
|
|
4772
4577
|
}
|
4773
4578
|
};
|
4774
4579
|
var NamedTypeCompletionItemInfo = class {
|
4775
|
-
constructor(ctx, entity,
|
4580
|
+
constructor(ctx, entity, prefix = "", sortText) {
|
4776
4581
|
this.ctx = ctx;
|
4777
4582
|
this.entity = entity;
|
4778
|
-
this.name = name;
|
4779
|
-
this.isNameExplicitlyOriginal = isNameExplicitlyOriginal;
|
4780
4583
|
this.prefix = prefix;
|
4781
4584
|
this.sortText = sortText;
|
4782
4585
|
this.kind = "named-type";
|
4783
4586
|
}
|
4784
4587
|
getLabel() {
|
4785
|
-
return `${this.prefix}${this.
|
4588
|
+
return `${this.prefix}${this.ctx.getInsertTextForName(this.entity.getName())}`;
|
4786
4589
|
}
|
4787
4590
|
getCompletionItemKind() {
|
4788
4591
|
switch (this.entity.typeEntityKind) {
|
@@ -4809,10 +4612,10 @@ var NamedTypeCompletionItemInfo = class {
|
|
4809
4612
|
}
|
4810
4613
|
}
|
4811
4614
|
getDetails() {
|
4812
|
-
return this.ctx.displayService.
|
4615
|
+
return this.ctx.displayService.displayEntity(this.entity);
|
4813
4616
|
}
|
4814
4617
|
getInsertText() {
|
4815
|
-
return
|
4618
|
+
return this.ctx.getInsertTextForName(this.entity.getName());
|
4816
4619
|
}
|
4817
4620
|
getSortText() {
|
4818
4621
|
return this.sortText;
|
@@ -4890,11 +4693,7 @@ var TargetSignatureValueParameterCompletionItemInfo = class {
|
|
4890
4693
|
}
|
4891
4694
|
getDetails() {
|
4892
4695
|
return this.ctx.displayService.displayValueParameterDeclaration(
|
4893
|
-
new ValueParameterDeclaration_universal(
|
4894
|
-
this.parameter.entity,
|
4895
|
-
this.parameter.type,
|
4896
|
-
this.parameter.localization
|
4897
|
-
)
|
4696
|
+
new ValueParameterDeclaration_universal(this.parameter.entity, this.parameter.type)
|
4898
4697
|
);
|
4899
4698
|
}
|
4900
4699
|
getInsertText() {
|
@@ -4932,9 +4731,7 @@ var AliasesSourceVariableCompletionItemInfo = class {
|
|
4932
4731
|
}
|
4933
4732
|
}
|
4934
4733
|
getDetails() {
|
4935
|
-
return this.displayService.
|
4936
|
-
new VariableDeclaration_entity(this.variable, Localization.Original.ofEntity(this.variable))
|
4937
|
-
);
|
4734
|
+
return this.displayService.displayEntity(this.variable);
|
4938
4735
|
}
|
4939
4736
|
getInsertText() {
|
4940
4737
|
return void 0;
|
@@ -4970,13 +4767,11 @@ var AliasesSourceFunctionCompletionItemInfo = class {
|
|
4970
4767
|
}
|
4971
4768
|
}
|
4972
4769
|
getDetails() {
|
4973
|
-
return this.displayService.displayFunctionDeclaration(
|
4974
|
-
new FunctionDeclaration_entity(this.func, Localization.Original.ofEntity(this.func))
|
4975
|
-
);
|
4770
|
+
return this.displayService.displayFunctionDeclaration(new FunctionDeclaration_entity(this.func));
|
4976
4771
|
}
|
4977
4772
|
getInsertText() {
|
4978
4773
|
const displayParts = this.displayService.getFunctionDeclarationDisplayParts(
|
4979
|
-
new FunctionDeclaration_entity(this.func
|
4774
|
+
new FunctionDeclaration_entity(this.func)
|
4980
4775
|
);
|
4981
4776
|
const keywordWithWhitespace = this.includeFunctionKeyword ? displayParts.functionKeyword + displayParts.whitespaceAfterFunctionKeyword : "";
|
4982
4777
|
const valueParameters = displayParts.valueParameters.map((p) => p.name).join(displayParts.typeParameterSeparator);
|
@@ -5034,23 +4829,22 @@ var AliasesSourcePackageTypeCompletionItemInfo = class {
|
|
5034
4829
|
return void 0;
|
5035
4830
|
}
|
5036
4831
|
getDisplayServiceTypeDeclaration() {
|
5037
|
-
const localization = Localization.Original.ofEntity(this.typeEntity);
|
5038
4832
|
switch (this.typeEntity.typeEntityKind) {
|
5039
4833
|
case 3 /* Variant */:
|
5040
4834
|
return new TypeDeclaration_variant(
|
5041
|
-
new TypeDeclarationVariant_entity(this.typeEntity
|
4835
|
+
new TypeDeclarationVariant_entity(this.typeEntity)
|
5042
4836
|
);
|
5043
4837
|
case 0 /* Function */:
|
5044
4838
|
return new TypeDeclaration_function(
|
5045
|
-
new TypeDeclarationFunction_entity(this.typeEntity
|
4839
|
+
new TypeDeclarationFunction_entity(this.typeEntity)
|
5046
4840
|
);
|
5047
4841
|
case 1 /* Structured */:
|
5048
4842
|
return new TypeDeclaration_structured(
|
5049
|
-
new TypeDeclarationStructured_entity(this.typeEntity
|
4843
|
+
new TypeDeclarationStructured_entity(this.typeEntity)
|
5050
4844
|
);
|
5051
4845
|
case 4 /* Alias */:
|
5052
4846
|
return new TypeDeclaration_alias(
|
5053
|
-
new TypeDeclarationAlias_entity(this.typeEntity
|
4847
|
+
new TypeDeclarationAlias_entity(this.typeEntity)
|
5054
4848
|
);
|
5055
4849
|
default:
|
5056
4850
|
Debug.never(this.typeEntity);
|
@@ -5069,11 +4863,7 @@ var AliasesSourceIndexerCompletionItemInfo = class {
|
|
5069
4863
|
this._label = new Cached();
|
5070
4864
|
}
|
5071
4865
|
get label() {
|
5072
|
-
return this._label.getOrInsertWith(
|
5073
|
-
() => this.displayService.displayIndexerDeclaration(
|
5074
|
-
new IndexerDeclaration_entity(this.indexer, Localization.Original.ofEntity(this.indexer))
|
5075
|
-
)
|
5076
|
-
);
|
4866
|
+
return this._label.getOrInsertWith(() => this.displayService.displayIndexerDeclaration(new IndexerDeclaration_entity(this.indexer)));
|
5077
4867
|
}
|
5078
4868
|
getLabel() {
|
5079
4869
|
return this.label;
|
@@ -5106,10 +4896,7 @@ var AliasesSourceConstructorCompletionItemInfo = class {
|
|
5106
4896
|
}
|
5107
4897
|
get label() {
|
5108
4898
|
return this._label.getOrInsertWith(() => {
|
5109
|
-
const constructorDeclaration = new ConstructorDeclaration_entity(
|
5110
|
-
this.constructor_,
|
5111
|
-
Localization.Original.ofEntity(this.constructor_)
|
5112
|
-
);
|
4899
|
+
const constructorDeclaration = new ConstructorDeclaration_entity(this.constructor_);
|
5113
4900
|
const displayParts = this.displayService.getConstructorDeclarationDisplayParts(constructorDeclaration);
|
5114
4901
|
const creationKeyword = this.displayService.displayKeyword(31 /* Creation */);
|
5115
4902
|
return creationKeyword + displayParts.valueParametersStart + displayParts.valueParameters.map((p) => p.toString()).join(displayParts.valueParameterSeparator) + displayParts.valueParametersEnd;
|
@@ -5849,10 +5636,7 @@ var NodeSemanticInfoService = class {
|
|
5849
5636
|
case 149 /* Argument */: {
|
5850
5637
|
const respectiveParameter = analyzer.getRespectiveParameter(parent);
|
5851
5638
|
if (respectiveParameter !== void 0) {
|
5852
|
-
const target = new
|
5853
|
-
new MatchResultValueParameterReferenceTarget(respectiveParameter, 0 /* Get */),
|
5854
|
-
respectiveParameter.name.localization
|
5855
|
-
);
|
5639
|
+
const target = new MatchResultValueParameterReferenceTarget(respectiveParameter, 0 /* Get */);
|
5856
5640
|
result = new ReferenceNodeSemanticInfo([target], false);
|
5857
5641
|
if (options6.includeBetterReferenceTargets) {
|
5858
5642
|
result = this.getBetterReferenceTargetsOrPreserve(result);
|
@@ -5901,17 +5685,17 @@ var NodeSemanticInfoService = class {
|
|
5901
5685
|
const getTargetResult = translationPackage?.getPackageVariableTranslationTarget(parent);
|
5902
5686
|
if (translationPackage !== void 0 && getTargetResult?.target !== void 0) {
|
5903
5687
|
if (node === parent.sourceName) {
|
5904
|
-
const target = new
|
5905
|
-
new EntityReferenceTarget(getTargetResult.target, 0 /* Get */),
|
5906
|
-
Localization.Original.ofEntity(getTargetResult.target)
|
5907
|
-
);
|
5688
|
+
const target = new EntityReferenceTarget(getTargetResult.target, 0 /* Get */);
|
5908
5689
|
result = new ReferenceNodeSemanticInfo([target], false);
|
5909
5690
|
if (options6.includeBetterReferenceTargets) {
|
5910
5691
|
result = this.getBetterReferenceTargetsOrPreserve(result);
|
5911
5692
|
}
|
5912
5693
|
} else if (node === parent.translatedName) {
|
5913
|
-
const
|
5914
|
-
result = new
|
5694
|
+
const target = new EntityReferenceTarget(translationPackage.entityLocalizationContext.getLocalizedPackageVariableEntity(getTargetResult.target), 0 /* Get */);
|
5695
|
+
result = new ReferenceNodeSemanticInfo([target], false);
|
5696
|
+
if (options6.includeBetterReferenceTargets) {
|
5697
|
+
result = this.getBetterReferenceTargetsOrPreserve(result);
|
5698
|
+
}
|
5915
5699
|
}
|
5916
5700
|
}
|
5917
5701
|
break;
|
@@ -5921,21 +5705,20 @@ var NodeSemanticInfoService = class {
|
|
5921
5705
|
const getTargetsResult = translationPackage?.getFieldOrVariantTranslationTargets(parent);
|
5922
5706
|
if (translationPackage !== void 0 && isNonEmptyArray(getTargetsResult?.targets)) {
|
5923
5707
|
if (node === parent.sourceName) {
|
5924
|
-
const targets = getTargetsResult.targets.map((t) => new
|
5925
|
-
new EntityReferenceTarget(t, 0 /* Get */),
|
5926
|
-
Localization.Original.ofEntity(t)
|
5927
|
-
));
|
5708
|
+
const targets = getTargetsResult.targets.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
5928
5709
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
|
5929
5710
|
if (options6.includeBetterReferenceTargets) {
|
5930
5711
|
result = this.getBetterReferenceTargetsOrPreserve(result);
|
5931
5712
|
}
|
5932
5713
|
} else if (node === parent.translatedName) {
|
5933
|
-
const
|
5934
|
-
|
5935
|
-
|
5936
|
-
|
5937
|
-
|
5938
|
-
)
|
5714
|
+
const targets = getTargetsResult.targets.map((f) => new EntityReferenceTarget(
|
5715
|
+
translationPackage.entityLocalizationContext.getLocalizedFieldEntity(f),
|
5716
|
+
0 /* Get */
|
5717
|
+
));
|
5718
|
+
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
|
5719
|
+
if (options6.includeBetterReferenceTargets) {
|
5720
|
+
result = this.getBetterReferenceTargetsOrPreserve(result);
|
5721
|
+
}
|
5939
5722
|
}
|
5940
5723
|
}
|
5941
5724
|
break;
|
@@ -5945,21 +5728,20 @@ var NodeSemanticInfoService = class {
|
|
5945
5728
|
const getTargetsResult = translationPackage?.getPackageFunctionTranslationTargets(parent);
|
5946
5729
|
if (translationPackage !== void 0 && isNonEmptyArray(getTargetsResult?.targets)) {
|
5947
5730
|
if (node === parent.sourceName) {
|
5948
|
-
const targets = getTargetsResult.targets.map((t) => new
|
5949
|
-
new EntityReferenceTarget(t, 0 /* Get */),
|
5950
|
-
Localization.Original.ofEntity(t)
|
5951
|
-
));
|
5731
|
+
const targets = getTargetsResult.targets.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
5952
5732
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
|
5953
5733
|
if (options6.includeBetterReferenceTargets) {
|
5954
5734
|
result = this.getBetterReferenceTargetsOrPreserve(result);
|
5955
5735
|
}
|
5956
5736
|
} else if (node === parent.translatedName) {
|
5957
|
-
const
|
5958
|
-
|
5959
|
-
|
5960
|
-
|
5961
|
-
|
5962
|
-
)
|
5737
|
+
const targets = getTargetsResult.targets.map((f) => new EntityReferenceTarget(
|
5738
|
+
translationPackage.entityLocalizationContext.getLocalizedPackageFunctionEntity(f),
|
5739
|
+
0 /* Get */
|
5740
|
+
));
|
5741
|
+
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
|
5742
|
+
if (options6.includeBetterReferenceTargets) {
|
5743
|
+
result = this.getBetterReferenceTargetsOrPreserve(result);
|
5744
|
+
}
|
5963
5745
|
}
|
5964
5746
|
}
|
5965
5747
|
break;
|
@@ -5969,21 +5751,20 @@ var NodeSemanticInfoService = class {
|
|
5969
5751
|
const getTargetsResult = translationPackage?.getMethodTranslationTargets(parent);
|
5970
5752
|
if (translationPackage !== void 0 && isNonEmptyArray(getTargetsResult?.targets)) {
|
5971
5753
|
if (node === parent.sourceName) {
|
5972
|
-
const targets = getTargetsResult.targets.map((t) => new
|
5973
|
-
new EntityReferenceTarget(t, 0 /* Get */),
|
5974
|
-
Localization.Original.ofEntity(t)
|
5975
|
-
));
|
5754
|
+
const targets = getTargetsResult.targets.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
5976
5755
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
|
5977
5756
|
if (options6.includeBetterReferenceTargets) {
|
5978
5757
|
result = this.getBetterReferenceTargetsOrPreserve(result);
|
5979
5758
|
}
|
5980
5759
|
} else if (node === parent.translatedName) {
|
5981
|
-
const
|
5982
|
-
|
5983
|
-
|
5984
|
-
|
5985
|
-
|
5986
|
-
)
|
5760
|
+
const targets = getTargetsResult.targets.map((f) => new EntityReferenceTarget(
|
5761
|
+
translationPackage.entityLocalizationContext.getLocalizedMethodEntity(f),
|
5762
|
+
0 /* Get */
|
5763
|
+
));
|
5764
|
+
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
|
5765
|
+
if (options6.includeBetterReferenceTargets) {
|
5766
|
+
result = this.getBetterReferenceTargetsOrPreserve(result);
|
5767
|
+
}
|
5987
5768
|
}
|
5988
5769
|
}
|
5989
5770
|
break;
|
@@ -5993,17 +5774,17 @@ var NodeSemanticInfoService = class {
|
|
5993
5774
|
const getTargetResult = translationPackage?.getTypeTranslationTarget(parent);
|
5994
5775
|
if (translationPackage !== void 0 && getTargetResult?.target !== void 0) {
|
5995
5776
|
if (node === parent.sourceName) {
|
5996
|
-
const target = new
|
5997
|
-
new EntityReferenceTarget(getTargetResult.target, 0 /* Get */),
|
5998
|
-
Localization.Original.ofEntity(getTargetResult.target)
|
5999
|
-
);
|
5777
|
+
const target = new EntityReferenceTarget(getTargetResult.target, 0 /* Get */);
|
6000
5778
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6001
5779
|
if (options6.includeBetterReferenceTargets) {
|
6002
5780
|
result = this.getBetterReferenceTargetsOrPreserve(result);
|
6003
5781
|
}
|
6004
5782
|
} else if (node === parent.translatedName) {
|
6005
|
-
const
|
6006
|
-
result = new
|
5783
|
+
const target = new EntityReferenceTarget(translationPackage.entityLocalizationContext.getLocalizedTypeEntity(getTargetResult.target), 0 /* Get */);
|
5784
|
+
result = new ReferenceNodeSemanticInfo([target], false);
|
5785
|
+
if (options6.includeBetterReferenceTargets) {
|
5786
|
+
result = this.getBetterReferenceTargetsOrPreserve(result);
|
5787
|
+
}
|
6007
5788
|
}
|
6008
5789
|
}
|
6009
5790
|
break;
|
@@ -6013,17 +5794,17 @@ var NodeSemanticInfoService = class {
|
|
6013
5794
|
const getTargetResult = translationPackage?.getFunctionTypeTranslationTarget(parent);
|
6014
5795
|
if (translationPackage !== void 0 && getTargetResult?.target !== void 0) {
|
6015
5796
|
if (node === parent.sourceName) {
|
6016
|
-
const target = new
|
6017
|
-
new EntityReferenceTarget(getTargetResult.target, 0 /* Get */),
|
6018
|
-
Localization.Original.ofEntity(getTargetResult.target)
|
6019
|
-
);
|
5797
|
+
const target = new EntityReferenceTarget(getTargetResult.target, 0 /* Get */);
|
6020
5798
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6021
5799
|
if (options6.includeBetterReferenceTargets) {
|
6022
5800
|
result = this.getBetterReferenceTargetsOrPreserve(result);
|
6023
5801
|
}
|
6024
5802
|
} else if (node === parent.translatedName) {
|
6025
|
-
const
|
6026
|
-
result = new
|
5803
|
+
const target = new EntityReferenceTarget(translationPackage.entityLocalizationContext.getLocalizedPackageFunctionTypeEntity(getTargetResult.target), 0 /* Get */);
|
5804
|
+
result = new ReferenceNodeSemanticInfo([target], false);
|
5805
|
+
if (options6.includeBetterReferenceTargets) {
|
5806
|
+
result = this.getBetterReferenceTargetsOrPreserve(result);
|
5807
|
+
}
|
6027
5808
|
}
|
6028
5809
|
}
|
6029
5810
|
break;
|
@@ -6080,11 +5861,7 @@ var NodeSemanticInfoService = class {
|
|
6080
5861
|
if (isNarrowableReferenceExpression(node)) {
|
6081
5862
|
narrowedType = analyzer.type.ofExpression(node);
|
6082
5863
|
}
|
6083
|
-
const target = new
|
6084
|
-
meaning.field.value,
|
6085
|
-
meaning.accessKind,
|
6086
|
-
narrowedType
|
6087
|
-
), meaning.field.localization);
|
5864
|
+
const target = new FieldReferenceTarget(meaning.field, meaning.accessKind, narrowedType);
|
6088
5865
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6089
5866
|
break;
|
6090
5867
|
}
|
@@ -6093,11 +5870,7 @@ var NodeSemanticInfoService = class {
|
|
6093
5870
|
if (isNarrowableReferenceExpression(node)) {
|
6094
5871
|
narrowedType = analyzer.type.ofExpression(node);
|
6095
5872
|
}
|
6096
|
-
const target = new
|
6097
|
-
meaning.field.value,
|
6098
|
-
meaning.accessKind,
|
6099
|
-
narrowedType
|
6100
|
-
), meaning.field.localization);
|
5873
|
+
const target = new FieldReferenceTarget(meaning.field, meaning.accessKind, narrowedType);
|
6101
5874
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6102
5875
|
break;
|
6103
5876
|
}
|
@@ -6106,11 +5879,7 @@ var NodeSemanticInfoService = class {
|
|
6106
5879
|
if (isNarrowableReferenceExpression(node)) {
|
6107
5880
|
narrowedType = analyzer.type.ofExpression(node);
|
6108
5881
|
}
|
6109
|
-
const target = new
|
6110
|
-
meaning.variable.value,
|
6111
|
-
meaning.accessKind,
|
6112
|
-
narrowedType
|
6113
|
-
), meaning.variable.localization);
|
5882
|
+
const target = new EntityReferenceTarget(meaning.variable, meaning.accessKind, narrowedType);
|
6114
5883
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6115
5884
|
break;
|
6116
5885
|
}
|
@@ -6145,9 +5914,7 @@ var NodeSemanticInfoService = class {
|
|
6145
5914
|
break;
|
6146
5915
|
case "package-type-access":
|
6147
5916
|
if (meaning.suitableTypes.length === 0 && meaning.candidates.length > 0) {
|
6148
|
-
const targets = meaning.candidates.map(
|
6149
|
-
(c) => new SimpleWithLocalization(new EntityReferenceTarget(c.value, 0 /* Get */), c.localization)
|
6150
|
-
);
|
5917
|
+
const targets = meaning.candidates.map((c) => new EntityReferenceTarget(c, 0 /* Get */));
|
6151
5918
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
|
6152
5919
|
} else {
|
6153
5920
|
result = this.ofMaybeConstructorCallExpression(analyzer, meaning.suitableTypes, node, options6);
|
@@ -6157,10 +5924,7 @@ var NodeSemanticInfoService = class {
|
|
6157
5924
|
result = this.ofPackageNameSegmentAccess(analyzer, meaning.packageTreeNode, node);
|
6158
5925
|
break;
|
6159
5926
|
case "mixed-ambiguous-access": {
|
6160
|
-
const targets = Query.from(meaning.entities).mapAndFilter((d) =>
|
6161
|
-
const target = new EntityReferenceTarget(d.value, 0 /* Get */);
|
6162
|
-
return new SimpleWithLocalization(target, d.localization);
|
6163
|
-
}).toArray();
|
5927
|
+
const targets = Query.from(meaning.entities).mapAndFilter((d) => new EntityReferenceTarget(d, 0 /* Get */)).toArray();
|
6164
5928
|
if (isNonEmptyArray(targets)) {
|
6165
5929
|
result = new ReferenceNodeSemanticInfo(targets, true);
|
6166
5930
|
}
|
@@ -6176,11 +5940,11 @@ var NodeSemanticInfoService = class {
|
|
6176
5940
|
}
|
6177
5941
|
return result;
|
6178
5942
|
function createAccessedFunctionsReference(functions, isAmbiguous) {
|
6179
|
-
const targets = functions.map((o) => new
|
5943
|
+
const targets = functions.map((o) => new AccessedFunctionReferenceTarget(o));
|
6180
5944
|
return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), isAmbiguous);
|
6181
5945
|
}
|
6182
5946
|
function createOperatorsReference(operators, isAmbiguous) {
|
6183
|
-
const targets = operators.map((o) => new
|
5947
|
+
const targets = operators.map((o) => new OperatorReferenceTarget(o));
|
6184
5948
|
return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), isAmbiguous);
|
6185
5949
|
}
|
6186
5950
|
}
|
@@ -6204,17 +5968,14 @@ var NodeSemanticInfoService = class {
|
|
6204
5968
|
if (qualifierIndex >= 0 && qualifierIndex < resolutionResult.resolvedQualifiers.length) {
|
6205
5969
|
const resolvedQualifier = resolutionResult.resolvedQualifiers[qualifierIndex];
|
6206
5970
|
if (resolvedQualifier.kind === "package-alias") {
|
6207
|
-
const target = new
|
6208
|
-
new EntityReferenceTarget(resolvedQualifier.packageAlias, 0 /* Get */),
|
6209
|
-
new Localization.Original(resolvedQualifier.packageAlias.getContainingPackage().getLocale())
|
6210
|
-
);
|
5971
|
+
const target = new EntityReferenceTarget(resolvedQualifier.packageAlias, 0 /* Get */);
|
6211
5972
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6212
5973
|
} else if (resolvedQualifier.kind === "type") {
|
6213
5974
|
if (resolvedQualifier.suitableTypes.length > 0) {
|
6214
|
-
const targets = resolvedQualifier.suitableTypes.map((t) => new
|
5975
|
+
const targets = resolvedQualifier.suitableTypes.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
6215
5976
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), targets.length > 1);
|
6216
5977
|
} else if (resolvedQualifier.candidates.length > 0) {
|
6217
|
-
const targets = resolvedQualifier.candidates.map((t) => new
|
5978
|
+
const targets = resolvedQualifier.candidates.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
6218
5979
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
|
6219
5980
|
}
|
6220
5981
|
} else if (resolvedQualifier.kind === "package-name-segment") {
|
@@ -6224,10 +5985,7 @@ var NodeSemanticInfoService = class {
|
|
6224
5985
|
}
|
6225
5986
|
const qualifier2 = resolutionResult.resolvedQualifiers[currentIndex];
|
6226
5987
|
if (qualifier2.kind === "package-name-segment" && qualifier2.packageTreeNode.package !== void 0) {
|
6227
|
-
const target = new
|
6228
|
-
new PackageReferenceTarget(qualifier2.packageTreeNode.package.value),
|
6229
|
-
new Localization.Original(qualifier2.packageTreeNode.package.value.getLocale())
|
6230
|
-
);
|
5988
|
+
const target = new PackageReferenceTarget(qualifier2.packageTreeNode.package);
|
6231
5989
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6232
5990
|
} else {
|
6233
5991
|
result = void 0;
|
@@ -6237,13 +5995,13 @@ var NodeSemanticInfoService = class {
|
|
6237
5995
|
}
|
6238
5996
|
} else if (qualifierIndex === resolutionResult.resolvedQualifiers.length && resolutionResult.ambiguousDeclarations !== void 0) {
|
6239
5997
|
const targets = resolutionResult.ambiguousDeclarations.map((d) => {
|
6240
|
-
switch (d.
|
5998
|
+
switch (d.kind) {
|
6241
5999
|
case "entity":
|
6242
|
-
return new
|
6000
|
+
return new EntityReferenceTarget(d.entity, 0 /* Get */);
|
6243
6001
|
case "node":
|
6244
|
-
return new
|
6002
|
+
return new PackageNameTreeNodeReferenceTarget(d.node);
|
6245
6003
|
default:
|
6246
|
-
Debug.never(d
|
6004
|
+
Debug.never(d);
|
6247
6005
|
}
|
6248
6006
|
});
|
6249
6007
|
if (isNonEmptyArray(targets)) {
|
@@ -6265,18 +6023,18 @@ var NodeSemanticInfoService = class {
|
|
6265
6023
|
case "type": {
|
6266
6024
|
if (options6.preferredTargetOfExplicitConstructorCall === "type-declaration" || resolutionResult.meaning.kind !== "tag-type") {
|
6267
6025
|
if (resolvedQualifier.suitableTypes.length > 0) {
|
6268
|
-
const targets = resolvedQualifier.suitableTypes.map((t) => new
|
6026
|
+
const targets = resolvedQualifier.suitableTypes.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
6269
6027
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), targets.length > 1);
|
6270
6028
|
} else if (resolvedQualifier.candidates.length > 0) {
|
6271
|
-
const targets = resolvedQualifier.candidates.map((t) => new
|
6029
|
+
const targets = resolvedQualifier.candidates.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
6272
6030
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
|
6273
6031
|
}
|
6274
6032
|
} else {
|
6275
6033
|
if (resolutionResult.meaning.suitableConstructors.length > 0) {
|
6276
|
-
const targets = resolutionResult.meaning.suitableConstructors.map((t) => new
|
6034
|
+
const targets = resolutionResult.meaning.suitableConstructors.map((t) => new ConstructorReferenceTarget(t));
|
6277
6035
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), targets.length > 1);
|
6278
6036
|
} else if (resolutionResult.meaning.candidates.length > 0) {
|
6279
|
-
const targets = resolutionResult.meaning.candidates.map((t) => new
|
6037
|
+
const targets = resolutionResult.meaning.candidates.map((t) => new ConstructorReferenceTarget(t));
|
6280
6038
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
|
6281
6039
|
}
|
6282
6040
|
}
|
@@ -6284,10 +6042,10 @@ var NodeSemanticInfoService = class {
|
|
6284
6042
|
}
|
6285
6043
|
case "function":
|
6286
6044
|
if (resolvedQualifier.suitableFunctions.length > 0) {
|
6287
|
-
const targets = resolvedQualifier.suitableFunctions.map((t) => new
|
6045
|
+
const targets = resolvedQualifier.suitableFunctions.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
6288
6046
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), targets.length > 1);
|
6289
6047
|
} else if (resolvedQualifier.candidates.length > 0) {
|
6290
|
-
const targets = resolvedQualifier.candidates.map((t) => new
|
6048
|
+
const targets = resolvedQualifier.candidates.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
6291
6049
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
|
6292
6050
|
}
|
6293
6051
|
break;
|
@@ -6298,10 +6056,7 @@ var NodeSemanticInfoService = class {
|
|
6298
6056
|
}
|
6299
6057
|
const qualifier2 = resolutionResult.resolvedQualifiers[currentIndex];
|
6300
6058
|
if (qualifier2.kind === "package-name-segment" && qualifier2.packageTreeNode.package !== void 0) {
|
6301
|
-
const target = new
|
6302
|
-
new PackageReferenceTarget(qualifier2.packageTreeNode.package.value),
|
6303
|
-
new Localization.Original(qualifier2.packageTreeNode.package.value.getLocale())
|
6304
|
-
);
|
6059
|
+
const target = new PackageReferenceTarget(qualifier2.packageTreeNode.package);
|
6305
6060
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6306
6061
|
} else {
|
6307
6062
|
result = void 0;
|
@@ -6309,10 +6064,7 @@ var NodeSemanticInfoService = class {
|
|
6309
6064
|
break;
|
6310
6065
|
}
|
6311
6066
|
case "package-alias": {
|
6312
|
-
const target = new
|
6313
|
-
new EntityReferenceTarget(resolvedQualifier.packageAlias, 0 /* Get */),
|
6314
|
-
new Localization.Original(resolvedQualifier.packageAlias.getContainingPackage().getLocale())
|
6315
|
-
);
|
6067
|
+
const target = new EntityReferenceTarget(resolvedQualifier.packageAlias, 0 /* Get */);
|
6316
6068
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6317
6069
|
break;
|
6318
6070
|
}
|
@@ -6321,13 +6073,13 @@ var NodeSemanticInfoService = class {
|
|
6321
6073
|
}
|
6322
6074
|
} else if (qualifierIndex === resolutionResult.resolvedQualifiers.length && resolutionResult.ambiguousDeclarations !== void 0) {
|
6323
6075
|
const targets = resolutionResult.ambiguousDeclarations.map((d) => {
|
6324
|
-
switch (d.
|
6076
|
+
switch (d.kind) {
|
6325
6077
|
case "entity":
|
6326
|
-
return new
|
6078
|
+
return new EntityReferenceTarget(d.entity, 0 /* Get */);
|
6327
6079
|
case "node":
|
6328
|
-
return new
|
6080
|
+
return new PackageNameTreeNodeReferenceTarget(d.node);
|
6329
6081
|
default:
|
6330
|
-
Debug.never(d
|
6082
|
+
Debug.never(d);
|
6331
6083
|
}
|
6332
6084
|
});
|
6333
6085
|
if (isNonEmptyArray(targets)) {
|
@@ -6345,7 +6097,7 @@ var NodeSemanticInfoService = class {
|
|
6345
6097
|
switch (meaning.kind) {
|
6346
6098
|
case "type-access":
|
6347
6099
|
if (meaning.suitableTypes.length === 0 && meaning.candidates.length > 0) {
|
6348
|
-
const targets = meaning.candidates.map((c) => new
|
6100
|
+
const targets = meaning.candidates.map((c) => new EntityReferenceTarget(c, 0 /* Get */));
|
6349
6101
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
|
6350
6102
|
} else {
|
6351
6103
|
result = this.ofMaybeConstructorCallExpression(analyzer, meaning.suitableTypes, node, options6);
|
@@ -6372,28 +6124,19 @@ var NodeSemanticInfoService = class {
|
|
6372
6124
|
narrowedType = analyzer.type.ofExpression(node);
|
6373
6125
|
}
|
6374
6126
|
const variable = meaning.variable;
|
6375
|
-
if (variable.
|
6376
|
-
const target = new
|
6377
|
-
new EntityReferenceTarget(variable.value.value, meaning.accessKind, narrowedType),
|
6378
|
-
variable.localization
|
6379
|
-
);
|
6127
|
+
if (variable.kind === "entity") {
|
6128
|
+
const target = new EntityReferenceTarget(variable.value, meaning.accessKind, narrowedType);
|
6380
6129
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6381
|
-
} else if (variable.
|
6382
|
-
const target = new
|
6383
|
-
new FieldReferenceTarget(variable.value.value, meaning.accessKind, narrowedType),
|
6384
|
-
variable.localization
|
6385
|
-
);
|
6130
|
+
} else if (variable.kind === "type-member") {
|
6131
|
+
const target = new FieldReferenceTarget(variable.value, meaning.accessKind, narrowedType);
|
6386
6132
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6387
6133
|
} else {
|
6388
|
-
Debug.never(variable
|
6134
|
+
Debug.never(variable);
|
6389
6135
|
}
|
6390
6136
|
break;
|
6391
6137
|
}
|
6392
6138
|
case "package-alias-access": {
|
6393
|
-
const target = new
|
6394
|
-
new EntityReferenceTarget(meaning.packageAlias, 0 /* Get */),
|
6395
|
-
new Localization.Original(getPackageContainingEntity(meaning.packageAlias).getLocale())
|
6396
|
-
);
|
6139
|
+
const target = new EntityReferenceTarget(meaning.packageAlias, 0 /* Get */);
|
6397
6140
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6398
6141
|
break;
|
6399
6142
|
}
|
@@ -6403,27 +6146,20 @@ var NodeSemanticInfoService = class {
|
|
6403
6146
|
}
|
6404
6147
|
case "mixed-ambiguous-access": {
|
6405
6148
|
const targets = meaning.declarations.map((d) => {
|
6406
|
-
|
6407
|
-
switch (d.value.kind) {
|
6149
|
+
switch (d.kind) {
|
6408
6150
|
case "function":
|
6409
|
-
|
6410
|
-
break;
|
6151
|
+
return new EntityReferenceTarget(d.value.getEntity(), 0 /* Get */);
|
6411
6152
|
case "variable":
|
6412
|
-
|
6413
|
-
break;
|
6153
|
+
return new EntityReferenceTarget(d.value.getEntity(), 0 /* Get */);
|
6414
6154
|
case "type":
|
6415
|
-
|
6416
|
-
break;
|
6155
|
+
return new EntityReferenceTarget(d.value, 0 /* Get */);
|
6417
6156
|
case "package-alias":
|
6418
|
-
|
6419
|
-
break;
|
6157
|
+
return new EntityReferenceTarget(d.value, 0 /* Get */);
|
6420
6158
|
case "package-name-segment":
|
6421
|
-
|
6422
|
-
break;
|
6159
|
+
return new PackageNameTreeNodeReferenceTarget(d.value);
|
6423
6160
|
default:
|
6424
|
-
Debug.never(d
|
6161
|
+
Debug.never(d);
|
6425
6162
|
}
|
6426
|
-
return new SimpleWithLocalization(target, d.localization);
|
6427
6163
|
});
|
6428
6164
|
if (isNonEmptyArray(targets)) {
|
6429
6165
|
result = new ReferenceNodeSemanticInfo(targets, true);
|
@@ -6440,11 +6176,11 @@ var NodeSemanticInfoService = class {
|
|
6440
6176
|
}
|
6441
6177
|
return result;
|
6442
6178
|
function createAccessedFunctionsReference(functions, isAmbiguous) {
|
6443
|
-
const targets = functions.map((o) => new
|
6179
|
+
const targets = functions.map((o) => new AccessedFunctionReferenceTarget(o));
|
6444
6180
|
return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), isAmbiguous);
|
6445
6181
|
}
|
6446
6182
|
function createOperatorsReference(operators, isAmbiguous) {
|
6447
|
-
const targets = operators.map((o) => new
|
6183
|
+
const targets = operators.map((o) => new OperatorReferenceTarget(o));
|
6448
6184
|
return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), isAmbiguous);
|
6449
6185
|
}
|
6450
6186
|
}
|
@@ -6476,7 +6212,7 @@ var NodeSemanticInfoService = class {
|
|
6476
6212
|
}
|
6477
6213
|
return void 0;
|
6478
6214
|
function createIndexersReference(indexers, accessKind, isAmbiguous) {
|
6479
|
-
const targets = indexers.map((i) => new
|
6215
|
+
const targets = indexers.map((i) => new IndexerReferenceTarget(i, accessKind));
|
6480
6216
|
return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), isAmbiguous);
|
6481
6217
|
}
|
6482
6218
|
}
|
@@ -6485,10 +6221,7 @@ var NodeSemanticInfoService = class {
|
|
6485
6221
|
if (operatorKind !== void 0) {
|
6486
6222
|
const operator = analyzer.resolveCompoundAssignmentStatementOperator(node, operatorKind);
|
6487
6223
|
if (operator.kind === "ok") {
|
6488
|
-
const target = new
|
6489
|
-
new OperatorReferenceTarget(operator.value.value),
|
6490
|
-
operator.value.localization
|
6491
|
-
);
|
6224
|
+
const target = new OperatorReferenceTarget(operator.value);
|
6492
6225
|
let result = new ReferenceNodeSemanticInfo([target], false);
|
6493
6226
|
if (options6.includeBetterReferenceTargets) {
|
6494
6227
|
result = this.getBetterReferenceTargetsOrPreserve(result);
|
@@ -6503,10 +6236,7 @@ var NodeSemanticInfoService = class {
|
|
6503
6236
|
if (classificationResult.kind === "user-definable") {
|
6504
6237
|
const operator = analyzer.resolveBinaryExpressionUserDefinableOperator(node, classificationResult.operatorKind);
|
6505
6238
|
if (operator.kind === "ok") {
|
6506
|
-
const target = new
|
6507
|
-
new OperatorReferenceTarget(operator.value.value),
|
6508
|
-
operator.value.localization
|
6509
|
-
);
|
6239
|
+
const target = new OperatorReferenceTarget(operator.value);
|
6510
6240
|
let result = new ReferenceNodeSemanticInfo([target], false);
|
6511
6241
|
if (options6.includeBetterReferenceTargets) {
|
6512
6242
|
result = this.getBetterReferenceTargetsOrPreserve(result);
|
@@ -6519,10 +6249,7 @@ var NodeSemanticInfoService = class {
|
|
6519
6249
|
static ofPrefixUnaryExpressionOperator(analyzer, node, options6) {
|
6520
6250
|
const operator = analyzer.resolvePrefixUnaryExpressionUserDefinableOperator(node);
|
6521
6251
|
if (operator.kind === "ok") {
|
6522
|
-
const target = new
|
6523
|
-
new OperatorReferenceTarget(operator.value.value),
|
6524
|
-
operator.value.localization
|
6525
|
-
);
|
6252
|
+
const target = new OperatorReferenceTarget(operator.value);
|
6526
6253
|
let result = new ReferenceNodeSemanticInfo([target], false);
|
6527
6254
|
if (options6.includeBetterReferenceTargets) {
|
6528
6255
|
result = this.getBetterReferenceTargetsOrPreserve(result);
|
@@ -6538,10 +6265,7 @@ var NodeSemanticInfoService = class {
|
|
6538
6265
|
static ofDereferenceExpressionOperator(analyzer, node, options6) {
|
6539
6266
|
const meaning = analyzer.getDereferenceExpressionMeaning(node);
|
6540
6267
|
if (meaning.kind === "resolved") {
|
6541
|
-
const target = new
|
6542
|
-
new DereferenceOperatorReferenceTarget(meaning.operator.value, meaning.accessKind),
|
6543
|
-
meaning.operator.localization
|
6544
|
-
);
|
6268
|
+
const target = new DereferenceOperatorReferenceTarget(meaning.operator, meaning.accessKind);
|
6545
6269
|
let result = new ReferenceNodeSemanticInfo([target], false);
|
6546
6270
|
if (options6.includeBetterReferenceTargets) {
|
6547
6271
|
result = this.getBetterReferenceTargetsOrPreserve(result);
|
@@ -6555,10 +6279,10 @@ var NodeSemanticInfoService = class {
|
|
6555
6279
|
let result;
|
6556
6280
|
if (meaning.kind === "constructor-call") {
|
6557
6281
|
if (meaning.suitableConstructors.length > 0) {
|
6558
|
-
const targets = meaning.suitableConstructors.map((c) => new
|
6282
|
+
const targets = meaning.suitableConstructors.map((c) => new ConstructorReferenceTarget(c));
|
6559
6283
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), meaning.suitableConstructors.length > 1);
|
6560
6284
|
} else if (meaning.candidates.length > 0) {
|
6561
|
-
const targets = meaning.candidates.map((c) => new
|
6285
|
+
const targets = meaning.candidates.map((c) => new ConstructorReferenceTarget(c));
|
6562
6286
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
|
6563
6287
|
}
|
6564
6288
|
}
|
@@ -6573,21 +6297,17 @@ var NodeSemanticInfoService = class {
|
|
6573
6297
|
switch (meaning.kind) {
|
6574
6298
|
case "own-constructor-access": {
|
6575
6299
|
if (meaning.suitableConstructors.length > 0) {
|
6576
|
-
const targets = meaning.suitableConstructors.map((c) => new
|
6300
|
+
const targets = meaning.suitableConstructors.map((c) => new ConstructorReferenceTarget(c));
|
6577
6301
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), meaning.suitableConstructors.length > 1);
|
6578
6302
|
} else if (meaning.candidates.length > 0) {
|
6579
|
-
const targets = meaning.candidates.map((c) => new
|
6303
|
+
const targets = meaning.candidates.map((c) => new ConstructorReferenceTarget(c));
|
6580
6304
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
|
6581
6305
|
}
|
6582
6306
|
break;
|
6583
6307
|
}
|
6584
6308
|
case "object-access": {
|
6585
|
-
const locale = TreeQuery.fromNode(node).packageEntity(analyzer).getLocale();
|
6586
6309
|
const type = analyzer.type.ofExpression(node);
|
6587
|
-
const target = new
|
6588
|
-
new TypeContextReferenceTarget(type, "object"),
|
6589
|
-
new Localization.Original(locale)
|
6590
|
-
);
|
6310
|
+
const target = new TypeContextReferenceTarget(type, "object");
|
6591
6311
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6592
6312
|
break;
|
6593
6313
|
}
|
@@ -6607,38 +6327,26 @@ var NodeSemanticInfoService = class {
|
|
6607
6327
|
switch (meaning.kind) {
|
6608
6328
|
case "base-constructor-access": {
|
6609
6329
|
if (meaning.suitableConstructors.length > 0) {
|
6610
|
-
const targets = meaning.suitableConstructors.map((c) => new
|
6330
|
+
const targets = meaning.suitableConstructors.map((c) => new ConstructorReferenceTarget(c));
|
6611
6331
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), meaning.suitableConstructors.length > 1);
|
6612
6332
|
} else if (meaning.candidates.length > 0) {
|
6613
|
-
const targets = meaning.candidates.map((c) => new
|
6333
|
+
const targets = meaning.candidates.map((c) => new ConstructorReferenceTarget(c));
|
6614
6334
|
result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
|
6615
6335
|
}
|
6616
6336
|
break;
|
6617
6337
|
}
|
6618
6338
|
case "base-object-access": {
|
6619
|
-
const
|
6620
|
-
const target = new SimpleWithLocalization(
|
6621
|
-
new TypeContextReferenceTarget(meaning.type, "base"),
|
6622
|
-
new Localization.Original(locale)
|
6623
|
-
);
|
6339
|
+
const target = new TypeContextReferenceTarget(meaning.type, "base");
|
6624
6340
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6625
6341
|
break;
|
6626
6342
|
}
|
6627
6343
|
case "overridden-method-access": {
|
6628
|
-
const
|
6629
|
-
const target = new SimpleWithLocalization(
|
6630
|
-
new AccessedFunctionReferenceTarget(new AccessedFunction_typeMember(meaning.method)),
|
6631
|
-
new Localization.Original(locale)
|
6632
|
-
);
|
6344
|
+
const target = new AccessedFunctionReferenceTarget(new AccessedFunction_typeMember(meaning.method));
|
6633
6345
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6634
6346
|
break;
|
6635
6347
|
}
|
6636
6348
|
case "overridden-operator-access": {
|
6637
|
-
const
|
6638
|
-
const target = new SimpleWithLocalization(
|
6639
|
-
new OperatorReferenceTarget(meaning.operator),
|
6640
|
-
new Localization.Original(locale)
|
6641
|
-
);
|
6349
|
+
const target = new OperatorReferenceTarget(meaning.operator);
|
6642
6350
|
result = new ReferenceNodeSemanticInfo([target], false);
|
6643
6351
|
break;
|
6644
6352
|
}
|
@@ -6666,29 +6374,15 @@ var NodeSemanticInfoService = class {
|
|
6666
6374
|
if (packageTreeNode.package === void 0) {
|
6667
6375
|
return void 0;
|
6668
6376
|
}
|
6669
|
-
return new ReferenceNodeSemanticInfo(
|
6670
|
-
[
|
6671
|
-
new SimpleWithLocalization(
|
6672
|
-
new PackageReferenceTarget(packageTreeNode.package.value),
|
6673
|
-
new Localization.Original(packageTreeNode.package.value.getLocale())
|
6674
|
-
)
|
6675
|
-
],
|
6676
|
-
false
|
6677
|
-
);
|
6377
|
+
return new ReferenceNodeSemanticInfo([new PackageReferenceTarget(packageTreeNode.package)], false);
|
6678
6378
|
}
|
6679
6379
|
static ofMaybeConstructorCallExpression(analyzer, types, typeAccessExpression, options6) {
|
6680
6380
|
if (types.length === 0) {
|
6681
6381
|
return void 0;
|
6682
6382
|
}
|
6683
|
-
const typeEntities = Query.from(types).mapAndFilter((t) =>
|
6684
|
-
const entity = t.value.getEntity();
|
6685
|
-
if (entity !== void 0) {
|
6686
|
-
return new SimpleWithLocalization(entity, t.localization);
|
6687
|
-
}
|
6688
|
-
return void 0;
|
6689
|
-
}).toArray();
|
6383
|
+
const typeEntities = Query.from(types).mapAndFilter((t) => t.getEntity()).toArray();
|
6690
6384
|
if (options6.preferredTargetOfExplicitConstructorCall === "type-declaration" && typeEntities.length > 0) {
|
6691
|
-
const targets = typeEntities.map((t) => new
|
6385
|
+
const targets = typeEntities.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
6692
6386
|
return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), targets.length > 1);
|
6693
6387
|
}
|
6694
6388
|
const parent = getParentSkippingParenthesizedExpressions(typeAccessExpression);
|
@@ -6705,16 +6399,16 @@ var NodeSemanticInfoService = class {
|
|
6705
6399
|
const meaning = analyzer.getCallExpressionMeaning(parentCallExpression);
|
6706
6400
|
if (meaning.kind === "constructor-call") {
|
6707
6401
|
if (meaning.suitableConstructors.length > 0) {
|
6708
|
-
const targets = meaning.suitableConstructors.map((c) => new
|
6402
|
+
const targets = meaning.suitableConstructors.map((c) => new ConstructorReferenceTarget(c));
|
6709
6403
|
return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), meaning.suitableConstructors.length > 1);
|
6710
6404
|
} else if (meaning.candidates.length > 0) {
|
6711
|
-
const targets = meaning.candidates.map((c) => new
|
6405
|
+
const targets = meaning.candidates.map((c) => new ConstructorReferenceTarget(c));
|
6712
6406
|
return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
|
6713
6407
|
}
|
6714
6408
|
}
|
6715
6409
|
}
|
6716
6410
|
if (typeEntities.length > 0) {
|
6717
|
-
const targets = typeEntities.map((t) => new
|
6411
|
+
const targets = typeEntities.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
|
6718
6412
|
return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), targets.length > 1);
|
6719
6413
|
}
|
6720
6414
|
return void 0;
|
@@ -6733,33 +6427,27 @@ var NodeSemanticInfoService = class {
|
|
6733
6427
|
let betterTarget;
|
6734
6428
|
do {
|
6735
6429
|
betterTarget = void 0;
|
6736
|
-
if (currentTarget.
|
6430
|
+
if (currentTarget.kind === "entity" && currentTarget.entity.kind === 0 /* Variable */) {
|
6737
6431
|
{
|
6738
|
-
if (currentTarget.
|
6739
|
-
const specialVariableInfo = currentTarget.
|
6432
|
+
if (currentTarget.entity.subkind === "parameter") {
|
6433
|
+
const specialVariableInfo = currentTarget.entity.isSpecial();
|
6740
6434
|
if (specialVariableInfo?.kind === "implicit-function-block-parameter") {
|
6741
|
-
betterTarget = new
|
6742
|
-
|
6743
|
-
|
6744
|
-
currentTarget.value.accessKind
|
6745
|
-
),
|
6746
|
-
currentTarget.localization
|
6435
|
+
betterTarget = new TypeValueParameterReferenceTarget(
|
6436
|
+
specialVariableInfo.targetTypeParameter,
|
6437
|
+
currentTarget.accessKind
|
6747
6438
|
);
|
6748
6439
|
}
|
6749
6440
|
}
|
6750
6441
|
}
|
6751
|
-
} else if (currentTarget.
|
6752
|
-
const entity = currentTarget.
|
6442
|
+
} else if (currentTarget.kind === "type-constructor") {
|
6443
|
+
const entity = currentTarget.constructor_.getEntity();
|
6753
6444
|
if (entity.getDefinition().kind === 1 /* Intrinsic */) {
|
6754
6445
|
const container = entity.getContainer();
|
6755
6446
|
if (container.kind === "type" && container.typeEntity.getDefinition().kind === 0 /* Source */) {
|
6756
|
-
betterTarget = new
|
6757
|
-
new EntityReferenceTarget(container.typeEntity, 0 /* Get */),
|
6758
|
-
currentTarget.localization
|
6759
|
-
);
|
6447
|
+
betterTarget = new EntityReferenceTarget(container.typeEntity, 0 /* Get */);
|
6760
6448
|
}
|
6761
6449
|
}
|
6762
|
-
} else if (currentTarget.
|
6450
|
+
} else if (currentTarget.kind === "entity" && currentTarget.entity.kind === 1 /* Function */) {
|
6763
6451
|
}
|
6764
6452
|
if (betterTarget !== void 0) {
|
6765
6453
|
result = betterTarget;
|
@@ -6877,29 +6565,12 @@ var IndexerReferenceTarget = class {
|
|
6877
6565
|
this.kind = "type-indexer";
|
6878
6566
|
}
|
6879
6567
|
};
|
6880
|
-
var NameTranslationNodeSemanticInfo = class {
|
6881
|
-
constructor(targets, isAmbiguous, translation) {
|
6882
|
-
this.targets = targets;
|
6883
|
-
this.isAmbiguous = isAmbiguous;
|
6884
|
-
this.translation = translation;
|
6885
|
-
this.kind = "name-translation";
|
6886
|
-
}
|
6887
|
-
get firstTarget() {
|
6888
|
-
return this.targets[0];
|
6889
|
-
}
|
6890
|
-
};
|
6891
6568
|
var DefaultSwitchMatchNodeSemanticInfo = class {
|
6892
6569
|
constructor(type) {
|
6893
6570
|
this.type = type;
|
6894
6571
|
this.kind = "default-switch-match";
|
6895
6572
|
}
|
6896
6573
|
};
|
6897
|
-
var SimpleWithLocalization = class {
|
6898
|
-
constructor(value, localization) {
|
6899
|
-
this.value = value;
|
6900
|
-
this.localization = localization;
|
6901
|
-
}
|
6902
|
-
};
|
6903
6574
|
|
6904
6575
|
// source/services/Utils.ts
|
6905
6576
|
function getEntitySourceLocations(analyzer, entity) {
|
@@ -7060,12 +6731,6 @@ var DefinitionService = class {
|
|
7060
6731
|
result = this.getDefinitionOfReference(analyzer, semanticInfo, tokenOrKeyword, sourceFile);
|
7061
6732
|
break;
|
7062
6733
|
}
|
7063
|
-
case "name-translation":
|
7064
|
-
result = new DefinitionsAndReferenceInfo(
|
7065
|
-
[new SourceLocation(sourceFile, tokenOrKeyword.value.rangeWithoutTrivia)],
|
7066
|
-
tokenOrKeyword.value.rangeWithoutTrivia
|
7067
|
-
);
|
7068
|
-
break;
|
7069
6734
|
case "default-switch-match":
|
7070
6735
|
break;
|
7071
6736
|
default:
|
@@ -7073,18 +6738,11 @@ var DefinitionService = class {
|
|
7073
6738
|
}
|
7074
6739
|
if ((result === void 0 || result.definitionLocations.length === 0) && this._sourceGenerationService !== void 0 && semanticInfo.kind === "reference") {
|
7075
6740
|
const sourceLocations = (yield Promise.all(Query.from(semanticInfo.betterTargets ?? semanticInfo.targets).mapAndFilter((t) => {
|
7076
|
-
const referencedEntity = this.getReferenceTargetEntity(t
|
6741
|
+
const referencedEntity = this.getReferenceTargetEntity(t);
|
7077
6742
|
if (referencedEntity !== void 0 && this._sourceGenerationService.entityDefinitionRequiresSourceGeneration(referencedEntity)) {
|
7078
|
-
const localizationContext = this.createLocalizationContextForSourceGeneration(
|
7079
|
-
analyzer,
|
7080
|
-
tokenOrKeyword.value,
|
7081
|
-
referencedEntity,
|
7082
|
-
t.localization
|
7083
|
-
);
|
7084
6743
|
return this._sourceGenerationService.getDefinitionInGeneratedCode(
|
7085
6744
|
analyzer,
|
7086
6745
|
referencedEntity,
|
7087
|
-
localizationContext,
|
7088
6746
|
cancellationToken
|
7089
6747
|
);
|
7090
6748
|
}
|
@@ -7099,7 +6757,7 @@ var DefinitionService = class {
|
|
7099
6757
|
}
|
7100
6758
|
getDefinitionOfReference(analyzer, reference, tokenOrKeyword, sourceFile) {
|
7101
6759
|
const targets = reference.betterTargets ?? reference.targets;
|
7102
|
-
const sourceLocations = Query.from(targets).mapAndFilter((t) => this.getReferenceTargetSourceLocation(analyzer, t
|
6760
|
+
const sourceLocations = Query.from(targets).mapAndFilter((t) => this.getReferenceTargetSourceLocation(analyzer, t, tokenOrKeyword, sourceFile)).flatMap((l) => l).toArray();
|
7103
6761
|
return new DefinitionsAndReferenceInfo(sourceLocations, tokenOrKeyword.value.rangeWithoutTrivia);
|
7104
6762
|
}
|
7105
6763
|
getReferenceTargetSourceLocation(analyzer, target, tokenOrKeyword, sourceFile) {
|
@@ -7164,7 +6822,7 @@ var DefinitionService = class {
|
|
7164
6822
|
case "package":
|
7165
6823
|
return target.package_;
|
7166
6824
|
case "package-name-tree-node":
|
7167
|
-
return target.node.package
|
6825
|
+
return target.node.package;
|
7168
6826
|
case "type-context":
|
7169
6827
|
return target.type.getEntity();
|
7170
6828
|
case "type-indexer":
|
@@ -7173,15 +6831,6 @@ var DefinitionService = class {
|
|
7173
6831
|
Debug.never(target);
|
7174
6832
|
}
|
7175
6833
|
}
|
7176
|
-
createLocalizationContextForSourceGeneration(analyzer, referenceNode, referencedEntity, localization) {
|
7177
|
-
const referenceContext = analyzer.semanticContext.containing(referenceNode).getLocalizationContext();
|
7178
|
-
let translationPackages = Array.from(referenceContext.translationPackages);
|
7179
|
-
if (localization.kind === "original") {
|
7180
|
-
const containingPackage = getPackageContainingEntity(referencedEntity);
|
7181
|
-
translationPackages = translationPackages.filter((p) => p.getTranslatedPackage() !== containingPackage);
|
7182
|
-
}
|
7183
|
-
return new LocalizationContext(translationPackages, referenceContext.originalLocale);
|
7184
|
-
}
|
7185
6834
|
getSourceLocationsOfVariableEntity(analyzer, entity) {
|
7186
6835
|
let result = getEntitySourceLocations(analyzer, entity);
|
7187
6836
|
if (result === void 0 && entity.kind === 0 /* Variable */) {
|
@@ -7280,17 +6929,17 @@ var ReferencesService = class {
|
|
7280
6929
|
}
|
7281
6930
|
getReferencesInFiles(analyzer, sourceFile, offset, sourceFiles, options6, cancellationToken) {
|
7282
6931
|
return __async(this, null, function* () {
|
7283
|
-
const
|
7284
|
-
if (
|
6932
|
+
const definitions = this.getReferencedDefinitionInfosAtOffset(analyzer, sourceFile, offset, options6);
|
6933
|
+
if (definitions.length === 0) {
|
7285
6934
|
return [];
|
7286
6935
|
}
|
7287
|
-
const { definition, isAtNameTranslation } = definitionAndReferenceInfo;
|
7288
|
-
const onlyWithSameTranslation = options6.onlyNamed || isAtNameTranslation;
|
7289
6936
|
const allowAmbiguous = options6.allowAmbiguous;
|
6937
|
+
const isForRename = options6.isForRename ?? false;
|
7290
6938
|
const result = [];
|
7291
|
-
const
|
6939
|
+
const firstDefinition = definitions[0];
|
6940
|
+
const restrictions = this.getReferenceRestrictions(firstDefinition, options6);
|
7292
6941
|
let semanticInfoOptions;
|
7293
|
-
if (
|
6942
|
+
if (firstDefinition.value.kind === 7 /* Constructor */) {
|
7294
6943
|
semanticInfoOptions = {
|
7295
6944
|
preferredTargetOfExplicitConstructorCall: "constructor-declaration",
|
7296
6945
|
includeBetterReferenceTargets: true
|
@@ -7309,11 +6958,11 @@ var ReferencesService = class {
|
|
7309
6958
|
(node) => {
|
7310
6959
|
if (isIdentifier(node) && restrictions.canBeIdentifier && node.parent.kind !== 3 /* Keyword */) {
|
7311
6960
|
const semanticInfo = NodeSemanticInfoService.ofNonKeywordIdentifier(analyzer, node, semanticInfoOptions);
|
7312
|
-
const referenceKind = this.
|
7313
|
-
|
6961
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
6962
|
+
definitions,
|
7314
6963
|
semanticInfo,
|
7315
|
-
|
7316
|
-
|
6964
|
+
allowAmbiguous,
|
6965
|
+
isForRename
|
7317
6966
|
);
|
7318
6967
|
if (referenceKind !== void 0) {
|
7319
6968
|
result.push(new Reference(sourceFile2, node.rangeWithoutTrivia, referenceKind));
|
@@ -7322,11 +6971,11 @@ var ReferencesService = class {
|
|
7322
6971
|
if (!options6.onlyNamed) {
|
7323
6972
|
if (node.kind === 69 /* AutotypeCallExpression */ && restrictions.canBeAutotypeCall) {
|
7324
6973
|
const semanticInfo = NodeSemanticInfoService.ofAutotypeCallExpression(analyzer, node, semanticInfoOptions);
|
7325
|
-
const referenceKind = this.
|
7326
|
-
|
6974
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
6975
|
+
definitions,
|
7327
6976
|
semanticInfo,
|
7328
|
-
|
7329
|
-
|
6977
|
+
allowAmbiguous,
|
6978
|
+
isForRename
|
7330
6979
|
);
|
7331
6980
|
if (referenceKind !== void 0) {
|
7332
6981
|
result.push(new Reference(sourceFile2, node.autotypeKeyword.rangeWithoutTrivia, referenceKind));
|
@@ -7338,11 +6987,11 @@ var ReferencesService = class {
|
|
7338
6987
|
node,
|
7339
6988
|
semanticInfoOptions
|
7340
6989
|
);
|
7341
|
-
const referenceKind = this.
|
7342
|
-
|
6990
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
6991
|
+
definitions,
|
7343
6992
|
semanticInfo,
|
7344
|
-
|
7345
|
-
|
6993
|
+
allowAmbiguous,
|
6994
|
+
isForRename
|
7346
6995
|
);
|
7347
6996
|
if (referenceKind !== void 0) {
|
7348
6997
|
result.push(new Reference(sourceFile2, node.operator.rangeWithoutTrivia, referenceKind));
|
@@ -7354,11 +7003,11 @@ var ReferencesService = class {
|
|
7354
7003
|
node,
|
7355
7004
|
semanticInfoOptions
|
7356
7005
|
);
|
7357
|
-
const referenceKind = this.
|
7358
|
-
|
7006
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
7007
|
+
definitions,
|
7359
7008
|
semanticInfo,
|
7360
|
-
|
7361
|
-
|
7009
|
+
allowAmbiguous,
|
7010
|
+
isForRename
|
7362
7011
|
);
|
7363
7012
|
if (referenceKind !== void 0) {
|
7364
7013
|
result.push(new Reference(sourceFile2, node.operator.rangeWithoutTrivia, referenceKind));
|
@@ -7366,11 +7015,11 @@ var ReferencesService = class {
|
|
7366
7015
|
}
|
7367
7016
|
if ((node.kind === 48 /* DereferencedVariableGetterDeclaration */ || node.kind === 49 /* DereferencedVariableSetterDeclaration */) && restrictions.canBeDereferenceOperator) {
|
7368
7017
|
const semanticInfo = NodeSemanticInfoService.ofDereferenceOperatorDeclaration(analyzer, node);
|
7369
|
-
const referenceKind = this.
|
7370
|
-
|
7018
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
7019
|
+
definitions,
|
7371
7020
|
semanticInfo,
|
7372
|
-
|
7373
|
-
|
7021
|
+
allowAmbiguous,
|
7022
|
+
isForRename
|
7374
7023
|
);
|
7375
7024
|
if (referenceKind !== void 0) {
|
7376
7025
|
result.push(new Reference(sourceFile2, node.caretToken.rangeWithoutTrivia, referenceKind));
|
@@ -7382,11 +7031,11 @@ var ReferencesService = class {
|
|
7382
7031
|
node,
|
7383
7032
|
semanticInfoOptions
|
7384
7033
|
);
|
7385
|
-
const referenceKind = this.
|
7386
|
-
|
7034
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
7035
|
+
definitions,
|
7387
7036
|
semanticInfo,
|
7388
|
-
|
7389
|
-
|
7037
|
+
allowAmbiguous,
|
7038
|
+
isForRename
|
7390
7039
|
);
|
7391
7040
|
if (referenceKind !== void 0) {
|
7392
7041
|
result.push(new Reference(sourceFile2, node.caretToken.rangeWithoutTrivia, referenceKind));
|
@@ -7398,11 +7047,11 @@ var ReferencesService = class {
|
|
7398
7047
|
node,
|
7399
7048
|
semanticInfoOptions
|
7400
7049
|
);
|
7401
|
-
const referenceKind = this.
|
7402
|
-
|
7050
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
7051
|
+
definitions,
|
7403
7052
|
semanticInfo,
|
7404
|
-
|
7405
|
-
|
7053
|
+
allowAmbiguous,
|
7054
|
+
isForRename
|
7406
7055
|
);
|
7407
7056
|
if (referenceKind !== void 0) {
|
7408
7057
|
result.push(new Reference(sourceFile2, node.operator.rangeWithoutTrivia, referenceKind));
|
@@ -7410,11 +7059,11 @@ var ReferencesService = class {
|
|
7410
7059
|
}
|
7411
7060
|
if (node.kind === 43 /* ConstructorDeclaration */ && restrictions.canBeConstructorDeclaration) {
|
7412
7061
|
const semanticInfo = NodeSemanticInfoService.ofConstructorDeclaration(analyzer, node);
|
7413
|
-
const referenceKind = this.
|
7414
|
-
|
7062
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
7063
|
+
definitions,
|
7415
7064
|
semanticInfo,
|
7416
|
-
|
7417
|
-
|
7065
|
+
allowAmbiguous,
|
7066
|
+
isForRename
|
7418
7067
|
);
|
7419
7068
|
if (referenceKind !== void 0) {
|
7420
7069
|
result.push(new Reference(sourceFile2, node.creationKeyword.rangeWithoutTrivia, referenceKind));
|
@@ -7422,11 +7071,11 @@ var ReferencesService = class {
|
|
7422
7071
|
}
|
7423
7072
|
if (node.kind === 84 /* ObjectExpression */ && restrictions.canBeObjectExpression) {
|
7424
7073
|
const semanticInfo = NodeSemanticInfoService.ofObjectExpression(analyzer, node, semanticInfoOptions);
|
7425
|
-
const referenceKind = this.
|
7426
|
-
|
7074
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
7075
|
+
definitions,
|
7427
7076
|
semanticInfo,
|
7428
|
-
|
7429
|
-
|
7077
|
+
allowAmbiguous,
|
7078
|
+
isForRename
|
7430
7079
|
);
|
7431
7080
|
if (referenceKind !== void 0) {
|
7432
7081
|
result.push(new Reference(sourceFile2, node.keyword.rangeWithoutTrivia, referenceKind));
|
@@ -7434,11 +7083,11 @@ var ReferencesService = class {
|
|
7434
7083
|
}
|
7435
7084
|
if (node.kind === 85 /* BaseExpression */ && restrictions.canBeBaseExpression) {
|
7436
7085
|
const semanticInfo = NodeSemanticInfoService.ofBaseExpression(analyzer, node, semanticInfoOptions);
|
7437
|
-
const referenceKind = this.
|
7438
|
-
|
7086
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
7087
|
+
definitions,
|
7439
7088
|
semanticInfo,
|
7440
|
-
|
7441
|
-
|
7089
|
+
allowAmbiguous,
|
7090
|
+
isForRename
|
7442
7091
|
);
|
7443
7092
|
if (referenceKind !== void 0) {
|
7444
7093
|
result.push(new Reference(sourceFile2, node.keyword.rangeWithoutTrivia, referenceKind));
|
@@ -7446,11 +7095,11 @@ var ReferencesService = class {
|
|
7446
7095
|
}
|
7447
7096
|
if ((node.kind === 45 /* IndexedElementGetterDeclaration */ || node.kind === 46 /* IndexedElementSetterDeclaration */) && restrictions.canBeIndexer) {
|
7448
7097
|
const semanticInfo = NodeSemanticInfoService.ofIndexedElementAccessorDeclaration(analyzer, node);
|
7449
|
-
const referenceKind = this.
|
7450
|
-
|
7098
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
7099
|
+
definitions,
|
7451
7100
|
semanticInfo,
|
7452
|
-
|
7453
|
-
|
7101
|
+
allowAmbiguous,
|
7102
|
+
isForRename
|
7454
7103
|
);
|
7455
7104
|
if (referenceKind !== void 0) {
|
7456
7105
|
result.push(new Reference(sourceFile2, node.parameterClause.rangeWithoutTrivia, referenceKind));
|
@@ -7462,11 +7111,11 @@ var ReferencesService = class {
|
|
7462
7111
|
node,
|
7463
7112
|
semanticInfoOptions
|
7464
7113
|
);
|
7465
|
-
const referenceKind = this.
|
7466
|
-
|
7114
|
+
const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
|
7115
|
+
definitions,
|
7467
7116
|
semanticInfo,
|
7468
|
-
|
7469
|
-
|
7117
|
+
allowAmbiguous,
|
7118
|
+
isForRename
|
7470
7119
|
);
|
7471
7120
|
if (referenceKind !== void 0) {
|
7472
7121
|
const range = new Range(
|
@@ -7483,7 +7132,7 @@ var ReferencesService = class {
|
|
7483
7132
|
return result;
|
7484
7133
|
});
|
7485
7134
|
}
|
7486
|
-
|
7135
|
+
getReferencedDefinitionInfosAtOffset(analyzer, sourceFile, offset, options6) {
|
7487
7136
|
const tokenOrKeyword = getTokenOrKeywordsTouchingOffset(sourceFile.getSyntaxNode(), offset).getSingleWithHighestPriority((t) => {
|
7488
7137
|
if (t.isToken(10 /* Identifier */) || t.isKeyword()) {
|
7489
7138
|
return 2;
|
@@ -7494,7 +7143,7 @@ var ReferencesService = class {
|
|
7494
7143
|
}
|
7495
7144
|
});
|
7496
7145
|
if (tokenOrKeyword === void 0) {
|
7497
|
-
return
|
7146
|
+
return [];
|
7498
7147
|
}
|
7499
7148
|
let semanticInfoOptions;
|
7500
7149
|
if (options6.onlyNamed) {
|
@@ -7510,33 +7159,18 @@ var ReferencesService = class {
|
|
7510
7159
|
}
|
7511
7160
|
const semanticInfo = NodeSemanticInfoService.ofTokenOrKeyword(analyzer, tokenOrKeyword, semanticInfoOptions);
|
7512
7161
|
if (semanticInfo === void 0) {
|
7513
|
-
return
|
7514
|
-
}
|
7515
|
-
const definition = this.getDefinitionFromNodeSemanticInfo(semanticInfo);
|
7516
|
-
if (definition !== void 0) {
|
7517
|
-
const isAtNameTranslation = semanticInfo.kind === "name-translation";
|
7518
|
-
return { definition, isAtNameTranslation };
|
7162
|
+
return [];
|
7519
7163
|
}
|
7520
|
-
return
|
7164
|
+
return this.getDefinitionsFromNodeSemanticInfo(semanticInfo);
|
7521
7165
|
}
|
7522
|
-
|
7166
|
+
getDefinitionsFromNodeSemanticInfo(info) {
|
7523
7167
|
switch (info.kind) {
|
7524
7168
|
case "definition":
|
7525
|
-
return new DefinitionInfo(
|
7526
|
-
info.entity,
|
7527
|
-
new Localization.Original(getPackageContainingEntity(info.entity).getLocale()),
|
7528
|
-
2 /* Declaration */
|
7529
|
-
);
|
7169
|
+
return [new DefinitionInfo(info.entity, 2 /* Declaration */)];
|
7530
7170
|
case "reference":
|
7531
7171
|
return getDefinitionOfReference(info);
|
7532
|
-
case "name-translation":
|
7533
|
-
return new DefinitionInfo(
|
7534
|
-
info.firstTarget,
|
7535
|
-
new Localization.Translated(info.translation),
|
7536
|
-
0 /* Read */
|
7537
|
-
);
|
7538
7172
|
case "default-switch-match":
|
7539
|
-
return
|
7173
|
+
return [];
|
7540
7174
|
default:
|
7541
7175
|
Debug.never(info);
|
7542
7176
|
}
|
@@ -7553,63 +7187,45 @@ var ReferencesService = class {
|
|
7553
7187
|
}
|
7554
7188
|
}
|
7555
7189
|
function getDefinitionOfReference(reference) {
|
7556
|
-
const
|
7557
|
-
|
7558
|
-
|
7559
|
-
|
7560
|
-
|
7561
|
-
|
7562
|
-
accessKindToReferenceKind(
|
7563
|
-
|
7564
|
-
|
7565
|
-
|
7566
|
-
|
7567
|
-
|
7568
|
-
|
7569
|
-
|
7570
|
-
|
7571
|
-
|
7572
|
-
|
7573
|
-
|
7574
|
-
|
7575
|
-
|
7576
|
-
|
7577
|
-
|
7578
|
-
|
7579
|
-
|
7580
|
-
|
7581
|
-
|
7582
|
-
|
7583
|
-
target.localization,
|
7584
|
-
accessKindToReferenceKind(target.value.accessKind)
|
7585
|
-
);
|
7586
|
-
case "accessed-function":
|
7587
|
-
return new DefinitionInfo(target.value.func.getEntity(), target.localization, 0 /* Read */);
|
7588
|
-
case "match-result-value-parameter":
|
7589
|
-
return new DefinitionInfo(target.value.parameter.entity, target.localization, 0 /* Read */);
|
7590
|
-
case "package":
|
7591
|
-
return new DefinitionInfo(target.value.package_, target.localization, 0 /* Read */);
|
7592
|
-
case "type-context": {
|
7593
|
-
const entity = target.value.type.getEntity();
|
7594
|
-
if (entity !== void 0) {
|
7595
|
-
return new DefinitionInfo(entity, target.localization, 0 /* Read */);
|
7190
|
+
const targets = reference.betterTargets ?? reference.targets;
|
7191
|
+
return targets.map((t) => {
|
7192
|
+
switch (t.kind) {
|
7193
|
+
case "entity":
|
7194
|
+
return new DefinitionInfo(t.entity, accessKindToReferenceKind(t.accessKind));
|
7195
|
+
case "field":
|
7196
|
+
return new DefinitionInfo(t.field.getEntity(), accessKindToReferenceKind(t.accessKind));
|
7197
|
+
case "type-value-parameter":
|
7198
|
+
return new DefinitionInfo(t.parameter.getEntity(), accessKindToReferenceKind(t.accessKind));
|
7199
|
+
case "type-constructor":
|
7200
|
+
return new DefinitionInfo(t.constructor_.getEntity(), 0 /* Read */);
|
7201
|
+
case "operator":
|
7202
|
+
return new DefinitionInfo(t.operator.getEntity(), 0 /* Read */);
|
7203
|
+
case "type-dereference-operator":
|
7204
|
+
return new DefinitionInfo(t.operator.getEntity(), accessKindToReferenceKind(t.accessKind));
|
7205
|
+
case "accessed-function":
|
7206
|
+
return new DefinitionInfo(t.func.getEntity(), 0 /* Read */);
|
7207
|
+
case "match-result-value-parameter":
|
7208
|
+
return new DefinitionInfo(t.parameter.entity, 0 /* Read */);
|
7209
|
+
case "package":
|
7210
|
+
return new DefinitionInfo(t.package_, 0 /* Read */);
|
7211
|
+
case "type-context": {
|
7212
|
+
const entity = t.type.getEntity();
|
7213
|
+
if (entity !== void 0) {
|
7214
|
+
return new DefinitionInfo(entity, 0 /* Read */);
|
7215
|
+
}
|
7216
|
+
return void 0;
|
7596
7217
|
}
|
7597
|
-
|
7218
|
+
case "type-indexer":
|
7219
|
+
return new DefinitionInfo(t.indexer.getEntity(), accessKindToReferenceKind(t.accessKind));
|
7220
|
+
case "package-name-tree-node":
|
7221
|
+
if (t.node.package !== void 0) {
|
7222
|
+
return new DefinitionInfo(t.node.package, 0 /* Read */);
|
7223
|
+
}
|
7224
|
+
return void 0;
|
7225
|
+
default:
|
7226
|
+
Debug.never(t);
|
7598
7227
|
}
|
7599
|
-
|
7600
|
-
return new DefinitionInfo(
|
7601
|
-
target.value.indexer.getEntity(),
|
7602
|
-
target.localization,
|
7603
|
-
accessKindToReferenceKind(target.value.accessKind)
|
7604
|
-
);
|
7605
|
-
case "package-name-tree-node":
|
7606
|
-
if (target.value.node.package !== void 0) {
|
7607
|
-
return new DefinitionInfo(target.value.node.package.value, target.localization, 0 /* Read */);
|
7608
|
-
}
|
7609
|
-
return void 0;
|
7610
|
-
default:
|
7611
|
-
Debug.never(target.value);
|
7612
|
-
}
|
7228
|
+
}).filter((t) => t !== void 0);
|
7613
7229
|
}
|
7614
7230
|
}
|
7615
7231
|
getReferenceRestrictions(definition, _options) {
|
@@ -7654,30 +7270,62 @@ var ReferencesService = class {
|
|
7654
7270
|
}
|
7655
7271
|
return result;
|
7656
7272
|
}
|
7657
|
-
|
7273
|
+
ifReferenceToSomeOfDefinitionsThenKind(definitions, potentialReferenceSemanticInfo, allowAmbiguous, isForRename) {
|
7274
|
+
Debug.assert(definitions.length > 0);
|
7658
7275
|
if (potentialReferenceSemanticInfo === void 0) {
|
7659
7276
|
return void 0;
|
7660
7277
|
}
|
7661
7278
|
if (potentialReferenceSemanticInfo.kind === "reference" && potentialReferenceSemanticInfo.isAmbiguous && !allowAmbiguous) {
|
7662
7279
|
return void 0;
|
7663
7280
|
}
|
7664
|
-
const
|
7665
|
-
if (
|
7666
|
-
return void 0;
|
7667
|
-
}
|
7668
|
-
if (definition.value.kind !== potentialReferenceDefinition.value.kind) {
|
7281
|
+
const potentialReferenceDefinitions = this.getDefinitionsFromNodeSemanticInfo(potentialReferenceSemanticInfo);
|
7282
|
+
if (potentialReferenceDefinitions.length === 0) {
|
7669
7283
|
return void 0;
|
7670
7284
|
}
|
7671
|
-
if (
|
7285
|
+
if (definitions.length === 1 && potentialReferenceDefinitions.length === 1) {
|
7286
|
+
if (this.areEntitiesWithSameDefinition(
|
7287
|
+
definitions[0].value,
|
7288
|
+
potentialReferenceDefinitions[0].value,
|
7289
|
+
isForRename
|
7290
|
+
)) {
|
7291
|
+
return potentialReferenceDefinitions[0].referenceKind;
|
7292
|
+
} else {
|
7293
|
+
return void 0;
|
7294
|
+
}
|
7295
|
+
} else if (definitions.length > 1 && potentialReferenceDefinitions.length === 1) {
|
7296
|
+
if (definitions.some((d) => this.areEntitiesWithSameDefinition(d.value, potentialReferenceDefinitions[0].value, isForRename))) {
|
7297
|
+
return potentialReferenceDefinitions[0].referenceKind;
|
7298
|
+
} else {
|
7299
|
+
return void 0;
|
7300
|
+
}
|
7301
|
+
} else if (definitions.length === 1 && potentialReferenceDefinitions.length > 1) {
|
7302
|
+
if (potentialReferenceDefinitions.some((r) => this.areEntitiesWithSameDefinition(r.value, definitions[0].value, isForRename))) {
|
7303
|
+
return potentialReferenceDefinitions[0].referenceKind;
|
7304
|
+
} else {
|
7305
|
+
return void 0;
|
7306
|
+
}
|
7307
|
+
} else if (definitions.length > 1 && potentialReferenceDefinitions.length > 1) {
|
7308
|
+
if (definitions.length === potentialReferenceDefinitions.length && definitions.every((d) => potentialReferenceDefinitions.some((rd) => this.areEntitiesWithSameDefinition(rd.value, d.value, isForRename)))) {
|
7309
|
+
return potentialReferenceDefinitions[0].referenceKind;
|
7310
|
+
} else {
|
7311
|
+
return void 0;
|
7312
|
+
}
|
7313
|
+
} else {
|
7672
7314
|
return void 0;
|
7673
7315
|
}
|
7674
|
-
|
7675
|
-
|
7316
|
+
}
|
7317
|
+
areEntitiesWithSameDefinition(entity1, entity2, isForRename) {
|
7318
|
+
if (entity1 === entity2) {
|
7319
|
+
return true;
|
7676
7320
|
}
|
7677
|
-
if (
|
7678
|
-
|
7321
|
+
if (isForRename) {
|
7322
|
+
const entity1Localization = entity1.getLocalization();
|
7323
|
+
const entity2Localization = entity2.getLocalization();
|
7324
|
+
if (entity1Localization.kind === "translated" && entity2Localization.kind === "translated" && entity1Localization.translation.equals(entity2Localization.translation)) {
|
7325
|
+
return true;
|
7326
|
+
}
|
7679
7327
|
}
|
7680
|
-
return
|
7328
|
+
return false;
|
7681
7329
|
}
|
7682
7330
|
isEntityWithRegularName(entity) {
|
7683
7331
|
switch (entity.kind) {
|
@@ -7741,9 +7389,8 @@ var Reference = class {
|
|
7741
7389
|
}
|
7742
7390
|
};
|
7743
7391
|
var DefinitionInfo = class {
|
7744
|
-
constructor(value,
|
7392
|
+
constructor(value, referenceKind) {
|
7745
7393
|
this.value = value;
|
7746
|
-
this.localization = localization;
|
7747
7394
|
this.referenceKind = referenceKind;
|
7748
7395
|
}
|
7749
7396
|
};
|
@@ -7975,26 +7622,14 @@ var HoverService = class {
|
|
7975
7622
|
}
|
7976
7623
|
this._displayService = new DisplayService(
|
7977
7624
|
analyzer,
|
7978
|
-
|
7979
|
-
sourceFile.package.dialect
|
7625
|
+
sourceFile.package.locale,
|
7626
|
+
sourceFile.package.dialect
|
7980
7627
|
);
|
7981
7628
|
switch (semanticInfo.kind) {
|
7982
7629
|
case "definition":
|
7983
|
-
return this.createHoverForEntity(
|
7984
|
-
semanticInfo.entity,
|
7985
|
-
void 0,
|
7986
|
-
void 0,
|
7987
|
-
tokenOrKeyword.value.rangeWithoutTrivia
|
7988
|
-
);
|
7630
|
+
return this.createHoverForEntity(semanticInfo.entity, void 0, tokenOrKeyword.value.rangeWithoutTrivia);
|
7989
7631
|
case "reference":
|
7990
7632
|
return this.createHoverAtReference(semanticInfo, tokenOrKeyword.value.rangeWithoutTrivia);
|
7991
|
-
case "name-translation":
|
7992
|
-
return this.createHoverForEntity(
|
7993
|
-
semanticInfo.firstTarget,
|
7994
|
-
new Localization.Translated(semanticInfo.translation),
|
7995
|
-
void 0,
|
7996
|
-
tokenOrKeyword.value.rangeWithoutTrivia
|
7997
|
-
);
|
7998
7633
|
case "default-switch-match":
|
7999
7634
|
return new Hover(
|
8000
7635
|
`*: ${this._displayService.displayType(semanticInfo.type)}`,
|
@@ -8004,111 +7639,87 @@ var HoverService = class {
|
|
8004
7639
|
Debug.never(semanticInfo);
|
8005
7640
|
}
|
8006
7641
|
}
|
8007
|
-
createHoverForEntity(entity,
|
7642
|
+
createHoverForEntity(entity, narrowedType, range) {
|
8008
7643
|
if (entity.kind === 0 /* Variable */) {
|
8009
|
-
|
8010
|
-
const declaration = new VariableDeclaration_entity(
|
8011
|
-
entity,
|
8012
|
-
localization,
|
8013
|
-
narrowedType
|
8014
|
-
);
|
7644
|
+
const declaration = new VariableDeclaration_entity(entity, narrowedType);
|
8015
7645
|
return new Hover(this._displayService.displayVariableDeclaration(declaration), range);
|
8016
7646
|
} else {
|
8017
|
-
return new Hover(this._displayService.displayEntity(entity
|
7647
|
+
return new Hover(this._displayService.displayEntity(entity), range);
|
8018
7648
|
}
|
8019
7649
|
}
|
8020
7650
|
createHoverAtReference(reference, range) {
|
8021
7651
|
const firstTarget = reference.firstTarget;
|
8022
|
-
switch (firstTarget.
|
7652
|
+
switch (firstTarget.kind) {
|
8023
7653
|
case "entity":
|
8024
|
-
return this.createHoverForEntity(
|
8025
|
-
firstTarget.value.entity,
|
8026
|
-
firstTarget.localization,
|
8027
|
-
firstTarget.value.narrowedType,
|
8028
|
-
range
|
8029
|
-
);
|
7654
|
+
return this.createHoverForEntity(firstTarget.entity, firstTarget.narrowedType, range);
|
8030
7655
|
case "field": {
|
8031
7656
|
const declaration = new VariableDeclaration_typeMember(
|
8032
|
-
firstTarget.
|
8033
|
-
firstTarget.
|
8034
|
-
firstTarget.value.narrowedType
|
7657
|
+
firstTarget.field,
|
7658
|
+
firstTarget.narrowedType
|
8035
7659
|
);
|
8036
7660
|
return new Hover(this._displayService.displayVariableDeclaration(declaration), range);
|
8037
7661
|
}
|
8038
7662
|
case "type-constructor": {
|
8039
|
-
const declaration = new ConstructorDeclaration_typeMember(
|
8040
|
-
firstTarget.value.constructor_,
|
8041
|
-
firstTarget.localization
|
8042
|
-
);
|
7663
|
+
const declaration = new ConstructorDeclaration_typeMember(firstTarget.constructor_);
|
8043
7664
|
return new Hover(this._displayService.displayConstructorDeclaration(declaration), range);
|
8044
7665
|
}
|
8045
7666
|
case "operator": {
|
8046
|
-
const operator = new OperatorDeclaration_typeMember(
|
8047
|
-
firstTarget.value.operator,
|
8048
|
-
firstTarget.localization
|
8049
|
-
);
|
7667
|
+
const operator = new OperatorDeclaration_typeMember(firstTarget.operator);
|
8050
7668
|
return new Hover(this._displayService.displayOperatorDeclaration(operator), range);
|
8051
7669
|
}
|
8052
7670
|
case "type-dereference-operator": {
|
8053
|
-
const operator = new DereferenceOperatorDeclaration_typeMember(firstTarget.
|
7671
|
+
const operator = new DereferenceOperatorDeclaration_typeMember(firstTarget.operator);
|
8054
7672
|
return new Hover(this._displayService.displayDereferenceOperatorDeclaration(operator), range);
|
8055
7673
|
}
|
8056
7674
|
case "accessed-function":
|
8057
|
-
return this.createHoverAtAccessedFunction(firstTarget.
|
7675
|
+
return this.createHoverAtAccessedFunction(firstTarget.func, range);
|
8058
7676
|
case "match-result-value-parameter": {
|
8059
7677
|
const declaration = new ValueParameterDeclaration_matchResultValueParameter(
|
8060
|
-
firstTarget.
|
8061
|
-
firstTarget.localization
|
7678
|
+
firstTarget.parameter
|
8062
7679
|
);
|
8063
7680
|
return new Hover(this._displayService.displayValueParameterDeclaration(declaration), range);
|
8064
7681
|
}
|
8065
7682
|
case "type-value-parameter": {
|
8066
|
-
const declaration = new ValueParameterDeclaration_typeMember(
|
8067
|
-
firstTarget.value.parameter,
|
8068
|
-
firstTarget.localization
|
8069
|
-
);
|
7683
|
+
const declaration = new ValueParameterDeclaration_typeMember(firstTarget.parameter);
|
8070
7684
|
return new Hover(this._displayService.displayValueParameterDeclaration(declaration), range);
|
8071
7685
|
}
|
8072
7686
|
case "package":
|
8073
|
-
return new Hover(this._displayService.displayPackage(firstTarget.
|
7687
|
+
return new Hover(this._displayService.displayPackage(firstTarget.package_), range);
|
8074
7688
|
case "package-name-tree-node":
|
8075
|
-
return new Hover(this._displayService.displayPackageNameTreeNode(firstTarget.
|
7689
|
+
return new Hover(this._displayService.displayPackageNameTreeNode(firstTarget.node), range);
|
8076
7690
|
case "type-context": {
|
8077
|
-
if (firstTarget.
|
7691
|
+
if (firstTarget.typeContextKind === "object") {
|
8078
7692
|
const keywordText = this._displayService.displayKeyword(4 /* Object */);
|
8079
|
-
const typeText = this._displayService.displayType(firstTarget.
|
7693
|
+
const typeText = this._displayService.displayType(firstTarget.type);
|
8080
7694
|
return new Hover(`${keywordText}: ${typeText}`, range);
|
8081
|
-
} else if (firstTarget.
|
7695
|
+
} else if (firstTarget.typeContextKind === "base") {
|
8082
7696
|
const keywordText = this._displayService.displayKeyword(56 /* Base */);
|
8083
|
-
const typeText = this._displayService.displayType(firstTarget.
|
7697
|
+
const typeText = this._displayService.displayType(firstTarget.type);
|
8084
7698
|
return new Hover(`${keywordText}: ${typeText}`, range);
|
8085
7699
|
} else {
|
8086
|
-
Debug.never(firstTarget.
|
7700
|
+
Debug.never(firstTarget.typeContextKind);
|
8087
7701
|
}
|
8088
7702
|
}
|
8089
7703
|
case "type-indexer": {
|
8090
|
-
const declaration = new IndexerDeclaration_typeMember(
|
8091
|
-
firstTarget.value.indexer,
|
8092
|
-
firstTarget.localization
|
8093
|
-
);
|
7704
|
+
const declaration = new IndexerDeclaration_typeMember(firstTarget.indexer);
|
8094
7705
|
return new Hover(this._displayService.displayIndexerDeclaration(declaration), range);
|
8095
7706
|
}
|
8096
7707
|
default:
|
8097
|
-
Debug.never(firstTarget
|
7708
|
+
Debug.never(firstTarget);
|
8098
7709
|
}
|
8099
7710
|
}
|
8100
|
-
createHoverAtAccessedFunction(func,
|
7711
|
+
createHoverAtAccessedFunction(func, range) {
|
8101
7712
|
switch (func.kind) {
|
8102
7713
|
case "entity": {
|
8103
|
-
const declaration = new FunctionDeclaration_entity(func.value
|
7714
|
+
const declaration = new FunctionDeclaration_entity(func.value);
|
8104
7715
|
return new Hover(this._displayService.displayFunctionDeclaration(declaration), range);
|
8105
7716
|
}
|
8106
7717
|
case "type-member": {
|
8107
|
-
const declaration = new FunctionDeclaration_typeMember(func.value
|
7718
|
+
const declaration = new FunctionDeclaration_typeMember(func.value);
|
8108
7719
|
return new Hover(this._displayService.displayFunctionDeclaration(declaration), range);
|
8109
7720
|
}
|
8110
7721
|
case "substituted-function": {
|
8111
|
-
const declaration = new FunctionDeclaration_substitutedFunction(func.value
|
7722
|
+
const declaration = new FunctionDeclaration_substitutedFunction(func.value);
|
8112
7723
|
return new Hover(this._displayService.displayFunctionDeclaration(declaration), range);
|
8113
7724
|
}
|
8114
7725
|
default:
|
@@ -8476,7 +8087,8 @@ var RenameService = class {
|
|
8476
8087
|
const options6 = {
|
8477
8088
|
onlyWithSameAlias: true,
|
8478
8089
|
onlyNamed: true,
|
8479
|
-
allowAmbiguous: false
|
8090
|
+
allowAmbiguous: false,
|
8091
|
+
isForRename: true
|
8480
8092
|
};
|
8481
8093
|
const sourceFiles = Query.from(analyzer.compilation.enumerateSourceFiles()).filter((f) => f.uri.scheme !== InMemoryPackageScheme);
|
8482
8094
|
const references = yield this._referencesService.getReferencesInFiles(
|
@@ -8511,24 +8123,24 @@ var RenameService = class {
|
|
8511
8123
|
}
|
8512
8124
|
const target = semanticInfo.firstBetterTargetWithFallback;
|
8513
8125
|
let canBeRenamed;
|
8514
|
-
switch (target.
|
8126
|
+
switch (target.kind) {
|
8515
8127
|
case "entity":
|
8516
|
-
canBeRenamed = this.entityCanBeRenamed(analyzer, target.
|
8128
|
+
canBeRenamed = this.entityCanBeRenamed(analyzer, target.entity);
|
8517
8129
|
break;
|
8518
8130
|
case "field":
|
8519
|
-
canBeRenamed = this.entityCanBeRenamed(analyzer, target.
|
8131
|
+
canBeRenamed = this.entityCanBeRenamed(analyzer, target.field.getEntity());
|
8520
8132
|
break;
|
8521
8133
|
case "type-value-parameter":
|
8522
|
-
canBeRenamed = this.entityCanBeRenamed(analyzer, target.
|
8134
|
+
canBeRenamed = this.entityCanBeRenamed(analyzer, target.parameter.getEntity());
|
8523
8135
|
break;
|
8524
8136
|
case "accessed-function":
|
8525
|
-
canBeRenamed = this.entityCanBeRenamed(analyzer, target.
|
8137
|
+
canBeRenamed = this.entityCanBeRenamed(analyzer, target.func.getEntity());
|
8526
8138
|
break;
|
8527
8139
|
case "match-result-value-parameter":
|
8528
|
-
canBeRenamed = this.entityCanBeRenamed(analyzer, target.
|
8140
|
+
canBeRenamed = this.entityCanBeRenamed(analyzer, target.parameter.entity);
|
8529
8141
|
break;
|
8530
8142
|
case "operator":
|
8531
|
-
canBeRenamed = this.entityCanBeRenamed(analyzer, target.
|
8143
|
+
canBeRenamed = this.entityCanBeRenamed(analyzer, target.operator.getEntity());
|
8532
8144
|
break;
|
8533
8145
|
case "type-constructor":
|
8534
8146
|
case "type-dereference-operator":
|
@@ -8539,7 +8151,7 @@ var RenameService = class {
|
|
8539
8151
|
canBeRenamed = false;
|
8540
8152
|
break;
|
8541
8153
|
default:
|
8542
|
-
Debug.never(target
|
8154
|
+
Debug.never(target);
|
8543
8155
|
}
|
8544
8156
|
if (!canBeRenamed) {
|
8545
8157
|
return void 0;
|
@@ -8663,7 +8275,7 @@ var SemanticTokensService = class {
|
|
8663
8275
|
if (node.kind === 86 /* IdentifierExpression */) {
|
8664
8276
|
const meaning = analyzer.resolveIdentifierExpression(node).meaning;
|
8665
8277
|
if (meaning.kind === "variable-access") {
|
8666
|
-
const variable = meaning.variable.
|
8278
|
+
const variable = meaning.variable.getEntity();
|
8667
8279
|
if (variable.subkind === "field" && variable.isVariant()) {
|
8668
8280
|
result.push(
|
8669
8281
|
new SemanticToken(
|
@@ -8703,7 +8315,7 @@ var SemanticTokensService = class {
|
|
8703
8315
|
result.push(
|
8704
8316
|
new SemanticToken(
|
8705
8317
|
node.rangeWithoutTrivia,
|
8706
|
-
this.getSemanticTokenKindForFunctionEntity(func.
|
8318
|
+
this.getSemanticTokenKindForFunctionEntity(func.getEntity()),
|
8707
8319
|
new SemanticTokenModifiers().setCapitalized(this.isCapitalizedName(func.value.getName()))
|
8708
8320
|
)
|
8709
8321
|
);
|
@@ -8719,7 +8331,7 @@ var SemanticTokensService = class {
|
|
8719
8331
|
if (node.kind === 76 /* MemberAccessExpression */) {
|
8720
8332
|
const meaning = analyzer.resolveMemberAccessExpression(node).meaning;
|
8721
8333
|
if (meaning.kind === "static-field-access") {
|
8722
|
-
const entity = meaning.field.
|
8334
|
+
const entity = meaning.field.getEntity();
|
8723
8335
|
if (entity.subkind === "field" && entity.isVariant()) {
|
8724
8336
|
result.push(
|
8725
8337
|
new SemanticToken(
|
@@ -8733,13 +8345,13 @@ var SemanticTokensService = class {
|
|
8733
8345
|
let suitableFunctions;
|
8734
8346
|
switch (meaning.kind) {
|
8735
8347
|
case "package-function-access":
|
8736
|
-
suitableFunctions = meaning.suitableFunctions
|
8348
|
+
suitableFunctions = meaning.suitableFunctions;
|
8737
8349
|
break;
|
8738
8350
|
case "static-method-access":
|
8739
|
-
suitableFunctions = meaning.suitableFunctions
|
8351
|
+
suitableFunctions = meaning.suitableFunctions;
|
8740
8352
|
break;
|
8741
8353
|
case "instance-method-access":
|
8742
|
-
suitableFunctions = meaning.suitableFunctions
|
8354
|
+
suitableFunctions = meaning.suitableFunctions;
|
8743
8355
|
break;
|
8744
8356
|
}
|
8745
8357
|
if (suitableFunctions !== void 0 && suitableFunctions.length > 0) {
|
@@ -8822,11 +8434,7 @@ var SemanticTokensService = class {
|
|
8822
8434
|
if (typeof name === "string") {
|
8823
8435
|
firstChar = name.charAt(0);
|
8824
8436
|
} else {
|
8825
|
-
|
8826
|
-
while (name.unescapedOriginal.charAt(firstCharIndex) === "~") {
|
8827
|
-
firstCharIndex++;
|
8828
|
-
}
|
8829
|
-
firstChar = name.unescapedOriginal.charAt(firstCharIndex);
|
8437
|
+
firstChar = name.unescapedOriginal.charAt(0);
|
8830
8438
|
}
|
8831
8439
|
return firstChar.toLowerCase() !== firstChar;
|
8832
8440
|
}
|
@@ -8912,15 +8520,11 @@ var TypeParameterSignatureHelpProvider = class {
|
|
8912
8520
|
this._offset = offset;
|
8913
8521
|
}
|
8914
8522
|
get signatureContext() {
|
8915
|
-
return this._signatureContext.getOrInsertWith(
|
8916
|
-
|
8917
|
-
|
8918
|
-
|
8919
|
-
|
8920
|
-
this._sourceFile.package.dialect ?? 0 /* ArtelAM */
|
8921
|
-
)
|
8922
|
-
)
|
8923
|
-
);
|
8523
|
+
return this._signatureContext.getOrInsertWith(() => new SignatureContext(new DisplayService(
|
8524
|
+
this._analyzer,
|
8525
|
+
this._sourceFile.package.locale,
|
8526
|
+
this._sourceFile.package.dialect
|
8527
|
+
)));
|
8924
8528
|
}
|
8925
8529
|
provideSignatureHelp() {
|
8926
8530
|
let result = void 0;
|
@@ -9006,7 +8610,7 @@ var TypeParameterSignatureHelpProvider = class {
|
|
9006
8610
|
if (resolutionResult.resolvedQualifiers.length > 0) {
|
9007
8611
|
const lastQualifier = resolutionResult.resolvedQualifiers[resolutionResult.resolvedQualifiers.length - 1];
|
9008
8612
|
if (lastQualifier.kind === "type") {
|
9009
|
-
return Query.from(lastQualifier.candidates).mapAndFilter((t) => this.getSignatureForNamedType(t
|
8613
|
+
return Query.from(lastQualifier.candidates).mapAndFilter((t) => this.getSignatureForNamedType(t)).toArray();
|
9010
8614
|
}
|
9011
8615
|
}
|
9012
8616
|
return void 0;
|
@@ -9016,12 +8620,12 @@ var TypeParameterSignatureHelpProvider = class {
|
|
9016
8620
|
if (resolutionResult.resolvedQualifiers.length > 0) {
|
9017
8621
|
const lastQualifier = resolutionResult.resolvedQualifiers[resolutionResult.resolvedQualifiers.length - 1];
|
9018
8622
|
if (lastQualifier.kind === "type") {
|
9019
|
-
return Query.from(lastQualifier.candidates).mapAndFilter((t) => this.getSignatureForNamedType(t
|
8623
|
+
return Query.from(lastQualifier.candidates).mapAndFilter((t) => this.getSignatureForNamedType(t)).toArray();
|
9020
8624
|
} else if (lastQualifier.kind === "function") {
|
9021
8625
|
if (resolutionResult.meaning.kind === "tag-function") {
|
9022
8626
|
return Query.from(resolutionResult.meaning.candidates).mapAndFilter((d) => {
|
9023
|
-
if (d.
|
9024
|
-
return this.getSignatureForSubstitutedFunction(d.value
|
8627
|
+
if (d.kind === "substituted-function") {
|
8628
|
+
return this.getSignatureForSubstitutedFunction(d.value);
|
9025
8629
|
}
|
9026
8630
|
return void 0;
|
9027
8631
|
}).toArray();
|
@@ -9038,14 +8642,14 @@ var TypeParameterSignatureHelpProvider = class {
|
|
9038
8642
|
const meaning = this._analyzer.resolveIdentifierExpression(expression).meaning;
|
9039
8643
|
if (meaning.kind === "function-access") {
|
9040
8644
|
return Query.from(meaning.candidates).mapAndFilter((o) => {
|
9041
|
-
if (o.
|
9042
|
-
return this.getSignatureForSubstitutedFunction(o.value
|
8645
|
+
if (o.kind === "substituted-function") {
|
8646
|
+
return this.getSignatureForSubstitutedFunction(o.value);
|
9043
8647
|
}
|
9044
8648
|
return void 0;
|
9045
8649
|
}).toArray();
|
9046
8650
|
}
|
9047
8651
|
if (meaning.kind === "type-access") {
|
9048
|
-
return Query.from(meaning.candidates).mapAndFilter((t) => this.getSignatureForNamedType(t
|
8652
|
+
return Query.from(meaning.candidates).mapAndFilter((t) => this.getSignatureForNamedType(t)).toArray();
|
9049
8653
|
}
|
9050
8654
|
return void 0;
|
9051
8655
|
}
|
@@ -9061,30 +8665,30 @@ var TypeParameterSignatureHelpProvider = class {
|
|
9061
8665
|
}
|
9062
8666
|
if (accessedFunctions !== void 0) {
|
9063
8667
|
return Query.from(accessedFunctions).mapAndFilter((o) => {
|
9064
|
-
if (o.
|
9065
|
-
return this.getSignatureForSubstitutedFunction(o.value
|
8668
|
+
if (o.kind === "substituted-function") {
|
8669
|
+
return this.getSignatureForSubstitutedFunction(o.value);
|
9066
8670
|
}
|
9067
8671
|
return void 0;
|
9068
8672
|
}).toArray();
|
9069
8673
|
}
|
9070
8674
|
if (meaning.kind === "package-type-access") {
|
9071
|
-
return Query.from(meaning.candidates).mapAndFilter((t) => this.getSignatureForNamedType(t
|
8675
|
+
return Query.from(meaning.candidates).mapAndFilter((t) => this.getSignatureForNamedType(t)).toArray();
|
9072
8676
|
}
|
9073
8677
|
return void 0;
|
9074
8678
|
}
|
9075
8679
|
return void 0;
|
9076
8680
|
}
|
9077
|
-
getSignatureForSubstitutedFunction(func
|
8681
|
+
getSignatureForSubstitutedFunction(func) {
|
9078
8682
|
let result = void 0;
|
9079
8683
|
switch (func.kind) {
|
9080
8684
|
case "entity":
|
9081
8685
|
if (func.entity.getTypeParametersArity() > 0) {
|
9082
|
-
result = new FunctionEntitySignature(this.signatureContext, func.entity
|
8686
|
+
result = new FunctionEntitySignature(this.signatureContext, func.entity);
|
9083
8687
|
}
|
9084
8688
|
break;
|
9085
8689
|
case "type-member":
|
9086
8690
|
if (func.method.getTypeParametersArity() > 0) {
|
9087
|
-
result = new MethodSignature(this.signatureContext, func.method
|
8691
|
+
result = new MethodSignature(this.signatureContext, func.method);
|
9088
8692
|
}
|
9089
8693
|
break;
|
9090
8694
|
default:
|
@@ -9131,33 +8735,31 @@ var NodeWithTypeArgumentsInfo = class {
|
|
9131
8735
|
}
|
9132
8736
|
};
|
9133
8737
|
var FunctionEntitySignature = class {
|
9134
|
-
constructor(ctx, func
|
8738
|
+
constructor(ctx, func) {
|
9135
8739
|
this.ctx = ctx;
|
9136
8740
|
this.func = func;
|
9137
|
-
this.localization = localization;
|
9138
8741
|
this.kind = "function-entity";
|
9139
8742
|
}
|
9140
8743
|
getArity() {
|
9141
8744
|
return this.func.getTypeParametersArity();
|
9142
8745
|
}
|
9143
8746
|
getDisplayParts() {
|
9144
|
-
const func = new FunctionDeclaration_entity(this.func
|
8747
|
+
const func = new FunctionDeclaration_entity(this.func);
|
9145
8748
|
const displayParts = this.ctx.displayService.getFunctionDeclarationDisplayParts(func);
|
9146
8749
|
return this.ctx.convertFunctionDisplayParts(displayParts);
|
9147
8750
|
}
|
9148
8751
|
};
|
9149
8752
|
var MethodSignature = class {
|
9150
|
-
constructor(ctx, method
|
8753
|
+
constructor(ctx, method) {
|
9151
8754
|
this.ctx = ctx;
|
9152
8755
|
this.method = method;
|
9153
|
-
this.localization = localization;
|
9154
8756
|
this.kind = "method";
|
9155
8757
|
}
|
9156
8758
|
getArity() {
|
9157
8759
|
return this.method.getTypeParametersArity();
|
9158
8760
|
}
|
9159
8761
|
getDisplayParts() {
|
9160
|
-
const func = new FunctionDeclaration_typeMember(this.method
|
8762
|
+
const func = new FunctionDeclaration_typeMember(this.method);
|
9161
8763
|
const displayParts = this.ctx.displayService.getFunctionDeclarationDisplayParts(func);
|
9162
8764
|
return this.ctx.convertFunctionDisplayParts(displayParts);
|
9163
8765
|
}
|
@@ -9245,15 +8847,11 @@ var ValueParametersSignatureHelpProvider = class {
|
|
9245
8847
|
this._offset = offset;
|
9246
8848
|
}
|
9247
8849
|
get signatureContext() {
|
9248
|
-
return this._signatureContext.getOrInsertWith(
|
9249
|
-
|
9250
|
-
|
9251
|
-
|
9252
|
-
|
9253
|
-
this._sourceFile.package.dialect ?? 0 /* ArtelAM */
|
9254
|
-
)
|
9255
|
-
)
|
9256
|
-
);
|
8850
|
+
return this._signatureContext.getOrInsertWith(() => new SignatureContext2(new DisplayService(
|
8851
|
+
this._analyzer,
|
8852
|
+
this._sourceFile.package.locale,
|
8853
|
+
this._sourceFile.package.dialect
|
8854
|
+
)));
|
9257
8855
|
}
|
9258
8856
|
provideSignatureHelp() {
|
9259
8857
|
let result = void 0;
|
@@ -9355,10 +8953,7 @@ var ValueParametersSignatureHelpProvider = class {
|
|
9355
8953
|
getSignatureDisplayParts(signature) {
|
9356
8954
|
switch (signature.kind) {
|
9357
8955
|
case "accessed-function": {
|
9358
|
-
const func = new FunctionDeclaration_accessedFunction(
|
9359
|
-
signature.func.value,
|
9360
|
-
signature.func.localization
|
9361
|
-
);
|
8956
|
+
const func = new FunctionDeclaration_accessedFunction(signature.func);
|
9362
8957
|
const displayParts = this.signatureContext.displayService.getFunctionDeclarationDisplayParts(func);
|
9363
8958
|
return this.signatureContext.convertFunctionDisplayParts(displayParts);
|
9364
8959
|
}
|
@@ -9367,18 +8962,12 @@ var ValueParametersSignatureHelpProvider = class {
|
|
9367
8962
|
return this.signatureContext.convertFunctionTypeBodyDisplayParts(displayParts);
|
9368
8963
|
}
|
9369
8964
|
case "constructor": {
|
9370
|
-
const constructor = new ConstructorDeclaration_typeMember(
|
9371
|
-
signature.constructor_.value,
|
9372
|
-
signature.constructor_.localization
|
9373
|
-
);
|
8965
|
+
const constructor = new ConstructorDeclaration_typeMember(signature.constructor_);
|
9374
8966
|
const displayParts = this.signatureContext.displayService.getConstructorDeclarationDisplayParts(constructor);
|
9375
8967
|
return this.signatureContext.convertConstructorDisplayParts(displayParts);
|
9376
8968
|
}
|
9377
8969
|
case "indexer": {
|
9378
|
-
const indexer = new IndexerDeclaration_typeMember(
|
9379
|
-
signature.indexer.value,
|
9380
|
-
signature.indexer.localization
|
9381
|
-
);
|
8970
|
+
const indexer = new IndexerDeclaration_typeMember(signature.indexer);
|
9382
8971
|
const displayParts = this.signatureContext.displayService.getIndexerDeclarationDisplayParts(indexer);
|
9383
8972
|
return this.signatureContext.convertIndexerDisplayParts(displayParts);
|
9384
8973
|
}
|
@@ -9452,7 +9041,7 @@ var SignatureInfo = class {
|
|
9452
9041
|
};
|
9453
9042
|
|
9454
9043
|
// source/services/source-generation/SourceGenerationService.ts
|
9455
|
-
import {
|
9044
|
+
import { reaction as reaction6, runAtomically as runAtomically2, Transaction as Transaction4, TriggeringMap as TriggeringMap6, TriggeringObject as TriggeringObject7 } from "reactronic";
|
9456
9045
|
|
9457
9046
|
// source/services/workspace/ClientTrackedSourceFiles.ts
|
9458
9047
|
import { TriggeringMap, TriggeringObject, trigger, ReactiveSystem, atomic } from "reactronic";
|
@@ -11822,10 +11411,9 @@ var Workspace = _Workspace;
|
|
11822
11411
|
|
11823
11412
|
// source/services/source-generation/EntityToSyntax.ts
|
11824
11413
|
var EntityToSyntax = class {
|
11825
|
-
constructor(analyzer, entity
|
11414
|
+
constructor(analyzer, entity) {
|
11826
11415
|
this._analyzer = analyzer;
|
11827
11416
|
this._entity = entity;
|
11828
|
-
this._localizationContext = localizationContext;
|
11829
11417
|
}
|
11830
11418
|
convert() {
|
11831
11419
|
return this.convertPackage(this._entity);
|
@@ -12181,7 +11769,10 @@ var EntityToSyntax = class {
|
|
12181
11769
|
const name = this.getEntityName(entity);
|
12182
11770
|
let constraint;
|
12183
11771
|
const entityConstraint = entity.getConstraint().declared;
|
12184
|
-
if (entityConstraint !== void 0 && !entityConstraint.equals(this._analyzer.getDefaultTypeParameterConstraint(
|
11772
|
+
if (entityConstraint !== void 0 && !entityConstraint.equals(this._analyzer.getDefaultTypeParameterConstraint(
|
11773
|
+
/* При сравнении типов язык не имеет значения. */
|
11774
|
+
DefaultLocale
|
11775
|
+
))) {
|
12185
11776
|
constraint = this.convertType(entityConstraint);
|
12186
11777
|
}
|
12187
11778
|
let defaultType;
|
@@ -12228,7 +11819,7 @@ var EntityToSyntax = class {
|
|
12228
11819
|
return [];
|
12229
11820
|
}
|
12230
11821
|
getEntityName(entity) {
|
12231
|
-
return
|
11822
|
+
return entity.getName().unescapedOriginal;
|
12232
11823
|
}
|
12233
11824
|
convertType(type) {
|
12234
11825
|
switch (type.kind) {
|
@@ -12292,7 +11883,7 @@ var EntityToSyntax = class {
|
|
12292
11883
|
}
|
12293
11884
|
convertUnionType(type) {
|
12294
11885
|
if (type.originalTypes.length === 2) {
|
12295
|
-
const noneTypeIndex = type.originalTypes.findIndex((t) => t.equals(this._analyzer.
|
11886
|
+
const noneTypeIndex = type.originalTypes.findIndex((t) => t.equals(this._analyzer.originalStandardTypes.none));
|
12296
11887
|
if (noneTypeIndex >= 0) {
|
12297
11888
|
const nonNoneType = noneTypeIndex === 0 ? type.originalTypes[1] : type.originalTypes[0];
|
12298
11889
|
const result = SyntaxFactory.nullableTypeSpecifier(this.convertType(nonNoneType));
|
@@ -12307,7 +11898,7 @@ var EntityToSyntax = class {
|
|
12307
11898
|
return SyntaxFactory.intersectionTypeSpecifier(constituentTypes);
|
12308
11899
|
}
|
12309
11900
|
convertUnresolvedType(_type) {
|
12310
|
-
return SyntaxFactory.namedTypeSpecifier("
|
11901
|
+
return SyntaxFactory.namedTypeSpecifier("\u041E\u0431\u044A\u0435\u043A\u0442");
|
12311
11902
|
}
|
12312
11903
|
createNamedTypeSpecifier(name, substitutions) {
|
12313
11904
|
const typeArguments = Query.from(substitutions.getTypes()).map((t) => this.convertType(t)).toArray();
|
@@ -12327,18 +11918,13 @@ var SourceGenerationService = class extends TriggeringObject7 {
|
|
12327
11918
|
get compilationControllers() {
|
12328
11919
|
return Array.from(this._generatedPackageStates.values()).map((s) => s.compilationController);
|
12329
11920
|
}
|
12330
|
-
getDefinitionInGeneratedCode(analyzer, entity,
|
11921
|
+
getDefinitionInGeneratedCode(analyzer, entity, cancellationToken) {
|
12331
11922
|
return __async(this, null, function* () {
|
12332
11923
|
if (!this.entityDefinitionRequiresSourceGeneration(entity)) {
|
12333
11924
|
return void 0;
|
12334
11925
|
}
|
12335
11926
|
const containingPackage = getPackageContainingEntity(entity);
|
12336
|
-
const generatedPackageState = yield this.getOrGeneratePackageSource(
|
12337
|
-
analyzer,
|
12338
|
-
containingPackage,
|
12339
|
-
localizationContext,
|
12340
|
-
cancellationToken
|
12341
|
-
);
|
11927
|
+
const generatedPackageState = yield this.getOrGeneratePackageSource(analyzer, containingPackage, cancellationToken);
|
12342
11928
|
if (generatedPackageState === void 0) {
|
12343
11929
|
return void 0;
|
12344
11930
|
}
|
@@ -12357,7 +11943,7 @@ var SourceGenerationService = class extends TriggeringObject7 {
|
|
12357
11943
|
compilationState.analyzer.compilation.mainPackage
|
12358
11944
|
);
|
12359
11945
|
let result;
|
12360
|
-
const sourceEntity = new EntityFinder(entity, generatedPackageEntity
|
11946
|
+
const sourceEntity = new EntityFinder(entity, generatedPackageEntity).find();
|
12361
11947
|
if (sourceEntity !== void 0) {
|
12362
11948
|
result = getEntitySourceLocations(compilationState.analyzer, sourceEntity);
|
12363
11949
|
}
|
@@ -12401,23 +11987,22 @@ var SourceGenerationService = class extends TriggeringObject7 {
|
|
12401
11987
|
}
|
12402
11988
|
}
|
12403
11989
|
}
|
12404
|
-
getOrGeneratePackageSource(analyzer, packageEntity,
|
11990
|
+
getOrGeneratePackageSource(analyzer, packageEntity, cancellationToken) {
|
12405
11991
|
return __async(this, null, function* () {
|
12406
|
-
const packageLocale =
|
11992
|
+
const packageLocale = packageEntity.getLocale();
|
12407
11993
|
const key = `${packageEntity.getName().toString()}-${localeToString(packageLocale)}`;
|
12408
11994
|
let result = this._generatedPackageStates.get(key);
|
12409
11995
|
if (result === void 0) {
|
12410
|
-
const node = new EntityToSyntax(analyzer, packageEntity
|
11996
|
+
const node = new EntityToSyntax(analyzer, packageEntity).convert();
|
12411
11997
|
const code = new SyntaxToCode(node, { keywordsLocale: packageLocale }).convert();
|
12412
11998
|
const generatedPackageUri = new Uri(GeneratedSourceFileScheme, "", [key]);
|
12413
11999
|
const generatedFileUri = generatedPackageUri.append(`${packageEntity.getName().toString()}.art`);
|
12414
12000
|
const fileSystemTree = runAtomically2(() => new FileSystemTree());
|
12415
12001
|
const packageDirectory = fileSystemTree.addDirectory(generatedPackageUri);
|
12416
12002
|
fileSystemTree.addFile(generatedFileUri, code);
|
12417
|
-
const systemPackageLocale = localizationContext?.getTranslationLocale(analyzer.systemPackage) ?? analyzer.systemPackage.getLocale();
|
12418
12003
|
const packageConfiguration = this.createGeneratedPackageConfiguration(
|
12419
12004
|
packageEntity,
|
12420
|
-
|
12005
|
+
packageLocale,
|
12421
12006
|
DefaultDialect
|
12422
12007
|
);
|
12423
12008
|
const standardPackageContents = yield this._standardPackageContentsProviders(cancellationToken);
|
@@ -12547,10 +12132,9 @@ var GeneratedPackageState = class {
|
|
12547
12132
|
}
|
12548
12133
|
};
|
12549
12134
|
var EntityFinder = class {
|
12550
|
-
constructor(_entity, _packageEntity
|
12135
|
+
constructor(_entity, _packageEntity) {
|
12551
12136
|
this._entity = _entity;
|
12552
12137
|
this._packageEntity = _packageEntity;
|
12553
|
-
this._localizationContext = _localizationContext;
|
12554
12138
|
}
|
12555
12139
|
find() {
|
12556
12140
|
return this.findEntity(this._entity);
|
@@ -12608,7 +12192,7 @@ var EntityFinder = class {
|
|
12608
12192
|
}
|
12609
12193
|
} else if (entity.subkind === "parameter") {
|
12610
12194
|
const container = entity.getContainer();
|
12611
|
-
if (container.kind === "entity"
|
12195
|
+
if (container.kind === "entity") {
|
12612
12196
|
const index = container.entity.getValueParameters().indexOf(entity);
|
12613
12197
|
const containingEntity = this.findEntity(container.entity);
|
12614
12198
|
if (containingEntity !== void 0 && index >= 0) {
|
@@ -12826,7 +12410,7 @@ var EntityFinder = class {
|
|
12826
12410
|
return -1;
|
12827
12411
|
}
|
12828
12412
|
getEntityName(entity) {
|
12829
|
-
return
|
12413
|
+
return entity.getName();
|
12830
12414
|
}
|
12831
12415
|
};
|
12832
12416
|
var DataForFindingOverloadedMember = class {
|