@microsoft/powerquery-language-services 0.10.6 → 0.11.3

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 (419) hide show
  1. package/lib/powerquery-language-services/analysis/analysis.d.ts +21 -21
  2. package/lib/powerquery-language-services/analysis/analysis.js +4 -4
  3. package/lib/powerquery-language-services/analysis/analysisBase.d.ts +53 -53
  4. package/lib/powerquery-language-services/analysis/analysisBase.js +741 -710
  5. package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
  6. package/lib/powerquery-language-services/analysis/analysisSettings.d.ts +14 -14
  7. package/lib/powerquery-language-services/analysis/analysisSettings.js +4 -4
  8. package/lib/powerquery-language-services/analysis/analysisUtils.d.ts +4 -4
  9. package/lib/powerquery-language-services/analysis/analysisUtils.js +26 -28
  10. package/lib/powerquery-language-services/analysis/analysisUtils.js.map +1 -1
  11. package/lib/powerquery-language-services/analysis/documentAnalysis.d.ts +8 -8
  12. package/lib/powerquery-language-services/analysis/documentAnalysis.js +15 -15
  13. package/lib/powerquery-language-services/analysis/index.d.ts +5 -5
  14. package/lib/powerquery-language-services/analysis/index.js +43 -10
  15. package/lib/powerquery-language-services/analysis/index.js.map +1 -1
  16. package/lib/powerquery-language-services/analysis/memoizedAnalysis.d.ts +18 -18
  17. package/lib/powerquery-language-services/analysis/memoizedAnalysis.js +51 -65
  18. package/lib/powerquery-language-services/analysis/memoizedAnalysis.js.map +1 -1
  19. package/lib/powerquery-language-services/commonTypes.d.ts +8 -8
  20. package/lib/powerquery-language-services/commonTypes.js +33 -33
  21. package/lib/powerquery-language-services/commonTypesUtils.d.ts +4 -4
  22. package/lib/powerquery-language-services/commonTypesUtils.js +18 -19
  23. package/lib/powerquery-language-services/commonTypesUtils.js.map +1 -1
  24. package/lib/powerquery-language-services/diagnosticErrorCode.d.ts +8 -8
  25. package/lib/powerquery-language-services/diagnosticErrorCode.js +14 -14
  26. package/lib/powerquery-language-services/diagnosticErrorCode.js.map +1 -1
  27. package/lib/powerquery-language-services/documentSymbols.d.ts +3 -3
  28. package/lib/powerquery-language-services/documentSymbols.js +80 -83
  29. package/lib/powerquery-language-services/documentSymbols.js.map +1 -1
  30. package/lib/powerquery-language-services/externalType/externalType.d.ts +21 -21
  31. package/lib/powerquery-language-services/externalType/externalType.js +16 -16
  32. package/lib/powerquery-language-services/externalType/externalType.js.map +1 -1
  33. package/lib/powerquery-language-services/externalType/externalTypeUtils.d.ts +5 -5
  34. package/lib/powerquery-language-services/externalType/externalTypeUtils.js +32 -33
  35. package/lib/powerquery-language-services/externalType/externalTypeUtils.js.map +1 -1
  36. package/lib/powerquery-language-services/externalType/index.d.ts +2 -2
  37. package/lib/powerquery-language-services/externalType/index.js +40 -7
  38. package/lib/powerquery-language-services/externalType/index.js.map +1 -1
  39. package/lib/powerquery-language-services/formatter.d.ts +5 -5
  40. package/lib/powerquery-language-services/formatter.js +72 -46
  41. package/lib/powerquery-language-services/formatter.js.map +1 -1
  42. package/lib/powerquery-language-services/index.d.ts +20 -20
  43. package/lib/powerquery-language-services/index.js +64 -42
  44. package/lib/powerquery-language-services/index.js.map +1 -1
  45. package/lib/powerquery-language-services/inspection/activeNode/activeNode.d.ts +43 -43
  46. package/lib/powerquery-language-services/inspection/activeNode/activeNode.js +17 -17
  47. package/lib/powerquery-language-services/inspection/activeNode/activeNode.js.map +1 -1
  48. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.d.ts +11 -11
  49. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +351 -351
  50. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
  51. package/lib/powerquery-language-services/inspection/activeNode/index.d.ts +3 -3
  52. package/lib/powerquery-language-services/inspection/activeNode/index.js +44 -22
  53. package/lib/powerquery-language-services/inspection/activeNode/index.js.map +1 -1
  54. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.d.ts +8 -8
  55. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +281 -258
  56. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
  57. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItem.d.ts +6 -6
  58. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItem.js +4 -4
  59. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.d.ts +8 -8
  60. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +78 -79
  61. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
  62. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/index.d.ts +2 -2
  63. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/index.js +43 -21
  64. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/index.js.map +1 -1
  65. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.d.ts +8 -8
  66. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js +217 -197
  67. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js.map +1 -1
  68. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.d.ts +3 -3
  69. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js +86 -87
  70. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js.map +1 -1
  71. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.d.ts +3 -3
  72. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js +53 -54
  73. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js.map +1 -1
  74. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.d.ts +3 -3
  75. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js +29 -30
  76. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js.map +1 -1
  77. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.d.ts +3 -3
  78. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js +58 -70
  79. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js.map +1 -1
  80. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.d.ts +3 -3
  81. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js +38 -39
  82. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js.map +1 -1
  83. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.d.ts +3 -3
  84. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js +40 -41
  85. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js.map +1 -1
  86. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.d.ts +3 -3
  87. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js +63 -31
  88. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js.map +1 -1
  89. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.d.ts +3 -3
  90. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js +30 -39
  91. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js.map +1 -1
  92. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/commonTypes.d.ts +11 -11
  93. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/commonTypes.js +4 -4
  94. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/index.d.ts +1 -1
  95. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/index.js +7 -7
  96. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.d.ts +6 -6
  97. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js +190 -188
  98. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map +1 -1
  99. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.d.ts +6 -6
  100. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js +334 -335
  101. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js.map +1 -1
  102. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.d.ts +2 -2
  103. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js +19 -20
  104. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js.map +1 -1
  105. package/lib/powerquery-language-services/inspection/autocomplete/commonTypes.d.ts +27 -27
  106. package/lib/powerquery-language-services/inspection/autocomplete/commonTypes.js +4 -4
  107. package/lib/powerquery-language-services/inspection/autocomplete/index.d.ts +6 -6
  108. package/lib/powerquery-language-services/inspection/autocomplete/index.js +47 -25
  109. package/lib/powerquery-language-services/inspection/autocomplete/index.js.map +1 -1
  110. package/lib/powerquery-language-services/inspection/autocomplete/task.d.ts +6 -6
  111. package/lib/powerquery-language-services/inspection/autocomplete/task.js +68 -44
  112. package/lib/powerquery-language-services/inspection/autocomplete/task.js.map +1 -1
  113. package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.d.ts +7 -7
  114. package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.js +4 -4
  115. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.d.ts +4 -4
  116. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js +20 -18
  117. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js.map +1 -1
  118. package/lib/powerquery-language-services/inspection/commonTypes.d.ts +20 -20
  119. package/lib/powerquery-language-services/inspection/commonTypes.js +4 -4
  120. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.d.ts +37 -37
  121. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.js +13 -13
  122. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.js.map +1 -1
  123. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.d.ts +6 -6
  124. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.js +244 -221
  125. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.js.map +1 -1
  126. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.d.ts +2 -2
  127. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.js +41 -19
  128. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.js.map +1 -1
  129. package/lib/powerquery-language-services/inspection/expectedType.d.ts +8 -8
  130. package/lib/powerquery-language-services/inspection/expectedType.js +420 -388
  131. package/lib/powerquery-language-services/inspection/expectedType.js.map +1 -1
  132. package/lib/powerquery-language-services/inspection/index.d.ts +9 -9
  133. package/lib/powerquery-language-services/inspection/index.js +27 -27
  134. package/lib/powerquery-language-services/inspection/invokeExpression/common.d.ts +16 -16
  135. package/lib/powerquery-language-services/inspection/invokeExpression/common.js +4 -4
  136. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.d.ts +12 -12
  137. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js +137 -106
  138. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js.map +1 -1
  139. package/lib/powerquery-language-services/inspection/invokeExpression/index.d.ts +3 -3
  140. package/lib/powerquery-language-services/inspection/invokeExpression/index.js +20 -20
  141. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.d.ts +8 -8
  142. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +141 -119
  143. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
  144. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.d.ts +11 -11
  145. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js +57 -58
  146. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js.map +1 -1
  147. package/lib/powerquery-language-services/inspection/scope/index.d.ts +3 -3
  148. package/lib/powerquery-language-services/inspection/scope/index.js +44 -22
  149. package/lib/powerquery-language-services/inspection/scope/index.js.map +1 -1
  150. package/lib/powerquery-language-services/inspection/scope/scope.d.ts +49 -46
  151. package/lib/powerquery-language-services/inspection/scope/scope.js +14 -14
  152. package/lib/powerquery-language-services/inspection/scope/scope.js.map +1 -1
  153. package/lib/powerquery-language-services/inspection/scope/scopeInspection.d.ts +7 -7
  154. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +372 -327
  155. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
  156. package/lib/powerquery-language-services/inspection/scope/scopeUtils.d.ts +17 -17
  157. package/lib/powerquery-language-services/inspection/scope/scopeUtils.js +125 -104
  158. package/lib/powerquery-language-services/inspection/scope/scopeUtils.js.map +1 -1
  159. package/lib/powerquery-language-services/inspection/task.d.ts +28 -28
  160. package/lib/powerquery-language-services/inspection/task.js +196 -160
  161. package/lib/powerquery-language-services/inspection/task.js.map +1 -1
  162. package/lib/powerquery-language-services/inspection/type/index.d.ts +3 -3
  163. package/lib/powerquery-language-services/inspection/type/index.js +44 -22
  164. package/lib/powerquery-language-services/inspection/type/index.js.map +1 -1
  165. package/lib/powerquery-language-services/inspection/type/inspectType/common.d.ts +14 -14
  166. package/lib/powerquery-language-services/inspection/type/inspectType/common.js +362 -353
  167. package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
  168. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.d.ts +8 -8
  169. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js +28 -43
  170. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js.map +1 -1
  171. package/lib/powerquery-language-services/inspection/type/inspectType/index.d.ts +1 -1
  172. package/lib/powerquery-language-services/inspection/type/inspectType/index.js +19 -19
  173. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.d.ts +3 -3
  174. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js +57 -57
  175. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js.map +1 -1
  176. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.d.ts +4 -4
  177. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js +26 -39
  178. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
  179. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.d.ts +4 -4
  180. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js +82 -62
  181. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
  182. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.d.ts +4 -4
  183. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js +55 -69
  184. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -1
  185. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.d.ts +4 -4
  186. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js +128 -103
  187. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js.map +1 -1
  188. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.d.ts +4 -4
  189. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +63 -75
  190. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -1
  191. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.d.ts +4 -4
  192. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js +21 -34
  193. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
  194. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.d.ts +4 -4
  195. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js +74 -87
  196. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
  197. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.d.ts +4 -4
  198. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js +85 -65
  199. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
  200. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.d.ts +4 -4
  201. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +25 -38
  202. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
  203. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.d.ts +4 -4
  204. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +25 -38
  205. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
  206. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.d.ts +4 -4
  207. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js +46 -61
  208. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
  209. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.d.ts +4 -4
  210. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +69 -84
  211. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
  212. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.d.ts +4 -4
  213. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js +37 -50
  214. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
  215. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.d.ts +4 -4
  216. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js +43 -56
  217. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
  218. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.d.ts +4 -4
  219. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js +44 -44
  220. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js.map +1 -1
  221. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.d.ts +4 -4
  222. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js +36 -49
  223. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
  224. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.d.ts +4 -4
  225. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js +23 -33
  226. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
  227. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.d.ts +4 -4
  228. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js +25 -26
  229. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js.map +1 -1
  230. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.d.ts +4 -4
  231. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +53 -66
  232. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
  233. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.d.ts +4 -4
  234. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +45 -58
  235. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
  236. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.d.ts +4 -4
  237. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js +42 -50
  238. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js.map +1 -1
  239. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.d.ts +4 -4
  240. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js +43 -56
  241. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
  242. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.d.ts +2 -2
  243. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.js +41 -19
  244. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.js.map +1 -1
  245. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.d.ts +9 -9
  246. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.js +4 -4
  247. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.d.ts +7 -7
  248. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.js +41 -42
  249. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.js.map +1 -1
  250. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.d.ts +8 -8
  251. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js +326 -292
  252. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
  253. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.d.ts +4 -4
  254. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +51 -59
  255. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
  256. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.d.ts +4 -4
  257. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js +76 -89
  258. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
  259. package/lib/powerquery-language-services/inspection/type/task.d.ts +10 -10
  260. package/lib/powerquery-language-services/inspection/type/task.js +49 -65
  261. package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
  262. package/lib/powerquery-language-services/inspection/typeCache/index.d.ts +2 -2
  263. package/lib/powerquery-language-services/inspection/typeCache/index.js +43 -21
  264. package/lib/powerquery-language-services/inspection/typeCache/index.js.map +1 -1
  265. package/lib/powerquery-language-services/inspection/typeCache/typeCache.d.ts +7 -7
  266. package/lib/powerquery-language-services/inspection/typeCache/typeCache.js +4 -4
  267. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.d.ts +2 -2
  268. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js +12 -13
  269. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js.map +1 -1
  270. package/lib/powerquery-language-services/inspectionSettings.d.ts +13 -13
  271. package/lib/powerquery-language-services/inspectionSettings.js +12 -12
  272. package/lib/powerquery-language-services/inspectionSettings.js.map +1 -1
  273. package/lib/powerquery-language-services/inspectionUtils.d.ts +16 -16
  274. package/lib/powerquery-language-services/inspectionUtils.js +142 -149
  275. package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
  276. package/lib/powerquery-language-services/jaroWinkler.d.ts +3 -3
  277. package/lib/powerquery-language-services/jaroWinkler.js +102 -103
  278. package/lib/powerquery-language-services/jaroWinkler.js.map +1 -1
  279. package/lib/powerquery-language-services/languageServiceUtils.d.ts +2 -2
  280. package/lib/powerquery-language-services/languageServiceUtils.js +53 -39
  281. package/lib/powerquery-language-services/languageServiceUtils.js.map +1 -1
  282. package/lib/powerquery-language-services/library/index.d.ts +5 -5
  283. package/lib/powerquery-language-services/library/index.js +43 -10
  284. package/lib/powerquery-language-services/library/index.js.map +1 -1
  285. package/lib/powerquery-language-services/library/library.d.ts +45 -45
  286. package/lib/powerquery-language-services/library/library.js +19 -19
  287. package/lib/powerquery-language-services/library/library.js.map +1 -1
  288. package/lib/powerquery-language-services/library/libraryDefinitionUtils.d.ts +21 -21
  289. package/lib/powerquery-language-services/library/libraryDefinitionUtils.js +106 -107
  290. package/lib/powerquery-language-services/library/libraryDefinitionUtils.js.map +1 -1
  291. package/lib/powerquery-language-services/library/librarySymbol.d.ts +33 -33
  292. package/lib/powerquery-language-services/library/librarySymbol.js +4 -4
  293. package/lib/powerquery-language-services/library/librarySymbolUtils.d.ts +34 -34
  294. package/lib/powerquery-language-services/library/librarySymbolUtils.js +258 -261
  295. package/lib/powerquery-language-services/library/librarySymbolUtils.js.map +1 -1
  296. package/lib/powerquery-language-services/library/libraryUtils.d.ts +8 -8
  297. package/lib/powerquery-language-services/library/libraryUtils.js +48 -49
  298. package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
  299. package/lib/powerquery-language-services/localization/index.d.ts +2 -2
  300. package/lib/powerquery-language-services/localization/index.js +43 -21
  301. package/lib/powerquery-language-services/localization/index.js.map +1 -1
  302. package/lib/powerquery-language-services/localization/localization.d.ts +10 -10
  303. package/lib/powerquery-language-services/localization/localization.js +51 -51
  304. package/lib/powerquery-language-services/localization/localization.js.map +1 -1
  305. package/lib/powerquery-language-services/localization/localizationUtils.d.ts +2 -2
  306. package/lib/powerquery-language-services/localization/localizationUtils.js +7 -9
  307. package/lib/powerquery-language-services/localization/localizationUtils.js.map +1 -1
  308. package/lib/powerquery-language-services/localization/templates/templates.bg-BG.json +12 -12
  309. package/lib/powerquery-language-services/localization/templates/templates.ca-ES.json +12 -12
  310. package/lib/powerquery-language-services/localization/templates/templates.cs-CZ.json +12 -12
  311. package/lib/powerquery-language-services/localization/templates/templates.da-DK.json +12 -12
  312. package/lib/powerquery-language-services/localization/templates/templates.de-DE.json +12 -12
  313. package/lib/powerquery-language-services/localization/templates/templates.el-GR.json +12 -12
  314. package/lib/powerquery-language-services/localization/templates/templates.es-ES.json +12 -12
  315. package/lib/powerquery-language-services/localization/templates/templates.et-EE.json +12 -12
  316. package/lib/powerquery-language-services/localization/templates/templates.eu-ES.json +12 -12
  317. package/lib/powerquery-language-services/localization/templates/templates.fi-FI.json +12 -12
  318. package/lib/powerquery-language-services/localization/templates/templates.fr-FR.json +12 -12
  319. package/lib/powerquery-language-services/localization/templates/templates.gl-ES.json +12 -12
  320. package/lib/powerquery-language-services/localization/templates/templates.hi-IN.json +12 -12
  321. package/lib/powerquery-language-services/localization/templates/templates.hr-HR.json +12 -12
  322. package/lib/powerquery-language-services/localization/templates/templates.hu-HU.json +12 -12
  323. package/lib/powerquery-language-services/localization/templates/templates.id-ID.json +12 -12
  324. package/lib/powerquery-language-services/localization/templates/templates.it-IT.json +12 -12
  325. package/lib/powerquery-language-services/localization/templates/templates.ja-JP.json +12 -12
  326. package/lib/powerquery-language-services/localization/templates/templates.json +20 -20
  327. package/lib/powerquery-language-services/localization/templates/templates.kk-KZ.json +12 -12
  328. package/lib/powerquery-language-services/localization/templates/templates.ko-KR.json +12 -12
  329. package/lib/powerquery-language-services/localization/templates/templates.lt-LT.json +12 -12
  330. package/lib/powerquery-language-services/localization/templates/templates.lv-LV.json +12 -12
  331. package/lib/powerquery-language-services/localization/templates/templates.ms-MY.json +12 -12
  332. package/lib/powerquery-language-services/localization/templates/templates.nb-NO.json +12 -12
  333. package/lib/powerquery-language-services/localization/templates/templates.nl-NL.json +12 -12
  334. package/lib/powerquery-language-services/localization/templates/templates.pl-PL.json +12 -12
  335. package/lib/powerquery-language-services/localization/templates/templates.pt-BR.json +12 -12
  336. package/lib/powerquery-language-services/localization/templates/templates.pt-PT.json +12 -12
  337. package/lib/powerquery-language-services/localization/templates/templates.ro-RO.json +12 -12
  338. package/lib/powerquery-language-services/localization/templates/templates.ru-RU.json +12 -12
  339. package/lib/powerquery-language-services/localization/templates/templates.sk-SK.json +12 -12
  340. package/lib/powerquery-language-services/localization/templates/templates.sl-SI.json +12 -12
  341. package/lib/powerquery-language-services/localization/templates/templates.sr-Cyrl-RS.json +12 -12
  342. package/lib/powerquery-language-services/localization/templates/templates.sr-Latn-RS.json +12 -12
  343. package/lib/powerquery-language-services/localization/templates/templates.sv-SE.json +12 -12
  344. package/lib/powerquery-language-services/localization/templates/templates.th-TH.json +12 -12
  345. package/lib/powerquery-language-services/localization/templates/templates.tr-TR.json +12 -12
  346. package/lib/powerquery-language-services/localization/templates/templates.uk-UA.json +12 -12
  347. package/lib/powerquery-language-services/localization/templates/templates.vi-VN.json +12 -12
  348. package/lib/powerquery-language-services/localization/templates/templates.zh-CN.json +12 -12
  349. package/lib/powerquery-language-services/localization/templates/templates.zh-TW.json +12 -12
  350. package/lib/powerquery-language-services/localization/templates.d.ts +55 -55
  351. package/lib/powerquery-language-services/localization/templates.js +166 -133
  352. package/lib/powerquery-language-services/localization/templates.js.map +1 -1
  353. package/lib/powerquery-language-services/positionUtils.d.ts +32 -32
  354. package/lib/powerquery-language-services/positionUtils.js +257 -240
  355. package/lib/powerquery-language-services/positionUtils.js.map +1 -1
  356. package/lib/powerquery-language-services/providers/commonTypes.d.ts +75 -75
  357. package/lib/powerquery-language-services/providers/commonTypes.js +4 -4
  358. package/lib/powerquery-language-services/providers/index.d.ts +5 -5
  359. package/lib/powerquery-language-services/providers/index.js +28 -28
  360. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.d.ts +12 -12
  361. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js +62 -73
  362. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js.map +1 -1
  363. package/lib/powerquery-language-services/providers/libraryProvider.d.ts +16 -16
  364. package/lib/powerquery-language-services/providers/libraryProvider.js +116 -131
  365. package/lib/powerquery-language-services/providers/libraryProvider.js.map +1 -1
  366. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.d.ts +4 -4
  367. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js +50 -52
  368. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js.map +1 -1
  369. package/lib/powerquery-language-services/providers/localDocumentProvider/index.d.ts +1 -1
  370. package/lib/powerquery-language-services/providers/localDocumentProvider/index.js +19 -19
  371. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.d.ts +21 -21
  372. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js +277 -259
  373. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js.map +1 -1
  374. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.d.ts +6 -6
  375. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js +313 -321
  376. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js.map +1 -1
  377. package/lib/powerquery-language-services/providers/nullSymbolProvider.d.ts +19 -19
  378. package/lib/powerquery-language-services/providers/nullSymbolProvider.js +46 -68
  379. package/lib/powerquery-language-services/providers/nullSymbolProvider.js.map +1 -1
  380. package/lib/powerquery-language-services/tokenPositionComparison.d.ts +5 -5
  381. package/lib/powerquery-language-services/tokenPositionComparison.js +12 -12
  382. package/lib/powerquery-language-services/tokenPositionComparison.js.map +1 -1
  383. package/lib/powerquery-language-services/trace.d.ts +27 -27
  384. package/lib/powerquery-language-services/trace.js +36 -36
  385. package/lib/powerquery-language-services/trace.js.map +1 -1
  386. package/lib/powerquery-language-services/traceUtils.d.ts +14 -14
  387. package/lib/powerquery-language-services/traceUtils.js +19 -20
  388. package/lib/powerquery-language-services/traceUtils.js.map +1 -1
  389. package/lib/powerquery-language-services/validate/index.d.ts +3 -3
  390. package/lib/powerquery-language-services/validate/index.js +23 -23
  391. package/lib/powerquery-language-services/validate/validate.d.ts +6 -6
  392. package/lib/powerquery-language-services/validate/validate.js +70 -67
  393. package/lib/powerquery-language-services/validate/validate.js.map +1 -1
  394. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.d.ts +6 -6
  395. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js +164 -134
  396. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js.map +1 -1
  397. package/lib/powerquery-language-services/validate/validateFunctionExpression.d.ts +4 -4
  398. package/lib/powerquery-language-services/validate/validateFunctionExpression.js +63 -63
  399. package/lib/powerquery-language-services/validate/validateFunctionExpression.js.map +1 -1
  400. package/lib/powerquery-language-services/validate/validateInvokeExpression.d.ts +5 -5
  401. package/lib/powerquery-language-services/validate/validateInvokeExpression.js +109 -123
  402. package/lib/powerquery-language-services/validate/validateInvokeExpression.js.map +1 -1
  403. package/lib/powerquery-language-services/validate/validateOk.d.ts +5 -5
  404. package/lib/powerquery-language-services/validate/validateOk.js +4 -4
  405. package/lib/powerquery-language-services/validate/validateParse.d.ts +4 -4
  406. package/lib/powerquery-language-services/validate/validateParse.js +94 -73
  407. package/lib/powerquery-language-services/validate/validateParse.js.map +1 -1
  408. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.d.ts +5 -5
  409. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js +99 -109
  410. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js.map +1 -1
  411. package/lib/powerquery-language-services/validate/validationSettings/index.d.ts +2 -2
  412. package/lib/powerquery-language-services/validate/validationSettings/index.js +43 -21
  413. package/lib/powerquery-language-services/validate/validationSettings/index.js.map +1 -1
  414. package/lib/powerquery-language-services/validate/validationSettings/validationSettings.d.ts +13 -12
  415. package/lib/powerquery-language-services/validate/validationSettings/validationSettings.js +4 -4
  416. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.d.ts +3 -3
  417. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js +16 -10
  418. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js.map +1 -1
  419. package/package.json +23 -22
