@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.
Files changed (161) hide show
  1. package/lib/powerquery-language-services/analysis/analysisBase.js +51 -48
  2. package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
  3. package/lib/powerquery-language-services/documentSymbols.js +6 -5
  4. package/lib/powerquery-language-services/documentSymbols.js.map +1 -1
  5. package/lib/powerquery-language-services/externalType/externalType.d.ts +1 -1
  6. package/lib/powerquery-language-services/externalType/externalType.js.map +1 -1
  7. package/lib/powerquery-language-services/externalType/externalTypeUtils.js +3 -2
  8. package/lib/powerquery-language-services/externalType/externalTypeUtils.js.map +1 -1
  9. package/lib/powerquery-language-services/inspection/activeNode/activeNode.d.ts +2 -2
  10. package/lib/powerquery-language-services/inspection/activeNode/activeNode.js.map +1 -1
  11. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +41 -40
  12. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
  13. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.d.ts +4 -2
  14. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +118 -95
  15. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
  16. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.d.ts +1 -3
  17. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +8 -31
  18. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
  19. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js +31 -31
  20. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js.map +1 -1
  21. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js +23 -22
  22. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js.map +1 -1
  23. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js +6 -6
  24. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js.map +1 -1
  25. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js +2 -2
  26. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js.map +1 -1
  27. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js +6 -6
  28. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js.map +1 -1
  29. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js +1 -1
  30. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js.map +1 -1
  31. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js +6 -5
  32. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js.map +1 -1
  33. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js +6 -5
  34. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js.map +1 -1
  35. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.d.ts +2 -2
  36. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js +122 -78
  37. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map +1 -1
  38. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js +56 -54
  39. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js.map +1 -1
  40. package/lib/powerquery-language-services/inspection/autocomplete/commonTypes.d.ts +6 -4
  41. package/lib/powerquery-language-services/inspection/autocomplete/task.js +6 -9
  42. package/lib/powerquery-language-services/inspection/autocomplete/task.js.map +1 -1
  43. package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.d.ts +0 -1
  44. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js +3 -3
  45. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js.map +1 -1
  46. package/lib/powerquery-language-services/inspection/deferenceIdentifier.js +17 -14
  47. package/lib/powerquery-language-services/inspection/deferenceIdentifier.js.map +1 -1
  48. package/lib/powerquery-language-services/inspection/expectedType.js +61 -60
  49. package/lib/powerquery-language-services/inspection/expectedType.js.map +1 -1
  50. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js +15 -10
  51. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js.map +1 -1
  52. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +8 -6
  53. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
  54. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js +6 -6
  55. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js.map +1 -1
  56. package/lib/powerquery-language-services/inspection/scope/scope.d.ts +1 -1
  57. package/lib/powerquery-language-services/inspection/scope/scope.js.map +1 -1
  58. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +35 -33
  59. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
  60. package/lib/powerquery-language-services/inspection/scope/scopeUtils.js +20 -18
  61. package/lib/powerquery-language-services/inspection/scope/scopeUtils.js.map +1 -1
  62. package/lib/powerquery-language-services/inspection/task.js +17 -14
  63. package/lib/powerquery-language-services/inspection/task.js.map +1 -1
  64. package/lib/powerquery-language-services/inspection/type/inspectType/common.js +80 -79
  65. package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
  66. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js +4 -3
  67. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js.map +1 -1
  68. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js +20 -20
  69. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js.map +1 -1
  70. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js +5 -4
  71. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
  72. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js +8 -7
  73. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
  74. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js +6 -5
  75. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -1
  76. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js +23 -22
  77. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js.map +1 -1
  78. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +11 -10
  79. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -1
  80. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js +4 -3
  81. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
  82. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js +15 -13
  83. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
  84. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js +13 -11
  85. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
  86. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +4 -3
  87. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
  88. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +4 -3
  89. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
  90. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js +10 -9
  91. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
  92. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +10 -9
  93. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
  94. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js +8 -6
  95. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
  96. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js +9 -7
  97. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
  98. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js +9 -8
  99. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js.map +1 -1
  100. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js +6 -5
  101. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
  102. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js +5 -4
  103. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
  104. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js +5 -4
  105. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js.map +1 -1
  106. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +10 -8
  107. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
  108. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +8 -6
  109. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
  110. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js +9 -7
  111. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js.map +1 -1
  112. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js +10 -9
  113. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
  114. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js +74 -73
  115. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
  116. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +11 -9
  117. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
  118. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js +12 -11
  119. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
  120. package/lib/powerquery-language-services/inspection/type/task.js +6 -4
  121. package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
  122. package/lib/powerquery-language-services/inspectionSettings.d.ts +1 -1
  123. package/lib/powerquery-language-services/inspectionSettings.js.map +1 -1
  124. package/lib/powerquery-language-services/inspectionUtils.js +22 -21
  125. package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
  126. package/lib/powerquery-language-services/library/library.d.ts +1 -1
  127. package/lib/powerquery-language-services/library/library.js.map +1 -1
  128. package/lib/powerquery-language-services/library/librarySymbolUtils.js +9 -9
  129. package/lib/powerquery-language-services/library/librarySymbolUtils.js.map +1 -1
  130. package/lib/powerquery-language-services/library/libraryUtils.js +12 -11
  131. package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
  132. package/lib/powerquery-language-services/localization/templates.js +42 -42
  133. package/lib/powerquery-language-services/localization/templates.js.map +1 -1
  134. package/lib/powerquery-language-services/positionUtils.d.ts +1 -0
  135. package/lib/powerquery-language-services/positionUtils.js +20 -15
  136. package/lib/powerquery-language-services/positionUtils.js.map +1 -1
  137. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js +15 -15
  138. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js.map +1 -1
  139. package/lib/powerquery-language-services/providers/libraryProvider.js +7 -6
  140. package/lib/powerquery-language-services/providers/libraryProvider.js.map +1 -1
  141. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js +15 -13
  142. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js.map +1 -1
  143. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js +21 -20
  144. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js.map +1 -1
  145. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js +63 -61
  146. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js.map +1 -1
  147. package/lib/powerquery-language-services/tokenPositionComparison.d.ts +1 -1
  148. package/lib/powerquery-language-services/tokenPositionComparison.js.map +1 -1
  149. package/lib/powerquery-language-services/trace.d.ts +4 -4
  150. package/lib/powerquery-language-services/trace.js.map +1 -1
  151. package/lib/powerquery-language-services/validate/validate.js +2 -1
  152. package/lib/powerquery-language-services/validate/validate.js.map +1 -1
  153. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js +13 -11
  154. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js.map +1 -1
  155. package/lib/powerquery-language-services/validate/validateFunctionExpression.js +5 -3
  156. package/lib/powerquery-language-services/validate/validateFunctionExpression.js.map +1 -1
  157. package/lib/powerquery-language-services/validate/validateInvokeExpression.js +5 -3
  158. package/lib/powerquery-language-services/validate/validateInvokeExpression.js.map +1 -1
  159. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js +9 -6
  160. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js.map +1 -1
  161. 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, "Constant" /* Constant */);
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, ["IdentifierPairedExpression" /* IdentifierPairedExpression */])) {
23
+ !parser_1.XorNodeUtils.isAstChecked(name, [language_1.Ast.NodeKind.IdentifierPairedExpression])) {
23
24
  return Promise.resolve(undefined);
24
25
  }
