@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.
Files changed (198) hide show
  1. package/lib/powerquery-language-services/analysis/analysis.d.ts +12 -11
  2. package/lib/powerquery-language-services/analysis/analysisBase.d.ts +31 -25
  3. package/lib/powerquery-language-services/analysis/analysisBase.js +239 -195
  4. package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
  5. package/lib/powerquery-language-services/analysis/analysisUtils.d.ts +1 -1
  6. package/lib/powerquery-language-services/analysis/analysisUtils.js +3 -3
  7. package/lib/powerquery-language-services/analysis/analysisUtils.js.map +1 -1
  8. package/lib/powerquery-language-services/analysis/memoizedAnalysis.d.ts +6 -6
  9. package/lib/powerquery-language-services/analysis/memoizedAnalysis.js.map +1 -1
  10. package/lib/powerquery-language-services/documentSymbols.js +8 -7
  11. package/lib/powerquery-language-services/documentSymbols.js.map +1 -1
  12. package/lib/powerquery-language-services/externalType/externalType.d.ts +1 -1
  13. package/lib/powerquery-language-services/externalType/externalType.js.map +1 -1
  14. package/lib/powerquery-language-services/externalType/externalTypeUtils.d.ts +2 -2
  15. package/lib/powerquery-language-services/externalType/externalTypeUtils.js +8 -7
  16. package/lib/powerquery-language-services/externalType/externalTypeUtils.js.map +1 -1
  17. package/lib/powerquery-language-services/index.d.ts +2 -1
  18. package/lib/powerquery-language-services/index.js +4 -3
  19. package/lib/powerquery-language-services/index.js.map +1 -1
  20. package/lib/powerquery-language-services/inspection/activeNode/activeNode.d.ts +7 -8
  21. package/lib/powerquery-language-services/inspection/activeNode/activeNode.js +3 -4
  22. package/lib/powerquery-language-services/inspection/activeNode/activeNode.js.map +1 -1
  23. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.d.ts +1 -1
  24. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +227 -193
  25. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
  26. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.d.ts +4 -2
  27. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +121 -98
  28. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
  29. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.d.ts +3 -6
  30. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +13 -46
  31. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
  32. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.d.ts +2 -1
  33. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js +42 -43
  34. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js.map +1 -1
  35. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js +24 -23
  36. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js.map +1 -1
  37. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js +7 -7
  38. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js.map +1 -1
  39. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js +2 -2
  40. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js.map +1 -1
  41. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js +8 -8
  42. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js.map +1 -1
  43. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js +4 -4
  44. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js.map +1 -1
  45. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js +8 -9
  46. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js.map +1 -1
  47. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.d.ts +1 -1
  48. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js +6 -5
  49. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js.map +1 -1
  50. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js +1 -1
  51. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js.map +1 -1
  52. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/commonTypes.d.ts +1 -1
  53. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.d.ts +4 -3
  54. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js +126 -82
  55. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map +1 -1
  56. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.d.ts +5 -3
  57. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js +305 -53
  58. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js.map +1 -1
  59. package/lib/powerquery-language-services/inspection/autocomplete/commonTypes.d.ts +6 -7
  60. package/lib/powerquery-language-services/inspection/autocomplete/task.js +8 -11
  61. package/lib/powerquery-language-services/inspection/autocomplete/task.js.map +1 -1
  62. package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.d.ts +7 -0
  63. package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.js +5 -0
  64. package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.js.map +1 -0
  65. package/lib/powerquery-language-services/inspection/autocomplete/{common.d.ts → trailingTokenUtils.d.ts} +1 -1
  66. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js +19 -0
  67. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js.map +1 -0
  68. package/lib/powerquery-language-services/inspection/deferenceIdentifier.js +23 -20
  69. package/lib/powerquery-language-services/inspection/deferenceIdentifier.js.map +1 -1
  70. package/lib/powerquery-language-services/inspection/expectedType.js +62 -61
  71. package/lib/powerquery-language-services/inspection/expectedType.js.map +1 -1
  72. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js +20 -15
  73. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js.map +1 -1
  74. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +12 -10
  75. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
  76. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js +7 -7
  77. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js.map +1 -1
  78. package/lib/powerquery-language-services/inspection/scope/scope.d.ts +1 -1
  79. package/lib/powerquery-language-services/inspection/scope/scope.js.map +1 -1
  80. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +38 -36
  81. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
  82. package/lib/powerquery-language-services/inspection/scope/scopeUtils.js +20 -18
  83. package/lib/powerquery-language-services/inspection/scope/scopeUtils.js.map +1 -1
  84. package/lib/powerquery-language-services/inspection/task.js +24 -21
  85. package/lib/powerquery-language-services/inspection/task.js.map +1 -1
  86. package/lib/powerquery-language-services/inspection/type/inspectType/common.d.ts +1 -1
  87. package/lib/powerquery-language-services/inspection/type/inspectType/common.js +85 -84
  88. package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
  89. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js +4 -3
  90. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js.map +1 -1
  91. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js +38 -38
  92. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js.map +1 -1
  93. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js +6 -5
  94. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
  95. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js +10 -9
  96. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
  97. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js +6 -5
  98. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -1
  99. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js +25 -24
  100. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js.map +1 -1
  101. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +11 -10
  102. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -1
  103. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js +5 -4
  104. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
  105. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js +15 -13
  106. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
  107. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js +14 -12
  108. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
  109. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +5 -4
  110. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
  111. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +5 -4
  112. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
  113. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js +11 -10
  114. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
  115. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +11 -10
  116. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
  117. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js +8 -6
  118. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
  119. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js +10 -8
  120. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
  121. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js +11 -10
  122. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js.map +1 -1
  123. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js +10 -6
  124. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
  125. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js +5 -4
  126. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
  127. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js +6 -5
  128. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js.map +1 -1
  129. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +10 -8
  130. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
  131. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +8 -6
  132. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
  133. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js +9 -7
  134. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js.map +1 -1
  135. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js +11 -10
  136. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
  137. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js +89 -88
  138. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
  139. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +12 -10
  140. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
  141. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js +14 -13
  142. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
  143. package/lib/powerquery-language-services/inspection/type/task.js +9 -7
  144. package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
  145. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.d.ts +1 -1
  146. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js +3 -3
  147. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js.map +1 -1
  148. package/lib/powerquery-language-services/inspectionSettings.d.ts +1 -1
  149. package/lib/powerquery-language-services/inspectionSettings.js.map +1 -1
  150. package/lib/powerquery-language-services/inspectionUtils.d.ts +3 -3
  151. package/lib/powerquery-language-services/inspectionUtils.js +51 -52
  152. package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
  153. package/lib/powerquery-language-services/library/library.d.ts +1 -1
  154. package/lib/powerquery-language-services/library/library.js.map +1 -1
  155. package/lib/powerquery-language-services/library/librarySymbolUtils.d.ts +10 -2
  156. package/lib/powerquery-language-services/library/librarySymbolUtils.js +27 -21
  157. package/lib/powerquery-language-services/library/librarySymbolUtils.js.map +1 -1
  158. package/lib/powerquery-language-services/library/libraryUtils.d.ts +5 -5
  159. package/lib/powerquery-language-services/library/libraryUtils.js +24 -23
  160. package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
  161. package/lib/powerquery-language-services/localization/templates.js +42 -42
  162. package/lib/powerquery-language-services/localization/templates.js.map +1 -1
  163. package/lib/powerquery-language-services/positionUtils.d.ts +9 -4
  164. package/lib/powerquery-language-services/positionUtils.js +55 -23
  165. package/lib/powerquery-language-services/positionUtils.js.map +1 -1
  166. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js +15 -15
  167. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js.map +1 -1
  168. package/lib/powerquery-language-services/providers/libraryProvider.js +9 -8
  169. package/lib/powerquery-language-services/providers/libraryProvider.js.map +1 -1
  170. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js +16 -14
  171. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js.map +1 -1
  172. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js +24 -23
  173. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js.map +1 -1
  174. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js +73 -71
  175. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js.map +1 -1
  176. package/lib/powerquery-language-services/providers/nullSymbolProvider.js +6 -6
  177. package/lib/powerquery-language-services/providers/nullSymbolProvider.js.map +1 -1
  178. package/lib/powerquery-language-services/tokenPositionComparison.d.ts +5 -0
  179. package/lib/powerquery-language-services/tokenPositionComparison.js +13 -0
  180. package/lib/powerquery-language-services/tokenPositionComparison.js.map +1 -0
  181. package/lib/powerquery-language-services/trace.d.ts +4 -4
  182. package/lib/powerquery-language-services/trace.js.map +1 -1
  183. package/lib/powerquery-language-services/traceUtils.d.ts +2 -2
  184. package/lib/powerquery-language-services/traceUtils.js +5 -5
  185. package/lib/powerquery-language-services/traceUtils.js.map +1 -1
  186. package/lib/powerquery-language-services/validate/validate.js +6 -5
  187. package/lib/powerquery-language-services/validate/validate.js.map +1 -1
  188. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js +16 -14
  189. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js.map +1 -1
  190. package/lib/powerquery-language-services/validate/validateFunctionExpression.js +6 -4
  191. package/lib/powerquery-language-services/validate/validateFunctionExpression.js.map +1 -1
  192. package/lib/powerquery-language-services/validate/validateInvokeExpression.js +7 -5
  193. package/lib/powerquery-language-services/validate/validateInvokeExpression.js.map +1 -1
  194. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js +10 -7
  195. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js.map +1 -1
  196. package/package.json +10 -8
  197. package/lib/powerquery-language-services/inspection/autocomplete/common.js +0 -11
  198. package/lib/powerquery-language-services/inspection/autocomplete/common.js.map +0 -1
