@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,352 +1,352 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT license.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.findNodeKind = exports.isPositionInBounds = exports.assertPositionInBounds = exports.assertGetLeaf = exports.assertActiveNode = exports.createOutOfBoundPosition = exports.activeNode = 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 activeNode_1 = require("./activeNode");
10
- const __1 = require("../..");
11
- function activeNode(nodeIdMapCollection, position) {
12
- const astSearched = leafSearch(nodeIdMapCollection, position);
13
- const { nodeClosestBeforePosition, nodeOnPosition, nodeClosestAfterPosition } = leafSearch(nodeIdMapCollection, position);
14
- const contextClosestOnOrAfterPosition = findContext(nodeIdMapCollection, astSearched);
15
- let leaf;
16
- let leafKind;
17
- // Case 1: empty document
18
- if (nodeClosestBeforePosition === undefined &&
19
- nodeOnPosition === undefined &&
20
- nodeClosestAfterPosition === undefined) {
21
- return createOutOfBoundPosition(position);
22
- }
23
- // Case 2: There's only 1 leaf
24
- // Case 2a: truthy left
25
- // `not |`
26
- // `foo |`
27
- else if (nodeClosestBeforePosition !== undefined &&
28
- nodeOnPosition === undefined &&
29
- nodeClosestAfterPosition === undefined) {
30
- // With context
31
- // `not |`
32
- if (contextClosestOnOrAfterPosition !== undefined) {
33
- leaf = parser_1.XorNodeUtils.boxContext(contextClosestOnOrAfterPosition);
34
- leafKind = activeNode_1.ActiveNodeLeafKind.ContextNode;
35
- }
36
- // Without context
37
- // `foo |`
38
- else {
39
- leaf = parser_1.XorNodeUtils.boxAst(nodeClosestBeforePosition);
40
- leafKind = activeNode_1.ActiveNodeLeafKind.IsBeforePosition;
41
- }
42
- }
43
- // Case 2b: truthy center
44
- // `|not`
45
- // `not|`
46
- // `|foo`
47
- // `foo|`
48
- else if (nodeClosestBeforePosition === undefined &&
49
- nodeOnPosition !== undefined &&
50
- nodeClosestAfterPosition === undefined) {
51
- // With or without context
52
- leaf = parser_1.XorNodeUtils.boxAst(nodeOnPosition);
53
- leafKind = activeNode_1.ActiveNodeLeafKind.IsInAst;
54
- }
55
- // Case 2c: truthy right
56
- // `| not`
57
- // `| 1`
58
- else if (nodeClosestBeforePosition === undefined &&
59
- nodeOnPosition === undefined &&
60
- nodeClosestAfterPosition !== undefined) {
61
- // With or without context
62
- return createOutOfBoundPosition(position);
63
- }
64
- // Case 3: There's 2 leafs.
65
- // Case 3a: truthy left and center
66
- // `1+|1`
67
- // `if |true`
68
- // `if true|`
69
- // `{1, foo|`
70
- else if (nodeClosestBeforePosition !== undefined &&
71
- nodeOnPosition !== undefined &&
72
- nodeClosestAfterPosition == undefined) {
73
- // With or without context
74
- leaf = parser_1.XorNodeUtils.boxAst(nodeOnPosition);
75
- leafKind = activeNode_1.ActiveNodeLeafKind.IsInAst;
76
- }
77
- // Case 3b: truthy left and right
78
- else if (nodeClosestBeforePosition !== undefined &&
79
- nodeOnPosition === undefined &&
80
- nodeClosestAfterPosition !== undefined) {
81
- if (language_1.AstUtils.isNodeKind(nodeClosestBeforePosition, language_1.Ast.NodeKind.Constant) &&
82
- ShiftRightConstantKinds.includes(nodeClosestBeforePosition.constantKind)) {
83
- leaf = parser_1.XorNodeUtils.boxAst(nodeClosestAfterPosition);
84
- leafKind = activeNode_1.ActiveNodeLeafKind.IsAfterPosition;
85
- }
86
- else {
87
- leaf = parser_1.XorNodeUtils.boxAst(nodeClosestBeforePosition);
88
- leafKind = activeNode_1.ActiveNodeLeafKind.IsBeforePosition;
89
- }
90
- }
91
- // Case 3c: truthy center and right
92
- // `|not true
93
- else if (nodeClosestBeforePosition === undefined &&
94
- nodeOnPosition !== undefined &&
95
- nodeClosestAfterPosition !== undefined) {
96
- leaf = parser_1.XorNodeUtils.boxAst(nodeOnPosition);
97
- leafKind = activeNode_1.ActiveNodeLeafKind.IsInAst;
98
- }
99
- // Case 4: There's 3 leafs
100
- else if (nodeClosestBeforePosition !== undefined &&
101
- nodeOnPosition !== undefined &&
102
- nodeClosestAfterPosition !== undefined) {
103
- leaf = parser_1.XorNodeUtils.boxAst(nodeOnPosition);
104
- leafKind = activeNode_1.ActiveNodeLeafKind.IsInAst;
105
- }
106
- // Case 5: TypeScript can't tell this is exhaustive.
107
- else {
108
- throw new powerquery_parser_1.CommonError.InvariantError(`this should never be reached`);
109
- }
110
- const inclusiveIdentifierUnderPosition = findLeafIdentifier(nodeIdMapCollection, leaf);
111
- const exclusiveIdentifierUnderPosition = inclusiveIdentifierUnderPosition &&
112
- __1.PositionUtils.isInAst(position, inclusiveIdentifierUnderPosition.node, false, true)
113
- ? inclusiveIdentifierUnderPosition
114
- : undefined;
115
- const ancestry = parser_1.AncestryUtils.assertAncestry(nodeIdMapCollection, leaf.node.id);
116
- return {
117
- kind: activeNode_1.ActiveNodeKind.ActiveNode,
118
- leafKind,
119
- position,
120
- ancestry,
121
- isInKey: isInKey(ancestry),
122
- exclusiveIdentifierUnderPosition,
123
- inclusiveIdentifierUnderPosition,
124
- };
125
- }
126
- exports.activeNode = activeNode;
127
- function createOutOfBoundPosition(position) {
128
- return {
129
- kind: activeNode_1.ActiveNodeKind.OutOfBoundPosition,
130
- position,
131
- };
132
- }
133
- exports.createOutOfBoundPosition = createOutOfBoundPosition;
134
- function assertActiveNode(nodeIdMapCollection, position) {
135
- const value = activeNode(nodeIdMapCollection, position);
136
- assertPositionInBounds(value);
137
- return value;
138
- }
139
- exports.assertActiveNode = assertActiveNode;
140
- function assertGetLeaf(activeNode) {
141
- return parser_1.AncestryUtils.assertNth(activeNode.ancestry, 0);
142
- }
143
- exports.assertGetLeaf = assertGetLeaf;
144
- function assertPositionInBounds(value) {
145
- if (!isPositionInBounds(value)) {
146
- throw new powerquery_parser_1.CommonError.InvariantError(`value was not in bounds`);
147
- }
148
- }
149
- exports.assertPositionInBounds = assertPositionInBounds;
150
- function isPositionInBounds(value) {
151
- return value.kind === activeNode_1.ActiveNodeKind.ActiveNode;
152
- }
153
- exports.isPositionInBounds = isPositionInBounds;
154
- function findNodeKind(activeNode, nodeKind) {
155
- return parser_1.AncestryUtils.findNodeKind(activeNode.ancestry, nodeKind);
156
- }
157
- exports.findNodeKind = findNodeKind;
158
- const ShiftLeftConstantKinds = [
159
- language_1.Constant.WrapperConstant.RightBrace,
160
- language_1.Constant.WrapperConstant.RightBracket,
161
- language_1.Constant.WrapperConstant.RightParenthesis,
162
- ];
163
- const ShiftRightConstantKinds = [
164
- ...language_1.Constant.BinOpExpressionOperators,
165
- language_1.Constant.MiscConstant.Ampersand,
166
- language_1.Constant.MiscConstant.Comma,
167
- language_1.Constant.MiscConstant.DotDot,
168
- language_1.Constant.MiscConstant.Equal,
169
- language_1.Constant.MiscConstant.FatArrow,
170
- language_1.Constant.MiscConstant.NullCoalescingOperator,
171
- language_1.Constant.MiscConstant.QuestionMark,
172
- language_1.Constant.MiscConstant.Semicolon,
173
- language_1.Constant.WrapperConstant.LeftBrace,
174
- language_1.Constant.WrapperConstant.LeftBracket,
175
- language_1.Constant.WrapperConstant.LeftParenthesis,
176
- ];
177
- // Searches for the closest leaf to the left, right, and on the given position if such an option exists.
178
- function leafSearch(nodeIdMapCollection, position) {
179
- const astNodeById = nodeIdMapCollection.astNodeById;
180
- let nodeClosestBeforePosition;
181
- let nodeOnPosition;
182
- let nodeClosestAfterPosition;
183
- // Find the closest leaf on or to the left of the position.
184
- for (const nodeId of nodeIdMapCollection.leafIds) {
185
- const candidate = astNodeById.get(nodeId);
186
- powerquery_parser_1.Assert.isDefined(candidate, `leafIds contained a value that wasn't found in astNodeById`, { nodeId });
187
- language_1.AstUtils.assertIsLeaf(candidate);
188
- // This shouldn't occur, but safety first.
189
- if (candidate === undefined) {
190
- continue;
191
- }
192
- let includeLowerBound = true;
193
- let includeUpperBound = true;
194
- if (language_1.AstUtils.isNodeKind(candidate, language_1.Ast.NodeKind.Constant)) {
195
- if (ShiftRightConstantKinds.includes(candidate.constantKind)) {
196
- includeLowerBound = false;
197
- includeUpperBound = false;
198
- }
199
- else if (ShiftLeftConstantKinds.includes(candidate.constantKind)) {
200
- includeLowerBound = false;
201
- }
202
- }
203
- // If the candidate starts under the cursor position then it's safe to assume it's the best candidate,
204
- // as each leaf node is guaranteed to be non-overlapping.
205
- if (__1.PositionUtils.isInAst(position, candidate, includeLowerBound, includeUpperBound)) {
206
- nodeOnPosition = candidate;
207
- }
208
- // Else if the candidate is before the cursor position
209
- else if (__1.PositionUtils.isAfterAst(position, candidate, includeUpperBound)) {
210
- // And we either haven't found a closestNodeOnOrBeforePosition yet,
211
- // or if the candidate is better (more right) than the current closestNodeOnOrBeforePosition.
212
- if (nodeClosestBeforePosition === undefined ||
213
- nodeClosestBeforePosition.tokenRange.tokenIndexStart < candidate.tokenRange.tokenIndexStart) {
214
- nodeClosestBeforePosition = candidate;
215
- }
216
- }
217
- // Else the candidate must be after the cursor position.
218
- // And we either haven't found a closestAfterPosition yet,
219
- // or if the candidate is better (more left) than the current nodeClosestAfterPosition.
220
- else if (nodeClosestAfterPosition === undefined ||
221
- nodeClosestAfterPosition.tokenRange.tokenIndexStart > candidate.tokenRange.tokenIndexStart) {
222
- nodeClosestAfterPosition = candidate;
223
- }
224
- }
225
- return {
226
- nodeClosestBeforePosition,
227
- nodeOnPosition,
228
- nodeClosestAfterPosition,
229
- };
230
- }
231
- function findContext(nodeIdMapCollection, searchedLeafs) {
232
- var _a, _b, _c, _d, _e;
233
- const tokenIndexLowBound = (_d = (_b = (_a = searchedLeafs.nodeClosestAfterPosition) === null || _a === void 0 ? void 0 : _a.tokenRange.tokenIndexStart) !== null && _b !== void 0 ? _b : (_c = searchedLeafs.nodeOnPosition) === null || _c === void 0 ? void 0 : _c.tokenRange.tokenIndexStart) !== null && _d !== void 0 ? _d : (_e = searchedLeafs.nodeClosestBeforePosition) === null || _e === void 0 ? void 0 : _e.tokenRange.tokenIndexStart;
234
- if (tokenIndexLowBound === undefined) {
235
- return undefined;
236
- }
237
- // Look for the deepest ParseContext that starts on or before the cursor.
238
- // We can use searchedLeafs to generate a bound on tokenIndex.
239
- // It's possible/likely that multiple ParseContexts exist with the same tokenIndex,
240
- // so we pick the "deepest" one.
241
- const depthCache = new Map();
242
- let closestContextOnOrAfterPosition = undefined;
243
- for (const candidate of nodeIdMapCollection.contextNodeById.values()) {
244
- if (candidate.tokenIndexStart < tokenIndexLowBound) {
245
- continue;
246
- }
247
- if (closestContextOnOrAfterPosition === undefined ||
248
- candidate.tokenIndexStart > closestContextOnOrAfterPosition.tokenIndexStart ||
249
- findDepth(nodeIdMapCollection.parentIdById, candidate.id, depthCache) >
250
- findDepth(nodeIdMapCollection.parentIdById, closestContextOnOrAfterPosition.id, depthCache)) {
251
- closestContextOnOrAfterPosition = candidate;
252
- }
253
- }
254
- return closestContextOnOrAfterPosition;
255
- }
256
- function findDepth(parentIdById, nodeId, depthCache) {
257
- const cachedDepth = depthCache.get(nodeId);
258
- if (cachedDepth !== undefined) {
259
- return cachedDepth;
260
- }
261
- const parentId = parentIdById.get(nodeId);
262
- if (parentId === undefined) {
263
- return 0;
264
- }
265
- const summedDepth = 1 + findDepth(parentIdById, parentId, depthCache);
266
- depthCache.set(nodeId, summedDepth);
267
- return summedDepth;
268
- }
269
- function findLeafIdentifier(nodeIdMapCollection, leafXorNode) {
270
- if (parser_1.XorNodeUtils.isContext(leafXorNode)) {
271
- return undefined;
272
- }
273
- const leaf = leafXorNode.node;
274
- let identifier;
275
- const parentId = nodeIdMapCollection.parentIdById.get(leaf.id);
276
- if (leaf.kind === language_1.Ast.NodeKind.Identifier) {
277
- if (parentId === undefined) {
278
- identifier = leaf;
279
- }
280
- else {
281
- const parent = parser_1.NodeIdMapUtils.ast(nodeIdMapCollection, parentId);
282
- if ((parent === null || parent === void 0 ? void 0 : parent.kind) === language_1.Ast.NodeKind.IdentifierPairedExpression) {
283
- identifier = leaf;
284
- }
285
- else if ((parent === null || parent === void 0 ? void 0 : parent.kind) === language_1.Ast.NodeKind.IdentifierExpression) {
286
- identifier = parent;
287
- }
288
- else {
289
- identifier = leaf;
290
- }
291
- }
292
- }
293
- // If '@', then check if it's part of an IdentifierExpression.
294
- else if (leaf.kind === language_1.Ast.NodeKind.Constant && leaf.constantKind === language_1.Constant.MiscConstant.AtSign) {
295
- if (parentId === undefined) {
296
- return undefined;
297
- }
298
- const parent = parser_1.NodeIdMapUtils.ast(nodeIdMapCollection, parentId);
299
- if ((parent === null || parent === void 0 ? void 0 : parent.kind) === language_1.Ast.NodeKind.IdentifierExpression) {
300
- identifier = parent;
301
- }
302
- else {
303
- return undefined;
304
- }
305
- }
306
- else if (leaf.kind === language_1.Ast.NodeKind.GeneralizedIdentifier) {
307
- identifier = leaf;
308
- }
309
- else {
310
- return undefined;
311
- }
312
- let result;
313
- switch (identifier.kind) {
314
- case language_1.Ast.NodeKind.Identifier:
315
- case language_1.Ast.NodeKind.GeneralizedIdentifier:
316
- result = {
317
- node: identifier,
318
- isRecursive: false,
319
- normalizedLiteral: language_1.IdentifierUtils.assertNormalizedIdentifier(identifier.literal, {
320
- allowGeneralizedIdentifier: identifier.kind === language_1.Ast.NodeKind.GeneralizedIdentifier,
321
- }),
322
- normalizedRecursiveLiteral: undefined,
323
- };
324
- break;
325
- case language_1.Ast.NodeKind.IdentifierExpression: {
326
- const normalizedLiteral = language_1.IdentifierUtils.assertNormalizedIdentifier(identifier.identifier.literal, { allowGeneralizedIdentifier: false });
327
- result = {
328
- node: identifier,
329
- normalizedLiteral,
330
- normalizedRecursiveLiteral: identifier.inclusiveConstant ? `@${normalizedLiteral}` : undefined,
331
- };
332
- break;
333
- }
334
- default:
335
- throw powerquery_parser_1.Assert.isNever(identifier);
336
- }
337
- return result;
338
- }
339
- function isInKey(ancestry) {
340
- if (ancestry.length < 2) {
341
- return false;
342
- }
343
- const child = powerquery_parser_1.ArrayUtils.assertGet(ancestry, 0);
344
- const parent = powerquery_parser_1.ArrayUtils.assertGet(ancestry, 1);
345
- // Return true if we're in the key portion of a key-value pair.
346
- return ([
347
- language_1.Ast.NodeKind.GeneralizedIdentifierPairedAnyLiteral,
348
- language_1.Ast.NodeKind.GeneralizedIdentifierPairedExpression,
349
- language_1.Ast.NodeKind.IdentifierPairedExpression,
350
- ].includes(parent.node.kind) && child.node.attributeIndex === 0);
351
- }
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.activeNode = activeNode;
6
+ exports.createOutOfBoundPosition = createOutOfBoundPosition;
7
+ exports.assertActiveNode = assertActiveNode;
8
+ exports.assertGetLeaf = assertGetLeaf;
9
+ exports.assertPositionInBounds = assertPositionInBounds;
10
+ exports.isPositionInBounds = isPositionInBounds;
11
+ exports.findNodeKind = findNodeKind;
12
+ const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
13
+ const powerquery_parser_1 = require("@microsoft/powerquery-parser");
14
+ const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
15
+ const activeNode_1 = require("./activeNode");
16
+ const __1 = require("../..");
17
+ function activeNode(nodeIdMapCollection, position) {
18
+ const astSearched = leafSearch(nodeIdMapCollection, position);
19
+ const { nodeClosestBeforePosition, nodeOnPosition, nodeClosestAfterPosition } = leafSearch(nodeIdMapCollection, position);
20
+ const contextClosestOnOrAfterPosition = findContext(nodeIdMapCollection, astSearched);
21
+ let leaf;
22
+ let leafKind;
23
+ // Case 1: empty document
24
+ if (nodeClosestBeforePosition === undefined &&
25
+ nodeOnPosition === undefined &&
26
+ nodeClosestAfterPosition === undefined) {
27
+ return createOutOfBoundPosition(position);
28
+ }
29
+ // Case 2: There's only 1 leaf
30
+ // Case 2a: truthy left
31
+ // `not |`
32
+ // `foo |`
33
+ else if (nodeClosestBeforePosition !== undefined &&
34
+ nodeOnPosition === undefined &&
35
+ nodeClosestAfterPosition === undefined) {
36
+ // With context
37
+ // `not |`
38
+ if (contextClosestOnOrAfterPosition !== undefined) {
39
+ leaf = parser_1.XorNodeUtils.boxContext(contextClosestOnOrAfterPosition);
40
+ leafKind = activeNode_1.ActiveNodeLeafKind.ContextNode;
41
+ }
42
+ // Without context
43
+ // `foo |`
44
+ else {
45
+ leaf = parser_1.XorNodeUtils.boxAst(nodeClosestBeforePosition);
46
+ leafKind = activeNode_1.ActiveNodeLeafKind.IsBeforePosition;
47
+ }
48
+ }
49
+ // Case 2b: truthy center
50
+ // `|not`
51
+ // `not|`
52
+ // `|foo`
53
+ // `foo|`
54
+ else if (nodeClosestBeforePosition === undefined &&
55
+ nodeOnPosition !== undefined &&
56
+ nodeClosestAfterPosition === undefined) {
57
+ // With or without context
58
+ leaf = parser_1.XorNodeUtils.boxAst(nodeOnPosition);
59
+ leafKind = activeNode_1.ActiveNodeLeafKind.IsInAst;
60
+ }
61
+ // Case 2c: truthy right
62
+ // `| not`
63
+ // `| 1`
64
+ else if (nodeClosestBeforePosition === undefined &&
65
+ nodeOnPosition === undefined &&
66
+ nodeClosestAfterPosition !== undefined) {
67
+ // With or without context
68
+ return createOutOfBoundPosition(position);
69
+ }
70
+ // Case 3: There's 2 leafs.
71
+ // Case 3a: truthy left and center
72
+ // `1+|1`
73
+ // `if |true`
74
+ // `if true|`
75
+ // `{1, foo|`
76
+ else if (nodeClosestBeforePosition !== undefined &&
77
+ nodeOnPosition !== undefined &&
78
+ nodeClosestAfterPosition == undefined) {
79
+ // With or without context
80
+ leaf = parser_1.XorNodeUtils.boxAst(nodeOnPosition);
81
+ leafKind = activeNode_1.ActiveNodeLeafKind.IsInAst;
82
+ }
83
+ // Case 3b: truthy left and right
84
+ else if (nodeClosestBeforePosition !== undefined &&
85
+ nodeOnPosition === undefined &&
86
+ nodeClosestAfterPosition !== undefined) {
87
+ if (language_1.AstUtils.isNodeKind(nodeClosestBeforePosition, language_1.Ast.NodeKind.Constant) &&
88
+ ShiftRightConstantKinds.includes(nodeClosestBeforePosition.constantKind)) {
89
+ leaf = parser_1.XorNodeUtils.boxAst(nodeClosestAfterPosition);
90
+ leafKind = activeNode_1.ActiveNodeLeafKind.IsAfterPosition;
91
+ }
92
+ else {
93
+ leaf = parser_1.XorNodeUtils.boxAst(nodeClosestBeforePosition);
94
+ leafKind = activeNode_1.ActiveNodeLeafKind.IsBeforePosition;
95
+ }
96
+ }
97
+ // Case 3c: truthy center and right
98
+ // `|not true
99
+ else if (nodeClosestBeforePosition === undefined &&
100
+ nodeOnPosition !== undefined &&
101
+ nodeClosestAfterPosition !== undefined) {
102
+ leaf = parser_1.XorNodeUtils.boxAst(nodeOnPosition);
103
+ leafKind = activeNode_1.ActiveNodeLeafKind.IsInAst;
104
+ }
105
+ // Case 4: There's 3 leafs
106
+ else if (nodeClosestBeforePosition !== undefined &&
107
+ nodeOnPosition !== undefined &&
108
+ nodeClosestAfterPosition !== undefined) {
109
+ leaf = parser_1.XorNodeUtils.boxAst(nodeOnPosition);
110
+ leafKind = activeNode_1.ActiveNodeLeafKind.IsInAst;
111
+ }
112
+ // Case 5: TypeScript can't tell this is exhaustive.
113
+ else {
114
+ throw new powerquery_parser_1.CommonError.InvariantError(`this should never be reached`);
115
+ }
116
+ const inclusiveIdentifierUnderPosition = findLeafIdentifier(nodeIdMapCollection, leaf);
117
+ const exclusiveIdentifierUnderPosition = inclusiveIdentifierUnderPosition &&
118
+ __1.PositionUtils.isInAst(position, inclusiveIdentifierUnderPosition.node, false, true)
119
+ ? inclusiveIdentifierUnderPosition
120
+ : undefined;
121
+ const ancestry = parser_1.AncestryUtils.assertAncestry(nodeIdMapCollection, leaf.node.id);
122
+ return {
123
+ kind: activeNode_1.ActiveNodeKind.ActiveNode,
124
+ leafKind,
125
+ position,
126
+ ancestry,
127
+ isInKey: isInKey(ancestry),
128
+ exclusiveIdentifierUnderPosition,
129
+ inclusiveIdentifierUnderPosition,
130
+ };
131
+ }
132
+ function createOutOfBoundPosition(position) {
133
+ return {
134
+ kind: activeNode_1.ActiveNodeKind.OutOfBoundPosition,
135
+ position,
136
+ };
137
+ }
138
+ function assertActiveNode(nodeIdMapCollection, position) {
139
+ const value = activeNode(nodeIdMapCollection, position);
140
+ assertPositionInBounds(value);
141
+ return value;
142
+ }
143
+ function assertGetLeaf(activeNode) {
144
+ return parser_1.AncestryUtils.assertNth(activeNode.ancestry, 0);
145
+ }
146
+ function assertPositionInBounds(value) {
147
+ if (!isPositionInBounds(value)) {
148
+ throw new powerquery_parser_1.CommonError.InvariantError(`value was not in bounds`);
149
+ }
150
+ }
151
+ function isPositionInBounds(value) {
152
+ return value.kind === activeNode_1.ActiveNodeKind.ActiveNode;
153
+ }
154
+ function findNodeKind(activeNode, nodeKind) {
155
+ return parser_1.AncestryUtils.findNodeKind(activeNode.ancestry, nodeKind);
156
+ }
157
+ const ShiftLeftConstantKinds = [
158
+ language_1.Constant.WrapperConstant.RightBrace,
159
+ language_1.Constant.WrapperConstant.RightBracket,
160
+ language_1.Constant.WrapperConstant.RightParenthesis,
161
+ ];
162
+ const ShiftRightConstantKinds = [
163
+ ...language_1.Constant.BinOpExpressionOperators,
164
+ language_1.Constant.MiscConstant.Ampersand,
165
+ language_1.Constant.MiscConstant.Comma,
166
+ language_1.Constant.MiscConstant.DotDot,
167
+ language_1.Constant.MiscConstant.Equal,
168
+ language_1.Constant.MiscConstant.FatArrow,
169
+ language_1.Constant.MiscConstant.NullCoalescingOperator,
170
+ language_1.Constant.MiscConstant.QuestionMark,
171
+ language_1.Constant.MiscConstant.Semicolon,
172
+ language_1.Constant.WrapperConstant.LeftBrace,
173
+ language_1.Constant.WrapperConstant.LeftBracket,
174
+ language_1.Constant.WrapperConstant.LeftParenthesis,
175
+ ];
176
+ // Searches for the closest leaf to the left, right, and on the given position if such an option exists.
177
+ function leafSearch(nodeIdMapCollection, position) {
178
+ const astNodeById = nodeIdMapCollection.astNodeById;
179
+ let nodeClosestBeforePosition;
180
+ let nodeOnPosition;
181
+ let nodeClosestAfterPosition;
182
+ // Find the closest leaf on or to the left of the position.
183
+ for (const nodeId of nodeIdMapCollection.leafIds) {
184
+ const candidate = astNodeById.get(nodeId);
185
+ powerquery_parser_1.Assert.isDefined(candidate, `leafIds contained a value that wasn't found in astNodeById`, { nodeId });
186
+ language_1.AstUtils.assertIsLeaf(candidate);
187
+ // This shouldn't occur, but safety first.
188
+ if (candidate === undefined) {
189
+ continue;
190
+ }
191
+ let includeLowerBound = true;
192
+ let includeUpperBound = true;
193
+ if (language_1.AstUtils.isNodeKind(candidate, language_1.Ast.NodeKind.Constant)) {
194
+ if (ShiftRightConstantKinds.includes(candidate.constantKind)) {
195
+ includeLowerBound = false;
196
+ includeUpperBound = false;
197
+ }
198
+ else if (ShiftLeftConstantKinds.includes(candidate.constantKind)) {
199
+ includeLowerBound = false;
200
+ }
201
+ }
202
+ // If the candidate starts under the cursor position then it's safe to assume it's the best candidate,
203
+ // as each leaf node is guaranteed to be non-overlapping.
204
+ if (__1.PositionUtils.isInAst(position, candidate, includeLowerBound, includeUpperBound)) {
205
+ nodeOnPosition = candidate;
206
+ }
207
+ // Else if the candidate is before the cursor position
208
+ else if (__1.PositionUtils.isAfterAst(position, candidate, includeUpperBound)) {
209
+ // And we either haven't found a closestNodeOnOrBeforePosition yet,
210
+ // or if the candidate is better (more right) than the current closestNodeOnOrBeforePosition.
211
+ if (nodeClosestBeforePosition === undefined ||
212
+ nodeClosestBeforePosition.tokenRange.tokenIndexStart < candidate.tokenRange.tokenIndexStart) {
213
+ nodeClosestBeforePosition = candidate;
214
+ }
215
+ }
216
+ // Else the candidate must be after the cursor position.
217
+ // And we either haven't found a closestAfterPosition yet,
218
+ // or if the candidate is better (more left) than the current nodeClosestAfterPosition.
219
+ else if (nodeClosestAfterPosition === undefined ||
220
+ nodeClosestAfterPosition.tokenRange.tokenIndexStart > candidate.tokenRange.tokenIndexStart) {
221
+ nodeClosestAfterPosition = candidate;
222
+ }
223
+ }
224
+ return {
225
+ nodeClosestBeforePosition,
226
+ nodeOnPosition,
227
+ nodeClosestAfterPosition,
228
+ };
229
+ }
230
+ function findContext(nodeIdMapCollection, searchedLeafs) {
231
+ const tokenIndexLowBound = searchedLeafs.nodeClosestAfterPosition?.tokenRange.tokenIndexStart ??
232
+ searchedLeafs.nodeOnPosition?.tokenRange.tokenIndexStart ??
233
+ searchedLeafs.nodeClosestBeforePosition?.tokenRange.tokenIndexStart;
234
+ if (tokenIndexLowBound === undefined) {
235
+ return undefined;
236
+ }
237
+ // Look for the deepest ParseContext that starts on or before the cursor.
238
+ // We can use searchedLeafs to generate a bound on tokenIndex.
239
+ // It's possible/likely that multiple ParseContexts exist with the same tokenIndex,
240
+ // so we pick the "deepest" one.
241
+ const depthCache = new Map();
242
+ let closestContextOnOrAfterPosition = undefined;
243
+ for (const candidate of nodeIdMapCollection.contextNodeById.values()) {
244
+ if (candidate.tokenIndexStart < tokenIndexLowBound) {
245
+ continue;
246
+ }
247
+ if (closestContextOnOrAfterPosition === undefined ||
248
+ candidate.tokenIndexStart > closestContextOnOrAfterPosition.tokenIndexStart ||
249
+ findDepth(nodeIdMapCollection.parentIdById, candidate.id, depthCache) >
250
+ findDepth(nodeIdMapCollection.parentIdById, closestContextOnOrAfterPosition.id, depthCache)) {
251
+ closestContextOnOrAfterPosition = candidate;
252
+ }
253
+ }
254
+ return closestContextOnOrAfterPosition;
255
+ }
256
+ function findDepth(parentIdById, nodeId, depthCache) {
257
+ const cachedDepth = depthCache.get(nodeId);
258
+ if (cachedDepth !== undefined) {
259
+ return cachedDepth;
260
+ }
261
+ const parentId = parentIdById.get(nodeId);
262
+ if (parentId === undefined) {
263
+ return 0;
264
+ }
265
+ const summedDepth = 1 + findDepth(parentIdById, parentId, depthCache);
266
+ depthCache.set(nodeId, summedDepth);
267
+ return summedDepth;
268
+ }
269
+ function findLeafIdentifier(nodeIdMapCollection, leafXorNode) {
270
+ if (parser_1.XorNodeUtils.isContext(leafXorNode)) {
271
+ return undefined;
272
+ }
273
+ const leaf = leafXorNode.node;
274
+ let identifier;
275
+ const parentId = nodeIdMapCollection.parentIdById.get(leaf.id);
276
+ if (leaf.kind === language_1.Ast.NodeKind.Identifier) {
277
+ if (parentId === undefined) {
278
+ identifier = leaf;
279
+ }
280
+ else {
281
+ const parent = parser_1.NodeIdMapUtils.ast(nodeIdMapCollection, parentId);
282
+ if (parent?.kind === language_1.Ast.NodeKind.IdentifierPairedExpression) {
283
+ identifier = leaf;
284
+ }
285
+ else if (parent?.kind === language_1.Ast.NodeKind.IdentifierExpression) {
286
+ identifier = parent;
287
+ }
288
+ else {
289
+ identifier = leaf;
290
+ }
291
+ }
292
+ }
293
+ // If '@', then check if it's part of an IdentifierExpression.
294
+ else if (leaf.kind === language_1.Ast.NodeKind.Constant && leaf.constantKind === language_1.Constant.MiscConstant.AtSign) {
295
+ if (parentId === undefined) {
296
+ return undefined;
297
+ }
298
+ const parent = parser_1.NodeIdMapUtils.ast(nodeIdMapCollection, parentId);
299
+ if (parent?.kind === language_1.Ast.NodeKind.IdentifierExpression) {
300
+ identifier = parent;
301
+ }
302
+ else {
303
+ return undefined;
304
+ }
305
+ }
306
+ else if (leaf.kind === language_1.Ast.NodeKind.GeneralizedIdentifier) {
307
+ identifier = leaf;
308
+ }
309
+ else {
310
+ return undefined;
311
+ }
312
+ let result;
313
+ switch (identifier.kind) {
314
+ case language_1.Ast.NodeKind.Identifier:
315
+ case language_1.Ast.NodeKind.GeneralizedIdentifier:
316
+ result = {
317
+ node: identifier,
318
+ isRecursive: false,
319
+ normalizedLiteral: language_1.IdentifierUtils.assertNormalizedIdentifier(identifier.literal, {
320
+ allowGeneralizedIdentifier: identifier.kind === language_1.Ast.NodeKind.GeneralizedIdentifier,
321
+ }),
322
+ normalizedRecursiveLiteral: undefined,
323
+ };
324
+ break;
325
+ case language_1.Ast.NodeKind.IdentifierExpression: {
326
+ const normalizedLiteral = language_1.IdentifierUtils.assertNormalizedIdentifier(identifier.identifier.literal, { allowGeneralizedIdentifier: false });
327
+ result = {
328
+ node: identifier,
329
+ normalizedLiteral,
330
+ normalizedRecursiveLiteral: identifier.inclusiveConstant ? `@${normalizedLiteral}` : undefined,
331
+ };
332
+ break;
333
+ }
334
+ default:
335
+ throw powerquery_parser_1.Assert.isNever(identifier);
336
+ }
337
+ return result;
338
+ }
339
+ function isInKey(ancestry) {
340
+ if (ancestry.length < 2) {
341
+ return false;
342
+ }
343
+ const child = powerquery_parser_1.ArrayUtils.assertGet(ancestry, 0);
344
+ const parent = powerquery_parser_1.ArrayUtils.assertGet(ancestry, 1);
345
+ // Return true if we're in the key portion of a key-value pair.
346
+ return ([
347
+ language_1.Ast.NodeKind.GeneralizedIdentifierPairedAnyLiteral,
348
+ language_1.Ast.NodeKind.GeneralizedIdentifierPairedExpression,
349
+ language_1.Ast.NodeKind.IdentifierPairedExpression,
350
+ ].includes(parent.node.kind) && child.node.attributeIndex === 0);
351
+ }
352
352
  //# sourceMappingURL=activeNodeUtils.js.map