25
- if ("shared" /* Shared */.startsWith(name.node.key.literal)) {
26
- return Promise.resolve(["shared" /* Shared */]);
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, "IdentifierPairedExpression" /* IdentifierPairedExpression */);
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;AAGnE,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,4BAEJ,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,+DAAyC,CAAC,EAC7G;YACE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACrC;QAED,IAAI,sBAA2B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC9D,OAAO,OAAO,CAAC,OAAO,CAAC,uBAA4B,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,gEAEJ,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"}
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.isPositionInToken === false) {
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", ["and" /* And */, "as" /* As */]],
27
- ["i", ["is" /* Is */]],
28
- ["m", ["meta" /* Meta */]],
29
- ["o", ["or" /* Or */]],
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;AAKtD,SAAgB,+BAA+B,CAC3C,SAA6C,EAC7C,aAA4B,EAC5B,eAA+D;IAE/D,IAAI,aAAa,CAAC,iBAAiB,KAAK,KAAK,EAAE;QAC3C,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,gCAAiD,CAAC;IACxD,CAAC,GAAG,EAAE,eAAwB,CAAC;IAC/B,CAAC,GAAG,EAAE,mBAA0B,CAAC;IACjC,CAAC,GAAG,EAAE,eAAwB,CAAC;CAClC,CAAC,CAAC"}
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"}
@@ -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: PQP.CommonSettings, nodeIdMapCollection: NodeIdMap.Collection, activeNode: TActiveNode, trailingToken: TrailingToken | undefined): TriedAutocompleteLanguageConstant;
6
+ export declare function tryAutocompleteLanguageConstant(settings: CommonSettings, nodeIdMapCollection: NodeIdMap.Collection, activeNode: TActiveNode, trailingToken: TrailingToken | undefined): TriedAutocompleteLanguageConstant;
@@ -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("LanguageConstant" /* AutocompleteLanguageConstant */, tryAutocompleteLanguageConstant.name, settings.initialCorrelationId);
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({ ["IsError" /* IsError */]: powerquery_parser_1.ResultUtils.isError(result) });
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 undefined;
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
- else if (isOptionalAllowed(activeNode)) {
30
- return autocompleteItem_1.AutocompleteItemUtils.fromLanguageConstant("optional" /* Optional */);
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
- else {
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
- function isCatchAllowed(nodeIdMapCollection, activeNode, trailingToken) {
37
- const ancestry = activeNode.ancestry;
38
- const numAncestors = ancestry.length;
39
- for (let index = 0; index < numAncestors; index += 1) {
40
- const xorNode = ancestry[index];
41
- if (
42
- // We are under an ErrorHandlingExpression
43
- xorNode.node.kind === "ErrorHandlingExpression" /* ErrorHandlingExpression */ &&
44
- // Which was fully parsed
45
- parser_1.XorNodeUtils.isAst(xorNode) &&
46
- // Yet the cursor is after the end of the Ast
47
- activeNode.leafKind === "IsBeforePosition" /* IsBeforePosition */ &&
48
- // And it only has two children, meaning it hasn't parsed an error handler
49
- parser_1.NodeIdMapUtils.assertChildIds(nodeIdMapCollection.childIdsById, xorNode.node.id).length === 2) {
50
- return trailingToken ? "catch" /* Catch */.startsWith(trailingToken.data) : true;
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 false;
85
+ return undefined;
54
86
  }
55
- function isNullableAllowed(activeNode) {
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 "AsNullablePrimitiveType" /* AsNullablePrimitiveType */:
93
+ case language_1.Ast.NodeKind.AsNullablePrimitiveType:
62
94
  if (isNullableAllowedForAsNullablePrimitiveType(activeNode, index)) {
63
- return true;
95
+ return createAutocompleteItem(constant_1.LanguageConstant.Nullable);
64
96
  }
65
97
  break;
66
- case "PrimitiveType" /* PrimitiveType */:
98
+ case language_1.Ast.NodeKind.PrimitiveType:
67
99
  if (parser_1.XorNodeUtils.isContext(xorNode)) {
68
- return true;
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 false;
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 === "PrimitiveType" /* PrimitiveType */ && __1.PositionUtils.isBeforeXor(position, paired, false)) {
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 === "NullablePrimitiveType" /* NullablePrimitiveType */) {
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 === "Constant" /* Constant */ ||
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 === "PrimitiveType" /* PrimitiveType */) {
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
@@ -1 +1 @@
1
- {"version":3,"file":"autocompleteLanguageConstant.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autocompleteLanguageConstant.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.ts"],"names":[],"mappings":"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"}