@@ -4,81 +4,333 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.tryAutocompletePrimitiveType = 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");
8
7
  const powerquery_parser_1 = require("@microsoft/powerquery-parser");
8
+ const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
9
+ const constant_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language/constant/constant");
9
10
  const activeNode_1 = require("../activeNode");
10
- const autocompleteItem_1 = require("./autocompleteItem");
11
11
  const __1 = require("../..");
12
- function tryAutocompletePrimitiveType(settings, activeNode, trailingToken) {
13
- const trace = settings.traceManager.entry("PrimitiveType" /* AutocompletePrimitiveType */, tryAutocompletePrimitiveType.name, settings.initialCorrelationId);
12
+ function tryAutocompletePrimitiveType(settings, nodeIdMapCollection, activeNode, trailingToken) {
13
+ const trace = settings.traceManager.entry(__1.AutocompleteTraceConstant.AutocompletePrimitiveType, tryAutocompletePrimitiveType.name, settings.initialCorrelationId);
14
14
  let result;
15
15
  if (!activeNode_1.ActiveNodeUtils.isPositionInBounds(activeNode)) {
16
- result = powerquery_parser_1.ResultUtils.boxOk([]);
16
+ result = powerquery_parser_1.ResultUtils.ok([]);
17
17
  }
18
18
  else {
19
- result = powerquery_parser_1.ResultUtils.ensureResult(() => autocompletePrimitiveType(activeNode, trailingToken === null || trailingToken === void 0 ? void 0 : trailingToken.data), settings.locale);
19
+ result = powerquery_parser_1.ResultUtils.ensureResult(() => autocompletePrimitiveType(nodeIdMapCollection, activeNode, trailingToken), settings.locale);
20
20
  }
21
21
  trace.exit();
22
22
  return result;
23
23
  }
24
24
  exports.tryAutocompletePrimitiveType = tryAutocompletePrimitiveType;
25
- function autocompletePrimitiveType(activeNode, trailingText) {
26
- return createAutocompleteItems(traverseAncestors(activeNode), trailingText);
27
- }
28
- function createAutocompleteItems(PrimitiveTypeConstants, trailingText) {
29
- return PrimitiveTypeConstants.map((PrimitiveTypeConstant) => autocompleteItem_1.AutocompleteItemUtils.createFromPrimitiveTypeConstant(PrimitiveTypeConstant, trailingText));
30
- }
31
- function traverseAncestors(activeNode) {
25
+ const AllowedPrimitiveTypeConstants = constant_1.PrimitiveTypeConstants.filter((constant) => constant !== constant_1.PrimitiveTypeConstant.None);
26
+ function autocompletePrimitiveType(nodeIdMapCollection, activeNode, trailingToken) {
32
27
  if (activeNode.ancestry.length === 0) {
33
28
  return [];
34
29
  }
35
30
  const ancestry = activeNode.ancestry;
36
- const numAncestors = activeNode.ancestry.length;
37
- for (let index = 0; index < numAncestors; index += 1) {
38
- const parent = ancestry[index];
39
- const child = ancestry[index - 1];
40
- // If the node is a context PrimitiveType node,
41
- // which is created only when a primitive type was expected but there was nothing to parse.
42
- // `x as |`
43
- if (parser_1.XorNodeUtils.isContextXorChecked(parent, "PrimitiveType" /* PrimitiveType */)) {
44
- return language_1.Constant.PrimitiveTypeConstants;
45
- }
46
- // If on the second attribute for TypePrimaryType.
47
- // `type |`
48
- else if (parent.node.kind === "TypePrimaryType" /* TypePrimaryType */) {
49
- if (child === undefined) {
50
- return language_1.Constant.PrimitiveTypeConstants;
51
- }
52
- else if (child.node.attributeIndex === 0 &&
53
- parser_1.XorNodeUtils.isAstXor(child) &&
54
- __1.PositionUtils.isAfterAst(activeNode.position, child.node, true)) {
55
- return language_1.Constant.PrimitiveTypeConstants;
56
- }
31
+ const child = parser_1.AncestryUtils.assertNth(ancestry, 0);
32
+ const parent = parser_1.AncestryUtils.nth(activeNode.ancestry, 1);
33
+ if (parser_1.XorNodeUtils.isNodeKind(child, language_1.Ast.NodeKind.LiteralExpression)) {
34
+ if (!parent) {
35
+ return [];
36
+ }
37
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, language_1.Ast.NodeKind.FieldTypeSpecification)) {
38
+ return inspectFieldTypeSpecification(nodeIdMapCollection, parent, activeNode, trailingToken);
39
+ }
40
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, language_1.Ast.NodeKind.ListType)) {
41
+ return inspectTType(child, activeNode, trailingToken);
42
+ }
43
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, language_1.Ast.NodeKind.NullableType)) {
44
+ return inspectNullableType(nodeIdMapCollection, parent, activeNode, trailingToken);
45
+ }
46
+ else {
47
+ return [];
48
+ }
49
+ }
50
+ else if (parser_1.XorNodeUtils.isNodeKind(child, language_1.Ast.NodeKind.PrimitiveType)) {
51
+ if (!parent) {
52
+ return [];
53
+ }
54
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, [
55
+ language_1.Ast.NodeKind.AsExpression,
56
+ language_1.Ast.NodeKind.IsExpression,
57
+ ])) {
58
+ return inspectEitherAsExpressionOrIsExpression(nodeIdMapCollection, parent, child, activeNode, trailingToken);
57
59
  }
