@microsoft/powerquery-language-services 0.6.12 → 0.9.6
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/analysis.d.ts +12 -11
- package/lib/powerquery-language-services/analysis/analysisBase.d.ts +31 -25
- package/lib/powerquery-language-services/analysis/analysisBase.js +239 -195
- package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
- package/lib/powerquery-language-services/analysis/analysisUtils.d.ts +1 -1
- package/lib/powerquery-language-services/analysis/analysisUtils.js +3 -3
- package/lib/powerquery-language-services/analysis/analysisUtils.js.map +1 -1
- package/lib/powerquery-language-services/analysis/memoizedAnalysis.d.ts +6 -6
- package/lib/powerquery-language-services/analysis/memoizedAnalysis.js.map +1 -1
- package/lib/powerquery-language-services/documentSymbols.js +8 -7
- package/lib/powerquery-language-services/documentSymbols.js.map +1 -1
- package/lib/powerquery-language-services/externalType/externalType.d.ts +1 -1
- package/lib/powerquery-language-services/externalType/externalType.js.map +1 -1
- package/lib/powerquery-language-services/externalType/externalTypeUtils.d.ts +2 -2
- package/lib/powerquery-language-services/externalType/externalTypeUtils.js +8 -7
- package/lib/powerquery-language-services/externalType/externalTypeUtils.js.map +1 -1
- package/lib/powerquery-language-services/index.d.ts +2 -1
- package/lib/powerquery-language-services/index.js +4 -3
- package/lib/powerquery-language-services/index.js.map +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/activeNode.d.ts +7 -8
- package/lib/powerquery-language-services/inspection/activeNode/activeNode.js +3 -4
- package/lib/powerquery-language-services/inspection/activeNode/activeNode.js.map +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +227 -193
- package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.d.ts +4 -2
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +121 -98
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.d.ts +3 -6
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +13 -46
- 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 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js +42 -43
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js +24 -23
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js +7 -7
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js +2 -2
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js +8 -8
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js +4 -4
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js +8 -9
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js +6 -5
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/commonTypes.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.d.ts +4 -3
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js +126 -82
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.d.ts +5 -3
- package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js +305 -53
- package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/commonTypes.d.ts +6 -7
- package/lib/powerquery-language-services/inspection/autocomplete/task.js +8 -11
- package/lib/powerquery-language-services/inspection/autocomplete/task.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.d.ts +7 -0
- package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.js +5 -0
- package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.js.map +1 -0
- package/lib/powerquery-language-services/inspection/autocomplete/{common.d.ts → trailingTokenUtils.d.ts} +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js +19 -0
- package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js.map +1 -0
- package/lib/powerquery-language-services/inspection/deferenceIdentifier.js +23 -20
- package/lib/powerquery-language-services/inspection/deferenceIdentifier.js.map +1 -1
- package/lib/powerquery-language-services/inspection/expectedType.js +62 -61
- package/lib/powerquery-language-services/inspection/expectedType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js +20 -15
- package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +12 -10
- package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js +7 -7
- package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/scope/scope.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/scope/scope.js.map +1 -1
- package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +38 -36
- package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
- package/lib/powerquery-language-services/inspection/scope/scopeUtils.js +20 -18
- package/lib/powerquery-language-services/inspection/scope/scopeUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/task.js +24 -21
- package/lib/powerquery-language-services/inspection/task.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/common.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/common.js +85 -84
- package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js +4 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js +38 -38
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js +6 -5
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js +10 -9
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js +6 -5
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js +25 -24
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +11 -10
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js +5 -4
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js +15 -13
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js +14 -12
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +5 -4
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +5 -4
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js +11 -10
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +11 -10
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js +8 -6
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js +10 -8
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js +11 -10
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js +10 -6
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js +5 -4
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js +6 -5
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +10 -8
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +8 -6
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js +9 -7
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js +11 -10
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js +89 -88
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +12 -10
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js +14 -13
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/task.js +9 -7
- package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
- package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.d.ts +1 -1
- package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js +3 -3
- package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspectionSettings.d.ts +1 -1
- package/lib/powerquery-language-services/inspectionSettings.js.map +1 -1
- package/lib/powerquery-language-services/inspectionUtils.d.ts +3 -3
- package/lib/powerquery-language-services/inspectionUtils.js +51 -52
- package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
- package/lib/powerquery-language-services/library/library.d.ts +1 -1
- package/lib/powerquery-language-services/library/library.js.map +1 -1
- package/lib/powerquery-language-services/library/librarySymbolUtils.d.ts +10 -2
- package/lib/powerquery-language-services/library/librarySymbolUtils.js +27 -21
- package/lib/powerquery-language-services/library/librarySymbolUtils.js.map +1 -1
- package/lib/powerquery-language-services/library/libraryUtils.d.ts +5 -5
- package/lib/powerquery-language-services/library/libraryUtils.js +24 -23
- package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
- package/lib/powerquery-language-services/localization/templates.js +42 -42
- package/lib/powerquery-language-services/localization/templates.js.map +1 -1
- package/lib/powerquery-language-services/positionUtils.d.ts +9 -4
- package/lib/powerquery-language-services/positionUtils.js +55 -23
- package/lib/powerquery-language-services/positionUtils.js.map +1 -1
- package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js +15 -15
- package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js.map +1 -1
- package/lib/powerquery-language-services/providers/libraryProvider.js +9 -8
- package/lib/powerquery-language-services/providers/libraryProvider.js.map +1 -1
- package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js +16 -14
- package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js.map +1 -1
- package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js +24 -23
- package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js.map +1 -1
- package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js +73 -71
- package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js.map +1 -1
- package/lib/powerquery-language-services/providers/nullSymbolProvider.js +6 -6
- package/lib/powerquery-language-services/providers/nullSymbolProvider.js.map +1 -1
- package/lib/powerquery-language-services/tokenPositionComparison.d.ts +5 -0
- package/lib/powerquery-language-services/tokenPositionComparison.js +13 -0
- package/lib/powerquery-language-services/tokenPositionComparison.js.map +1 -0
- package/lib/powerquery-language-services/trace.d.ts +4 -4
- package/lib/powerquery-language-services/trace.js.map +1 -1
- package/lib/powerquery-language-services/traceUtils.d.ts +2 -2
- package/lib/powerquery-language-services/traceUtils.js +5 -5
- package/lib/powerquery-language-services/traceUtils.js.map +1 -1
- package/lib/powerquery-language-services/validate/validate.js +6 -5
- package/lib/powerquery-language-services/validate/validate.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js +16 -14
- package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateFunctionExpression.js +6 -4
- package/lib/powerquery-language-services/validate/validateFunctionExpression.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateInvokeExpression.js +7 -5
- package/lib/powerquery-language-services/validate/validateInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js +10 -7
- package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js.map +1 -1
- package/package.json +10 -8
- package/lib/powerquery-language-services/inspection/autocomplete/common.js +0 -11
- package/lib/powerquery-language-services/inspection/autocomplete/common.js.map +0 -1
|
@@ -11,59 +11,57 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
});
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.tryAutocompleteFieldAccess = void 0;
|
|
14
|
+
exports.tryAutocompleteFieldAccess = exports.inspectFieldAccess = void 0;
|
|
15
15
|
const PQP = require("@microsoft/powerquery-parser");
|
|
16
16
|
const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
|
|
17
17
|
const powerquery_parser_1 = require("@microsoft/powerquery-parser");
|
|
18
|
+
const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
|
|
19
|
+
const token_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language/token");
|
|
20
|
+
const trace_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/common/trace");
|
|
18
21
|
const activeNode_1 = require("../activeNode");
|
|
19
|
-
const autocompleteItem_1 = require("./autocompleteItem");
|
|
20
22
|
const __1 = require("../..");
|
|
21
23
|
const type_1 = require("../type");
|
|
24
|
+
function inspectFieldAccess(lexerSnapshot, nodeIdMapCollection, activeNode) {
|
|
25
|
+
const fieldProjection = parser_1.AncestryUtils.findNodeKind(activeNode.ancestry, language_1.Ast.NodeKind.FieldProjection);
|
|
26
|
+
const fieldSelector = parser_1.AncestryUtils.findNodeKind(activeNode.ancestry, language_1.Ast.NodeKind.FieldSelector);
|
|
27
|
+
if (fieldProjection) {
|
|
28
|
+
return inspectFieldProjection(lexerSnapshot, nodeIdMapCollection, activeNode.position, fieldProjection);
|
|
29
|
+
}
|
|
30
|
+
else if (fieldSelector) {
|
|
31
|
+
return inspectFieldSelector(lexerSnapshot, nodeIdMapCollection, activeNode.position, fieldSelector);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.inspectFieldAccess = inspectFieldAccess;
|
|
22
38
|
function tryAutocompleteFieldAccess(settings, parseState, activeNode, typeCache) {
|
|
23
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
const trace = settings.traceManager.entry(
|
|
40
|
+
const trace = settings.traceManager.entry(__1.AutocompleteTraceConstant.AutocompleteFieldAccess, tryAutocompleteFieldAccess.name, settings.initialCorrelationId);
|
|
25
41
|
const updatedSettings = Object.assign(Object.assign({}, settings), { initialCorrelationId: trace.id });
|
|
26
42
|
let result;
|
|
27
43
|
if (!activeNode_1.ActiveNodeUtils.isPositionInBounds(activeNode)) {
|
|
28
|
-
result = powerquery_parser_1.ResultUtils.
|
|
44
|
+
result = powerquery_parser_1.ResultUtils.ok(undefined);
|
|
29
45
|
}
|
|
30
46
|
else {
|
|
31
47
|
result = yield powerquery_parser_1.ResultUtils.ensureResultAsync(() => autocompleteFieldAccess(updatedSettings, parseState, activeNode, typeCache), updatedSettings.locale);
|
|
32
48
|
}
|
|
33
|
-
trace.exit({ [
|
|
49
|
+
trace.exit({ [trace_1.TraceConstant.IsError]: powerquery_parser_1.ResultUtils.isError(result) });
|
|
34
50
|
return result;
|
|
35
51
|
});
|
|
36
52
|
}
|
|
37
53
|
exports.tryAutocompleteFieldAccess = tryAutocompleteFieldAccess;
|
|
38
54
|
const AllowedExtendedTypeKindsForFieldEntries = [
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
55
|
+
language_1.Type.ExtendedTypeKind.AnyUnion,
|
|
56
|
+
language_1.Type.ExtendedTypeKind.DefinedRecord,
|
|
57
|
+
language_1.Type.ExtendedTypeKind.DefinedTable,
|
|
42
58
|
];
|
|
43
59
|
function autocompleteFieldAccess(settings, parseState, activeNode, typeCache) {
|
|
44
60
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
|
|
46
|
-
// Option 1: Find a field access node in the ancestry.
|
|
47
|
-
let fieldAccessAncestor;
|
|
48
|
-
for (const ancestor of activeNode.ancestry) {
|
|
49
|
-
if (parser_1.XorNodeUtils.isNodeKind(ancestor, [
|
|
50
|
-
"FieldSelector" /* FieldSelector */,
|
|
51
|
-
"FieldProjection" /* FieldProjection */,
|
|
52
|
-
])) {
|
|
53
|
-
fieldAccessAncestor = ancestor;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (fieldAccessAncestor !== undefined) {
|
|
57
|
-
inspectedFieldAccess = inspectFieldAccess(parseState.lexerSnapshot, parseState.contextState.nodeIdMapCollection, activeNode.position, fieldAccessAncestor);
|
|
58
|
-
}
|
|
61
|
+
const inspectedFieldAccess = inspectFieldAccess(parseState.lexerSnapshot, parseState.contextState.nodeIdMapCollection, activeNode);
|
|
59
62
|
// No field access was found, or the field access reports no autocomplete is possible.
|
|
60
63
|
// Eg. `[x = 1][x |]`
|
|
61
|
-
if (inspectedFieldAccess ===
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
// Don't waste time on type analysis if the field access
|
|
65
|
-
// reports it's in an invalid location for an autocomplete.
|
|
66
|
-
if (!inspectedFieldAccess.isAutocompleteAllowed) {
|
|
64
|
+
if (!(inspectedFieldAccess === null || inspectedFieldAccess === void 0 ? void 0 : inspectedFieldAccess.isAutocompleteAllowed)) {
|
|
67
65
|
return undefined;
|
|
68
66
|
}
|
|
69
67
|
// After a field access was found then find the field it's accessing and inspect the field's Type.
|
|
@@ -92,9 +90,38 @@ function autocompleteFieldAccess(settings, parseState, activeNode, typeCache) {
|
|
|
92
90
|
};
|
|
93
91
|
});
|
|
94
92
|
}
|
|
93
|
+
function createAutocompleteItems(fieldEntries, inspectedFieldAccess) {
|
|
94
|
+
const autocompleteItems = [];
|
|
95
|
+
const { textUnderPosition, textEditRange } = inspectedFieldAccess;
|
|
96
|
+
for (const [label, powerQueryType] of fieldEntries) {
|
|
97
|
+
autocompleteItems.push(createAutocompleteItem(label, powerQueryType, textUnderPosition, textEditRange));
|
|
98
|
+
}
|
|
99
|
+
return autocompleteItems;
|
|
100
|
+
}
|
|
101
|
+
function createAutocompleteItem(label, powerQueryType, textUnderPosition, textEditRange) {
|
|
102
|
+
const jaroWinklerScore = textUnderPosition ? (0, __1.calculateJaroWinkler)(label, textUnderPosition) : 1;
|
|
103
|
+
// If the key is a quoted identifier but doesn't need to be one then slice out the quote contents.
|
|
104
|
+
const identifierKind = PQP.Language.TextUtils.identifierKind(label, false);
|
|
105
|
+
const normalizedLabel = identifierKind === PQP.Language.TextUtils.IdentifierKind.Quote ? label.slice(2, -1) : label;
|
|
106
|
+
return {
|
|
107
|
+
jaroWinklerScore,
|
|
108
|
+
kind: __1.CompletionItemKind.Field,
|
|
109
|
+
label: normalizedLabel,
|
|
110
|
+
powerQueryType,
|
|
111
|
+
textEdit: textEditRange ? __1.TextEdit.replace(textEditRange, label) : undefined,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function emptyInspectedFieldAccess(isAutocompleteAllowed) {
|
|
115
|
+
return {
|
|
116
|
+
fieldNames: [],
|
|
117
|
+
isAutocompleteAllowed,
|
|
118
|
+
textEditRange: undefined,
|
|
119
|
+
textUnderPosition: undefined,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
95
122
|
function fieldEntriesFromFieldType(type) {
|
|
96
123
|
switch (type.extendedKind) {
|
|
97
|
-
case
|
|
124
|
+
case language_1.Type.ExtendedTypeKind.AnyUnion: {
|
|
98
125
|
let fields = [];
|
|
99
126
|
for (const field of type.unionedTypePairs) {
|
|
100
127
|
if (field.extendedKind && AllowedExtendedTypeKindsForFieldEntries.includes(field.extendedKind)) {
|
|
@@ -103,102 +130,98 @@ function fieldEntriesFromFieldType(type) {
|
|
|
103
130
|
}
|
|
104
131
|
return fields;
|
|
105
132
|
}
|
|
106
|
-
case
|
|
107
|
-
case
|
|
133
|
+
case language_1.Type.ExtendedTypeKind.DefinedRecord:
|
|
134
|
+
case language_1.Type.ExtendedTypeKind.DefinedTable:
|
|
108
135
|
return [...type.fields.entries()];
|
|
109
136
|
default:
|
|
110
137
|
return [];
|
|
111
138
|
}
|
|
112
139
|
}
|
|
113
|
-
function inspectFieldAccess(lexerSnapshot, nodeIdMapCollection, position, fieldAccess) {
|
|
114
|
-
switch (fieldAccess.node.kind) {
|
|
115
|
-
case "FieldProjection" /* FieldProjection */:
|
|
116
|
-
return inspectFieldProjection(lexerSnapshot, nodeIdMapCollection, position, fieldAccess);
|
|
117
|
-
case "FieldSelector" /* FieldSelector */:
|
|
118
|
-
return inspectFieldSelector(lexerSnapshot, nodeIdMapCollection, position, fieldAccess);
|
|
119
|
-
default:
|
|
120
|
-
throw powerquery_parser_1.Assert.isNever(fieldAccess.node);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
140
|
function inspectFieldProjection(lexerSnapshot, nodeIdMapCollection, position, fieldProjection) {
|
|
124
|
-
|
|
125
|
-
let
|
|
126
|
-
|
|
141
|
+
const fieldNamesResult = [];
|
|
142
|
+
let isAutocompleteAllowedResult = false;
|
|
143
|
+
let textEditRangeResult;
|
|
144
|
+
let textUnderPositionResult;
|
|
127
145
|
for (const fieldSelector of parser_1.NodeIdMapIterator.iterFieldProjection(nodeIdMapCollection, fieldProjection)) {
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
146
|
+
const inspectedFieldAccess = inspectFieldSelector(lexerSnapshot, nodeIdMapCollection, position, fieldSelector);
|
|
147
|
+
fieldNamesResult.push(...inspectedFieldAccess.fieldNames);
|
|
148
|
+
if (inspectedFieldAccess.isAutocompleteAllowed) {
|
|
149
|
+
isAutocompleteAllowedResult = true;
|
|
150
|
+
textEditRangeResult = inspectedFieldAccess.textEditRange;
|
|
151
|
+
textUnderPositionResult = inspectedFieldAccess.textUnderPosition;
|
|
132
152
|
}
|
|
133
|
-
fieldNames.push(...inspectedFieldSelector.fieldNames);
|
|
134
153
|
}
|
|
135
154
|
return {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
function createInspectedFieldAccess(isAutocompleteAllowed) {
|
|
142
|
-
return {
|
|
143
|
-
isAutocompleteAllowed,
|
|
144
|
-
identifierUnderPosition: undefined,
|
|
145
|
-
fieldNames: [],
|
|
155
|
+
fieldNames: fieldNamesResult,
|
|
156
|
+
isAutocompleteAllowed: isAutocompleteAllowedResult,
|
|
157
|
+
textEditRange: textEditRangeResult,
|
|
158
|
+
textUnderPosition: textUnderPositionResult,
|
|
146
159
|
};
|
|
147
160
|
}
|
|
148
161
|
function inspectFieldSelector(lexerSnapshot, nodeIdMapCollection, position, fieldSelector) {
|
|
149
|
-
var _a;
|
|
150
162
|
const childIds = nodeIdMapCollection.childIdsById.get(fieldSelector.node.id);
|
|
151
163
|
if (childIds === undefined) {
|
|
152
|
-
return
|
|
164
|
+
return emptyInspectedFieldAccess(false);
|
|
153
165
|
}
|
|
154
166
|
else if (childIds.length === 1) {
|
|
155
|
-
return
|
|
167
|
+
return emptyInspectedFieldAccess(nodeIdMapCollection.astNodeById.has(childIds[0]));
|
|
156
168
|
}
|
|
157
|
-
const
|
|
158
|
-
const generalizedIdentifierXor = parser_1.NodeIdMapUtils.assertGetXorChecked(nodeIdMapCollection, generalizedIdentifierId, "GeneralizedIdentifier" /* GeneralizedIdentifier */);
|
|
169
|
+
const generalizedIdentifierXor = parser_1.NodeIdMapUtils.assertXorChecked(nodeIdMapCollection, PQP.ArrayUtils.assertGet(childIds, 1), language_1.Ast.NodeKind.GeneralizedIdentifier);
|
|
159
170
|
switch (generalizedIdentifierXor.kind) {
|
|
160
|
-
|
|
171
|
+
// There isn't a perfect way to determine if an autocomplete should be allowed.
|
|
172
|
+
// Take the following scenario, staring with start with: `let foo = [key = 1] in foo`
|
|
173
|
+
// Now the user wants to add a field selector: `let [key = 1][|in foo`
|
|
174
|
+
// The parser rules generate the GeneralizedIdentifier `in foo`, even though the user wouldn't expect it.
|
|
175
|
+
//
|
|
176
|
+
// The best solution I can think of is the following:
|
|
177
|
+
// - if it' a fully parsed Ast (ie. there exists a closing bracket) then the entire field is fair game.
|
|
178
|
+
// - if it's a partial Ast (ie. there is no closing bracket) then only operate on the first identifier token
|
|
179
|
+
case PQP.Parser.XorNodeKind.Ast: {
|
|
161
180
|
const generalizedIdentifier = generalizedIdentifierXor.node;
|
|
162
|
-
const
|
|
181
|
+
const generalizedIdentifierLiteral = generalizedIdentifier.literal;
|
|
182
|
+
let isPositionInOrOnIdentifier;
|
|
183
|
+
let textEditRange;
|
|
184
|
+
let textUnderPosition;
|
|
185
|
+
const firstToken = lexerSnapshot.tokens[generalizedIdentifier.tokenRange.tokenIndexStart];
|
|
186
|
+
if (!generalizedIdentifierLiteral.includes(" ")) {
|
|
187
|
+
isPositionInOrOnIdentifier = __1.PositionUtils.isInAst(position, generalizedIdentifier, true, true);
|
|
188
|
+
textUnderPosition = isPositionInOrOnIdentifier ? generalizedIdentifierLiteral : undefined;
|
|
189
|
+
textEditRange = __1.PositionUtils.rangeFromTokenRange(generalizedIdentifier.tokenRange);
|
|
190
|
+
}
|
|
191
|
+
// Given `let _ = [key with space = 1][#"key with space"| in _`
|
|
192
|
+
// assume the user wants to autocomplete the identifier `#"key with space"`
|
|
193
|
+
//
|
|
194
|
+
// Given: `let _ = [key with space = 1][key| in _`
|
|
195
|
+
// assume the user wants to autocomplete the identifier `key`
|
|
196
|
+
else if ((firstToken === null || firstToken === void 0 ? void 0 : firstToken.kind) === token_1.TokenKind.Identifier) {
|
|
197
|
+
isPositionInOrOnIdentifier = __1.PositionUtils.isInToken(position, firstToken, true, true);
|
|
198
|
+
textUnderPosition = isPositionInOrOnIdentifier ? firstToken.data : undefined;
|
|
199
|
+
textEditRange = isPositionInOrOnIdentifier ? __1.PositionUtils.rangeFromToken(firstToken) : undefined;
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
isPositionInOrOnIdentifier = false;
|
|
203
|
+
textEditRange = undefined;
|
|
204
|
+
textUnderPosition = undefined;
|
|
205
|
+
}
|
|
163
206
|
return {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
207
|
+
fieldNames: [generalizedIdentifierLiteral],
|
|
208
|
+
isAutocompleteAllowed: isPositionInOrOnIdentifier,
|
|
209
|
+
textEditRange,
|
|
210
|
+
textUnderPosition,
|
|
167
211
|
};
|
|
168
212
|
}
|
|
169
|
-
case
|
|
170
|
-
// TODO [Autocomplete]:
|
|
171
|
-
// This doesn't take into account of generalized identifiers consisting of multiple tokens.
|
|
172
|
-
// Eg. `foo[bar baz]` or `foo[#"bar baz"].
|
|
173
|
-
const openBracketConstant = parser_1.NodeIdMapUtils.assertUnboxNthChildAsAstChecked(nodeIdMapCollection, fieldSelector.node.id, 0, "Constant" /* Constant */);
|
|
174
|
-
const nextTokenPosition = (_a = lexerSnapshot.tokens[openBracketConstant.tokenRange.tokenIndexEnd + 1]) === null || _a === void 0 ? void 0 : _a.positionStart;
|
|
175
|
-
const isAutocompleteAllowed = __1.PositionUtils.isAfterAst(position, openBracketConstant, false) &&
|
|
176
|
-
(nextTokenPosition === undefined ||
|
|
177
|
-
__1.PositionUtils.isOnTokenPosition(position, nextTokenPosition) ||
|
|
178
|
-
__1.PositionUtils.isBeforeTokenPosition(position, nextTokenPosition, true));
|
|
213
|
+
case PQP.Parser.XorNodeKind.Context: {
|
|
179
214
|
return {
|
|
180
|
-
isAutocompleteAllowed,
|
|
181
|
-
identifierUnderPosition: undefined,
|
|
182
215
|
fieldNames: [],
|
|
216
|
+
isAutocompleteAllowed: true,
|
|
217
|
+
textEditRange: undefined,
|
|
218
|
+
textUnderPosition: undefined,
|
|
183
219
|
};
|
|
184
220
|
}
|
|
185
221
|
default:
|
|
186
222
|
throw powerquery_parser_1.Assert.isNever(generalizedIdentifierXor);
|
|
187
223
|
}
|
|
188
224
|
}
|
|
189
|
-
function createAutocompleteItems(fieldEntries, inspectedFieldAccess) {
|
|
190
|
-
var _a;
|
|
191
|
-
const fieldAccessNames = inspectedFieldAccess.fieldNames;
|
|
192
|
-
const autocompleteItems = [];
|
|
193
|
-
const identifierUnderPositionLiteral = (_a = inspectedFieldAccess.identifierUnderPosition) === null || _a === void 0 ? void 0 : _a.literal;
|
|
194
|
-
for (const [label, powerQueryType] of fieldEntries) {
|
|
195
|
-
if (fieldAccessNames.includes(label) && label !== identifierUnderPositionLiteral) {
|
|
196
|
-
continue;
|
|
197
|
-
}
|
|
198
|
-
autocompleteItems.push(autocompleteItem_1.AutocompleteItemUtils.createFromFieldAccess(label, powerQueryType, identifierUnderPositionLiteral));
|
|
199
|
-
}
|
|
200
|
-
return autocompleteItems;
|
|
201
|
-
}
|
|
202
225
|
function typablePrimaryExpression(nodeIdMapCollection, activeNode) {
|
|
203
226
|
const ancestry = activeNode.ancestry;
|
|
204
227
|
const numAncestors = ancestry.length;
|
|
@@ -206,9 +229,9 @@ function typablePrimaryExpression(nodeIdMapCollection, activeNode) {
|
|
|
206
229
|
let matchingContiguousPrimaryExpression = true;
|
|
207
230
|
for (let index = 0; index < numAncestors; index += 1) {
|
|
208
231
|
const xorNode = ancestry[index];
|
|
209
|
-
if (xorNode.node.kind ===
|
|
232
|
+
if (xorNode.node.kind === language_1.Ast.NodeKind.RecursivePrimaryExpression) {
|
|
210
233
|
// The previous ancestor must be an attribute of Rpe, which is either its head or ArrrayWrapper.
|
|
211
|
-
const xorNodeBeforeRpe = parser_1.AncestryUtils.
|
|
234
|
+
const xorNodeBeforeRpe = parser_1.AncestryUtils.assertNth(ancestry, index - 1);
|
|
212
235
|
// If we're coming from the head node,
|
|
213
236
|
// then return undefined as there can be no nodes before the head ode.
|
|
214
237
|
if (xorNodeBeforeRpe.node.attributeIndex === 0) {
|
|
@@ -217,11 +240,11 @@ function typablePrimaryExpression(nodeIdMapCollection, activeNode) {
|
|
|
217
240
|
// Else if we're coming from the ArrayWrapper,
|
|
218
241
|
// then grab the previous sibling.
|
|
219
242
|
else if (xorNodeBeforeRpe.node.attributeIndex === 1) {
|
|
220
|
-
const rpeChild = parser_1.AncestryUtils.
|
|
243
|
+
const rpeChild = parser_1.AncestryUtils.assertNth(ancestry, index - 2);
|
|
221
244
|
return parser_1.NodeIdMapUtils.assertRecursiveExpressionPreviousSibling(nodeIdMapCollection, rpeChild.node.id);
|
|
222
245
|
}
|
|
223
246
|
else {
|
|
224
|
-
throw new PQP.CommonError.InvariantError(`the child of a ${
|
|
247
|
+
throw new PQP.CommonError.InvariantError(`the child of a ${language_1.Ast.NodeKind.RecursivePrimaryExpression} should have an attribute index of either 1 or 2`, {
|
|
225
248
|
parentId: xorNode.node.id,
|
|
226
249
|
childId: xorNodeBeforeRpe.node.id,
|
|
227
250
|
});
|
package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleteFieldAccess.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AACpD,sFAQmE;AACnE,oEAAmE;
|
|
1
|
+
{"version":3,"file":"autocompleteFieldAccess.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AACpD,sFAQmE;AACnE,oEAAmE;AACnE,0FAAwF;AAExF,6FAAqG;AACrG,2FAAuG;AAEvG,8CAAyE;AAEzE,6BAAqH;AACrH,kCAA6C;AAK7C,SAAgB,kBAAkB,CAC9B,aAAsC,EACtC,mBAAyC,EACzC,UAAsB;IAEtB,MAAM,eAAe,GAA6C,sBAAa,CAAC,YAAY,CACxF,UAAU,CAAC,QAAQ,EACnB,cAAG,CAAC,QAAQ,CAAC,eAAe,CAC/B,CAAC;IAEF,MAAM,aAAa,GAA2C,sBAAa,CAAC,YAAY,CACpF,UAAU,CAAC,QAAQ,EACnB,cAAG,CAAC,QAAQ,CAAC,aAAa,CAC7B,CAAC;IAEF,IAAI,eAAe,EAAE;QACjB,OAAO,sBAAsB,CAAC,aAAa,EAAE,mBAAmB,EAAE,UAAU,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;KAC3G;SAAM,IAAI,aAAa,EAAE;QACtB,OAAO,oBAAoB,CAAC,aAAa,EAAE,mBAAmB,EAAE,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;KACvG;SAAM;QACH,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAtBD,gDAsBC;AAED,SAAsB,0BAA0B,CAC5C,QAA4B,EAC5B,UAAiC,EACjC,UAAuB,EACvB,SAAoB;;QAEpB,MAAM,KAAK,GAAU,QAAQ,CAAC,YAAY,CAAC,KAAK,CAC5C,6BAAyB,CAAC,uBAAuB,EACjD,0BAA0B,CAAC,IAAI,EAC/B,QAAQ,CAAC,oBAAoB,CAChC,CAAC;QAEF,MAAM,eAAe,mCACd,QAAQ,KACX,oBAAoB,EAAE,KAAK,CAAC,EAAE,GACjC,CAAC;QAEF,IAAI,MAAoC,CAAC;QAEzC,IAAI,CAAC,4BAAe,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;YACjD,MAAM,GAAG,+BAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;SACtC;aAAM;YACH,MAAM,GAAG,MAAM,+BAAW,CAAC,iBAAiB,CACxC,GAAG,EAAE,CAAC,uBAAuB,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EACjF,eAAe,CAAC,MAAM,CACzB,CAAC;SACL;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAa,CAAC,OAAO,CAAC,EAAE,+BAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAErE,OAAO,MAAM,CAAC;IAClB,CAAC;CAAA;AA/BD,gEA+BC;AAED,MAAM,uCAAuC,GAAyC;IAClF,eAAI,CAAC,gBAAgB,CAAC,QAAQ;IAC9B,eAAI,CAAC,gBAAgB,CAAC,aAAa;IACnC,eAAI,CAAC,gBAAgB,CAAC,YAAY;CACrC,CAAC;AAEF,SAAe,uBAAuB,CAClC,QAA4B,EAC5B,UAAiC,EACjC,UAAsB,EACtB,SAAoB;;QAEpB,MAAM,oBAAoB,GAAqC,kBAAkB,CAC7E,UAAU,CAAC,aAAa,EACxB,UAAU,CAAC,YAAY,CAAC,mBAAmB,EAC3C,UAAU,CACb,CAAC;QAEF,sFAAsF;QACtF,qBAAqB;QACrB,IAAI,CAAC,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,qBAAqB,CAAA,EAAE;YAC9C,OAAO,SAAS,CAAC;SACpB;QAED,kGAAkG;QAClG,0FAA0F;QAC1F,mCAAmC;QACnC,MAAM,mBAAmB,GAAyB,UAAU,CAAC,YAAY,CAAC,mBAAmB,CAAC;QAC9F,MAAM,KAAK,GAAyB,wBAAwB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAE9F,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,cAAc,GAAc,MAAM,IAAA,cAAO,EAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAEzG,IAAI,+BAAW,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YACrC,MAAM,cAAc,CAAC,KAAK,CAAC;SAC9B;QAED,MAAM,SAAS,GAAyB,cAAc,CAAC,KAAK,CAAC;QAE7D,8EAA8E;QAC9E,MAAM,YAAY,GAAkD,yBAAyB,CAAC,SAAS,CAAC,CAAC;QAEzG,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO,SAAS,CAAC;SACpB;QAED,OAAO;YACH,KAAK;YACL,SAAS;YACT,oBAAoB;YACpB,iBAAiB,EAAE,uBAAuB,CAAC,YAAY,EAAE,oBAAoB,CAAC;SACjF,CAAC;IACN,CAAC;CAAA;AAED,SAAS,uBAAuB,CAC5B,YAA2D,EAC3D,oBAA0C;IAE1C,MAAM,iBAAiB,GAAuB,EAAE,CAAC;IACjD,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAyB,oBAAoB,CAAC;IAExF,KAAK,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,YAAY,EAAE;QAChD,iBAAiB,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;KAC3G;IAED,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAED,SAAS,sBAAsB,CAC3B,KAAa,EACb,cAAoC,EACpC,iBAAqC,EACrC,aAAgC;IAEhC,MAAM,gBAAgB,GAAW,iBAAiB,CAAC,CAAC,CAAC,IAAA,wBAAoB,EAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAExG,kGAAkG;IAClG,MAAM,cAAc,GAA0C,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAElH,MAAM,eAAe,GACjB,cAAc,KAAK,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEhG,OAAO;QACH,gBAAgB;QAChB,IAAI,EAAE,sBAAkB,CAAC,KAAK;QAC9B,KAAK,EAAE,eAAe;QACtB,cAAc;QACd,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,YAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/E,CAAC;AACN,CAAC;AAED,SAAS,yBAAyB,CAAC,qBAA8B;IAC7D,OAAO;QACH,UAAU,EAAE,EAAE;QACd,qBAAqB;QACrB,aAAa,EAAE,SAAS;QACxB,iBAAiB,EAAE,SAAS;KAC/B,CAAC;AACN,CAAC;AAED,SAAS,yBAAyB,CAAC,IAA0B;IACzD,QAAQ,IAAI,CAAC,YAAY,EAAE;QACvB,KAAK,eAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,MAAM,GAAqC,EAAE,CAAC;YAElD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvC,IAAI,KAAK,CAAC,YAAY,IAAI,uCAAuC,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;oBAC5F,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC5D;aACJ;YAED,OAAO,MAAM,CAAC;SACjB;QAED,KAAK,eAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;QACzC,KAAK,eAAI,CAAC,gBAAgB,CAAC,YAAY;YACnC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAEtC;YACI,OAAO,EAAE,CAAC;KACjB;AACL,CAAC;AAED,SAAS,sBAAsB,CAC3B,aAAsC,EACtC,mBAAyC,EACzC,QAAkB,EAClB,eAA6C;IAE7C,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,IAAI,2BAA2B,GAAY,KAAK,CAAC;IACjD,IAAI,mBAAsC,CAAC;IAC3C,IAAI,uBAA2C,CAAC;IAEhD,KAAK,MAAM,aAAa,IAAI,0BAAiB,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,eAAe,CAAC,EAAE;QACrG,MAAM,oBAAoB,GAAyB,oBAAoB,CACnE,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACR,aAAa,CAChB,CAAC;QAEF,gBAAgB,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAE1D,IAAI,oBAAoB,CAAC,qBAAqB,EAAE;YAC5C,2BAA2B,GAAG,IAAI,CAAC;YACnC,mBAAmB,GAAG,oBAAoB,CAAC,aAAa,CAAC;YACzD,uBAAuB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC;SACpE;KACJ;IAED,OAAO;QACH,UAAU,EAAE,gBAAgB;QAC5B,qBAAqB,EAAE,2BAA2B;QAClD,aAAa,EAAE,mBAAmB;QAClC,iBAAiB,EAAE,uBAAuB;KAC7C,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CACzB,aAAsC,EACtC,mBAAyC,EACzC,QAAkB,EAClB,aAAyC;IAEzC,MAAM,QAAQ,GAAsC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEhH,IAAI,QAAQ,KAAK,SAAS,EAAE;QACxB,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC;KAC3C;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,OAAO,yBAAyB,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACtF;IAED,MAAM,wBAAwB,GAC1B,uBAAc,CAAC,gBAAgB,CAC3B,mBAAmB,EACnB,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EACrC,cAAG,CAAC,QAAQ,CAAC,qBAAqB,CACrC,CAAC;IAEN,QAAQ,wBAAwB,CAAC,IAAI,EAAE;QACnC,+EAA+E;QAC/E,qFAAqF;QACrF,sEAAsE;QACtE,yGAAyG;QACzG,EAAE;QACF,qDAAqD;QACrD,wGAAwG;QACxG,6GAA6G;QAC7G,KAAK,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,qBAAqB,GAA8B,wBAAwB,CAAC,IAAI,CAAC;YACvF,MAAM,4BAA4B,GAAW,qBAAqB,CAAC,OAAO,CAAC;YAE3E,IAAI,0BAAmC,CAAC;YACxC,IAAI,aAAgC,CAAC;YACrC,IAAI,iBAAqC,CAAC;YAE1C,MAAM,UAAU,GACZ,aAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YAE3E,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC7C,0BAA0B,GAAG,iBAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAChG,iBAAiB,GAAG,0BAA0B,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1F,aAAa,GAAG,iBAAa,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;aACvF;YACD,+DAA+D;YAC/D,2EAA2E;YAC3E,EAAE;YACF,kDAAkD;YAClD,6DAA6D;iBACxD,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,iBAAS,CAAC,UAAU,EAAE;gBAChD,0BAA0B,GAAG,iBAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACvF,iBAAiB,GAAG,0BAA0B,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7E,aAAa,GAAG,0BAA0B,CAAC,CAAC,CAAC,iBAAa,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aACrG;iBAAM;gBACH,0BAA0B,GAAG,KAAK,CAAC;gBACnC,aAAa,GAAG,SAAS,CAAC;gBAC1B,iBAAiB,GAAG,SAAS,CAAC;aACjC;YAED,OAAO;gBACH,UAAU,EAAE,CAAC,4BAA4B,CAAC;gBAC1C,qBAAqB,EAAE,0BAA0B;gBACjD,aAAa;gBACb,iBAAiB;aACpB,CAAC;SACL;QAED,KAAK,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO;gBACH,UAAU,EAAE,EAAE;gBACd,qBAAqB,EAAE,IAAI;gBAC3B,aAAa,EAAE,SAAS;gBACxB,iBAAiB,EAAE,SAAS;aAC/B,CAAC;SACL;QAED;YACI,MAAM,0BAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;KACtD;AACL,CAAC;AAED,SAAS,wBAAwB,CAC7B,mBAAyC,EACzC,UAAsB;IAEtB,MAAM,QAAQ,GAA4B,UAAU,CAAC,QAAQ,CAAC;IAC9D,MAAM,YAAY,GAAW,QAAQ,CAAC,MAAM,CAAC;IAE7C,IAAI,2BAAiD,CAAC;IACtD,IAAI,mCAAmC,GAAY,IAAI,CAAC;IAExD,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,IAAI,CAAC,EAAE;QAC1D,MAAM,OAAO,GAAa,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,cAAG,CAAC,QAAQ,CAAC,0BAA0B,EAAE;YAC/D,gGAAgG;YAChG,MAAM,gBAAgB,GAAa,sBAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAEhF,sCAAsC;YACtC,sEAAsE;YACtE,IAAI,gBAAgB,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,EAAE;gBAC5C,OAAO,SAAS,CAAC;aACpB;YACD,8CAA8C;YAC9C,kCAAkC;iBAC7B,IAAI,gBAAgB,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,EAAE;gBACjD,MAAM,QAAQ,GAAa,sBAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAExE,OAAO,uBAAc,CAAC,wCAAwC,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACzG;iBAAM;gBACH,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,cAAc,CACpC,kBAAkB,cAAG,CAAC,QAAQ,CAAC,0BAA0B,kDAAkD,EAC3G;oBACI,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;oBACzB,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE;iBACpC,CACJ,CAAC;aACL;SACJ;aAAM,IAAI,mCAAmC,IAAI,qBAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE;YAC1F,2BAA2B,GAAG,OAAO,CAAC;SACzC;aAAM;YACH,mCAAmC,GAAG,KAAK,CAAC;SAC/C;KACJ;IAED,OAAO,2BAA2B,CAAC;AACvC,CAAC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Keyword, Type } from "@microsoft/powerquery-parser/lib/powerquery-parser/language";
|
|
2
2
|
import type { AutocompleteItem } from "./autocompleteItem";
|
|
3
3
|
import { Inspection } from "../../..";
|
|
4
4
|
import { Library } from "../../../library";
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function createFromLanguageConstant(label: Constant.LanguageConstant, other?: string): AutocompleteItem;
|
|
8
|
-
export declare function createFromLibraryDefinition(label: string, libraryDefinition: Library.TLibraryDefinition, other?: string): Inspection.AutocompleteItem;
|
|
9
|
-
export declare function createFromPrimitiveTypeConstant(label: Constant.PrimitiveTypeConstant, other?: string): AutocompleteItem;
|
|
5
|
+
export declare function fromKeywordKind(label: Keyword.KeywordKind, other?: string): AutocompleteItem;
|
|
6
|
+
export declare function fromLibraryDefinition(label: string, libraryDefinition: Library.TLibraryDefinition, other?: string): Inspection.AutocompleteItem;
|
|
10
7
|
export declare function fromScopeItem(label: string, scopeItem: Inspection.TScopeItem, powerQueryType: Type.TPowerQueryType, other?: string): AutocompleteItem | undefined;
|
|
11
8
|
export declare function comparer(left: AutocompleteItem, right: AutocompleteItem): number;
|
|
@@ -2,27 +2,14 @@
|
|
|
2
2
|
// Copyright (c) Microsoft Corporation.
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.comparer = exports.fromScopeItem = exports.
|
|
6
|
-
const PQP = require("@microsoft/powerquery-parser");
|
|
5
|
+
exports.comparer = exports.fromScopeItem = exports.fromLibraryDefinition = exports.fromKeywordKind = void 0;
|
|
7
6
|
const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
|
|
8
7
|
const powerquery_parser_1 = require("@microsoft/powerquery-parser");
|
|
9
8
|
const vscode_languageserver_types_1 = require("vscode-languageserver-types");
|
|
10
9
|
const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
|
|
11
10
|
const jaroWinkler_1 = require("../../../jaroWinkler");
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
// If the key is a quoted identifier but doesn't need to be one then slice out the quote contents.
|
|
15
|
-
const identifierKind = PQP.Language.TextUtils.identifierKind(label, false);
|
|
16
|
-
const normalizedLabel = identifierKind === "Quote" /* Quote */ ? label.slice(2, -1) : label;
|
|
17
|
-
return {
|
|
18
|
-
jaroWinklerScore,
|
|
19
|
-
kind: vscode_languageserver_types_1.CompletionItemKind.Field,
|
|
20
|
-
label: normalizedLabel,
|
|
21
|
-
powerQueryType,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
exports.createFromFieldAccess = createFromFieldAccess;
|
|
25
|
-
function createFromKeywordKind(label, other) {
|
|
11
|
+
const __1 = require("../../..");
|
|
12
|
+
function fromKeywordKind(label, other) {
|
|
26
13
|
const jaroWinklerScore = other !== undefined ? (0, jaroWinkler_1.calculateJaroWinkler)(label, other) : 1;
|
|
27
14
|
return {
|
|
28
15
|
jaroWinklerScore,
|
|
@@ -31,18 +18,8 @@ function createFromKeywordKind(label, other) {
|
|
|
31
18
|
powerQueryType: language_1.Type.NotApplicableInstance,
|
|
32
19
|
};
|
|
33
20
|
}
|
|
34
|
-
exports.
|
|
35
|
-
function
|
|
36
|
-
const jaroWinklerScore = other !== undefined ? (0, jaroWinkler_1.calculateJaroWinkler)(label, other) : 1;
|
|
37
|
-
return {
|
|
38
|
-
jaroWinklerScore,
|
|
39
|
-
kind: vscode_languageserver_types_1.CompletionItemKind.Keyword,
|
|
40
|
-
label,
|
|
41
|
-
powerQueryType: language_1.Type.NotApplicableInstance,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
exports.createFromLanguageConstant = createFromLanguageConstant;
|
|
45
|
-
function createFromLibraryDefinition(label, libraryDefinition, other) {
|
|
21
|
+
exports.fromKeywordKind = fromKeywordKind;
|
|
22
|
+
function fromLibraryDefinition(label, libraryDefinition, other) {
|
|
46
23
|
const jaroWinklerScore = other !== undefined ? (0, jaroWinkler_1.calculateJaroWinkler)(label, other) : 1;
|
|
47
24
|
return {
|
|
48
25
|
jaroWinklerScore,
|
|
@@ -51,33 +28,23 @@ function createFromLibraryDefinition(label, libraryDefinition, other) {
|
|
|
51
28
|
powerQueryType: libraryDefinition.asPowerQueryType,
|
|
52
29
|
};
|
|
53
30
|
}
|
|
54
|
-
exports.
|
|
55
|
-
function createFromPrimitiveTypeConstant(label, other) {
|
|
56
|
-
const jaroWinklerScore = other !== undefined ? (0, jaroWinkler_1.calculateJaroWinkler)(label, other) : 1;
|
|
57
|
-
return {
|
|
58
|
-
jaroWinklerScore,
|
|
59
|
-
kind: vscode_languageserver_types_1.CompletionItemKind.Keyword,
|
|
60
|
-
label,
|
|
61
|
-
powerQueryType: language_1.TypeUtils.createPrimitiveType(label === "null" /* Null */, language_1.TypeUtils.typeKindFromPrimitiveTypeConstantKind(label)),
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
exports.createFromPrimitiveTypeConstant = createFromPrimitiveTypeConstant;
|
|
31
|
+
exports.fromLibraryDefinition = fromLibraryDefinition;
|
|
65
32
|
function fromScopeItem(label, scopeItem, powerQueryType, other) {
|
|
66
33
|
switch (scopeItem.kind) {
|
|
67
|
-
case
|
|
68
|
-
case
|
|
69
|
-
case
|
|
34
|
+
case __1.Inspection.ScopeItemKind.LetVariable:
|
|
35
|
+
case __1.Inspection.ScopeItemKind.RecordField:
|
|
36
|
+
case __1.Inspection.ScopeItemKind.SectionMember:
|
|
70
37
|
if (scopeItem.value === undefined) {
|
|
71
38
|
return undefined;
|
|
72
39
|
}
|
|
73
40
|
break;
|
|
74
|
-
case
|
|
41
|
+
case __1.Inspection.ScopeItemKind.Each:
|
|
75
42
|
return undefined;
|
|
76
|
-
case
|
|
43
|
+
case __1.Inspection.ScopeItemKind.Parameter: {
|
|
77
44
|
break;
|
|
78
45
|
}
|
|
79
|
-
case
|
|
80
|
-
if (parser_1.XorNodeUtils.
|
|
46
|
+
case __1.Inspection.ScopeItemKind.Undefined: {
|
|
47
|
+
if (parser_1.XorNodeUtils.isContext(scopeItem.xorNode)) {
|
|
81
48
|
return undefined;
|
|
82
49
|
}
|
|
83
50
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleteItemUtils.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,
|
|
1
|
+
{"version":3,"file":"autocompleteItemUtils.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,0FAA4F;AAC5F,oEAAsD;AACtD,6EAAiE;AACjE,sFAAyF;AAGzF,sDAA4D;AAC5D,gCAAsC;AAGtC,SAAgB,eAAe,CAAC,KAA0B,EAAE,KAAc;IACtE,MAAM,gBAAgB,GAAW,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,kCAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9F,OAAO;QACH,gBAAgB;QAChB,IAAI,EAAE,gDAAkB,CAAC,OAAO;QAChC,KAAK;QACL,cAAc,EAAE,eAAI,CAAC,qBAAqB;KAC7C,CAAC;AACN,CAAC;AATD,0CASC;AAED,SAAgB,qBAAqB,CACjC,KAAa,EACb,iBAA6C,EAC7C,KAAc;IAEd,MAAM,gBAAgB,GAAW,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,kCAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9F,OAAO;QACH,gBAAgB;QAChB,IAAI,EAAE,iBAAiB,CAAC,kBAAkB;QAC1C,KAAK;QACL,cAAc,EAAE,iBAAiB,CAAC,gBAAgB;KACrD,CAAC;AACN,CAAC;AAbD,sDAaC;AAED,SAAgB,aAAa,CACzB,KAAa,EACb,SAAgC,EAChC,cAAoC,EACpC,KAAc;IAEd,QAAQ,SAAS,CAAC,IAAI,EAAE;QACpB,KAAK,cAAU,CAAC,aAAa,CAAC,WAAW,CAAC;QAC1C,KAAK,cAAU,CAAC,aAAa,CAAC,WAAW,CAAC;QAC1C,KAAK,cAAU,CAAC,aAAa,CAAC,aAAa;YACvC,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE;gBAC/B,OAAO,SAAS,CAAC;aACpB;YAED,MAAM;QAEV,KAAK,cAAU,CAAC,aAAa,CAAC,IAAI;YAC9B,OAAO,SAAS,CAAC;QAErB,KAAK,cAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM;SACT;QAED,KAAK,cAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,qBAAY,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAC3C,OAAO,SAAS,CAAC;aACpB;YAED,MAAM;SACT;QAED;YACI,MAAM,0BAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KACvC;IAED,MAAM,gBAAgB,GAAW,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,kCAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9F,OAAO;QACH,gBAAgB;QAChB,IAAI,EAAE,gDAAkB,CAAC,QAAQ;QACjC,KAAK;QACL,cAAc;KACjB,CAAC;AACN,CAAC;AA3CD,sCA2CC;AAED,SAAgB,QAAQ,CAAC,IAAsB,EAAE,KAAuB;IACpE,MAAM,oBAAoB,GAAW,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAEpF,IAAI,oBAAoB,KAAK,CAAC,EAAE;QAC5B,OAAO,oBAAoB,CAAC;KAC/B;SAAM,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;QACjC,OAAO,CAAC,CAAC,CAAC;KACb;SAAM,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;QACjC,OAAO,CAAC,CAAC;KACZ;SAAM;QACH,OAAO,CAAC,CAAC;KACZ;AACL,CAAC;AAZD,4BAYC"}
|
|
@@ -2,6 +2,7 @@ import * as PQP from "@microsoft/powerquery-parser";
|
|
|
2
2
|
import { NodeIdMap } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
|
|
3
3
|
import { ActiveNode, TActiveNode } from "../../activeNode";
|
|
4
4
|
import { AutocompleteItem } from "../autocompleteItem";
|
|
5
|
-
import { TrailingToken
|
|
5
|
+
import { TrailingToken } from "../trailingToken";
|
|
6
|
+
import { TriedAutocompleteKeyword } from "../commonTypes";
|
|
6
7
|
export declare function tryAutocompleteKeyword(settings: PQP.CommonSettings, nodeIdMapCollection: NodeIdMap.Collection, activeNode: TActiveNode, trailingToken: TrailingToken | undefined): Promise<TriedAutocompleteKeyword>;
|
|
7
8
|
export declare function autocompleteKeyword(nodeIdMapCollection: NodeIdMap.Collection, activeNode: ActiveNode, trailingToken: TrailingToken | undefined): Promise<ReadonlyArray<AutocompleteItem>>;
|