@microsoft/powerquery-language-services 0.2.18 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/powerquery-language-services/analysis/analysisBase.d.ts +4 -6
- package/lib/powerquery-language-services/analysis/analysisBase.js +120 -229
- package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
- package/lib/powerquery-language-services/analysis/analysisSettings.d.ts +2 -2
- package/lib/powerquery-language-services/analysis/analysisUtils.js +1 -1
- package/lib/powerquery-language-services/analysis/analysisUtils.js.map +1 -1
- package/lib/powerquery-language-services/analysis/documentAnalysis.d.ts +0 -2
- package/lib/powerquery-language-services/analysis/documentAnalysis.js +11 -32
- package/lib/powerquery-language-services/analysis/documentAnalysis.js.map +1 -1
- package/lib/powerquery-language-services/commonTypes.js +1 -1
- package/lib/powerquery-language-services/commonTypes.js.map +1 -1
- package/lib/powerquery-language-services/documentSymbols.d.ts +1 -1
- package/lib/powerquery-language-services/documentSymbols.js +62 -111
- package/lib/powerquery-language-services/documentSymbols.js.map +1 -1
- package/lib/powerquery-language-services/formatter.d.ts +1 -1
- package/lib/powerquery-language-services/formatter.js +35 -34
- package/lib/powerquery-language-services/formatter.js.map +1 -1
- package/lib/powerquery-language-services/index.js +2 -2
- package/lib/powerquery-language-services/index.js.map +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +74 -131
- package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/index.js +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/index.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +117 -187
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +29 -30
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.d.ts +2 -2
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js +97 -114
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js +11 -11
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js +9 -9
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js +5 -5
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js +43 -56
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js +10 -10
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js +11 -11
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js +5 -5
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js +28 -28
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js +28 -31
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js +19 -23
- package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js +5 -5
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/common.js +2 -13
- package/lib/powerquery-language-services/inspection/autocomplete/common.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/index.js +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/index.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/task.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/task.js +36 -25
- package/lib/powerquery-language-services/inspection/autocomplete/task.js.map +1 -1
- package/lib/powerquery-language-services/inspection/commonTypes.d.ts +6 -5
- package/lib/powerquery-language-services/inspection/expectedType.js +66 -54
- package/lib/powerquery-language-services/inspection/expectedType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/externalType/externalType.d.ts +2 -2
- package/lib/powerquery-language-services/inspection/externalType/externalType.js +2 -1
- package/lib/powerquery-language-services/inspection/externalType/externalType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/externalType/externalTypeUtils.js +3 -3
- package/lib/powerquery-language-services/inspection/externalType/externalTypeUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js +49 -66
- package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +74 -99
- package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/jaroWinkler.js +26 -42
- package/lib/powerquery-language-services/inspection/jaroWinkler.js.map +1 -1
- package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js +18 -51
- package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/scope/scopeInspection.d.ts +3 -3
- package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +235 -290
- package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
- package/lib/powerquery-language-services/inspection/task.d.ts +3 -2
- package/lib/powerquery-language-services/inspection/task.js +71 -41
- package/lib/powerquery-language-services/inspection/task.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/index.js +1 -1
- package/lib/powerquery-language-services/inspection/type/index.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/common.d.ts +9 -9
- package/lib/powerquery-language-services/inspection/type/inspectType/common.js +353 -338
- package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js +31 -41
- package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js +3 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js +29 -19
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js +27 -17
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.d.ts +4 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js +68 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/{inspectTypeFieldProjection.d.ts → inspectTypeField/inspectTypeFieldProjection.d.ts} +2 -2
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js +103 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js.map +1 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/{inspectTypeFieldSelector.d.ts → inspectTypeField/inspectTypeFieldSelector.d.ts} +2 -2
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +76 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -0
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js +24 -12
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js +61 -53
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js +43 -35
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +28 -18
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +28 -18
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js +42 -30
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +55 -64
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js +26 -16
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js +34 -24
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js +9 -10
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js +33 -23
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js +22 -23
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js +9 -10
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +40 -30
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +31 -41
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js +27 -28
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js +44 -54
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js +132 -179
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +36 -37
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js +57 -105
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/task.d.ts +2 -2
- package/lib/powerquery-language-services/inspection/type/task.js +59 -104
- package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
- package/lib/powerquery-language-services/inspectionSettings.d.ts +2 -0
- package/lib/powerquery-language-services/inspectionUtils.d.ts +5 -4
- package/lib/powerquery-language-services/inspectionUtils.js +81 -137
- package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
- package/lib/powerquery-language-services/languageServiceUtils.js +1 -1
- package/lib/powerquery-language-services/languageServiceUtils.js.map +1 -1
- package/lib/powerquery-language-services/library/libraryUtils.js +11 -11
- package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
- package/lib/powerquery-language-services/localization/localization.js +9 -13
- package/lib/powerquery-language-services/localization/localization.js.map +1 -1
- package/lib/powerquery-language-services/localization/localizationUtils.js +1 -1
- package/lib/powerquery-language-services/localization/localizationUtils.js.map +1 -1
- package/lib/powerquery-language-services/localization/templates.js +43 -43
- package/lib/powerquery-language-services/localization/templates.js.map +1 -1
- package/lib/powerquery-language-services/positionUtils.d.ts +5 -5
- package/lib/powerquery-language-services/positionUtils.js +53 -33
- package/lib/powerquery-language-services/positionUtils.js.map +1 -1
- package/lib/powerquery-language-services/providers/languageCompletionItemProvider.d.ts +3 -3
- package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js +40 -94
- package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js.map +1 -1
- package/lib/powerquery-language-services/providers/librarySymbolProvider.js +66 -138
- package/lib/powerquery-language-services/providers/librarySymbolProvider.js.map +1 -1
- package/lib/powerquery-language-services/providers/localDocumentSymbolProvider.d.ts +4 -6
- package/lib/powerquery-language-services/providers/localDocumentSymbolProvider.js +137 -213
- package/lib/powerquery-language-services/providers/localDocumentSymbolProvider.js.map +1 -1
- package/lib/powerquery-language-services/providers/nullSymbolProvider.js +21 -52
- package/lib/powerquery-language-services/providers/nullSymbolProvider.js.map +1 -1
- package/lib/powerquery-language-services/validate/validate.d.ts +1 -1
- package/lib/powerquery-language-services/validate/validate.js +38 -42
- package/lib/powerquery-language-services/validate/validate.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.d.ts +1 -1
- package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js +82 -129
- package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateFunctionExpression.d.ts +1 -1
- package/lib/powerquery-language-services/validate/validateFunctionExpression.js +61 -101
- package/lib/powerquery-language-services/validate/validateFunctionExpression.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateInvokeExpression.d.ts +1 -1
- package/lib/powerquery-language-services/validate/validateInvokeExpression.js +61 -98
- package/lib/powerquery-language-services/validate/validateInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateLexAndParse.d.ts +1 -1
- package/lib/powerquery-language-services/validate/validateLexAndParse.js +114 -122
- package/lib/powerquery-language-services/validate/validateLexAndParse.js.map +1 -1
- package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js +1 -12
- package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js.map +1 -1
- package/lib/powerquery-language-services/workspaceCache/workspaceCache.d.ts +3 -13
- package/lib/powerquery-language-services/workspaceCache/workspaceCacheUtils.d.ts +7 -8
- package/lib/powerquery-language-services/workspaceCache/workspaceCacheUtils.js +93 -147
- package/lib/powerquery-language-services/workspaceCache/workspaceCacheUtils.js.map +1 -1
- package/package.json +5 -4
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldProjection.js +0 -124
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldProjection.js.map +0 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSelector.js +0 -68
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSelector.js.map +0 -1
|
@@ -1,93 +1,76 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Copyright (c) Microsoft Corporation.
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
finally {
|
|
13
|
-
try {
|
|
14
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
15
|
-
}
|
|
16
|
-
finally { if (e) throw e.error; }
|
|
17
|
-
}
|
|
18
|
-
return ar;
|
|
19
|
-
};
|
|
20
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
21
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
22
|
-
if (ar || !(i in from)) {
|
|
23
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
24
|
-
ar[i] = from[i];
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
4
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
7
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
8
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
9
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
10
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
11
|
+
});
|
|
28
12
|
};
|
|
29
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
14
|
exports.autocompleteKeyword = exports.tryAutocompleteKeyword = void 0;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
15
|
+
const PQP = require("@microsoft/powerquery-parser");
|
|
16
|
+
const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
|
|
17
|
+
const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
|
|
18
|
+
const powerquery_parser_1 = require("@microsoft/powerquery-parser");
|
|
19
|
+
const activeNode_1 = require("../../activeNode");
|
|
20
|
+
const autocompleteItem_1 = require("../autocompleteItem");
|
|
21
|
+
const autocompleteKeywordDefault_1 = require("./autocompleteKeywordDefault");
|
|
22
|
+
const autocompleteKeywordErrorHandlingExpression_1 = require("./autocompleteKeywordErrorHandlingExpression");
|
|
23
|
+
const autocompleteKeywordIdentifierPairedExpression_1 = require("./autocompleteKeywordIdentifierPairedExpression");
|
|
24
|
+
const autocompleteKeywordLetExpression_1 = require("./autocompleteKeywordLetExpression");
|
|
25
|
+
const autocompleteKeywordListExpression_1 = require("./autocompleteKeywordListExpression");
|
|
26
|
+
const autocompleteKeywordSectionMember_1 = require("./autocompleteKeywordSectionMember");
|
|
27
|
+
const autocompleteKeywordTrailingText_1 = require("./autocompleteKeywordTrailingText");
|
|
28
|
+
const __1 = require("../../..");
|
|
45
29
|
function tryAutocompleteKeyword(settings, nodeIdMapCollection, maybeActiveNode, maybeTrailingToken) {
|
|
46
30
|
if (!activeNode_1.ActiveNodeUtils.isPositionInBounds(maybeActiveNode)) {
|
|
47
|
-
return powerquery_parser_1.ResultUtils.boxOk(
|
|
48
|
-
|
|
49
|
-
})), false), [
|
|
31
|
+
return Promise.resolve(powerquery_parser_1.ResultUtils.boxOk([
|
|
32
|
+
...language_1.Keyword.ExpressionKeywordKinds.map((keywordKind) => autocompleteItem_1.AutocompleteItemUtils.createFromKeywordKind(keywordKind)),
|
|
50
33
|
autocompleteItem_1.AutocompleteItemUtils.createFromKeywordKind("section" /* Section */),
|
|
51
|
-
]
|
|
34
|
+
]));
|
|
52
35
|
}
|
|
53
|
-
return powerquery_parser_1.ResultUtils.
|
|
54
|
-
return autocompleteKeyword(nodeIdMapCollection, maybeActiveNode, maybeTrailingToken);
|
|
55
|
-
});
|
|
36
|
+
return powerquery_parser_1.ResultUtils.ensureResultAsync(settings.locale, () => autocompleteKeyword(nodeIdMapCollection, maybeActiveNode, maybeTrailingToken));
|
|
56
37
|
}
|
|
57
38
|
exports.tryAutocompleteKeyword = tryAutocompleteKeyword;
|
|
58
39
|
function autocompleteKeyword(nodeIdMapCollection, activeNode, maybeTrailingToken) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (activeNode.
|
|
63
|
-
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const ancestryLeaf = activeNode_1.ActiveNodeUtils.assertGetLeaf(activeNode);
|
|
42
|
+
let maybePositionName;
|
|
43
|
+
if (__1.PositionUtils.isInXor(nodeIdMapCollection, activeNode.position, ancestryLeaf, false, true)) {
|
|
44
|
+
if (activeNode.maybeIdentifierUnderPosition !== undefined) {
|
|
45
|
+
maybePositionName = activeNode.maybeIdentifierUnderPosition.literal;
|
|
46
|
+
}
|
|
47
|
+
// Matches 'null', 'true', and 'false'.
|
|
48
|
+
else if (parser_1.XorNodeUtils.isAstXorChecked(ancestryLeaf, "LiteralExpression" /* LiteralExpression */) &&
|
|
49
|
+
(ancestryLeaf.node.literalKind === "Logical" /* Logical */ ||
|
|
50
|
+
ancestryLeaf.node.literalKind === "Null" /* Null */)) {
|
|
51
|
+
maybePositionName = ancestryLeaf.node.literal;
|
|
52
|
+
}
|
|
64
53
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
(ancestryLeaf.node.literalKind === "Logical" /* Logical */ ||
|
|
68
|
-
ancestryLeaf.node.literalKind === "Null" /* Null */)) {
|
|
69
|
-
maybePositionName = ancestryLeaf.node.literal;
|
|
54
|
+
if (activeNode.ancestry.length < 2) {
|
|
55
|
+
return Promise.resolve(createAutocompleteItems(handleConjunctions(activeNode, [], maybeTrailingToken), maybePositionName));
|
|
70
56
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return maybeEdgeCase;
|
|
86
|
-
}
|
|
87
|
-
return createAutocompleteItems(handleConjunctions(state.activeNode, traverseAncestors(state), maybeTrailingToken), maybePositionName);
|
|
57
|
+
const state = {
|
|
58
|
+
nodeIdMapCollection,
|
|
59
|
+
activeNode,
|
|
60
|
+
maybeTrailingToken,
|
|
61
|
+
parent: activeNode.ancestry[1],
|
|
62
|
+
child: activeNode_1.ActiveNodeUtils.assertGetLeaf(activeNode),
|
|
63
|
+
ancestryIndex: 0,
|
|
64
|
+
};
|
|
65
|
+
const maybeEdgeCase = getMaybeEdgeCase(state, maybeTrailingToken);
|
|
66
|
+
if (maybeEdgeCase !== undefined) {
|
|
67
|
+
return Promise.resolve(maybeEdgeCase);
|
|
68
|
+
}
|
|
69
|
+
return Promise.resolve(createAutocompleteItems(handleConjunctions(state.activeNode, yield traverseAncestors(state), maybeTrailingToken), maybePositionName));
|
|
70
|
+
});
|
|
88
71
|
}
|
|
89
72
|
exports.autocompleteKeyword = autocompleteKeyword;
|
|
90
|
-
|
|
73
|
+
const ConjunctionKeywords = [
|
|
91
74
|
"and" /* And */,
|
|
92
75
|
"as" /* As */,
|
|
93
76
|
"is" /* Is */,
|
|
@@ -99,52 +82,54 @@ var ConjunctionKeywords = [
|
|
|
99
82
|
// For example 'if true |' gives us a pair something like [IfExpression, Constant].
|
|
100
83
|
// We can now know we failed to parse a 'then' constant.
|
|
101
84
|
function traverseAncestors(state) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
const ancestry = state.activeNode.ancestry;
|
|
87
|
+
const numNodes = ancestry.length;
|
|
88
|
+
let maybeInspected;
|
|
89
|
+
for (let ancestryIndex = 1; ancestryIndex < numNodes; ancestryIndex += 1) {
|
|
90
|
+
state.ancestryIndex = ancestryIndex;
|
|
91
|
+
state.parent = ancestry[ancestryIndex];
|
|
92
|
+
state.child = ancestry[ancestryIndex - 1];
|
|
93
|
+
switch (state.parent.node.kind) {
|
|
94
|
+
case "ErrorHandlingExpression" /* ErrorHandlingExpression */:
|
|
95
|
+
maybeInspected = (0, autocompleteKeywordErrorHandlingExpression_1.autocompleteKeywordErrorHandlingExpression)(state);
|
|
96
|
+
break;
|
|
97
|
+
case "IdentifierPairedExpression" /* IdentifierPairedExpression */:
|
|
98
|
+
maybeInspected = (0, autocompleteKeywordIdentifierPairedExpression_1.autocompleteKeywordIdentifierPairedExpression)(state);
|
|
99
|
+
break;
|
|
100
|
+
case "LetExpression" /* LetExpression */:
|
|
101
|
+
// eslint-disable-next-line no-await-in-loop
|
|
102
|
+
maybeInspected = yield (0, autocompleteKeywordLetExpression_1.autocompleteKeywordLetExpression)(state);
|
|
103
|
+
break;
|
|
104
|
+
case "ListExpression" /* ListExpression */:
|
|
105
|
+
maybeInspected = (0, autocompleteKeywordListExpression_1.autocompleteKeywordListExpression)(state);
|
|
106
|
+
break;
|
|
107
|
+
case "SectionMember" /* SectionMember */:
|
|
108
|
+
// eslint-disable-next-line no-await-in-loop
|
|
109
|
+
maybeInspected = yield (0, autocompleteKeywordSectionMember_1.autocompleteKeywordSectionMember)(state);
|
|
110
|
+
break;
|
|
111
|
+
default:
|
|
112
|
+
maybeInspected = (0, autocompleteKeywordDefault_1.autocompleteKeywordDefault)(state);
|
|
113
|
+
}
|
|
114
|
+
if (maybeInspected !== undefined) {
|
|
115
|
+
return maybeInspected;
|
|
116
|
+
}
|
|
127
117
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return [];
|
|
118
|
+
return [];
|
|
119
|
+
});
|
|
133
120
|
}
|
|
134
121
|
function getMaybeEdgeCase(state, maybeTrailingToken) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
122
|
+
const activeNode = state.activeNode;
|
|
123
|
+
const ancestry = activeNode.ancestry;
|
|
124
|
+
let maybeInspected;
|
|
138
125
|
// The user is typing in a new file, which the parser defaults to searching for an identifier.
|
|
139
126
|
// `l|` -> `let`
|
|
140
127
|
if (maybeTrailingToken === undefined &&
|
|
141
128
|
ancestry.length === 2 &&
|
|
142
129
|
parser_1.XorNodeUtils.isAstXorChecked(ancestry[0], "Identifier" /* Identifier */) &&
|
|
143
130
|
parser_1.XorNodeUtils.isNodeKind(ancestry[1], "IdentifierExpression" /* IdentifierExpression */)) {
|
|
144
|
-
|
|
145
|
-
maybeInspected = language_1.Keyword.StartOfDocumentKeywords.map(
|
|
146
|
-
return autocompleteItem_1.AutocompleteItemUtils.createFromKeywordKind(keywordKind, identifier_1);
|
|
147
|
-
});
|
|
131
|
+
const identifier = ancestry[0].node.literal;
|
|
132
|
+
maybeInspected = language_1.Keyword.StartOfDocumentKeywords.map((keywordKind) => autocompleteItem_1.AutocompleteItemUtils.createFromKeywordKind(keywordKind, identifier));
|
|
148
133
|
}
|
|
149
134
|
// `(x |) => x+1` -> `(x as|) => x+1`
|
|
150
135
|
else if (parser_1.XorNodeUtils.isAstXorChecked(ancestry[0], "Identifier" /* Identifier */) &&
|
|
@@ -162,9 +147,7 @@ function getMaybeEdgeCase(state, maybeTrailingToken) {
|
|
|
162
147
|
return maybeInspected;
|
|
163
148
|
}
|
|
164
149
|
function createAutocompleteItems(keywordKinds, maybePositionName) {
|
|
165
|
-
return keywordKinds.map(
|
|
166
|
-
return autocompleteItem_1.AutocompleteItemUtils.createFromKeywordKind(kind, maybePositionName);
|
|
167
|
-
});
|
|
150
|
+
return keywordKinds.map((kind) => autocompleteItem_1.AutocompleteItemUtils.createFromKeywordKind(kind, maybePositionName));
|
|
168
151
|
}
|
|
169
152
|
function handleConjunctions(activeNode, inspected, maybeTrailingToken) {
|
|
170
153
|
if (activeNode.leafKind !== "AfterAstNode" /* AfterAstNode */ &&
|
|
@@ -184,7 +167,7 @@ function handleConjunctions(activeNode, inspected, maybeTrailingToken) {
|
|
|
184
167
|
return (0, autocompleteKeywordTrailingText_1.autocompleteKeywordTrailingText)(inspected, maybeTrailingToken, ["section" /* Section */]);
|
|
185
168
|
}
|
|
186
169
|
}
|
|
187
|
-
|
|
170
|
+
const activeNodeLeaf = activeNode_1.ActiveNodeUtils.assertGetLeaf(activeNode);
|
|
188
171
|
// `let x = 1 a|`
|
|
189
172
|
if (maybeTrailingToken !== undefined && maybeTrailingToken.isInOrOnPosition) {
|
|
190
173
|
return (0, autocompleteKeywordTrailingText_1.autocompleteKeywordTrailingText)(inspected, maybeTrailingToken, undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleteKeyword.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC
|
|
1
|
+
{"version":3,"file":"autocompleteKeyword.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,25 +3,25 @@
|
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.autocompleteKeywordDefault = void 0;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
|
|
7
|
+
const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
|
|
8
|
+
const __1 = require("../../..");
|
|
9
9
|
function autocompleteKeywordDefault(state) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
const activeNode = state.activeNode;
|
|
11
|
+
const child = state.child;
|
|
12
|
+
const key = createMapKey(state.parent.node.kind, child.node.maybeAttributeIndex);
|
|
13
13
|
if (AutocompleteExpressionKeys.indexOf(key) !== -1) {
|
|
14
14
|
return autocompleteDefaultExpression(state);
|
|
15
15
|
}
|
|
16
16
|
else {
|
|
17
|
-
|
|
17
|
+
const maybeMappedKeywordKind = AutocompleteConstantMap.get(key);
|
|
18
18
|
return maybeMappedKeywordKind !== undefined
|
|
19
19
|
? autocompleteKeywordConstant(activeNode, child, maybeMappedKeywordKind)
|
|
20
20
|
: undefined;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
exports.autocompleteKeywordDefault = autocompleteKeywordDefault;
|
|
24
|
-
|
|
24
|
+
const AutocompleteExpressionKeys = [
|
|
25
25
|
createMapKey("ErrorRaisingExpression" /* ErrorRaisingExpression */, 1),
|
|
26
26
|
createMapKey("GeneralizedIdentifierPairedExpression" /* GeneralizedIdentifierPairedExpression */, 2),
|
|
27
27
|
createMapKey("FunctionExpression" /* FunctionExpression */, 3),
|
|
@@ -38,7 +38,7 @@ var AutocompleteExpressionKeys = [
|
|
|
38
38
|
// If we're coming from a constant then we can quickly evaluate using a map.
|
|
39
39
|
// This is possible because reading a Constant is binary.
|
|
40
40
|
// Either the Constant was read and you're in the next context, or you didn't and you're in the constant's context.
|
|
41
|
-
|
|
41
|
+
const AutocompleteConstantMap = new Map([
|
|
42
42
|
// Ast.NodeKind.ErrorRaisingExpression
|
|
43
43
|
[createMapKey("ErrorRaisingExpression" /* ErrorRaisingExpression */, 0), "error" /* Error */],
|
|
44
44
|
// Ast.NodeKind.IfExpression
|
|
@@ -53,8 +53,8 @@ var AutocompleteConstantMap = new Map([
|
|
|
53
53
|
[createMapKey("Section" /* Section */, 1), "section" /* Section */],
|
|
54
54
|
]);
|
|
55
55
|
function autocompleteDefaultExpression(state) {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
const activeNode = state.activeNode;
|
|
57
|
+
const child = state.child;
|
|
58
58
|
// '[x=|1]
|
|
59
59
|
if (activeNode.leafKind === "ShiftedRight" /* ShiftedRight */) {
|
|
60
60
|
return language_1.Keyword.ExpressionKeywordKinds;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleteKeywordDefault.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,
|
|
1
|
+
{"version":3,"file":"autocompleteKeywordDefault.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.autocompleteKeywordErrorHandlingExpression = void 0;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
|
|
7
|
+
const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
|
|
8
|
+
const __1 = require("../../..");
|
|
9
9
|
function autocompleteKeywordErrorHandlingExpression(state) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const position = state.activeNode.position;
|
|
11
|
+
const child = state.child;
|
|
12
|
+
const maybeTrailingText = state.maybeTrailingToken;
|
|
13
|
+
const maybeChildAttributeIndex = child.node.maybeAttributeIndex;
|
|
14
14
|
if (maybeChildAttributeIndex === 0) {
|
|
15
15
|
return ["try" /* Try */];
|
|
16
16
|
}
|
|
@@ -18,11 +18,11 @@ function autocompleteKeywordErrorHandlingExpression(state) {
|
|
|
18
18
|
// 'try true o|' creates a ParseError.
|
|
19
19
|
// It's ambiguous if the next token should be either 'otherwise' or 'or'.
|
|
20
20
|
if (maybeTrailingText !== undefined) {
|
|
21
|
-
|
|
21
|
+
const trailingToken = maybeTrailingText;
|
|
22
22
|
// First we test if we can autocomplete using the error token.
|
|
23
23
|
if (trailingToken.kind === "Identifier" /* Identifier */ &&
|
|
24
24
|
__1.PositionUtils.isInToken(position, trailingToken, false, true)) {
|
|
25
|
-
|
|
25
|
+
const tokenData = maybeTrailingText.data;
|
|
26
26
|
// If we can exclude 'or' then the only thing we can autocomplete is 'otherwise'.
|
|
27
27
|
if (tokenData.length > 1 && "otherwise" /* Otherwise */.startsWith(tokenData)) {
|
|
28
28
|
return ["otherwise" /* Otherwise */];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleteKeywordErrorHandlingExpression.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,
|
|
1
|
+
{"version":3,"file":"autocompleteKeywordErrorHandlingExpression.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,0FAA6F;AAC7F,sFAAmG;AAInG,gCAAyC;AAGzC,SAAgB,0CAA0C,CACtD,KAAsC;IAEtC,MAAM,QAAQ,GAAa,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;IACrD,MAAM,KAAK,GAAa,KAAK,CAAC,KAAK,CAAC;IACpC,MAAM,iBAAiB,GAA8B,KAAK,CAAC,kBAAkB,CAAC;IAE9E,MAAM,wBAAwB,GAAuB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAEpF,IAAI,wBAAwB,KAAK,CAAC,EAAE;QAChC,OAAO,iBAAyB,CAAC;KACpC;SAAM,IAAI,wBAAwB,KAAK,CAAC,EAAE;QACvC,sCAAsC;QACtC,yEAAyE;QACzE,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACjC,MAAM,aAAa,GAAkB,iBAAiB,CAAC;YAEvD,8DAA8D;YAC9D,IACI,aAAa,CAAC,IAAI,kCAA+B;gBACjD,iBAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,EAC/D;gBACE,MAAM,SAAS,GAAW,iBAAiB,CAAC,IAAI,CAAC;gBAEjD,iFAAiF;gBACjF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,4BAA8B,UAAU,CAAC,SAAS,CAAC,EAAE;oBAC7E,OAAO,6BAA+B,CAAC;iBAC1C;gBACD,mFAAmF;gBACnF,wEAAwE;gBACxE,oDAAoD;gBACpD,wCAAwC;qBACnC;oBACD,OAAO,4CAAuD,CAAC;iBAClE;aACJ;YAED,yEAAyE;iBACpE;gBACD,OAAO,SAAS,CAAC;aACpB;SACJ;aAAM,IAAI,qBAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,iBAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;YAC7F,OAAO,6BAA+B,CAAC;SAC1C;aAAM;YACH,OAAO,kBAAO,CAAC,sBAAsB,CAAC;SACzC;KACJ;SAAM;QACH,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAjDD,gGAiDC"}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.autocompleteKeywordIdentifierPairedExpression = void 0;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
|
|
7
|
+
const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
|
|
8
|
+
const __1 = require("../../..");
|
|
9
9
|
function autocompleteKeywordIdentifierPairedExpression(state) {
|
|
10
|
-
|
|
10
|
+
const childAttributeIndex = state.child.node.maybeAttributeIndex;
|
|
11
11
|
// `section; s|`
|
|
12
12
|
// `section; [] |`
|
|
13
13
|
if (childAttributeIndex === 0 &&
|
|
@@ -17,7 +17,7 @@ function autocompleteKeywordIdentifierPairedExpression(state) {
|
|
|
17
17
|
else if (childAttributeIndex !== 2) {
|
|
18
18
|
return [];
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
const maybeLeaf = parser_1.NodeIdMapUtils.maybeLeftMostLeaf(state.nodeIdMapCollection, state.child.node.id);
|
|
21
21
|
// `x = |`
|
|
22
22
|
// `x = |1`
|
|
23
23
|
if (maybeLeaf === undefined || __1.PositionUtils.isBeforeAst(state.activeNode.position, maybeLeaf, false)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleteKeywordIdentifierPairedExpression.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,
|
|
1
|
+
{"version":3,"file":"autocompleteKeywordIdentifierPairedExpression.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,sFAA0G;AAC1G,0FAA2F;AAG3F,gCAAyC;AAEzC,SAAgB,6CAA6C,CACzD,KAAsC;IAEtC,MAAM,mBAAmB,GAAuB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAErF,gBAAgB;IAChB,kBAAkB;IAClB,IACI,mBAAmB,KAAK,CAAC;QACzB,sBAAa,CAAC,mBAAmB,CAC7B,KAAK,CAAC,UAAU,CAAC,QAAQ,EACzB,KAAK,CAAC,aAAa,sCAEtB,EACH;QACE,OAAO,uBAA4B,CAAC;KACvC;SAAM,IAAI,mBAAmB,KAAK,CAAC,EAAE;QAClC,OAAO,EAAE,CAAC;KACb;IAED,MAAM,SAAS,GAA0B,uBAAc,CAAC,iBAAiB,CACrE,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CACtB,CAAC;IAEF,UAAU;IACV,WAAW;IACX,IAAI,SAAS,KAAK,SAAS,IAAI,iBAAa,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;QACnG,OAAO,kBAAO,CAAC,sBAAsB,CAAC;KACzC;SAAM;QACH,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAhCD,sGAgCC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Keyword } from "@microsoft/powerquery-parser/lib/powerquery-parser/language";
|
|
2
2
|
import { InspectAutocompleteKeywordState } from "./commonTypes";
|
|
3
|
-
export declare function autocompleteKeywordLetExpression(state: InspectAutocompleteKeywordState): ReadonlyArray<Keyword.KeywordKind> | undefined
|
|
3
|
+
export declare function autocompleteKeywordLetExpression(state: InspectAutocompleteKeywordState): Promise<ReadonlyArray<Keyword.KeywordKind> | undefined>;
|
|
@@ -1,76 +1,63 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Copyright (c) Microsoft Corporation.
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
finally {
|
|
13
|
-
try {
|
|
14
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
15
|
-
}
|
|
16
|
-
finally { if (e) throw e.error; }
|
|
17
|
-
}
|
|
18
|
-
return ar;
|
|
19
|
-
};
|
|
20
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
21
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
22
|
-
if (ar || !(i in from)) {
|
|
23
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
24
|
-
ar[i] = from[i];
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
4
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
7
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
8
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
9
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
10
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
11
|
+
});
|
|
28
12
|
};
|
|
29
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
14
|
exports.autocompleteKeywordLetExpression = void 0;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
15
|
+
const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
|
|
16
|
+
const autocompleteKeywordDefault_1 = require("./autocompleteKeywordDefault");
|
|
17
|
+
const common_1 = require("./common");
|
|
18
|
+
const autocompleteKeywordTrailingText_1 = require("./autocompleteKeywordTrailingText");
|
|
19
|
+
const __1 = require("../../..");
|
|
36
20
|
function autocompleteKeywordLetExpression(state) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (state.maybeTrailingToken
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
// LetExpressions can trigger another inspection which will always hit the same LetExpression.
|
|
23
|
+
// Make sure that it doesn't trigger an infinite recursive call.
|
|
24
|
+
const child = state.child;
|
|
25
|
+
let maybeInspected;
|
|
26
|
+
// Might be either `in` or whatever the autocomplete is for the the last child of the variableList.
|
|
27
|
+
// `let x = 1 |`
|
|
28
|
+
if (child.node.maybeAttributeIndex === 2 && parser_1.XorNodeUtils.isContextXor(child)) {
|
|
29
|
+
maybeInspected = yield autocompleteLastKeyValuePair(state, parser_1.NodeIdMapIterator.iterLetExpression(state.nodeIdMapCollection, parser_1.XorNodeUtils.assertAsLetExpression(state.parent)));
|
|
30
|
+
if (state.maybeTrailingToken !== undefined) {
|
|
31
|
+
if (state.maybeTrailingToken.isInOrOnPosition === true) {
|
|
32
|
+
// We don't want maybeInspected to be zero legnth.
|
|
33
|
+
// It's either undefined or non-zero length.
|
|
34
|
+
maybeInspected = (0, autocompleteKeywordTrailingText_1.autocompleteKeywordTrailingText)(maybeInspected !== null && maybeInspected !== void 0 ? maybeInspected : [], state.maybeTrailingToken, [
|
|
35
|
+
"in" /* In */,
|
|
36
|
+
]);
|
|
37
|
+
return maybeInspected.length ? maybeInspected : undefined;
|
|
38
|
+
}
|
|
39
|
+
else if (__1.PositionUtils.isBeforeTokenPosition(state.activeNode.position, state.maybeTrailingToken.positionStart, true)) {
|
|
40
|
+
return maybeInspected !== undefined ? [...maybeInspected, "in" /* In */] : maybeInspected;
|
|
41
|
+
}
|
|
53
42
|
}
|
|
54
|
-
else
|
|
55
|
-
return maybeInspected !== undefined
|
|
43
|
+
else {
|
|
44
|
+
return maybeInspected !== undefined
|
|
45
|
+
? [...maybeInspected, "in" /* In */]
|
|
46
|
+
: ["in" /* In */];
|
|
56
47
|
}
|
|
57
48
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
? __spreadArray(__spreadArray([], __read(maybeInspected), false), ["in" /* In */], false) : ["in" /* In */];
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return maybeInspected !== null && maybeInspected !== void 0 ? maybeInspected : (0, autocompleteKeywordDefault_1.autocompleteKeywordDefault)(state);
|
|
49
|
+
return maybeInspected !== null && maybeInspected !== void 0 ? maybeInspected : (0, autocompleteKeywordDefault_1.autocompleteKeywordDefault)(state);
|
|
50
|
+
});
|
|
64
51
|
}
|
|
65
52
|
exports.autocompleteKeywordLetExpression = autocompleteKeywordLetExpression;
|
|
66
53
|
function autocompleteLastKeyValuePair(state, keyValuePairs) {
|
|
67
54
|
if (keyValuePairs.length === 0) {
|
|
68
|
-
return undefined;
|
|
55
|
+
return Promise.resolve(undefined);
|
|
69
56
|
}
|
|
70
57
|
// Grab the last value (if one exists)
|
|
71
|
-
|
|
58
|
+
const maybeLastValue = keyValuePairs[keyValuePairs.length - 1].maybeValue;
|
|
72
59
|
if (maybeLastValue === undefined) {
|
|
73
|
-
return undefined;
|
|
60
|
+
return Promise.resolve(undefined);
|
|
74
61
|
}
|
|
75
62
|
return (0, common_1.autocompleteKeywordRightMostLeaf)(state, maybeLastValue.node.id);
|
|
76
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleteKeywordLetExpression.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC
|
|
1
|
+
{"version":3,"file":"autocompleteKeywordLetExpression.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,sFAAsH;AAGtH,6EAA0E;AAC1E,qCAA4D;AAC5D,uFAAoF;AAEpF,gCAAyC;AAEzC,SAAsB,gCAAgC,CAClD,KAAsC;;QAEtC,8FAA8F;QAC9F,gEAAgE;QAChE,MAAM,KAAK,GAAa,KAAK,CAAC,KAAK,CAAC;QACpC,IAAI,cAA8D,CAAC;QAEnE,mGAAmG;QACnG,gBAAgB;QAChB,IAAI,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,qBAAY,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC1E,cAAc,GAAG,MAAM,4BAA4B,CAC/C,KAAK,EACL,0BAAiB,CAAC,iBAAiB,CAC/B,KAAK,CAAC,mBAAmB,EACzB,qBAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CACnD,CACJ,CAAC;YAEF,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE;gBACxC,IAAI,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,KAAK,IAAI,EAAE;oBACpD,kDAAkD;oBAClD,4CAA4C;oBAC5C,cAAc,GAAG,IAAA,iEAA+B,EAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,EAAE,KAAK,CAAC,kBAAkB,EAAE;;qBAEhG,CAAC,CAAC;oBAEH,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;iBAC7D;qBAAM,IACH,iBAAa,CAAC,qBAAqB,CAC/B,KAAK,CAAC,UAAU,CAAC,QAAQ,EACzB,KAAK,CAAC,kBAAkB,CAAC,aAAa,EACtC,IAAI,CACP,EACH;oBACE,OAAO,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,gBAAyB,CAAC,CAAC,CAAC,cAAc,CAAC;iBACtG;aACJ;iBAAM;gBACH,OAAO,cAAc,KAAK,SAAS;oBAC/B,CAAC,CAAC,CAAC,GAAG,cAAc,gBAAyB;oBAC7C,CAAC,CAAC,eAAwB,CAAC;aAClC;SACJ;QAED,OAAO,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAA,uDAA0B,EAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;CAAA;AA7CD,4EA6CC;AAED,SAAS,4BAA4B,CACjC,KAAsC,EACtC,aAA6D;IAE7D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KACrC;IAED,sCAAsC;IACtC,MAAM,cAAc,GAAyB,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;IAEhG,IAAI,cAAc,KAAK,SAAS,EAAE;QAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KACrC;IAED,OAAO,IAAA,yCAAgC,EAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC"}
|