@@ -1,336 +1,335 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT license.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.tryAutocompletePrimitiveType = void 0;
6
- const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
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");
10
- const activeNode_1 = require("../activeNode");
11
- const __1 = require("../..");
12
- function tryAutocompletePrimitiveType(settings, nodeIdMapCollection, activeNode, trailingToken) {
13
- const trace = settings.traceManager.entry(__1.AutocompleteTraceConstant.AutocompletePrimitiveType, tryAutocompletePrimitiveType.name, settings.initialCorrelationId);
14
- let result;
15
- if (!activeNode_1.ActiveNodeUtils.isPositionInBounds(activeNode)) {
16
- result = powerquery_parser_1.ResultUtils.ok([]);
17
- }
18
- else {
19
- result = powerquery_parser_1.ResultUtils.ensureResult(() => autocompletePrimitiveType(nodeIdMapCollection, activeNode, trailingToken), settings.locale);
20
- }
21
- trace.exit();
22
- return result;
23
- }
24
- exports.tryAutocompletePrimitiveType = tryAutocompletePrimitiveType;
25
- const AllowedPrimitiveTypeConstants = constant_1.PrimitiveTypeConstants.filter((constant) => constant !== constant_1.PrimitiveTypeConstant.None);
26
- function autocompletePrimitiveType(nodeIdMapCollection, activeNode, trailingToken) {
27
- if (activeNode.ancestry.length === 0) {
28
- return [];
29
- }
30
- const ancestry = activeNode.ancestry;
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);
59
- }
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();
251
- }
252
- else if (parser_1.XorNodeUtils.isNodeKind(primitiveType, language_1.Ast.NodeKind.PrimitiveType)) {
253
- return inspectPrimitiveType(primitiveType, activeNode, trailingToken);
254
- }
255
- else {
256
- return [];
257
- }
258
- }
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
- }
301
- return [];
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
- }
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.tryAutocompletePrimitiveType = tryAutocompletePrimitiveType;
6
+ const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
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");
10
+ const activeNode_1 = require("../activeNode");
11
+ const __1 = require("../..");
12
+ function tryAutocompletePrimitiveType(settings, nodeIdMapCollection, activeNode, trailingToken) {
13
+ const trace = settings.traceManager.entry(__1.AutocompleteTraceConstant.AutocompletePrimitiveType, tryAutocompletePrimitiveType.name, settings.initialCorrelationId);
14
+ let result;
15
+ if (!activeNode_1.ActiveNodeUtils.isPositionInBounds(activeNode)) {
16
+ result = powerquery_parser_1.ResultUtils.ok([]);
17
+ }
18
+ else {
19
+ result = powerquery_parser_1.ResultUtils.ensureResult(() => autocompletePrimitiveType(nodeIdMapCollection, activeNode, trailingToken), settings.locale);
20
+ }
21
+ trace.exit();
22
+ return result;
23
+ }
24
+ const AllowedPrimitiveTypeConstants = constant_1.PrimitiveTypeConstants.filter((constant) => constant !== constant_1.PrimitiveTypeConstant.None);
25
+ function autocompletePrimitiveType(nodeIdMapCollection, activeNode, trailingToken) {
26
+ if (activeNode.ancestry.length === 0) {
27
+ return [];
28
+ }
29
+ const ancestry = activeNode.ancestry;
30
+ const child = parser_1.AncestryUtils.assertNth(ancestry, 0);
31
+ const parent = parser_1.AncestryUtils.nth(activeNode.ancestry, 1);
32
+ if (parser_1.XorNodeUtils.isNodeKind(child, language_1.Ast.NodeKind.LiteralExpression)) {
33
+ if (!parent) {
34
+ return [];
35
+ }
36
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, language_1.Ast.NodeKind.FieldTypeSpecification)) {
37
+ return inspectFieldTypeSpecification(nodeIdMapCollection, parent, activeNode, trailingToken);
38
+ }
39
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, language_1.Ast.NodeKind.ListType)) {
40
+ return inspectTType(child, activeNode, trailingToken);
41
+ }
42
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, language_1.Ast.NodeKind.NullableType)) {
43
+ return inspectNullableType(nodeIdMapCollection, parent, activeNode, trailingToken);
44
+ }
45
+ else {
46
+ return [];
47
+ }
48
+ }
49
+ else if (parser_1.XorNodeUtils.isNodeKind(child, language_1.Ast.NodeKind.PrimitiveType)) {
50
+ if (!parent) {
51
+ return [];
52
+ }
53
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, [
54
+ language_1.Ast.NodeKind.AsExpression,
55
+ language_1.Ast.NodeKind.IsExpression,
56
+ ])) {
57
+ return inspectEitherAsExpressionOrIsExpression(nodeIdMapCollection, parent, child, activeNode, trailingToken);
58
+ }
59
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, language_1.Ast.NodeKind.AsNullablePrimitiveType)) {
60
+ return inspectAsNullablePrimitiveType(nodeIdMapCollection, parent, child, activeNode, trailingToken);
61
+ }
62
+ else if (parser_1.XorNodeUtils.isNodeKind(parent, language_1.Ast.NodeKind.NullablePrimitiveType)) {
63
+ return inspectNullablePrimitiveType(nodeIdMapCollection, parent, child, activeNode, trailingToken);
64
+ }
65
+ else {
66
+ return inspectPrimitiveType(child, activeNode, trailingToken);
67
+ }
68
+ }
69
+ else if (parser_1.XorNodeUtils.isNodeKind(child, language_1.Ast.NodeKind.TypePrimaryType)) {
70
+ return inspectTypePrimaryType(nodeIdMapCollection, child, activeNode, trailingToken);
71
+ }
72
+ else {
73
+ return [];
74
+ }
75
+ }
76
+ // Defaults to insertion if range is undefined,
77
+ // otherwise replaces the range with the label.
78
+ function createAutocompleteItems(text, range) {
79
+ return AllowedPrimitiveTypeConstants.map((label) => {
80
+ const jaroWinklerScore = text !== undefined ? (0, __1.calculateJaroWinkler)(label, text) : 1;
81
+ return {
82
+ jaroWinklerScore,
83
+ kind: __1.CompletionItemKind.Keyword,
84
+ label,
85
+ powerQueryType: language_1.TypeUtils.primitiveType(label === language_1.Constant.PrimitiveTypeConstant.Null, language_1.TypeUtils.typeKindFromPrimitiveTypeConstantKind(label)),
86
+ textEdit: range ? __1.TextEdit.replace(range, label) : undefined,
87
+ };
88
+ });
89
+ }
90
+ function createAutocompleteItemsFromIdentifierExpression(identifierExpression, activeNode) {
91
+ if (identifierExpression.inclusiveConstant) {
92
+ return [];
93
+ }
94
+ const literal = identifierExpression.identifier.literal;
95
+ if (!isSubstringOfPrimitiveTypeConstant(literal) ||
96
+ !__1.PositionUtils.isInAst(activeNode.position, identifierExpression, true, true)) {
97
+ return [];
98
+ }
99
+ return createAutocompleteItems(literal, __1.Range.create(__1.PositionUtils.positionFromTokenPosition(identifierExpression.tokenRange.positionStart), __1.PositionUtils.positionFromTokenPosition(identifierExpression.tokenRange.positionEnd)));
100
+ }
101
+ // `any` returns ["any", "anynonnull"]
102
+ // `date` returns ["date", "datetime", "datetimezone"]
103
+ // etc.
104
+ function createAutocompleteItemsFromPrimitiveTypeConstant(primitiveType, activeNode) {
105
+ if (!__1.PositionUtils.isInAst(activeNode.position, primitiveType, true, true)) {
106
+ return [];
107
+ }
108
+ return createAutocompleteItems(primitiveType.primitiveTypeKind, __1.Range.create(__1.PositionUtils.positionFromTokenPosition(primitiveType.tokenRange.positionStart), __1.PositionUtils.positionFromTokenPosition(primitiveType.tokenRange.positionEnd)));
109
+ }
110
+ // Returns AllowedPrimitiveTypeConstants if either:
111
+ // - there is no trailing token
112
+ // - the Position is either on or to the left of the trailing token's start
113
+ // elif Position is not on the trailing token's end, then return an empty array
114
+ // else return the autocomplete items for the trailing text.
115
+ function createAutocompleteItemsFromTrailingToken(trailingToken) {
116
+ if (!trailingToken) {
117
+ return createAutocompleteItems();
118
+ }
119
+ else if (!trailingToken.isPositionEitherInOrOnToken) {
120
+ return [];
121
+ }
122
+ else {
123
+ return createAutocompleteItems(trailingToken.data, __1.Range.create(__1.PositionUtils.positionFromTokenPosition(trailingToken.positionStart), __1.PositionUtils.positionFromTokenPosition(trailingToken.positionEnd)));
124
+ }
125
+ }
126
+ function inspectAsNullablePrimitiveType(nodeIdMapCollection, asNullablePrimitiveType, primitiveType, activeNode, trailingToken) {
127
+ // Ast
128
+ if (parser_1.XorNodeUtils.isAst(asNullablePrimitiveType)) {
129
+ const nullablePrimitiveType = asNullablePrimitiveType.node.paired;
130
+ switch (nullablePrimitiveType.kind) {
131
+ case language_1.Ast.NodeKind.NullablePrimitiveType:
132
+ return inspectNullablePrimitiveType(nodeIdMapCollection, parser_1.XorNodeUtils.boxAst(nullablePrimitiveType), parser_1.XorNodeUtils.boxAst(nullablePrimitiveType.paired), activeNode, trailingToken);
133
+ case language_1.Ast.NodeKind.PrimitiveType:
134
+ return inspectPrimitiveType(parser_1.XorNodeUtils.boxAst(nullablePrimitiveType), activeNode, trailingToken);
135
+ default:
136
+ throw powerquery_parser_1.Assert.isNever(nullablePrimitiveType);
137
+ }
138
+ }
139
+ // ParseContext
140
+ else {
141
+ const asConstant = parser_1.NodeIdMapUtils.nthChildAstChecked(nodeIdMapCollection, asNullablePrimitiveType.node.id, 0, [language_1.Ast.NodeKind.Constant]);
142
+ if (asConstant === undefined || !__1.PositionUtils.isAfterAst(activeNode.position, asConstant, true)) {
143
+ return [];
144
+ }
145
+ const nullablePrimitiveType = parser_1.NodeIdMapUtils.nthChildXorChecked(nodeIdMapCollection, asNullablePrimitiveType.node.id, 1, [language_1.Ast.NodeKind.NullablePrimitiveType, language_1.Ast.NodeKind.PrimitiveType]);
146
+ if (nullablePrimitiveType === undefined) {
147
+ return [];
148
+ }
149
+ else if (parser_1.XorNodeUtils.isNodeKind(nullablePrimitiveType, language_1.Ast.NodeKind.NullablePrimitiveType)) {
150
+ return inspectNullablePrimitiveType(nodeIdMapCollection, nullablePrimitiveType, primitiveType, activeNode, trailingToken);
151
+ }
152
+ else if (parser_1.XorNodeUtils.isNodeKind(nullablePrimitiveType, language_1.Ast.NodeKind.PrimitiveType)) {
153
+ return inspectPrimitiveType(nullablePrimitiveType, activeNode, trailingToken);
154
+ }
155
+ else {
156
+ throw new powerquery_parser_1.CommonError.InvariantError(`expected either a NullablePrimitiveType or PrimitiveType`, {
157
+ nodeKind: nullablePrimitiveType.node.kind,
158
+ });
159
+ }
160
+ }
161
+ }
162
+ function inspectEitherAsExpressionOrIsExpression(nodeIdMapCollection, eitherAsExpressionOrIsExpression, primitiveType, activeNode, trailingToken) {
163
+ // Ast
164
+ if (parser_1.XorNodeUtils.isAst(primitiveType)) {
165
+ return createAutocompleteItemsFromPrimitiveTypeConstant(primitiveType.node, activeNode);
166
+ }
167
+ // ParseContext
168
+ else {
169
+ const eitherAsConstantOrIsConstant = parser_1.NodeIdMapUtils.assertNthChildAstChecked(nodeIdMapCollection, eitherAsExpressionOrIsExpression.node.id, 1, language_1.Ast.NodeKind.Constant);
170
+ // `1 is|`
171
+ if (__1.PositionUtils.isOnAstEnd(activeNode.position, eitherAsConstantOrIsConstant)) {
172
+ return [];
173
+ }
174
+ return createAutocompleteItemsFromTrailingToken(trailingToken);
175
+ }
176
+ }
177
+ function inspectFieldTypeSpecification(nodeIdMapCollection, fieldTypeSpecification, activeNode, trailingToken) {
178
+ // Ast
179
+ if (parser_1.XorNodeUtils.isAst(fieldTypeSpecification)) {
180
+ return inspectTType(parser_1.XorNodeUtils.boxAst(fieldTypeSpecification.node.fieldType), activeNode, trailingToken);
181
+ }
182
+ // ParseContext
183
+ else {
184
+ const equalConstant = parser_1.NodeIdMapUtils.assertNthChildAstChecked(nodeIdMapCollection, fieldTypeSpecification.node.id, 0, language_1.Ast.NodeKind.Constant);
185
+ if (equalConstant === undefined || !__1.PositionUtils.isAfterAst(activeNode.position, equalConstant, false)) {
186
+ return [];
187
+ }
188
+ const ttype = parser_1.NodeIdMapUtils.nthChildXor(nodeIdMapCollection, fieldTypeSpecification.node.id, 1);
189
+ if (ttype === undefined) {
190
+ return createAutocompleteItems();
191
+ }
192
+ else if (parser_1.XorNodeUtils.isTType(ttype)) {
193
+ return inspectTType(ttype, activeNode, trailingToken);
194
+ }
195
+ }
196
+ return [];
197
+ }
198
+ function inspectNullablePrimitiveType(nodeIdMapCollection, nullablePrimitiveType, primitiveType, activeNode, trailingToken) {
199
+ // Ast
200
+ if (parser_1.XorNodeUtils.isAst(primitiveType)) {
201
+ return inspectPrimitiveType(primitiveType, activeNode, undefined);
202
+ }
203
+ // ParseContext
204
+ else if (!trailingToken) {
205
+ return createAutocompleteItems();
206
+ }
207
+ else if (!trailingToken.isPositionEitherInOrOnToken) {
208
+ return [];
209
+ }
210
+ else {
211
+ const nullableConstant = parser_1.NodeIdMapUtils.nthChildAstChecked(nodeIdMapCollection, nullablePrimitiveType.node.id, 0, [language_1.Ast.NodeKind.Constant]);
212
+ if (nullableConstant === undefined || !__1.PositionUtils.isAfterAst(activeNode.position, nullableConstant, true)) {
213
+ return [];
214
+ }
215
+ else {
216
+ return inspectPrimitiveType(primitiveType, activeNode, trailingToken);
217
+ }
218
+ }
219
+ }
220
+ function inspectNullableType(nodeIdMapCollection, nullableType, activeNode, trailingToken) {
221
+ // Ast
222
+ if (parser_1.XorNodeUtils.isAst(nullableType)) {
223
+ // `type nullable date|`
224
+ if (language_1.AstUtils.isNodeKind(nullableType.node.paired, language_1.Ast.NodeKind.PrimitiveType)) {
225
+ return inspectPrimitiveType(parser_1.XorNodeUtils.boxAst(nullableType.node.paired), activeNode, trailingToken);
226
+ }
227
+ // `type nullable a|`
228
+ else if (language_1.AstUtils.isNodeKind(nullableType.node.paired, language_1.Ast.NodeKind.IdentifierExpression)) {
229
+ return createAutocompleteItemsFromIdentifierExpression(nullableType.node.paired, activeNode);
230
+ }
231
+ else {
232
+ return [];
233
+ }
234
+ }
235
+ // ParseContext
236
+ else {
237
+ const nullableConstant = parser_1.NodeIdMapUtils.nthChildAstChecked(nodeIdMapCollection, nullableType.node.id, 0, [language_1.Ast.NodeKind.Constant]);
238
+ if (nullableConstant === undefined || !__1.PositionUtils.isAfterAst(activeNode.position, nullableConstant, true)) {
239
+ return [];
240
+ }
241
+ else {
242
+ const primitiveType = parser_1.NodeIdMapUtils.nthChildXorChecked(nodeIdMapCollection, nullableType.node.id, 1, [language_1.Ast.NodeKind.LiteralExpression, language_1.Ast.NodeKind.PrimitiveType]);
243
+ if (primitiveType === undefined) {
244
+ return [];
245
+ }
246
+ // The parser defaults to having thrown on a LiteralExpression if nothing trails afterwords,
247
+ // eg. `type nullable |`
248
+ else if (parser_1.XorNodeUtils.isNodeKind(primitiveType, language_1.Ast.NodeKind.LiteralExpression)) {
249
+ return createAutocompleteItems();
250
+ }
251
+ else if (parser_1.XorNodeUtils.isNodeKind(primitiveType, language_1.Ast.NodeKind.PrimitiveType)) {
252
+ return inspectPrimitiveType(primitiveType, activeNode, trailingToken);
253
+ }
254
+ else {
255
+ return [];
256
+ }
257
+ }
258
+ }
259
+ }
260
+ function inspectPrimitiveType(primitiveTypeXor, activeNode, trailingToken) {
261
+ // Ast
262
+ if (parser_1.XorNodeUtils.isAst(primitiveTypeXor)) {
263
+ if (!__1.PositionUtils.isInAst(activeNode.position, primitiveTypeXor.node, true, true)) {
264
+ return [];
265
+ }
266
+ const primitiveTypeAst = primitiveTypeXor.node;
267
+ const primitiveTypeKind = primitiveTypeAst.primitiveTypeKind;
268
+ return createAutocompleteItems(primitiveTypeKind, __1.Range.create(__1.PositionUtils.positionFromTokenPosition(primitiveTypeAst.tokenRange.positionStart), __1.PositionUtils.positionFromTokenPosition(primitiveTypeAst.tokenRange.positionEnd)));
269
+ }
270
+ // ParseContext
271
+ else if (trailingToken) {
272
+ const trailingText = trailingToken.data;
273
+ if (isSubstringOfPrimitiveTypeConstant(trailingText)) {
274
+ return createAutocompleteItems(trailingText, __1.Range.create(__1.PositionUtils.positionFromTokenPosition(trailingToken.positionStart), __1.PositionUtils.positionFromTokenPosition(trailingToken.positionEnd)));
275
+ }
276
+ }
277
+ return createAutocompleteItems();
278
+ }
279
+ function inspectTType(ttype, activeNode, trailingToken) {
280
+ // Ast
281
+ if (parser_1.XorNodeUtils.isAst(ttype)) {
282
+ // `type nullable date|`
283
+ if (language_1.AstUtils.isNodeKind(ttype.node, language_1.Ast.NodeKind.PrimitiveType)) {
284
+ return inspectPrimitiveType(parser_1.XorNodeUtils.boxAst(ttype.node), activeNode, trailingToken);
285
+ }
286
+ // `type nullable a|`
287
+ else if (language_1.AstUtils.isNodeKind(ttype.node, language_1.Ast.NodeKind.IdentifierExpression)) {
288
+ return createAutocompleteItemsFromIdentifierExpression(ttype.node, activeNode);
289
+ }
290
+ }
291
+ // ParseContext
292
+ // The parser defaults to having thrown on a LiteralExpression if nothing trails afterwords,
293
+ // eg. `type nullable |`
294
+ else if (parser_1.XorNodeUtils.isNodeKind(ttype, language_1.Ast.NodeKind.LiteralExpression)) {
295
+ return createAutocompleteItems();
296
+ }
297
+ else if (parser_1.XorNodeUtils.isNodeKind(ttype, language_1.Ast.NodeKind.PrimitiveType)) {
298
+ return inspectPrimitiveType(ttype, activeNode, trailingToken);
299
+ }
300
+ return [];
301
+ }
302
+ function inspectTypePrimaryType(nodeIdMapCollection, typePrimaryType, activeNode, trailingToken) {
303
+ const typeConstant = parser_1.NodeIdMapUtils.nthChildXorChecked(nodeIdMapCollection, typePrimaryType.node.id, 0, language_1.Ast.NodeKind.Constant);
304
+ if (typeConstant === undefined ||
305
+ !parser_1.XorNodeUtils.isAst(typeConstant) ||
306
+ !__1.PositionUtils.isAfterAst(activeNode.position, typeConstant.node, true)) {
307
+ return [];
308
+ }
309
+ const primaryType = parser_1.NodeIdMapUtils.nthChildXorChecked(nodeIdMapCollection, typePrimaryType.node.id, 1, [
310
+ language_1.Ast.NodeKind.PrimitiveType,
311
+ language_1.Ast.NodeKind.FunctionType,
312
+ language_1.Ast.NodeKind.ListType,
313
+ language_1.Ast.NodeKind.NullableType,
314
+ language_1.Ast.NodeKind.RecordType,
315
+ language_1.Ast.NodeKind.TableType,
316
+ ]);
317
+ if (primaryType === undefined) {
318
+ return createAutocompleteItemsFromTrailingToken(trailingToken);
319
+ }
320
+ // Ast
321
+ else if (parser_1.XorNodeUtils.isAst(primaryType)) {
322
+ if (!__1.PositionUtils.isOnAstEnd(activeNode.position, primaryType.node) ||
323
+ !language_1.AstUtils.isNodeKind(primaryType.node, language_1.Ast.NodeKind.PrimitiveType)) {
324
+ return [];
325
+ }
326
+ return createAutocompleteItemsFromPrimitiveTypeConstant(primaryType.node, activeNode);
327
+ }
328
+ else {
329
+ return [];
330
+ }
331
+ }
332
+ function isSubstringOfPrimitiveTypeConstant(text) {
333
+ return AllowedPrimitiveTypeConstants.some((value) => value.includes(text));
334
+ }
336
335
  //# sourceMappingURL=autocompletePrimitiveType.js.map