58
- // If on a FunctionExpression parameter.
59
- else if (parent.node.kind === "Parameter" /* Parameter */ &&
60
- parser_1.AncestryUtils.nthNextXorChecked(ancestry, index, 4, "FunctionExpression" /* FunctionExpression */) !== undefined) {
61
- // Things get messy when testing if it's on a nullable primitive type OR a primitive type.
62
- const grandchild = parser_1.AncestryUtils.nthPreviousXor(ancestry, index, 2);
63
- if (grandchild === undefined) {
64
- continue;
60
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, language_1.Ast.NodeKind.AsNullablePrimitiveType)) {
61
+ return inspectAsNullablePrimitiveType(nodeIdMapCollection, parent, child, activeNode, trailingToken);
62
+ }
63
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, language_1.Ast.NodeKind.NullablePrimitiveType)) {
64
+ return inspectNullablePrimitiveType(nodeIdMapCollection, parent, child, activeNode, trailingToken);
65
+ }
66
+ else {
67
+ return inspectPrimitiveType(child, activeNode, trailingToken);
68
+ }
69
+ }
70
+ else if (parser_1.XorNodeUtils.isNodeKind(child, language_1.Ast.NodeKind.TypePrimaryType)) {
71
+ return inspectTypePrimaryType(nodeIdMapCollection, child, activeNode, trailingToken);
72
+ }
73
+ else {
74
+ return [];
75
+ }
76
+ }
77
+ // Defaults to insertion if range is undefined,
78
+ // otherwise replaces the range with the label.
79
+ function createAutocompleteItems(text, range) {
80
+ return AllowedPrimitiveTypeConstants.map((label) => {
81
+ const jaroWinklerScore = text !== undefined ? (0, __1.calculateJaroWinkler)(label, text) : 1;
82
+ return {
83
+ jaroWinklerScore,
84
+ kind: __1.CompletionItemKind.Keyword,
85
+ label,
86
+ powerQueryType: language_1.TypeUtils.primitiveType(label === language_1.Constant.PrimitiveTypeConstant.Null, language_1.TypeUtils.typeKindFromPrimitiveTypeConstantKind(label)),
87
+ textEdit: range ? __1.TextEdit.replace(range, label) : undefined,
88
+ };
89
+ });
90
+ }
91
+ function createAutocompleteItemsFromIdentifierExpression(identifierExpression, activeNode) {
92
+ if (identifierExpression.inclusiveConstant) {
93
+ return [];
94
+ }
95
+ const literal = identifierExpression.identifier.literal;
96
+ if (!isSubstringOfPrimitiveTypeConstant(literal) ||
97
+ !__1.PositionUtils.isInAst(activeNode.position, identifierExpression, true, true)) {
98
+ return [];
99
+ }
100
+ return createAutocompleteItems(literal, __1.Range.create(__1.PositionUtils.positionFromTokenPosition(identifierExpression.tokenRange.positionStart), __1.PositionUtils.positionFromTokenPosition(identifierExpression.tokenRange.positionEnd)));
101
+ }
102
+ // `any` returns ["any", "anynonnull"]
103
+ // `date` returns ["date", "datetime", "datetimezone"]
104
+ // etc.
105
+ function createAutocompleteItemsFromPrimitiveTypeConstant(primitiveType, activeNode) {
106
+ if (!__1.PositionUtils.isInAst(activeNode.position, primitiveType, true, true)) {
107
+ return [];
108
+ }
109
+ return createAutocompleteItems(primitiveType.primitiveTypeKind, __1.Range.create(__1.PositionUtils.positionFromTokenPosition(primitiveType.tokenRange.positionStart), __1.PositionUtils.positionFromTokenPosition(primitiveType.tokenRange.positionEnd)));
110
+ }
111
+ // Returns AllowedPrimitiveTypeConstants if either:
112
+ // - there is no trailing token
113
+ // - the Position is either on or to the left of the trailing token's start
114
+ // elif Position is not on the trailing token's end, then return an empty array
115
+ // else return the autocomplete items for the trailing text.
116
+ function createAutocompleteItemsFromTrailingToken(trailingToken) {
117
+ if (!trailingToken) {
118
+ return createAutocompleteItems();
119
+ }
120
+ else if (!trailingToken.isPositionEitherInOrOnToken) {
121
+ return [];
122
+ }
123
+ else {
124
+ return createAutocompleteItems(trailingToken.data, __1.Range.create(__1.PositionUtils.positionFromTokenPosition(trailingToken.positionStart), __1.PositionUtils.positionFromTokenPosition(trailingToken.positionEnd)));
125
+ }
126
+ }
127
+ function inspectAsNullablePrimitiveType(nodeIdMapCollection, asNullablePrimitiveType, primitiveType, activeNode, trailingToken) {
128
+ // Ast
129
+ if (parser_1.XorNodeUtils.isAst(asNullablePrimitiveType)) {
130
+ const nullablePrimitiveType = asNullablePrimitiveType.node.paired;
131
+ switch (nullablePrimitiveType.kind) {
132
+ case language_1.Ast.NodeKind.NullablePrimitiveType:
133
+ return inspectNullablePrimitiveType(nodeIdMapCollection, parser_1.XorNodeUtils.boxAst(nullablePrimitiveType), parser_1.XorNodeUtils.boxAst(nullablePrimitiveType.paired), activeNode, trailingToken);
134
+ case language_1.Ast.NodeKind.PrimitiveType:
135
+ return inspectPrimitiveType(parser_1.XorNodeUtils.boxAst(nullablePrimitiveType), activeNode, trailingToken);
136
+ default:
137
+ throw powerquery_parser_1.Assert.isNever(nullablePrimitiveType);
138
+ }
139
+ }
140
+ // ParseContext
141
+ else {
142
+ const asConstant = parser_1.NodeIdMapUtils.nthChildAstChecked(nodeIdMapCollection, asNullablePrimitiveType.node.id, 0, [language_1.Ast.NodeKind.Constant]);
143
+ if (asConstant === undefined || !__1.PositionUtils.isAfterAst(activeNode.position, asConstant, true)) {
144
+ return [];
145
+ }
146
+ const nullablePrimitiveType = parser_1.NodeIdMapUtils.nthChildXorChecked(nodeIdMapCollection, asNullablePrimitiveType.node.id, 1, [language_1.Ast.NodeKind.NullablePrimitiveType, language_1.Ast.NodeKind.PrimitiveType]);
147
+ if (nullablePrimitiveType === undefined) {
148
+ return [];
149
+ }
150
+ else if (parser_1.XorNodeUtils.isNodeKind(nullablePrimitiveType, language_1.Ast.NodeKind.NullablePrimitiveType)) {
151
+ return inspectNullablePrimitiveType(nodeIdMapCollection, nullablePrimitiveType, primitiveType, activeNode, trailingToken);
152
+ }
153
+ else if (parser_1.XorNodeUtils.isNodeKind(nullablePrimitiveType, language_1.Ast.NodeKind.PrimitiveType)) {
154
+ return inspectPrimitiveType(nullablePrimitiveType, activeNode, trailingToken);
155
+ }
156
+ else {
157
+ throw new powerquery_parser_1.CommonError.InvariantError(`expected either a NullablePrimitiveType or PrimitiveType`, {
158
+ nodeKind: nullablePrimitiveType.node.kind,
159
+ });
160
+ }
161
+ }
162
+ }
163
+ function inspectEitherAsExpressionOrIsExpression(nodeIdMapCollection, eitherAsExpressionOrIsExpression, primitiveType, activeNode, trailingToken) {
164
+ // Ast
165
+ if (parser_1.XorNodeUtils.isAst(primitiveType)) {
166
+ return createAutocompleteItemsFromPrimitiveTypeConstant(primitiveType.node, activeNode);
167
+ }
168
+ // ParseContext
169
+ else {
170
+ const eitherAsConstantOrIsConstant = parser_1.NodeIdMapUtils.assertNthChildAstChecked(nodeIdMapCollection, eitherAsExpressionOrIsExpression.node.id, 1, language_1.Ast.NodeKind.Constant);
171
+ // `1 is|`
172
+ if (__1.PositionUtils.isOnAstEnd(activeNode.position, eitherAsConstantOrIsConstant)) {
173
+ return [];
174
+ }
175
+ return createAutocompleteItemsFromTrailingToken(trailingToken);
176
+ }
177
+ }
178
+ function inspectFieldTypeSpecification(nodeIdMapCollection, fieldTypeSpecification, activeNode, trailingToken) {
179
+ // Ast
180
+ if (parser_1.XorNodeUtils.isAst(fieldTypeSpecification)) {
181
+ return inspectTType(parser_1.XorNodeUtils.boxAst(fieldTypeSpecification.node.fieldType), activeNode, trailingToken);
182
+ }
183
+ // ParseContext
184
+ else {
185
+ const equalConstant = parser_1.NodeIdMapUtils.assertNthChildAstChecked(nodeIdMapCollection, fieldTypeSpecification.node.id, 0, language_1.Ast.NodeKind.Constant);
186
+ if (equalConstant === undefined || !__1.PositionUtils.isAfterAst(activeNode.position, equalConstant, false)) {
187
+ return [];
188
+ }
189
+ const ttype = parser_1.NodeIdMapUtils.nthChildXor(nodeIdMapCollection, fieldTypeSpecification.node.id, 1);
190
+ if (ttype === undefined) {
191
+ return createAutocompleteItems();
192
+ }
193
+ else if (parser_1.XorNodeUtils.isTType(ttype)) {
194
+ return inspectTType(ttype, activeNode, trailingToken);
195
+ }
196
+ }
197
+ return [];
198
+ }
199
+ function inspectNullablePrimitiveType(nodeIdMapCollection, nullablePrimitiveType, primitiveType, activeNode, trailingToken) {
200
+ // Ast
201
+ if (parser_1.XorNodeUtils.isAst(primitiveType)) {
202
+ return inspectPrimitiveType(primitiveType, activeNode, undefined);
203
+ }
204
+ // ParseContext
205
+ else if (!trailingToken) {
206
+ return createAutocompleteItems();
207
+ }
208
+ else if (!trailingToken.isPositionEitherInOrOnToken) {
209
+ return [];
210
+ }
211
+ else {
212
+ const nullableConstant = parser_1.NodeIdMapUtils.nthChildAstChecked(nodeIdMapCollection, nullablePrimitiveType.node.id, 0, [language_1.Ast.NodeKind.Constant]);
213
+ if (nullableConstant === undefined || !__1.PositionUtils.isAfterAst(activeNode.position, nullableConstant, true)) {
214
+ return [];
215
+ }
216
+ else {
217
+ return inspectPrimitiveType(primitiveType, activeNode, trailingToken);
218
+ }
219
+ }
220
+ }
221
+ function inspectNullableType(nodeIdMapCollection, nullableType, activeNode, trailingToken) {
222
+ // Ast
223
+ if (parser_1.XorNodeUtils.isAst(nullableType)) {
224
+ // `type nullable date|`
225
+ if (language_1.AstUtils.isNodeKind(nullableType.node.paired, language_1.Ast.NodeKind.PrimitiveType)) {
226
+ return inspectPrimitiveType(parser_1.XorNodeUtils.boxAst(nullableType.node.paired), activeNode, trailingToken);
227
+ }
228
+ // `type nullable a|`
229
+ else if (language_1.AstUtils.isNodeKind(nullableType.node.paired, language_1.Ast.NodeKind.IdentifierExpression)) {
230
+ return createAutocompleteItemsFromIdentifierExpression(nullableType.node.paired, activeNode);
231
+ }
232
+ else {
233
+ return [];
234
+ }
235
+ }
236
+ // ParseContext
237
+ else {
238
+ const nullableConstant = parser_1.NodeIdMapUtils.nthChildAstChecked(nodeIdMapCollection, nullableType.node.id, 0, [language_1.Ast.NodeKind.Constant]);
239
+ if (nullableConstant === undefined || !__1.PositionUtils.isAfterAst(activeNode.position, nullableConstant, true)) {
240
+ return [];
241
+ }
242
+ else {
243
+ const primitiveType = parser_1.NodeIdMapUtils.nthChildXorChecked(nodeIdMapCollection, nullableType.node.id, 1, [language_1.Ast.NodeKind.LiteralExpression, language_1.Ast.NodeKind.PrimitiveType]);
244
+ if (primitiveType === undefined) {
245
+ return [];
246
+ }
247
+ // The parser defaults to having thrown on a LiteralExpression if nothing trails afterwords,
248
+ // eg. `type nullable |`
249
+ else if (parser_1.XorNodeUtils.isNodeKind(primitiveType, language_1.Ast.NodeKind.LiteralExpression)) {
250
+ return createAutocompleteItems();
65
251
  }
66
- // On primitive type.
67
- // `(x as |) => 0`
68
- else if (parser_1.XorNodeUtils.isAstXorChecked(grandchild, "Constant" /* Constant */) &&
69
- grandchild.node.constantKind === "as" /* As */ &&
70
- __1.PositionUtils.isAfterAst(activeNode.position, grandchild.node, true)) {
71
- return language_1.Constant.PrimitiveTypeConstants;
252
+ else if (parser_1.XorNodeUtils.isNodeKind(primitiveType, language_1.Ast.NodeKind.PrimitiveType)) {
253
+ return inspectPrimitiveType(primitiveType, activeNode, trailingToken);
72
254
  }
73
- // On nullable primitive type
74
- // `(x as nullable |) => 0`
75
- else if (grandchild.node.kind === "NullablePrimitiveType" /* NullablePrimitiveType */ &&
76
- // Check the great grandchild
77
- parser_1.AncestryUtils.nthPreviousXorChecked(ancestry, index, 3, "PrimitiveType" /* PrimitiveType */)) {
78
- return language_1.Constant.PrimitiveTypeConstants;
255
+ else {
256
+ return [];
79
257
  }
80
258
  }
81
259
  }
260
+ }
261
+ function inspectPrimitiveType(primitiveTypeXor, activeNode, trailingToken) {
262
+ // Ast
263
+ if (parser_1.XorNodeUtils.isAst(primitiveTypeXor)) {
264
+ if (!__1.PositionUtils.isInAst(activeNode.position, primitiveTypeXor.node, true, true)) {
265
+ return [];
266
+ }
267
+ const primitiveTypeAst = primitiveTypeXor.node;
268
+ const primitiveTypeKind = primitiveTypeAst.primitiveTypeKind;
269
+ return createAutocompleteItems(primitiveTypeKind, __1.Range.create(__1.PositionUtils.positionFromTokenPosition(primitiveTypeAst.tokenRange.positionStart), __1.PositionUtils.positionFromTokenPosition(primitiveTypeAst.tokenRange.positionEnd)));
270
+ }
271
+ // ParseContext
272
+ else if (trailingToken) {
273
+ const trailingText = trailingToken.data;
274
+ if (isSubstringOfPrimitiveTypeConstant(trailingText)) {
275
+ return createAutocompleteItems(trailingText, __1.Range.create(__1.PositionUtils.positionFromTokenPosition(trailingToken.positionStart), __1.PositionUtils.positionFromTokenPosition(trailingToken.positionEnd)));
276
+ }
277
+ }
278
+ return createAutocompleteItems();
279
+ }
280
+ function inspectTType(ttype, activeNode, trailingToken) {
281
+ // Ast
282
+ if (parser_1.XorNodeUtils.isAst(ttype)) {
283
+ // `type nullable date|`
284
+ if (language_1.AstUtils.isNodeKind(ttype.node, language_1.Ast.NodeKind.PrimitiveType)) {
285
+ return inspectPrimitiveType(parser_1.XorNodeUtils.boxAst(ttype.node), activeNode, trailingToken);
286
+ }
287
+ // `type nullable a|`
288
+ else if (language_1.AstUtils.isNodeKind(ttype.node, language_1.Ast.NodeKind.IdentifierExpression)) {
289
+ return createAutocompleteItemsFromIdentifierExpression(ttype.node, activeNode);
290
+ }
291
+ }
292
+ // ParseContext
293
+ // The parser defaults to having thrown on a LiteralExpression if nothing trails afterwords,
294
+ // eg. `type nullable |`
295
+ else if (parser_1.XorNodeUtils.isNodeKind(ttype, language_1.Ast.NodeKind.LiteralExpression)) {
296
+ return createAutocompleteItems();
297
+ }
298
+ else if (parser_1.XorNodeUtils.isNodeKind(ttype, language_1.Ast.NodeKind.PrimitiveType)) {
299
+ return inspectPrimitiveType(ttype, activeNode, trailingToken);
300
+ }
82
301
  return [];
83
302
  }
303
+ function inspectTypePrimaryType(nodeIdMapCollection, typePrimaryType, activeNode, trailingToken) {
304
+ const typeConstant = parser_1.NodeIdMapUtils.nthChildXorChecked(nodeIdMapCollection, typePrimaryType.node.id, 0, language_1.Ast.NodeKind.Constant);
305
+ if (typeConstant === undefined ||
306
+ !parser_1.XorNodeUtils.isAst(typeConstant) ||
307
+ !__1.PositionUtils.isAfterAst(activeNode.position, typeConstant.node, true)) {
308
+ return [];
309
+ }
310
+ const primaryType = parser_1.NodeIdMapUtils.nthChildXorChecked(nodeIdMapCollection, typePrimaryType.node.id, 1, [
311
+ language_1.Ast.NodeKind.PrimitiveType,
312
+ language_1.Ast.NodeKind.FunctionType,
313
+ language_1.Ast.NodeKind.ListType,
314
+ language_1.Ast.NodeKind.NullableType,
315
+ language_1.Ast.NodeKind.RecordType,
316
+ language_1.Ast.NodeKind.TableType,
317
+ ]);
318
+ if (primaryType === undefined) {
319
+ return createAutocompleteItemsFromTrailingToken(trailingToken);
320
+ }
321
+ // Ast
322
+ else if (parser_1.XorNodeUtils.isAst(primaryType)) {
323
+ if (!__1.PositionUtils.isOnAstEnd(activeNode.position, primaryType.node) ||
324
+ !language_1.AstUtils.isNodeKind(primaryType.node, language_1.Ast.NodeKind.PrimitiveType)) {
325
+ return [];
326
+ }
327
+ return createAutocompleteItemsFromPrimitiveTypeConstant(primaryType.node, activeNode);
328
+ }
329
+ else {
330
+ return [];
331
+ }
332
+ }
333
+ function isSubstringOfPrimitiveTypeConstant(text) {
334
+ return AllowedPrimitiveTypeConstants.some((value) => value.includes(text));
335
+ }
84
336
  //# sourceMappingURL=autocompletePrimitiveType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"autocompletePrimitiveType.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autocompletePrimitiveType.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import * as PQP from "@microsoft/powerquery-parser";
2
- import { Ast, Type } from "@microsoft/powerquery-parser/lib/powerquery-parser/language";
2
+ import { Range } from "vscode-languageserver-types";
3
3
  import { TXorNode } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
4
+ import { Type } from "@microsoft/powerquery-parser/lib/powerquery-parser/language";
4
5
  import { AutocompleteItem } from "./autocompleteItem";
5
6
  export declare type TriedAutocompleteFieldAccess = PQP.Result<AutocompleteFieldAccess | undefined, PQP.CommonError.CommonError>;
6
7
  export declare type TriedAutocompleteKeyword = PQP.Result<ReadonlyArray<AutocompleteItem>, PQP.CommonError.CommonError>;
7
- export declare type TriedAutocompleteLanguageConstant = PQP.Result<AutocompleteItem | undefined, PQP.CommonError.CommonError>;
8
+ export declare type TriedAutocompleteLanguageConstant = PQP.Result<ReadonlyArray<AutocompleteItem>, PQP.CommonError.CommonError>;
8
9
  export declare type TriedAutocompletePrimitiveType = PQP.Result<ReadonlyArray<AutocompleteItem>, PQP.CommonError.CommonError>;
9
10
  export interface Autocomplete {
10
11
  readonly triedFieldAccess: TriedAutocompleteFieldAccess;
@@ -19,10 +20,8 @@ export interface AutocompleteFieldAccess {
19
20
  readonly autocompleteItems: ReadonlyArray<AutocompleteItem>;
20
21
  }
21
22
  export interface InspectedFieldAccess {
22
- readonly isAutocompleteAllowed: boolean;
23
- readonly identifierUnderPosition: Ast.GeneralizedIdentifier | undefined;
24
23
  readonly fieldNames: ReadonlyArray<string>;
25
- }
26
- export interface TrailingToken extends PQP.Language.Token.Token {
27
- readonly isInOrOnPosition: boolean;
24
+ readonly isAutocompleteAllowed: boolean;
25
+ readonly textEditRange: Range | undefined;
26
+ readonly textUnderPosition: string | undefined;
28
27
  }
@@ -13,7 +13,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.autocomplete = void 0;
15
15
  const PQP = require("@microsoft/powerquery-parser");
16
- const common_1 = require("./common");
16
+ const __1 = require("../..");
17
+ const trailingTokenUtils_1 = require("./trailingTokenUtils");
17
18
  const autocompleteFieldAccess_1 = require("./autocompleteFieldAccess");
18
19
  const autocompleteKeyword_1 = require("./autocompleteKeyword/autocompleteKeyword");
19
20
  const autocompleteLanguageConstant_1 = require("./autocompleteLanguageConstant");
@@ -21,26 +22,22 @@ const autocompletePrimitiveType_1 = require("./autocompletePrimitiveType");
21
22
  // Given some Position and ParseState, return autocomplete suggestions.
22
23
  function autocomplete(settings, parseState, typeCache, activeNode, parseError) {
23
24
  return __awaiter(this, void 0, void 0, function* () {
24
- const trace = settings.traceManager.entry("Autocomplete" /* Autocomplete */, autocomplete.name, settings.initialCorrelationId);
25
+ const trace = settings.traceManager.entry(__1.AutocompleteTraceConstant.Autocomplete, autocomplete.name, settings.initialCorrelationId);
25
26
  const updatedSettings = Object.assign(Object.assign({}, settings), { initialCorrelationId: trace.id });
26
27
  const nodeIdMapCollection = parseState.contextState.nodeIdMapCollection;
27
28
  let trailingToken;
28
29
  if (parseError !== undefined) {
29
30
  const parseErrorToken = PQP.Parser.ParseError.tokenFrom(parseError.innerError);
30
31
  if (parseErrorToken !== undefined) {
31
- trailingToken = (0, common_1.createTrailingToken)(activeNode.position, parseErrorToken);
32
+ trailingToken = (0, trailingTokenUtils_1.createTrailingToken)(activeNode.position, parseErrorToken);
32
33
  }
33
34
  }
34
- const triedFieldAccess = yield (0, autocompleteFieldAccess_1.tryAutocompleteFieldAccess)(updatedSettings, parseState, activeNode, typeCache);
35
- const triedKeyword = yield (0, autocompleteKeyword_1.tryAutocompleteKeyword)(updatedSettings, nodeIdMapCollection, activeNode, trailingToken);
36
- const triedLanguageConstant = (0, autocompleteLanguageConstant_1.tryAutocompleteLanguageConstant)(updatedSettings, nodeIdMapCollection, activeNode, trailingToken);
37
- const triedPrimitiveType = (0, autocompletePrimitiveType_1.tryAutocompletePrimitiveType)(updatedSettings, activeNode, trailingToken);
38
35
  trace.exit();
39
36
  return {
40
- triedFieldAccess,
41
- triedKeyword,
42
- triedLanguageConstant,
43
- triedPrimitiveType,
37
+ triedFieldAccess: yield (0, autocompleteFieldAccess_1.tryAutocompleteFieldAccess)(updatedSettings, parseState, activeNode, typeCache),
38
+ triedKeyword: yield (0, autocompleteKeyword_1.tryAutocompleteKeyword)(updatedSettings, nodeIdMapCollection, activeNode, trailingToken),
39
+ triedLanguageConstant: (0, autocompleteLanguageConstant_1.tryAutocompleteLanguageConstant)(updatedSettings, nodeIdMapCollection, activeNode, trailingToken),
40
+ triedPrimitiveType: (0, autocompletePrimitiveType_1.tryAutocompletePrimitiveType)(updatedSettings, nodeIdMapCollection, activeNode, trailingToken),
44
41
  };
45
42
  });
46
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/task.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AAapD,qCAA+C;AAG/C,uEAAuE;AACvE,mFAAmF;AACnF,iFAAiF;AACjF,2EAA2E;AAG3E,uEAAuE;AACvE,SAAsB,YAAY,CAC9B,QAA4B,EAC5B,UAAiC,EACjC,SAAoB,EACpB,UAAuB,EACvB,UAAwD;;QAExD,MAAM,KAAK,GAAU,QAAQ,CAAC,YAAY,CAAC,KAAK,oCAE5C,YAAY,CAAC,IAAI,EACjB,QAAQ,CAAC,oBAAoB,CAChC,CAAC;QAEF,MAAM,eAAe,mCACd,QAAQ,KACX,oBAAoB,EAAE,KAAK,CAAC,EAAE,GACjC,CAAC;QAEF,MAAM,mBAAmB,GAAyB,UAAU,CAAC,YAAY,CAAC,mBAAmB,CAAC;QAE9F,IAAI,aAAwC,CAAC;QAE7C,IAAI,UAAU,KAAK,SAAS,EAAE;YAC1B,MAAM,eAAe,GAAyC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CACzF,UAAU,CAAC,UAAU,CACxB,CAAC;YAEF,IAAI,eAAe,KAAK,SAAS,EAAE;gBAC/B,aAAa,GAAG,IAAA,4BAAmB,EAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;aAC7E;SACJ;QAED,MAAM,gBAAgB,GAAiC,MAAM,IAAA,oDAA0B,EACnF,eAAe,EACf,UAAU,EACV,UAAU,EACV,SAAS,CACZ,CAAC;QAEF,MAAM,YAAY,GAA6B,MAAM,IAAA,4CAAsB,EACvE,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,aAAa,CAChB,CAAC;QAEF,MAAM,qBAAqB,GAAsC,IAAA,8DAA+B,EAC5F,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,aAAa,CAChB,CAAC;QAEF,MAAM,kBAAkB,GAAmC,IAAA,wDAA4B,EACnF,eAAe,EACf,UAAU,EACV,aAAa,CAChB,CAAC;QAEF,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO;YACH,gBAAgB;YAChB,YAAY;YACZ,qBAAqB;YACrB,kBAAkB;SACrB,CAAC;IACN,CAAC;CAAA;AAnED,oCAmEC"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/task.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AAKpD,6BAAkD;AAClD,6DAA2D;AAI3D,uEAAuE;AACvE,mFAAmF;AACnF,iFAAiF;AACjF,2EAA2E;AAG3E,uEAAuE;AACvE,SAAsB,YAAY,CAC9B,QAA4B,EAC5B,UAAiC,EACjC,SAAoB,EACpB,UAAuB,EACvB,UAAwD;;QAExD,MAAM,KAAK,GAAU,QAAQ,CAAC,YAAY,CAAC,KAAK,CAC5C,6BAAyB,CAAC,YAAY,EACtC,YAAY,CAAC,IAAI,EACjB,QAAQ,CAAC,oBAAoB,CAChC,CAAC;QAEF,MAAM,eAAe,mCACd,QAAQ,KACX,oBAAoB,EAAE,KAAK,CAAC,EAAE,GACjC,CAAC;QAEF,MAAM,mBAAmB,GAAyB,UAAU,CAAC,YAAY,CAAC,mBAAmB,CAAC;QAE9F,IAAI,aAAwC,CAAC;QAE7C,IAAI,UAAU,KAAK,SAAS,EAAE;YAC1B,MAAM,eAAe,GAAyC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CACzF,UAAU,CAAC,UAAU,CACxB,CAAC;YAEF,IAAI,eAAe,KAAK,SAAS,EAAE;gBAC/B,aAAa,GAAG,IAAA,wCAAmB,EAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;aAC7E;SACJ;QAED,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO;YACH,gBAAgB,EAAE,MAAM,IAAA,oDAA0B,EAAC,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;YACtG,YAAY,EAAE,MAAM,IAAA,4CAAsB,EAAC,eAAe,EAAE,mBAAmB,EAAE,UAAU,EAAE,aAAa,CAAC;YAC3G,qBAAqB,EAAE,IAAA,8DAA+B,EAClD,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,aAAa,CAChB;YACD,kBAAkB,EAAE,IAAA,wDAA4B,EAC5C,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,aAAa,CAChB;SACJ,CAAC;IACN,CAAC;CAAA;AAlDD,oCAkDC"}
@@ -0,0 +1,7 @@
1
+ import * as PQP from "@microsoft/powerquery-parser";
2
+ import { TokenPositionComparison } from "../../tokenPositionComparison";
3
+ export interface TrailingToken extends PQP.Language.Token.Token {
4
+ readonly isPositionEitherInOrOnToken: boolean;
5
+ readonly tokenStartComparison: TokenPositionComparison;
6
+ readonly tokenEndComparison: TokenPositionComparison;
7
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=trailingToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trailingToken.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/trailingToken.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC"}
@@ -1,4 +1,4 @@
1
1
  import * as PQP from "@microsoft/powerquery-parser";
2
2
  import type { Position } from "vscode-languageserver-types";
3
- import { TrailingToken } from "./commonTypes";
3
+ import { TrailingToken } from "./trailingToken";
4
4
  export declare function createTrailingToken(position: Position, parseErrorToken: PQP.Language.Token.Token): TrailingToken;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.createTrailingToken = void 0;
6
+ const __1 = require("../..");
7
+ function createTrailingToken(position, parseErrorToken) {
8
+ const tokenStartComparison = __1.PositionUtils.compareTokenPosition(position, parseErrorToken.positionStart);
9
+ const tokenEndComparison = __1.PositionUtils.compareTokenPosition(position, parseErrorToken.positionEnd);
10
+ return Object.assign(Object.assign({}, parseErrorToken), { tokenStartComparison,
11
+ tokenEndComparison,
12
+ // This is another way of saying:
13
+ // - startComparison is OnToken or RightOfToken
14
+ // - endComparison is OnToken or LeftOfToken
15
+ isPositionEitherInOrOnToken: tokenStartComparison !== __1.TokenPositionComparison.LeftOfToken &&
16
+ tokenEndComparison !== __1.TokenPositionComparison.RightOfToken });
17
+ }
18
+ exports.createTrailingToken = createTrailingToken;
19
+ //# sourceMappingURL=trailingTokenUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trailingTokenUtils.js","sourceRoot":"","sources":["../../../../src/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAKlC,6BAA+D;AAG/D,SAAgB,mBAAmB,CAAC,QAAkB,EAAE,eAAyC;IAC7F,MAAM,oBAAoB,GAA4B,iBAAa,CAAC,oBAAoB,CACpF,QAAQ,EACR,eAAe,CAAC,aAAa,CAChC,CAAC;IAEF,MAAM,kBAAkB,GAA4B,iBAAa,CAAC,oBAAoB,CAClF,QAAQ,EACR,eAAe,CAAC,WAAW,CAC9B,CAAC;IAEF,uCACO,eAAe,KAClB,oBAAoB;QACpB,kBAAkB;QAClB,iCAAiC;QACjC,gDAAgD;QAChD,6CAA6C;QAC7C,2BAA2B,EACvB,oBAAoB,KAAK,2BAAuB,CAAC,WAAW;YAC5D,kBAAkB,KAAK,2BAAuB,CAAC,YAAY,IACjE;AACN,CAAC;AAtBD,kDAsBC"}