@microsoft/powerquery-language-services 0.9.2 → 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/analysisBase.js +51 -48
- package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
- package/lib/powerquery-language-services/documentSymbols.js +6 -5
- 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.js +3 -2
- package/lib/powerquery-language-services/externalType/externalTypeUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/activeNode.d.ts +2 -2
- package/lib/powerquery-language-services/inspection/activeNode/activeNode.js.map +1 -1
- package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +41 -40
- 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 +118 -95
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.d.ts +1 -3
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +8 -31
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js +31 -31
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js +23 -22
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js +6 -6
- 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 +6 -6
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js +6 -5
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js.map +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/autocompleteLanguageConstant.d.ts +2 -2
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js +122 -78
- package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js +56 -54
- package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/commonTypes.d.ts +6 -4
- package/lib/powerquery-language-services/inspection/autocomplete/task.js +6 -9
- package/lib/powerquery-language-services/inspection/autocomplete/task.js.map +1 -1
- package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.d.ts +0 -1
- package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js +3 -3
- package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js.map +1 -1
- package/lib/powerquery-language-services/inspection/deferenceIdentifier.js +17 -14
- package/lib/powerquery-language-services/inspection/deferenceIdentifier.js.map +1 -1
- package/lib/powerquery-language-services/inspection/expectedType.js +61 -60
- package/lib/powerquery-language-services/inspection/expectedType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js +15 -10
- package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +8 -6
- package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js +6 -6
- 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 +35 -33
- 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 +17 -14
- package/lib/powerquery-language-services/inspection/task.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/common.js +80 -79
- 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 +20 -20
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js +5 -4
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js +8 -7
- 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 +23 -22
- 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 +4 -3
- 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 +13 -11
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +4 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +4 -3
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js +10 -9
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +10 -9
- 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 +9 -7
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js +9 -8
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js +6 -5
- 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 +5 -4
- 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 +10 -9
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js +74 -73
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +11 -9
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js +12 -11
- package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
- package/lib/powerquery-language-services/inspection/type/task.js +6 -4
- package/lib/powerquery-language-services/inspection/type/task.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.js +22 -21
- 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.js +9 -9
- package/lib/powerquery-language-services/library/librarySymbolUtils.js.map +1 -1
- package/lib/powerquery-language-services/library/libraryUtils.js +12 -11
- 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 +1 -0
- package/lib/powerquery-language-services/positionUtils.js +20 -15
- 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 +7 -6
- package/lib/powerquery-language-services/providers/libraryProvider.js.map +1 -1
- package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js +15 -13
- package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js.map +1 -1
- package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js +21 -20
- package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js.map +1 -1
- package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js +63 -61
- package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js.map +1 -1
- package/lib/powerquery-language-services/tokenPositionComparison.d.ts +1 -1
- package/lib/powerquery-language-services/tokenPositionComparison.js.map +1 -1
- 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/validate/validate.js +2 -1
- package/lib/powerquery-language-services/validate/validate.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js +13 -11
- package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateFunctionExpression.js +5 -3
- package/lib/powerquery-language-services/validate/validateFunctionExpression.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateInvokeExpression.js +5 -3
- package/lib/powerquery-language-services/validate/validateInvokeExpression.js.map +1 -1
- package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js +9 -6
- package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js.map +1 -1
- package/package.json +4 -4
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.autocompleteKeywordSectionMember = void 0;
|
|
6
6
|
const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
|
|
7
|
+
const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
|
|
7
8
|
const common_1 = require("./common");
|
|
8
9
|
function autocompleteKeywordSectionMember(state) {
|
|
9
10
|
const childAttributeIndex = state.child.node.attributeIndex;
|
|
10
11
|
// SectionMember.namePairedExpression
|
|
11
12
|
if (childAttributeIndex === 2) {
|
|
12
13
|
// A test for 'shared', which as we're on namePairedExpression we either parsed it or skipped it.
|
|
13
|
-
const sharedConstant = parser_1.NodeIdMapUtils.nthChildXorChecked(state.nodeIdMapCollection, state.parent.node.id, 1,
|
|
14
|
+
const sharedConstant = parser_1.NodeIdMapUtils.nthChildXorChecked(state.nodeIdMapCollection, state.parent.node.id, 1, language_1.Ast.NodeKind.Constant);
|
|
14
15
|
// 'shared' was parsed so we can exit.
|
|
15
16
|
if (sharedConstant !== undefined) {
|
|
16
17
|
return Promise.resolve(undefined);
|
|
@@ -19,18 +20,18 @@ function autocompleteKeywordSectionMember(state) {
|
|
|
19
20
|
const name = parser_1.AncestryUtils.nth(state.activeNode.ancestry, state.ancestryIndex - 2);
|
|
20
21
|
// Name hasn't been parsed yet so we can exit.
|
|
21
22
|
if (!name ||
|
|
22
|
-
!parser_1.XorNodeUtils.isAstChecked(name, [
|
|
23
|
+
!parser_1.XorNodeUtils.isAstChecked(name, [language_1.Ast.NodeKind.IdentifierPairedExpression])) {
|
|
23
24
|
return Promise.resolve(undefined);
|
|
24
25
|
}
|
|
25
|
-
if (
|
|
26
|
-
return Promise.resolve([
|
|
26
|
+
if (language_1.Keyword.KeywordKind.Shared.startsWith(name.node.key.literal)) {
|
|
27
|
+
return Promise.resolve([language_1.Keyword.KeywordKind.Shared]);
|
|
27
28
|
}
|
|
28
29
|
return Promise.resolve(undefined);
|
|
29
30
|
}
|
|
30
31
|
// `section foo; bar = 1 |` would be expecting a semicolon.
|
|
31
32
|
// The autocomplete should be for the IdentifierPairedExpression found on the previous child index.
|
|
32
33
|
else if (childAttributeIndex === 3 && parser_1.XorNodeUtils.isContext(state.child)) {
|
|
33
|
-
const identifierPairedExpression = parser_1.NodeIdMapUtils.assertNthChildAstChecked(state.nodeIdMapCollection, state.parent.node.id, 2,
|
|
34
|
+
const identifierPairedExpression = parser_1.NodeIdMapUtils.assertNthChildAstChecked(state.nodeIdMapCollection, state.parent.node.id, 2, language_1.Ast.NodeKind.IdentifierPairedExpression);
|
|
34
35
|
return (0, common_1.autocompleteKeywordRightMostLeaf)(state, identifierPairedExpression.id);
|
|
35
36
|
}
|
|
36
37
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleteKeywordSectionMember.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,sFAMmE;
|
|
1
|
+
{"version":3,"file":"autocompleteKeywordSectionMember.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,sFAMmE;AACnE,0FAA2F;AAE3F,qCAA4D;AAG5D,SAAgB,gCAAgC,CAC5C,KAAsC;IAEtC,MAAM,mBAAmB,GAAuB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;IAEhF,qCAAqC;IACrC,IAAI,mBAAmB,KAAK,CAAC,EAAE;QAC3B,iGAAiG;QACjG,MAAM,cAAc,GAAuC,uBAAc,CAAC,kBAAkB,CACxF,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EACpB,CAAC,EACD,cAAG,CAAC,QAAQ,CAAC,QAAQ,CACxB,CAAC;QAEF,sCAAsC;QACtC,IAAI,cAAc,KAAK,SAAS,EAAE;YAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACrC;QAED,4DAA4D;QAC5D,MAAM,IAAI,GAAyB,sBAAa,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QAEzG,8CAA8C;QAC9C,IACI,CAAC,IAAI;YACL,CAAC,qBAAY,CAAC,YAAY,CAAiC,IAAI,EAAE,CAAC,cAAG,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,EAC7G;YACE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACrC;QAED,IAAI,kBAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC9D,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,kBAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;SACxD;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KACrC;IACD,2DAA2D;IAC3D,mGAAmG;SAC9F,IAAI,mBAAmB,KAAK,CAAC,IAAI,qBAAY,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACvE,MAAM,0BAA0B,GAC5B,uBAAc,CAAC,wBAAwB,CACnC,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EACpB,CAAC,EACD,cAAG,CAAC,QAAQ,CAAC,0BAA0B,CAC1C,CAAC;QAEN,OAAO,IAAA,yCAAgC,EAAC,KAAK,EAAE,0BAA0B,CAAC,EAAE,CAAC,CAAC;KACjF;SAAM;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KACrC;AACL,CAAC;AApDD,4EAoDC"}
|
|
@@ -5,8 +5,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
5
5
|
exports.autocompleteKeywordTrailingText = void 0;
|
|
6
6
|
const PQP = require("@microsoft/powerquery-parser");
|
|
7
7
|
const powerquery_parser_1 = require("@microsoft/powerquery-parser");
|
|
8
|
+
const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
|
|
8
9
|
function autocompleteKeywordTrailingText(inspected, trailingToken, allowedKeywords) {
|
|
9
|
-
if (trailingToken.
|
|
10
|
+
if (trailingToken.isPositionEitherInOrOnToken === false) {
|
|
10
11
|
return inspected;
|
|
11
12
|
}
|
|
12
13
|
powerquery_parser_1.Assert.isTrue(trailingToken.data.length > 0, "trailingToken.data.length > 0");
|
|
@@ -23,9 +24,9 @@ exports.autocompleteKeywordTrailingText = autocompleteKeywordTrailingText;
|
|
|
23
24
|
// Used with parseError to see if a user could be typing a conjunctive keyword such as 'or'. Eg.
|
|
24
25
|
// 'Details[UserName] <> "" o|'
|
|
25
26
|
const PartialConjunctionKeywordAutocompleteMap = new Map([
|
|
26
|
-
["a", [
|
|
27
|
-
["i", [
|
|
28
|
-
["m", [
|
|
29
|
-
["o", [
|
|
27
|
+
["a", [language_1.Keyword.KeywordKind.And, language_1.Keyword.KeywordKind.As]],
|
|
28
|
+
["i", [language_1.Keyword.KeywordKind.Is]],
|
|
29
|
+
["m", [language_1.Keyword.KeywordKind.Meta]],
|
|
30
|
+
["o", [language_1.Keyword.KeywordKind.Or]],
|
|
30
31
|
]);
|
|
31
32
|
//# sourceMappingURL=autocompleteKeywordTrailingText.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleteKeywordTrailingText.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,oDAAoD;AACpD,oEAAsD;
|
|
1
|
+
{"version":3,"file":"autocompleteKeywordTrailingText.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,oDAAoD;AACpD,oEAAsD;AACtD,0FAAsF;AAItF,SAAgB,+BAA+B,CAC3C,SAA6C,EAC7C,aAA4B,EAC5B,eAA+D;IAE/D,IAAI,aAAa,CAAC,2BAA2B,KAAK,KAAK,EAAE;QACrD,OAAO,SAAS,CAAC;KACpB;IAED,0BAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,+BAA+B,CAAC,CAAC;IAC9E,MAAM,KAAK,GAA6B,aAAa,CAAC;IAEtD,eAAe,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,wCAAwC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjG,IAAI,eAAe,KAAK,SAAS,EAAE;QAC/B,OAAO,GAAG,CAAC,UAAU,CAAC,YAAY,CAC9B,SAAS,EACT,eAAe,CAAC,MAAM,CAAC,CAAC,OAA4B,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAC3F,CAAC;KACL;SAAM;QACH,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAtBD,0EAsBC;AAED,gGAAgG;AAChG,+BAA+B;AAC/B,MAAM,wCAAwC,GAAoD,IAAI,GAAG,CAGvG;IACE,CAAC,GAAG,EAAE,CAAC,kBAAO,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC,GAAG,EAAE,CAAC,kBAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,GAAG,EAAE,CAAC,kBAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,GAAG,EAAE,CAAC,kBAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;CAClC,CAAC,CAAC"}
|
package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as PQP from "@microsoft/powerquery-parser";
|
|
2
1
|
import { NodeIdMap } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
|
|
2
|
+
import { CommonSettings } from "@microsoft/powerquery-parser";
|
|
3
3
|
import { TActiveNode } from "../activeNode";
|
|
4
4
|
import { TrailingToken } from "./trailingToken";
|
|
5
5
|
import { TriedAutocompleteLanguageConstant } from "./commonTypes";
|
|
6
|
-
export declare function tryAutocompleteLanguageConstant(settings:
|
|
6
|
+
export declare function tryAutocompleteLanguageConstant(settings: CommonSettings, nodeIdMapCollection: NodeIdMap.Collection, activeNode: TActiveNode, trailingToken: TrailingToken | undefined): TriedAutocompleteLanguageConstant;
|
package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js
CHANGED
|
@@ -3,76 +3,157 @@
|
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.tryAutocompleteLanguageConstant = void 0;
|
|
6
|
-
const PQP = require("@microsoft/powerquery-parser");
|
|
7
6
|
const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
|
|
8
7
|
const powerquery_parser_1 = require("@microsoft/powerquery-parser");
|
|
8
|
+
const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
|
|
9
|
+
const vscode_languageserver_types_1 = require("vscode-languageserver-types");
|
|
10
|
+
const trace_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/common/trace");
|
|
11
|
+
const constant_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language/constant/constant");
|
|
9
12
|
const activeNode_1 = require("../activeNode");
|
|
10
|
-
const autocompleteItem_1 = require("./autocompleteItem");
|
|
11
13
|
const __1 = require("../..");
|
|
12
14
|
function tryAutocompleteLanguageConstant(settings, nodeIdMapCollection, activeNode, trailingToken) {
|
|
13
|
-
const trace = settings.traceManager.entry(
|
|
15
|
+
const trace = settings.traceManager.entry(__1.AutocompleteTraceConstant.AutocompleteLanguageConstant, tryAutocompleteLanguageConstant.name, settings.initialCorrelationId);
|
|
14
16
|
const result = powerquery_parser_1.ResultUtils.ensureResult(() => autocompleteLanguageConstant(nodeIdMapCollection, activeNode, trailingToken), settings.locale);
|
|
15
|
-
trace.exit({ [
|
|
17
|
+
trace.exit({ [trace_1.TraceConstant.IsError]: powerquery_parser_1.ResultUtils.isError(result) });
|
|
16
18
|
return result;
|
|
17
19
|
}
|
|
18
20
|
exports.tryAutocompleteLanguageConstant = tryAutocompleteLanguageConstant;
|
|
19
21
|
function autocompleteLanguageConstant(nodeIdMapCollection, activeNode, trailingToken) {
|
|
20
22
|
if (!activeNode_1.ActiveNodeUtils.isPositionInBounds(activeNode)) {
|
|
21
|
-
return
|
|
22
|
-
}
|
|
23
|
-
if (isCatchAllowed(nodeIdMapCollection, activeNode, trailingToken)) {
|
|
24
|
-
return autocompleteItem_1.AutocompleteItemUtils.fromLanguageConstant("catch" /* Catch */);
|
|
25
|
-
}
|
|
26
|
-
else if (isNullableAllowed(activeNode)) {
|
|
27
|
-
return autocompleteItem_1.AutocompleteItemUtils.fromLanguageConstant("nullable" /* Nullable */);
|
|
23
|
+
return [];
|
|
28
24
|
}
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
return [
|
|
26
|
+
getCatchAutocompleteItem(nodeIdMapCollection, activeNode, trailingToken),
|
|
27
|
+
getNullableAutocompleteItem(activeNode, trailingToken),
|
|
28
|
+
getOptionalAutocompleteItem(activeNode),
|
|
29
|
+
].filter(powerquery_parser_1.TypeScriptUtils.isDefined);
|
|
30
|
+
}
|
|
31
|
+
function createAutocompleteItem(label, other, range) {
|
|
32
|
+
const jaroWinklerScore = other !== undefined ? (0, __1.calculateJaroWinkler)(label, other) : 1;
|
|
33
|
+
return {
|
|
34
|
+
jaroWinklerScore,
|
|
35
|
+
kind: __1.CompletionItemKind.Keyword,
|
|
36
|
+
label,
|
|
37
|
+
powerQueryType: language_1.Type.NotApplicableInstance,
|
|
38
|
+
textEdit: range ? vscode_languageserver_types_1.TextEdit.replace(range, label) : undefined,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function getCatchAutocompleteItem(nodeIdMapCollection, activeNode, trailingToken) {
|
|
42
|
+
const nodeIndex = parser_1.AncestryUtils.indexOfNodeKind(activeNode.ancestry, language_1.Ast.NodeKind.ErrorHandlingExpression);
|
|
43
|
+
if (nodeIndex === undefined) {
|
|
44
|
+
return undefined;
|
|
31
45
|
}
|
|
32
|
-
|
|
46
|
+
const errorHandlingExpression = parser_1.AncestryUtils.nthChecked(activeNode.ancestry, nodeIndex, language_1.Ast.NodeKind.ErrorHandlingExpression);
|
|
47
|
+
if (!errorHandlingExpression) {
|
|
33
48
|
return undefined;
|
|
34
49
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
switch (errorHandlingExpression.kind) {
|
|
51
|
+
case parser_1.XorNodeKind.Ast:
|
|
52
|
+
// `try 1 catch| (exc) => 1`
|
|
53
|
+
// `try 1 otherwise| 1
|
|
54
|
+
if (errorHandlingExpression.node.handler) {
|
|
55
|
+
const handler = errorHandlingExpression.node.handler;
|
|
56
|
+
if (handler.constant && __1.PositionUtils.isInAst(activeNode.position, handler.constant, true, true)) {
|
|
57
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Catch, handler.constant.constantKind, __1.PositionUtils.rangeFromTokenRange(handler.constant.tokenRange));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (__1.PositionUtils.isAfterAst(activeNode.position, errorHandlingExpression.node, true)) {
|
|
61
|
+
// `try 1 |`
|
|
62
|
+
if (!trailingToken) {
|
|
63
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Catch);
|
|
64
|
+
}
|
|
65
|
+
// `try 1 cat|`
|
|
66
|
+
else if (__1.PositionUtils.isInToken(activeNode.position, trailingToken, true, true)) {
|
|
67
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Catch, trailingToken.data, __1.PositionUtils.rangeFromToken(trailingToken));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
break;
|
|
71
|
+
case parser_1.XorNodeKind.Context: {
|
|
72
|
+
const handler = parser_1.AncestryUtils.nthChecked(activeNode.ancestry, nodeIndex - 1, [language_1.Ast.NodeKind.CatchExpression, language_1.Ast.NodeKind.OtherwiseExpression]);
|
|
73
|
+
if (handler === undefined) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
const catchConstant = parser_1.NodeIdMapUtils.nthChildAstChecked(nodeIdMapCollection, handler.node.id, 0, language_1.Ast.NodeKind.Constant);
|
|
77
|
+
if (catchConstant && __1.PositionUtils.isInAst(activeNode.position, catchConstant, true, true)) {
|
|
78
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Catch, catchConstant.constantKind, __1.PositionUtils.rangeFromTokenRange(catchConstant.tokenRange));
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
51
81
|
}
|
|
82
|
+
default:
|
|
83
|
+
powerquery_parser_1.Assert.isNever(errorHandlingExpression);
|
|
52
84
|
}
|
|
53
|
-
return
|
|
85
|
+
return undefined;
|
|
54
86
|
}
|
|
55
|
-
function
|
|
87
|
+
function getNullableAutocompleteItem(activeNode, trailingToken) {
|
|
56
88
|
const ancestry = activeNode.ancestry;
|
|
57
89
|
const numAncestors = ancestry.length;
|
|
58
90
|
for (let index = 0; index < numAncestors; index += 1) {
|
|
59
91
|
const xorNode = ancestry[index];
|
|
60
92
|
switch (xorNode.node.kind) {
|
|
61
|
-
case
|
|
93
|
+
case language_1.Ast.NodeKind.AsNullablePrimitiveType:
|
|
62
94
|
if (isNullableAllowedForAsNullablePrimitiveType(activeNode, index)) {
|
|
63
|
-
return
|
|
95
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Nullable);
|
|
64
96
|
}
|
|
65
97
|
break;
|
|
66
|
-
case
|
|
98
|
+
case language_1.Ast.NodeKind.PrimitiveType:
|
|
67
99
|
if (parser_1.XorNodeUtils.isContext(xorNode)) {
|
|
68
|
-
|
|
100
|
+
if (!trailingToken) {
|
|
101
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Nullable);
|
|
102
|
+
}
|
|
103
|
+
else if (__1.PositionUtils.isInToken(activeNode.position, trailingToken, true, true)) {
|
|
104
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Nullable, trailingToken.data, __1.PositionUtils.rangeFromToken(trailingToken));
|
|
105
|
+
}
|
|
69
106
|
}
|
|
70
107
|
break;
|
|
71
108
|
default:
|
|
72
109
|
continue;
|
|
73
110
|
}
|
|
74
111
|
}
|
|
75
|
-
return
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
function getOptionalAutocompleteItem(activeNode) {
|
|
115
|
+
const fnExprAncestryIndex = parser_1.AncestryUtils.indexOfNodeKind(activeNode.ancestry, language_1.Ast.NodeKind.FunctionExpression);
|
|
116
|
+
if (fnExprAncestryIndex === undefined) {
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
// FunctionExpression -> IParenthesisWrapped -> ParameterList -> Csv -> Parameter
|
|
120
|
+
const parameterAncestryIndex = fnExprAncestryIndex - 4;
|
|
121
|
+
const parameter = parser_1.AncestryUtils.nthChecked(activeNode.ancestry, parameterAncestryIndex, language_1.Ast.NodeKind.Parameter);
|
|
122
|
+
if (parameter === undefined) {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
const childOfParameter = parser_1.AncestryUtils.nth(activeNode.ancestry, parameterAncestryIndex - 1);
|
|
126
|
+
if (childOfParameter === undefined) {
|
|
127
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Optional);
|
|
128
|
+
}
|
|
129
|
+
switch (childOfParameter.node.attributeIndex) {
|
|
130
|
+
// IParameter.optionalConstant
|
|
131
|
+
case 0:
|
|
132
|
+
switch (childOfParameter.kind) {
|
|
133
|
+
case parser_1.XorNodeKind.Ast: {
|
|
134
|
+
const optionalConstant = parser_1.XorNodeUtils.assertAstChecked(childOfParameter, language_1.Ast.NodeKind.Constant);
|
|
135
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Optional, optionalConstant.constantKind, __1.PositionUtils.rangeFromTokenRange(optionalConstant.tokenRange));
|
|
136
|
+
}
|
|
137
|
+
case parser_1.XorNodeKind.Context:
|
|
138
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Optional);
|
|
139
|
+
default:
|
|
140
|
+
throw powerquery_parser_1.Assert.isNever(childOfParameter);
|
|
141
|
+
}
|
|
142
|
+
// IParameter.name
|
|
143
|
+
case 1:
|
|
144
|
+
switch (childOfParameter.kind) {
|
|
145
|
+
case parser_1.XorNodeKind.Ast: {
|
|
146
|
+
const parameterName = parser_1.XorNodeUtils.assertAstChecked(childOfParameter, language_1.Ast.NodeKind.Identifier);
|
|
147
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Optional, parameterName.literal, __1.PositionUtils.rangeFromTokenRange(parameterName.tokenRange));
|
|
148
|
+
}
|
|
149
|
+
case parser_1.XorNodeKind.Context:
|
|
150
|
+
return createAutocompleteItem(constant_1.LanguageConstant.Optional);
|
|
151
|
+
default:
|
|
152
|
+
throw powerquery_parser_1.Assert.isNever(childOfParameter);
|
|
153
|
+
}
|
|
154
|
+
default:
|
|
155
|
+
return undefined;
|
|
156
|
+
}
|
|
76
157
|
}
|
|
77
158
|
function isNullableAllowedForAsNullablePrimitiveType(activeNode, ancestryIndex) {
|
|
78
159
|
const child = parser_1.AncestryUtils.nth(activeNode.ancestry, ancestryIndex - 1);
|
|
@@ -83,63 +164,26 @@ function isNullableAllowedForAsNullablePrimitiveType(activeNode, ancestryIndex)
|
|
|
83
164
|
const paired = child;
|
|
84
165
|
const position = activeNode.position;
|
|
85
166
|
// Ast.PrimitiveType
|
|
86
|
-
if (paired.node.kind ===
|
|
167
|
+
if (paired.node.kind === language_1.Ast.NodeKind.PrimitiveType && __1.PositionUtils.isBeforeXor(position, paired, false)) {
|
|
87
168
|
return true;
|
|
88
169
|
}
|
|
89
170
|
// Ast.NullablePrimitiveType
|
|
90
|
-
else if (paired.node.kind ===
|
|
171
|
+
else if (paired.node.kind === language_1.Ast.NodeKind.NullablePrimitiveType) {
|
|
91
172
|
const grandchild = parser_1.AncestryUtils.nth(activeNode.ancestry, ancestryIndex - 2);
|
|
92
173
|
if (grandchild === undefined) {
|
|
93
174
|
return false;
|
|
94
175
|
}
|
|
95
176
|
return (
|
|
96
177
|
// Ast.Constant
|
|
97
|
-
grandchild.node.kind ===
|
|
178
|
+
grandchild.node.kind === language_1.Ast.NodeKind.Constant ||
|
|
98
179
|
// before Ast.PrimitiveType
|
|
99
180
|
__1.PositionUtils.isBeforeXor(position, grandchild, false));
|
|
100
181
|
}
|
|
101
|
-
else if (paired.node.kind ===
|
|
182
|
+
else if (paired.node.kind === language_1.Ast.NodeKind.PrimitiveType) {
|
|
102
183
|
return parser_1.XorNodeUtils.isContext(paired);
|
|
103
184
|
}
|
|
104
185
|
else {
|
|
105
186
|
return false;
|
|
106
187
|
}
|
|
107
188
|
}
|
|
108
|
-
function isOptionalAllowed(activeNode) {
|
|
109
|
-
const fnExprAncestryIndex = parser_1.AncestryUtils.indexOfNodeKind(activeNode.ancestry, "FunctionExpression" /* FunctionExpression */);
|
|
110
|
-
if (fnExprAncestryIndex === undefined) {
|
|
111
|
-
return false;
|
|
112
|
-
}
|
|
113
|
-
// FunctionExpression -> IParenthesisWrapped -> ParameterList -> Csv -> Parameter
|
|
114
|
-
const parameter = parser_1.AncestryUtils.nthChecked(activeNode.ancestry, fnExprAncestryIndex - 4, "Parameter" /* Parameter */);
|
|
115
|
-
if (parameter === undefined) {
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
const childOfParameter = parser_1.AncestryUtils.nth(activeNode.ancestry, fnExprAncestryIndex - 5);
|
|
119
|
-
if (childOfParameter === undefined) {
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
switch (childOfParameter.node.attributeIndex) {
|
|
123
|
-
// IParameter.optionalConstant
|
|
124
|
-
case 0:
|
|
125
|
-
return true;
|
|
126
|
-
// IParameter.name
|
|
127
|
-
case 1:
|
|
128
|
-
switch (childOfParameter.kind) {
|
|
129
|
-
case "Ast" /* Ast */: {
|
|
130
|
-
const nameAst = parser_1.XorNodeUtils.assertAstChecked(childOfParameter, "Identifier" /* Identifier */);
|
|
131
|
-
const name = nameAst.literal;
|
|
132
|
-
return ("optional" /* Optional */.startsWith(name) &&
|
|
133
|
-
name !== "optional" /* Optional */ &&
|
|
134
|
-
__1.PositionUtils.isInAst(activeNode.position, nameAst, false, true));
|
|
135
|
-
}
|
|
136
|
-
case "Context" /* Context */:
|
|
137
|
-
return true;
|
|
138
|
-
default:
|
|
139
|
-
throw powerquery_parser_1.Assert.isNever(childOfParameter);
|
|
140
|
-
}
|
|
141
|
-
default:
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
189
|
//# sourceMappingURL=autocompleteLanguageConstant.js.map
|
package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleteLanguageConstant.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,
|
|
1
|
+
{"version":3,"file":"autocompleteLanguageConstant.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,sFAQmE;AACnE,oEAAoG;AACpG,0FAAwF;AACxF,6EAAwE;AACxE,2FAAuG;AACvG,4GAAiH;AAEjH,8CAAyE;AACzE,6BAA2G;AAK3G,SAAgB,+BAA+B,CAC3C,QAAwB,EACxB,mBAAyC,EACzC,UAAuB,EACvB,aAAwC;IAExC,MAAM,KAAK,GAAU,QAAQ,CAAC,YAAY,CAAC,KAAK,CAC5C,6BAAyB,CAAC,4BAA4B,EACtD,+BAA+B,CAAC,IAAI,EACpC,QAAQ,CAAC,oBAAoB,CAChC,CAAC;IAEF,MAAM,MAAM,GAAsC,+BAAW,CAAC,YAAY,CACtE,GAAG,EAAE,CAAC,4BAA4B,CAAC,mBAAmB,EAAE,UAAU,EAAE,aAAa,CAAC,EAClF,QAAQ,CAAC,MAAM,CAClB,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAa,CAAC,OAAO,CAAC,EAAE,+BAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAErE,OAAO,MAAM,CAAC;AAClB,CAAC;AApBD,0EAoBC;AAED,SAAS,4BAA4B,CACjC,mBAAyC,EACzC,UAAuB,EACvB,aAAwC;IAExC,IAAI,CAAC,4BAAe,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;QACjD,OAAO,EAAE,CAAC;KACb;IAED,OAAO;QACH,wBAAwB,CAAC,mBAAmB,EAAE,UAAU,EAAE,aAAa,CAAC;QACxE,2BAA2B,CAAC,UAAU,EAAE,aAAa,CAAC;QACtD,2BAA2B,CAAC,UAAU,CAAC;KAC1C,CAAC,MAAM,CAAC,mCAAe,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAuB,EAAE,KAAc,EAAE,KAAyB;IAC9F,MAAM,gBAAgB,GAAW,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,wBAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9F,OAAO;QACH,gBAAgB;QAChB,IAAI,EAAE,sBAAkB,CAAC,OAAO;QAChC,KAAK;QACL,cAAc,EAAE,eAAI,CAAC,qBAAqB;QAC1C,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,sCAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC;AACN,CAAC;AAED,SAAS,wBAAwB,CAC7B,mBAAyC,EACzC,UAAsB,EACtB,aAAwC;IAExC,MAAM,SAAS,GAAuB,sBAAa,CAAC,eAAe,CAC/D,UAAU,CAAC,QAAQ,EACnB,cAAG,CAAC,QAAQ,CAAC,uBAAuB,CACvC,CAAC;IAEF,IAAI,SAAS,KAAK,SAAS,EAAE;QACzB,OAAO,SAAS,CAAC;KACpB;IAED,MAAM,uBAAuB,GACzB,sBAAa,CAAC,UAAU,CACpB,UAAU,CAAC,QAAQ,EACnB,SAAS,EACT,cAAG,CAAC,QAAQ,CAAC,uBAAuB,CACvC,CAAC;IAEN,IAAI,CAAC,uBAAuB,EAAE;QAC1B,OAAO,SAAS,CAAC;KACpB;IAED,QAAQ,uBAAuB,CAAC,IAAI,EAAE;QAClC,KAAK,oBAAW,CAAC,GAAG;YAChB,4BAA4B;YAC5B,sBAAsB;YACtB,IAAI,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE;gBACtC,MAAM,OAAO,GAAkD,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAEpG,IAAI,OAAO,CAAC,QAAQ,IAAI,iBAAa,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;oBAC9F,OAAO,sBAAsB,CACzB,2BAAgB,CAAC,KAAK,EACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,EAC7B,iBAAa,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CACjE,CAAC;iBACL;aACJ;iBAAM,IAAI,iBAAa,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAC1F,YAAY;gBACZ,IAAI,CAAC,aAAa,EAAE;oBAChB,OAAO,sBAAsB,CAAC,2BAAgB,CAAC,KAAK,CAAC,CAAC;iBACzD;gBACD,eAAe;qBACV,IAAI,iBAAa,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;oBAC9E,OAAO,sBAAsB,CACzB,2BAAgB,CAAC,KAAK,EACtB,aAAa,CAAC,IAAI,EAClB,iBAAa,CAAC,cAAc,CAAC,aAAa,CAAC,CAC9C,CAAC;iBACL;aACJ;YAED,MAAM;QAEV,KAAK,oBAAW,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,OAAO,GACT,sBAAa,CAAC,UAAU,CACpB,UAAU,CAAC,QAAQ,EACnB,SAAS,GAAG,CAAC,EACb,CAAC,cAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,cAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CACnE,CAAC;YAEN,IAAI,OAAO,KAAK,SAAS,EAAE;gBACvB,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,aAAa,GAA8B,uBAAc,CAAC,kBAAkB,CAC9E,mBAAmB,EACnB,OAAO,CAAC,IAAI,CAAC,EAAE,EACf,CAAC,EACD,cAAG,CAAC,QAAQ,CAAC,QAAQ,CACxB,CAAC;YAEF,IAAI,aAAa,IAAI,iBAAa,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;gBACxF,OAAO,sBAAsB,CACzB,2BAAgB,CAAC,KAAK,EACtB,aAAa,CAAC,YAAY,EAC1B,iBAAa,CAAC,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAAC,CAC9D,CAAC;aACL;YAED,MAAM;SACT;QAED;YACI,0BAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;KAC/C;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,2BAA2B,CAChC,UAAsB,EACtB,aAAwC;IAExC,MAAM,QAAQ,GAA4B,UAAU,CAAC,QAAQ,CAAC;IAC9D,MAAM,YAAY,GAAW,QAAQ,CAAC,MAAM,CAAC;IAE7C,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,IAAI,CAAC,EAAE;QAC1D,MAAM,OAAO,GAAa,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE1C,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;YACvB,KAAK,cAAG,CAAC,QAAQ,CAAC,uBAAuB;gBACrC,IAAI,2CAA2C,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;oBAChE,OAAO,sBAAsB,CAAC,2BAAgB,CAAC,QAAQ,CAAC,CAAC;iBAC5D;gBAED,MAAM;YAEV,KAAK,cAAG,CAAC,QAAQ,CAAC,aAAa;gBAC3B,IAAI,qBAAY,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBACjC,IAAI,CAAC,aAAa,EAAE;wBAChB,OAAO,sBAAsB,CAAC,2BAAgB,CAAC,QAAQ,CAAC,CAAC;qBAC5D;yBAAM,IAAI,iBAAa,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;wBAChF,OAAO,sBAAsB,CACzB,2BAAgB,CAAC,QAAQ,EACzB,aAAa,CAAC,IAAI,EAClB,iBAAa,CAAC,cAAc,CAAC,aAAa,CAAC,CAC9C,CAAC;qBACL;iBACJ;gBAED,MAAM;YAEV;gBACI,SAAS;SAChB;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,2BAA2B,CAAC,UAAsB;IACvD,MAAM,mBAAmB,GAAuB,sBAAa,CAAC,eAAe,CACzE,UAAU,CAAC,QAAQ,EACnB,cAAG,CAAC,QAAQ,CAAC,kBAAkB,CAClC,CAAC;IAEF,IAAI,mBAAmB,KAAK,SAAS,EAAE;QACnC,OAAO,SAAS,CAAC;KACpB;IAED,iFAAiF;IACjF,MAAM,sBAAsB,GAAW,mBAAmB,GAAG,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAwC,sBAAa,CAAC,UAAU,CAC3E,UAAU,CAAC,QAAQ,EACnB,sBAAsB,EACtB,cAAG,CAAC,QAAQ,CAAC,SAAS,CACzB,CAAC;IAEF,IAAI,SAAS,KAAK,SAAS,EAAE;QACzB,OAAO,SAAS,CAAC;KACpB;IAED,MAAM,gBAAgB,GAAyB,sBAAa,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,sBAAsB,GAAG,CAAC,CAAC,CAAC;IAElH,IAAI,gBAAgB,KAAK,SAAS,EAAE;QAChC,OAAO,sBAAsB,CAAC,2BAAgB,CAAC,QAAQ,CAAC,CAAC;KAC5D;IAED,QAAQ,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE;QAC1C,8BAA8B;QAC9B,KAAK,CAAC;YACF,QAAQ,gBAAgB,CAAC,IAAI,EAAE;gBAC3B,KAAK,oBAAW,CAAC,GAAG,CAAC,CAAC;oBAClB,MAAM,gBAAgB,GAAkB,qBAAY,CAAC,gBAAgB,CACjE,gBAAgB,EAChB,cAAG,CAAC,QAAQ,CAAC,QAAQ,CACxB,CAAC;oBAEF,OAAO,sBAAsB,CACzB,2BAAgB,CAAC,QAAQ,EACzB,gBAAgB,CAAC,YAAY,EAC7B,iBAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACjE,CAAC;iBACL;gBAED,KAAK,oBAAW,CAAC,OAAO;oBACpB,OAAO,sBAAsB,CAAC,2BAAgB,CAAC,QAAQ,CAAC,CAAC;gBAE7D;oBACI,MAAM,0BAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aAC9C;QAEL,kBAAkB;QAClB,KAAK,CAAC;YACF,QAAQ,gBAAgB,CAAC,IAAI,EAAE;gBAC3B,KAAK,oBAAW,CAAC,GAAG,CAAC,CAAC;oBAClB,MAAM,aAAa,GAAmB,qBAAY,CAAC,gBAAgB,CAC/D,gBAAgB,EAChB,cAAG,CAAC,QAAQ,CAAC,UAAU,CAC1B,CAAC;oBAEF,OAAO,sBAAsB,CACzB,2BAAgB,CAAC,QAAQ,EACzB,aAAa,CAAC,OAAO,EACrB,iBAAa,CAAC,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAAC,CAC9D,CAAC;iBACL;gBAED,KAAK,oBAAW,CAAC,OAAO;oBACpB,OAAO,sBAAsB,CAAC,2BAAgB,CAAC,QAAQ,CAAC,CAAC;gBAE7D;oBACI,MAAM,0BAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aAC9C;QAEL;YACI,OAAO,SAAS,CAAC;KACxB;AACL,CAAC;AAED,SAAS,2CAA2C,CAAC,UAAsB,EAAE,aAAqB;IAC9F,MAAM,KAAK,GAAyB,sBAAa,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;IAE9F,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,cAAc,MAAK,CAAC,EAAE;QAClC,OAAO,KAAK,CAAC;KAChB;IAED,iEAAiE;IACjE,MAAM,MAAM,GAAa,KAAK,CAAC;IAC/B,MAAM,QAAQ,GAAa,UAAU,CAAC,QAAQ,CAAC;IAE/C,oBAAoB;IACpB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,cAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,iBAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QACvG,OAAO,IAAI,CAAC;KACf;IACD,4BAA4B;SACvB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,cAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE;QAC9D,MAAM,UAAU,GAAyB,sBAAa,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;QAEnG,IAAI,UAAU,KAAK,SAAS,EAAE;YAC1B,OAAO,KAAK,CAAC;SAChB;QAED,OAAO;QACH,eAAe;QACf,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,cAAG,CAAC,QAAQ,CAAC,QAAQ;YAC9C,2BAA2B;YAC3B,iBAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CACzD,CAAC;KACL;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,cAAG,CAAC,QAAQ,CAAC,aAAa,EAAE;QACxD,OAAO,qBAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KACzC;SAAM;QACH,OAAO,KAAK,CAAC;KAChB;AACL,CAAC"}
|