@microsoft/powerquery-language-services 0.2.19 → 0.3.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 (226) hide show
  1. package/lib/powerquery-language-services/analysis/analysisBase.d.ts +4 -6
  2. package/lib/powerquery-language-services/analysis/analysisBase.js +118 -223
  3. package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
  4. package/lib/powerquery-language-services/analysis/analysisSettings.d.ts +2 -2
  5. package/lib/powerquery-language-services/analysis/analysisUtils.js +1 -1
  6. package/lib/powerquery-language-services/analysis/analysisUtils.js.map +1 -1
  7. package/lib/powerquery-language-services/analysis/documentAnalysis.d.ts +0 -2
  8. package/lib/powerquery-language-services/analysis/documentAnalysis.js +11 -32
  9. package/lib/powerquery-language-services/analysis/documentAnalysis.js.map +1 -1
  10. package/lib/powerquery-language-services/commonTypes.js +1 -1
  11. package/lib/powerquery-language-services/commonTypes.js.map +1 -1
  12. package/lib/powerquery-language-services/documentSymbols.d.ts +1 -1
  13. package/lib/powerquery-language-services/documentSymbols.js +62 -111
  14. package/lib/powerquery-language-services/documentSymbols.js.map +1 -1
  15. package/lib/powerquery-language-services/formatter.d.ts +1 -1
  16. package/lib/powerquery-language-services/formatter.js +35 -34
  17. package/lib/powerquery-language-services/formatter.js.map +1 -1
  18. package/lib/powerquery-language-services/index.js +2 -2
  19. package/lib/powerquery-language-services/index.js.map +1 -1
  20. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +74 -131
  21. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
  22. package/lib/powerquery-language-services/inspection/activeNode/index.js +1 -1
  23. package/lib/powerquery-language-services/inspection/activeNode/index.js.map +1 -1
  24. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.d.ts +1 -1
  25. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +117 -187
  26. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
  27. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +28 -28
  28. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
  29. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.d.ts +2 -2
  30. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js +97 -114
  31. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js.map +1 -1
  32. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js +11 -11
  33. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js.map +1 -1
  34. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js +9 -9
  35. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js.map +1 -1
  36. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js +5 -5
  37. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js.map +1 -1
  38. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.d.ts +1 -1
  39. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js +43 -56
  40. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js.map +1 -1
  41. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js +10 -10
  42. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js.map +1 -1
  43. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.d.ts +1 -1
  44. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js +11 -11
  45. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js.map +1 -1
  46. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js +5 -5
  47. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js.map +1 -1
  48. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.d.ts +1 -1
  49. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js +28 -28
  50. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js.map +1 -1
  51. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js +28 -31
  52. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map +1 -1
  53. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js +19 -23
  54. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js.map +1 -1
  55. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js +5 -5
  56. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js.map +1 -1
  57. package/lib/powerquery-language-services/inspection/autocomplete/common.js +2 -13
  58. package/lib/powerquery-language-services/inspection/autocomplete/common.js.map +1 -1
  59. package/lib/powerquery-language-services/inspection/autocomplete/index.js +1 -1
  60. package/lib/powerquery-language-services/inspection/autocomplete/index.js.map +1 -1
  61. package/lib/powerquery-language-services/inspection/autocomplete/task.d.ts +1 -1
  62. package/lib/powerquery-language-services/inspection/autocomplete/task.js +36 -25
  63. package/lib/powerquery-language-services/inspection/autocomplete/task.js.map +1 -1
  64. package/lib/powerquery-language-services/inspection/commonTypes.d.ts +6 -5
  65. package/lib/powerquery-language-services/inspection/expectedType.js +18 -18
  66. package/lib/powerquery-language-services/inspection/expectedType.js.map +1 -1
  67. package/lib/powerquery-language-services/inspection/externalType/externalType.d.ts +2 -2
  68. package/lib/powerquery-language-services/inspection/externalType/externalType.js +2 -1
  69. package/lib/powerquery-language-services/inspection/externalType/externalType.js.map +1 -1
  70. package/lib/powerquery-language-services/inspection/externalType/externalTypeUtils.js +3 -3
  71. package/lib/powerquery-language-services/inspection/externalType/externalTypeUtils.js.map +1 -1
  72. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.d.ts +1 -1
  73. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js +49 -66
  74. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js.map +1 -1
  75. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.d.ts +1 -1
  76. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +74 -99
  77. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
  78. package/lib/powerquery-language-services/inspection/jaroWinkler.js +26 -42
  79. package/lib/powerquery-language-services/inspection/jaroWinkler.js.map +1 -1
  80. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js +24 -51
  81. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js.map +1 -1
  82. package/lib/powerquery-language-services/inspection/scope/scopeInspection.d.ts +3 -3
  83. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +221 -275
  84. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
  85. package/lib/powerquery-language-services/inspection/task.d.ts +3 -2
  86. package/lib/powerquery-language-services/inspection/task.js +71 -41
  87. package/lib/powerquery-language-services/inspection/task.js.map +1 -1
  88. package/lib/powerquery-language-services/inspection/type/index.js +1 -1
  89. package/lib/powerquery-language-services/inspection/type/index.js.map +1 -1
  90. package/lib/powerquery-language-services/inspection/type/inspectType/common.d.ts +9 -9
  91. package/lib/powerquery-language-services/inspection/type/inspectType/common.js +354 -339
  92. package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
  93. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.d.ts +1 -1
  94. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js +31 -41
  95. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js.map +1 -1
  96. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js +3 -3
  97. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js.map +1 -1
  98. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.d.ts +1 -1
  99. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js +29 -19
  100. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
  101. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.d.ts +1 -1
  102. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js +27 -17
  103. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
  104. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.d.ts +4 -0
  105. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js +68 -0
  106. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -0
  107. package/lib/powerquery-language-services/inspection/type/inspectType/{inspectTypeFieldProjection.d.ts → inspectTypeField/inspectTypeFieldProjection.d.ts} +2 -2
  108. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js +103 -0
  109. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js.map +1 -0
  110. package/lib/powerquery-language-services/inspection/type/inspectType/{inspectTypeFieldSelector.d.ts → inspectTypeField/inspectTypeFieldSelector.d.ts} +2 -2
  111. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +76 -0
  112. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -0
  113. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.d.ts +1 -1
  114. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js +24 -12
  115. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
  116. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.d.ts +1 -1
  117. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js +65 -55
  118. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
  119. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.d.ts +1 -1
  120. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js +43 -35
  121. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
  122. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.d.ts +1 -1
  123. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +28 -18
  124. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
  125. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.d.ts +1 -1
  126. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +28 -18
  127. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
  128. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.d.ts +1 -1
  129. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js +42 -30
  130. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
  131. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.d.ts +1 -1
  132. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +55 -64
  133. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
  134. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.d.ts +1 -1
  135. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js +26 -16
  136. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
  137. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.d.ts +1 -1
  138. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js +34 -24
  139. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
  140. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js +9 -10
  141. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js.map +1 -1
  142. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.d.ts +1 -1
  143. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js +33 -23
  144. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
  145. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.d.ts +1 -1
  146. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js +22 -23
  147. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
  148. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js +9 -10
  149. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js.map +1 -1
  150. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.d.ts +1 -1
  151. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +40 -30
  152. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
  153. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.d.ts +1 -1
  154. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +31 -41
  155. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
  156. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.d.ts +1 -1
  157. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js +27 -28
  158. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js.map +1 -1
  159. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.d.ts +1 -1
  160. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js +44 -54
  161. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
  162. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.d.ts +1 -1
  163. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js +155 -179
  164. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
  165. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.d.ts +1 -1
  166. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +36 -37
  167. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
  168. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.d.ts +1 -1
  169. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js +57 -105
  170. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
  171. package/lib/powerquery-language-services/inspection/type/task.d.ts +2 -2
  172. package/lib/powerquery-language-services/inspection/type/task.js +59 -104
  173. package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
  174. package/lib/powerquery-language-services/inspectionSettings.d.ts +2 -0
  175. package/lib/powerquery-language-services/inspectionUtils.d.ts +5 -4
  176. package/lib/powerquery-language-services/inspectionUtils.js +80 -134
  177. package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
  178. package/lib/powerquery-language-services/languageServiceUtils.js +1 -1
  179. package/lib/powerquery-language-services/languageServiceUtils.js.map +1 -1
  180. package/lib/powerquery-language-services/library/libraryUtils.js +11 -11
  181. package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
  182. package/lib/powerquery-language-services/localization/localization.js +9 -13
  183. package/lib/powerquery-language-services/localization/localization.js.map +1 -1
  184. package/lib/powerquery-language-services/localization/localizationUtils.js +1 -1
  185. package/lib/powerquery-language-services/localization/localizationUtils.js.map +1 -1
  186. package/lib/powerquery-language-services/localization/templates.js +43 -43
  187. package/lib/powerquery-language-services/localization/templates.js.map +1 -1
  188. package/lib/powerquery-language-services/positionUtils.d.ts +5 -5
  189. package/lib/powerquery-language-services/positionUtils.js +47 -33
  190. package/lib/powerquery-language-services/positionUtils.js.map +1 -1
  191. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.d.ts +3 -3
  192. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js +40 -95
  193. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js.map +1 -1
  194. package/lib/powerquery-language-services/providers/librarySymbolProvider.js +63 -138
  195. package/lib/powerquery-language-services/providers/librarySymbolProvider.js.map +1 -1
  196. package/lib/powerquery-language-services/providers/localDocumentSymbolProvider.d.ts +3 -5
  197. package/lib/powerquery-language-services/providers/localDocumentSymbolProvider.js +130 -194
  198. package/lib/powerquery-language-services/providers/localDocumentSymbolProvider.js.map +1 -1
  199. package/lib/powerquery-language-services/providers/nullSymbolProvider.js +18 -52
  200. package/lib/powerquery-language-services/providers/nullSymbolProvider.js.map +1 -1
  201. package/lib/powerquery-language-services/validate/validate.d.ts +1 -1
  202. package/lib/powerquery-language-services/validate/validate.js +38 -42
  203. package/lib/powerquery-language-services/validate/validate.js.map +1 -1
  204. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.d.ts +1 -1
  205. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js +82 -127
  206. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js.map +1 -1
  207. package/lib/powerquery-language-services/validate/validateFunctionExpression.d.ts +1 -1
  208. package/lib/powerquery-language-services/validate/validateFunctionExpression.js +61 -101
  209. package/lib/powerquery-language-services/validate/validateFunctionExpression.js.map +1 -1
  210. package/lib/powerquery-language-services/validate/validateInvokeExpression.d.ts +1 -1
  211. package/lib/powerquery-language-services/validate/validateInvokeExpression.js +61 -98
  212. package/lib/powerquery-language-services/validate/validateInvokeExpression.js.map +1 -1
  213. package/lib/powerquery-language-services/validate/validateLexAndParse.d.ts +1 -1
  214. package/lib/powerquery-language-services/validate/validateLexAndParse.js +112 -122
  215. package/lib/powerquery-language-services/validate/validateLexAndParse.js.map +1 -1
  216. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js +1 -12
  217. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js.map +1 -1
  218. package/lib/powerquery-language-services/workspaceCache/workspaceCache.d.ts +3 -13
  219. package/lib/powerquery-language-services/workspaceCache/workspaceCacheUtils.d.ts +7 -8
  220. package/lib/powerquery-language-services/workspaceCache/workspaceCacheUtils.js +93 -147
  221. package/lib/powerquery-language-services/workspaceCache/workspaceCacheUtils.js.map +1 -1
  222. package/package.json +4 -4
  223. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldProjection.js +0 -126
  224. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldProjection.js.map +0 -1
  225. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSelector.js +0 -67
  226. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSelector.js.map +0 -1
@@ -1,52 +1,48 @@
1
1
  "use strict";
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
- var __read = (this && this.__read) || function (o, n) {
5
- var m = typeof Symbol === "function" && o[Symbol.iterator];
6
- if (!m) return o;
7
- var i = m.call(o), r, ar = [], e;
8
- try {
9
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
10
- }
11
- catch (error) { e = { error: error }; }
12
- finally {
13
- try {
14
- if (r && !r.done && (m = i["return"])) m.call(i);
15
- }
16
- finally { if (e) throw e.error; }
17
- }
18
- return ar;
19
- };
20
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
21
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
22
- if (ar || !(i in from)) {
23
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
24
- ar[i] = from[i];
25
- }
26
- }
27
- return to.concat(ar || Array.prototype.slice.call(from));
4
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
+ return new (P || (P = Promise))(function (resolve, reject) {
7
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
11
+ });
28
12
  };
29
13
  Object.defineProperty(exports, "__esModule", { value: true });
30
14
  exports.validate = void 0;
31
- var PQP = require("@microsoft/powerquery-parser");
32
- var workspaceCache_1 = require("../workspaceCache");
33
- var validateDuplicateIdentifiers_1 = require("./validateDuplicateIdentifiers");
34
- var validateInvokeExpression_1 = require("./validateInvokeExpression");
35
- var validateLexAndParse_1 = require("./validateLexAndParse");
15
+ const PQP = require("@microsoft/powerquery-parser");
16
+ const validateDuplicateIdentifiers_1 = require("./validateDuplicateIdentifiers");
17
+ const validateInvokeExpression_1 = require("./validateInvokeExpression");
18
+ const validateLexAndParse_1 = require("./validateLexAndParse");
19
+ const workspaceCache_1 = require("../workspaceCache");
36
20
  function validate(textDocument, validationSettings) {
37
- var cacheItem = workspaceCache_1.WorkspaceCacheUtils.getOrCreateParse(textDocument, validationSettings);
38
- var invokeExpressionDiagnostics;
39
- if (validationSettings.checkInvokeExpressions &&
40
- (PQP.TaskUtils.isParseStageOk(cacheItem) || PQP.TaskUtils.isParseStageParseError(cacheItem))) {
41
- invokeExpressionDiagnostics = (0, validateInvokeExpression_1.validateInvokeExpression)(validationSettings, cacheItem.nodeIdMapCollection, workspaceCache_1.WorkspaceCacheUtils.getOrCreateTypeCache(textDocument));
42
- }
43
- else {
44
- invokeExpressionDiagnostics = [];
45
- }
46
- return {
47
- diagnostics: __spreadArray(__spreadArray(__spreadArray([], __read((0, validateDuplicateIdentifiers_1.validateDuplicateIdentifiers)(textDocument, validationSettings)), false), __read((0, validateLexAndParse_1.validateLexAndParse)(textDocument, validationSettings)), false), __read(invokeExpressionDiagnostics), false),
48
- hasSyntaxError: PQP.TaskUtils.isLexStageError(cacheItem) || PQP.TaskUtils.isParseStageError(cacheItem),
49
- };
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const maybeTriedParse = yield workspaceCache_1.WorkspaceCacheUtils.getOrCreateParsePromise(textDocument, validationSettings);
23
+ if (maybeTriedParse === undefined) {
24
+ return {
25
+ diagnostics: [],
26
+ hasSyntaxError: false,
27
+ };
28
+ }
29
+ let invokeExpressionDiagnostics;
30
+ if (validationSettings.checkInvokeExpressions &&
31
+ (PQP.TaskUtils.isParseStageOk(maybeTriedParse) || PQP.TaskUtils.isParseStageParseError(maybeTriedParse))) {
32
+ invokeExpressionDiagnostics = yield (0, validateInvokeExpression_1.validateInvokeExpression)(validationSettings, maybeTriedParse.nodeIdMapCollection, workspaceCache_1.WorkspaceCacheUtils.getTypeCache(textDocument));
33
+ }
34
+ else {
35
+ invokeExpressionDiagnostics = [];
36
+ }
37
+ return {
38
+ diagnostics: [
39
+ ...(yield (0, validateDuplicateIdentifiers_1.validateDuplicateIdentifiers)(textDocument, validationSettings)),
40
+ ...(yield (0, validateLexAndParse_1.validateLexAndParse)(textDocument, validationSettings)),
41
+ ...invokeExpressionDiagnostics,
42
+ ],
43
+ hasSyntaxError: PQP.TaskUtils.isLexStageError(maybeTriedParse) || PQP.TaskUtils.isParseStageError(maybeTriedParse),
44
+ };
45
+ });
50
46
  }
51
47
  exports.validate = validate;
52
48
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/validate/validate.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElC,kDAAoD;AAIpD,oDAAwE;AACxE,+EAA8E;AAC9E,uEAAsE;AACtE,6DAA4D;AAI5D,SAAgB,QAAQ,CAAC,YAA0B,EAAE,kBAAsC;IACvF,IAAM,SAAS,GAAkC,oCAAmB,CAAC,gBAAgB,CACjF,YAAY,EACZ,kBAAkB,CACrB,CAAC;IAEF,IAAI,2BAAyC,CAAC;IAE9C,IACI,kBAAkB,CAAC,sBAAsB;QACzC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,EAC9F;QACE,2BAA2B,GAAG,IAAA,mDAAwB,EAClD,kBAAkB,EAClB,SAAS,CAAC,mBAAmB,EAC7B,oCAAmB,CAAC,oBAAoB,CAAC,YAAY,CAAC,CACzD,CAAC;KACL;SAAM;QACH,2BAA2B,GAAG,EAAE,CAAC;KACpC;IAED,OAAO;QACH,WAAW,uDACJ,IAAA,2DAA4B,EAAC,YAAY,EAAE,kBAAkB,CAAC,kBAC9D,IAAA,yCAAmB,EAAC,YAAY,EAAE,kBAAkB,CAAC,kBACrD,2BAA2B,SACjC;QACD,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC;KACzG,CAAC;AACN,CAAC;AA7BD,4BA6BC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/validate/validate.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;AAElC,oDAAoD;AAIpD,iFAA8E;AAC9E,yEAAsE;AACtE,+DAA4D;AAG5D,sDAAwD;AAExD,SAAsB,QAAQ,CAC1B,YAA0B,EAC1B,kBAAsC;;QAEtC,MAAM,eAAe,GAAwC,MAAM,oCAAmB,CAAC,uBAAuB,CAC1G,YAAY,EACZ,kBAAkB,CACrB,CAAC;QAEF,IAAI,eAAe,KAAK,SAAS,EAAE;YAC/B,OAAO;gBACH,WAAW,EAAE,EAAE;gBACf,cAAc,EAAE,KAAK;aACxB,CAAC;SACL;QAED,IAAI,2BAAyC,CAAC;QAE9C,IACI,kBAAkB,CAAC,sBAAsB;YACzC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,EAC1G;YACE,2BAA2B,GAAG,MAAM,IAAA,mDAAwB,EACxD,kBAAkB,EAClB,eAAe,CAAC,mBAAmB,EACnC,oCAAmB,CAAC,YAAY,CAAC,YAAY,CAAC,CACjD,CAAC;SACL;aAAM;YACH,2BAA2B,GAAG,EAAE,CAAC;SACpC;QAED,OAAO;YACH,WAAW,EAAE;gBACT,GAAG,CAAC,MAAM,IAAA,2DAA4B,EAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;gBACzE,GAAG,CAAC,MAAM,IAAA,yCAAmB,EAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;gBAChE,GAAG,2BAA2B;aACjC;YACD,cAAc,EACV,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC;SACzG,CAAC;IACN,CAAC;CAAA;AAxCD,4BAwCC"}
@@ -1,4 +1,4 @@
1
1
  import { Diagnostic } from "vscode-languageserver-types";
2
2
  import { TextDocument } from "vscode-languageserver-textdocument";
3
3
  import { ValidationSettings } from "./validationSettings";
4
- export declare function validateDuplicateIdentifiers(textDocument: TextDocument, validationSettings: ValidationSettings): ReadonlyArray<Diagnostic>;
4
+ export declare function validateDuplicateIdentifiers(textDocument: TextDocument, validationSettings: ValidationSettings): Promise<ReadonlyArray<Diagnostic>>;
@@ -1,84 +1,73 @@
1
1
  "use strict";
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
- var __read = (this && this.__read) || function (o, n) {
5
- var m = typeof Symbol === "function" && o[Symbol.iterator];
6
- if (!m) return o;
7
- var i = m.call(o), r, ar = [], e;
8
- try {
9
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
10
- }
11
- catch (error) { e = { error: error }; }
12
- finally {
13
- try {
14
- if (r && !r.done && (m = i["return"])) m.call(i);
15
- }
16
- finally { if (e) throw e.error; }
17
- }
18
- return ar;
19
- };
20
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
21
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
22
- if (ar || !(i in from)) {
23
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
24
- ar[i] = from[i];
25
- }
26
- }
27
- return to.concat(ar || Array.prototype.slice.call(from));
28
- };
29
- var __values = (this && this.__values) || function(o) {
30
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
31
- if (m) return m.call(o);
32
- if (o && typeof o.length === "number") return {
33
- next: function () {
34
- if (o && i >= o.length) o = void 0;
35
- return { value: o && o[i++], done: !o };
36
- }
37
- };
38
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
4
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
+ return new (P || (P = Promise))(function (resolve, reject) {
7
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
11
+ });
39
12
  };
40
13
  Object.defineProperty(exports, "__esModule", { value: true });
41
14
  exports.validateDuplicateIdentifiers = void 0;
42
- var PQP = require("@microsoft/powerquery-parser");
43
- var vscode_languageserver_types_1 = require("vscode-languageserver-types");
44
- var parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
45
- var localization_1 = require("../localization");
46
- var workspaceCache_1 = require("../workspaceCache");
47
- var diagnosticErrorCode_1 = require("../diagnosticErrorCode");
48
- var __1 = require("..");
15
+ const PQP = require("@microsoft/powerquery-parser");
16
+ const vscode_languageserver_types_1 = require("vscode-languageserver-types");
17
+ const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
18
+ const localization_1 = require("../localization");
19
+ const diagnosticErrorCode_1 = require("../diagnosticErrorCode");
20
+ const __1 = require("..");
21
+ const workspaceCache_1 = require("../workspaceCache");
49
22
  function validateDuplicateIdentifiers(textDocument, validationSettings) {
50
- if (!validationSettings.checkForDuplicateIdentifiers) {
51
- return [];
52
- }
53
- var cacheItem = workspaceCache_1.WorkspaceCacheUtils.getOrCreateParse(textDocument, validationSettings);
54
- var maybeNodeIdMapCollection;
55
- if (PQP.TaskUtils.isParseStageOk(cacheItem)) {
56
- maybeNodeIdMapCollection = cacheItem.nodeIdMapCollection;
57
- }
58
- else if (PQP.TaskUtils.isParseStageParseError(cacheItem)) {
59
- maybeNodeIdMapCollection = cacheItem.nodeIdMapCollection;
60
- }
61
- if (maybeNodeIdMapCollection === undefined) {
62
- return [];
63
- }
64
- var documentUri = textDocument.uri;
65
- var nodeIdMapCollection = maybeNodeIdMapCollection;
66
- return __spreadArray(__spreadArray(__spreadArray([], __read(validateDuplicateIdentifiersForLetExpresion(documentUri, nodeIdMapCollection, validationSettings)), false), __read(validateDuplicateIdentifiersForRecord(documentUri, nodeIdMapCollection, validationSettings)), false), __read(validateDuplicateIdentifiersForSection(documentUri, nodeIdMapCollection, validationSettings)), false);
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ if (!validationSettings.checkForDuplicateIdentifiers) {
25
+ return [];
26
+ }
27
+ const maybeParsePromise = yield workspaceCache_1.WorkspaceCacheUtils.getOrCreateParsePromise(textDocument, validationSettings);
28
+ if (maybeParsePromise === undefined) {
29
+ return [];
30
+ }
31
+ const triedParse = maybeParsePromise;
32
+ let maybeNodeIdMapCollection;
33
+ if (PQP.TaskUtils.isParseStageOk(triedParse)) {
34
+ maybeNodeIdMapCollection = triedParse.nodeIdMapCollection;
35
+ }
36
+ else if (PQP.TaskUtils.isParseStageParseError(triedParse)) {
37
+ maybeNodeIdMapCollection = triedParse.nodeIdMapCollection;
38
+ }
39
+ if (maybeNodeIdMapCollection === undefined) {
40
+ return [];
41
+ }
42
+ const documentUri = textDocument.uri;
43
+ const nodeIdMapCollection = maybeNodeIdMapCollection;
44
+ return [
45
+ ...validateDuplicateIdentifiersForLetExpresion(documentUri, nodeIdMapCollection, validationSettings),
46
+ ...validateDuplicateIdentifiersForRecord(documentUri, nodeIdMapCollection, validationSettings),
47
+ ...validateDuplicateIdentifiersForSection(documentUri, nodeIdMapCollection, validationSettings),
48
+ ];
49
+ });
67
50
  }
68
51
  exports.validateDuplicateIdentifiers = validateDuplicateIdentifiers;
69
52
  function validateDuplicateIdentifiersForLetExpresion(documentUri, nodeIdMapCollection, validationSettings) {
70
53
  var _a;
71
- var letIds = __spreadArray([], __read(((_a = nodeIdMapCollection.idsByNodeKind.get("LetExpression" /* LetExpression */)) !== null && _a !== void 0 ? _a : [])), false);
54
+ const letIds = [
55
+ ...((_a = nodeIdMapCollection.idsByNodeKind.get("LetExpression" /* LetExpression */)) !== null && _a !== void 0 ? _a : []),
56
+ ];
72
57
  return validateDuplicateIdentifiersForKeyValuePair(documentUri, nodeIdMapCollection, letIds, parser_1.NodeIdMapIterator.iterLetExpression, validationSettings);
73
58
  }
74
59
  function validateDuplicateIdentifiersForRecord(documentUri, nodeIdMapCollection, validationSettings) {
75
60
  var _a, _b, _c;
76
- var recordIds = __spreadArray(__spreadArray(__spreadArray([], __read(((_a = nodeIdMapCollection.idsByNodeKind.get("RecordExpression" /* RecordExpression */)) !== null && _a !== void 0 ? _a : [])), false), __read(((_b = nodeIdMapCollection.idsByNodeKind.get("RecordLiteral" /* RecordLiteral */)) !== null && _b !== void 0 ? _b : [])), false), __read(((_c = nodeIdMapCollection.idsByNodeKind.get("RecordType" /* RecordType */)) !== null && _c !== void 0 ? _c : [])), false);
61
+ const recordIds = [
62
+ ...((_a = nodeIdMapCollection.idsByNodeKind.get("RecordExpression" /* RecordExpression */)) !== null && _a !== void 0 ? _a : []),
63
+ ...((_b = nodeIdMapCollection.idsByNodeKind.get("RecordLiteral" /* RecordLiteral */)) !== null && _b !== void 0 ? _b : []),
64
+ ...((_c = nodeIdMapCollection.idsByNodeKind.get("RecordType" /* RecordType */)) !== null && _c !== void 0 ? _c : []),
65
+ ];
77
66
  return validateDuplicateIdentifiersForKeyValuePair(documentUri, nodeIdMapCollection, recordIds, parser_1.NodeIdMapIterator.iterRecord, validationSettings);
78
67
  }
79
68
  function validateDuplicateIdentifiersForSection(documentUri, nodeIdMapCollection, validationSettings) {
80
69
  var _a;
81
- var recordIds = __spreadArray([], __read(((_a = nodeIdMapCollection.idsByNodeKind.get("Section" /* Section */)) !== null && _a !== void 0 ? _a : [])), false);
70
+ const recordIds = [...((_a = nodeIdMapCollection.idsByNodeKind.get("Section" /* Section */)) !== null && _a !== void 0 ? _a : [])];
82
71
  return validateDuplicateIdentifiersForKeyValuePair(documentUri, nodeIdMapCollection, recordIds, parser_1.NodeIdMapIterator.iterSection, validationSettings);
83
72
  }
84
73
  // Generalized logic for iterating over some collection and their children, essentially by doing:
@@ -86,78 +75,44 @@ function validateDuplicateIdentifiersForSection(documentUri, nodeIdMapCollection
86
75
  // for childOfNode in iterNodeFn(node):
87
76
  // ...
88
77
  function validateDuplicateIdentifiersForKeyValuePair(documentUri, nodeIdMapCollection, nodeIds, iterNodeFn, validationSettings) {
89
- var e_1, _a, e_2, _b, e_3, _c;
90
78
  if (!nodeIds.length) {
91
79
  return [];
92
80
  }
93
- var result = [];
94
- try {
95
- for (var nodeIds_1 = __values(nodeIds), nodeIds_1_1 = nodeIds_1.next(); !nodeIds_1_1.done; nodeIds_1_1 = nodeIds_1.next()) {
96
- var nodeId = nodeIds_1_1.value;
97
- var node = parser_1.NodeIdMapUtils.assertGetXor(nodeIdMapCollection, nodeId);
98
- var duplicateFieldsByKey = new Map();
99
- var knownFieldByKey = new Map();
100
- try {
101
- for (var _d = (e_2 = void 0, __values(iterNodeFn(nodeIdMapCollection, node))), _e = _d.next(); !_e.done; _e = _d.next()) {
102
- var field = _e.value;
103
- var keyLiteral = field.normalizedKeyLiteral;
104
- var maybeDuplicateFields = duplicateFieldsByKey.get(keyLiteral);
105
- var maybeKnownField = knownFieldByKey.get(keyLiteral);
106
- if (maybeDuplicateFields) {
107
- maybeDuplicateFields.push(field);
108
- }
109
- else if (maybeKnownField) {
110
- duplicateFieldsByKey.set(keyLiteral, [field, maybeKnownField]);
111
- }
112
- else {
113
- knownFieldByKey.set(keyLiteral, field);
114
- }
115
- }
116
- }
117
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
118
- finally {
119
- try {
120
- if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
121
- }
122
- finally { if (e_2) throw e_2.error; }
81
+ const result = [];
82
+ for (const nodeId of nodeIds) {
83
+ const node = parser_1.NodeIdMapUtils.assertGetXor(nodeIdMapCollection, nodeId);
84
+ const duplicateFieldsByKey = new Map();
85
+ const knownFieldByKey = new Map();
86
+ for (const field of iterNodeFn(nodeIdMapCollection, node)) {
87
+ const keyLiteral = field.normalizedKeyLiteral;
88
+ const maybeDuplicateFields = duplicateFieldsByKey.get(keyLiteral);
89
+ const maybeKnownField = knownFieldByKey.get(keyLiteral);
90
+ if (maybeDuplicateFields) {
91
+ maybeDuplicateFields.push(field);
123
92
  }
124
- try {
125
- for (var _f = (e_3 = void 0, __values(duplicateFieldsByKey.values())), _g = _f.next(); !_g.done; _g = _f.next()) {
126
- var duplicates = _g.value;
127
- var numFields = duplicates.length;
128
- var asRelatedInformation = duplicates.map(function (keyValuePair) { return ({
129
- location: {
130
- uri: documentUri,
131
- range: __1.PositionUtils.createRangeFromTokenRange(keyValuePair.key.tokenRange),
132
- },
133
- message: createDuplicateIdentifierDiagnosticMessage(keyValuePair, validationSettings),
134
- }); });
135
- var _loop_1 = function (index) {
136
- var duplicate = duplicates[index];
137
- // Grab all DiagnosticRelatedInformation for a given key besides the one we're iterating over.
138
- var relatedInformation = asRelatedInformation.filter(function (_, relatedIndex) { return index !== relatedIndex; });
139
- result.push(createDuplicateIdentifierDiagnostic(duplicate, relatedInformation, validationSettings));
140
- };
141
- for (var index = 0; index < numFields; index += 1) {
142
- _loop_1(index);
143
- }
144
- }
93
+ else if (maybeKnownField) {
94
+ duplicateFieldsByKey.set(keyLiteral, [field, maybeKnownField]);
145
95
  }
146
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
147
- finally {
148
- try {
149
- if (_g && !_g.done && (_c = _f.return)) _c.call(_f);
150
- }
151
- finally { if (e_3) throw e_3.error; }
96
+ else {
97
+ knownFieldByKey.set(keyLiteral, field);
152
98
  }
153
99
  }
154
- }
155
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
156
- finally {
157
- try {
158
- if (nodeIds_1_1 && !nodeIds_1_1.done && (_a = nodeIds_1.return)) _a.call(nodeIds_1);
100
+ for (const duplicates of duplicateFieldsByKey.values()) {
101
+ const numFields = duplicates.length;
102
+ const asRelatedInformation = duplicates.map((keyValuePair) => ({
103
+ location: {
104
+ uri: documentUri,
105
+ range: __1.PositionUtils.createRangeFromTokenRange(keyValuePair.key.tokenRange),
106
+ },
107
+ message: createDuplicateIdentifierDiagnosticMessage(keyValuePair, validationSettings),
108
+ }));
109
+ for (let index = 0; index < numFields; index += 1) {
110
+ const duplicate = duplicates[index];
111
+ // Grab all DiagnosticRelatedInformation for a given key besides the one we're iterating over.
112
+ const relatedInformation = asRelatedInformation.filter((_, relatedIndex) => index !== relatedIndex);
113
+ result.push(createDuplicateIdentifierDiagnostic(duplicate, relatedInformation, validationSettings));
114
+ }
159
115
  }
160
- finally { if (e_1) throw e_1.error; }
161
116
  }
162
117
  return result;
163
118
  }
@@ -166,7 +121,7 @@ function createDuplicateIdentifierDiagnostic(keyValuePair, relatedInformation, v
166
121
  code: diagnosticErrorCode_1.DiagnosticErrorCode.DuplicateIdentifier,
167
122
  message: createDuplicateIdentifierDiagnosticMessage(keyValuePair, validationSettings),
168
123
  range: __1.PositionUtils.createRangeFromTokenRange(keyValuePair.key.tokenRange),
169
- relatedInformation: relatedInformation,
124
+ relatedInformation,
170
125
  severity: vscode_languageserver_types_1.DiagnosticSeverity.Error,
171
126
  source: validationSettings.source,
172
127
  };
@@ -1 +1 @@
1
- {"version":3,"file":"validateDuplicateIdentifiers.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/validate/validateDuplicateIdentifiers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateDuplicateIdentifiers.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/validate/validateDuplicateIdentifiers.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,4 @@ import { Diagnostic } from "vscode-languageserver-types";
2
2
  import { NodeIdMap } from "@microsoft/powerquery-parser/lib/powerquery-parser/parser";
3
3
  import { Inspection } from "..";
4
4
  import { ValidationSettings } from "./validationSettings";
5
- export declare function validateFunctionExpression(validationSettings: ValidationSettings, nodeIdMapCollection: NodeIdMap.Collection, maybeCache?: Inspection.TypeCache): Diagnostic[];
5
+ export declare function validateFunctionExpression(validationSettings: ValidationSettings, nodeIdMapCollection: NodeIdMap.Collection, maybeCache?: Inspection.TypeCache): Promise<Diagnostic[]>;
@@ -1,110 +1,70 @@
1
1
  "use strict";
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
- var __values = (this && this.__values) || function(o) {
5
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
6
- if (m) return m.call(o);
7
- if (o && typeof o.length === "number") return {
8
- next: function () {
9
- if (o && i >= o.length) o = void 0;
10
- return { value: o && o[i++], done: !o };
11
- }
12
- };
13
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
14
- };
15
- var __read = (this && this.__read) || function (o, n) {
16
- var m = typeof Symbol === "function" && o[Symbol.iterator];
17
- if (!m) return o;
18
- var i = m.call(o), r, ar = [], e;
19
- try {
20
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
21
- }
22
- catch (error) { e = { error: error }; }
23
- finally {
24
- try {
25
- if (r && !r.done && (m = i["return"])) m.call(i);
26
- }
27
- finally { if (e) throw e.error; }
28
- }
29
- return ar;
30
- };
31
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
32
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
33
- if (ar || !(i in from)) {
34
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
35
- ar[i] = from[i];
36
- }
37
- }
38
- return to.concat(ar || Array.prototype.slice.call(from));
4
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
+ return new (P || (P = Promise))(function (resolve, reject) {
7
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
11
+ });
39
12
  };
40
13
  Object.defineProperty(exports, "__esModule", { value: true });
41
14
  exports.validateFunctionExpression = void 0;
42
- var powerquery_parser_1 = require("@microsoft/powerquery-parser");
43
- var language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
44
- var vscode_languageserver_types_1 = require("vscode-languageserver-types");
45
- var parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
46
- var __1 = require("..");
47
- var localization_1 = require("../localization");
48
- var diagnosticErrorCode_1 = require("../diagnosticErrorCode");
15
+ const powerquery_parser_1 = require("@microsoft/powerquery-parser");
16
+ const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
17
+ const vscode_languageserver_types_1 = require("vscode-languageserver-types");
18
+ const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
19
+ const __1 = require("..");
20
+ const localization_1 = require("../localization");
21
+ const diagnosticErrorCode_1 = require("../diagnosticErrorCode");
49
22
  function validateFunctionExpression(validationSettings, nodeIdMapCollection, maybeCache) {
50
- var e_1, _a;
51
- var maybeInvokeExpressionIds = nodeIdMapCollection.idsByNodeKind.get("FunctionExpression" /* FunctionExpression */);
52
- if (maybeInvokeExpressionIds === undefined) {
53
- return [];
54
- }
55
- var result = [];
56
- try {
57
- for (var maybeInvokeExpressionIds_1 = __values(maybeInvokeExpressionIds), maybeInvokeExpressionIds_1_1 = maybeInvokeExpressionIds_1.next(); !maybeInvokeExpressionIds_1_1.done; maybeInvokeExpressionIds_1_1 = maybeInvokeExpressionIds_1.next()) {
58
- var nodeId = maybeInvokeExpressionIds_1_1.value;
59
- var triedInvokeExpression = __1.Inspection.tryInvokeExpression(validationSettings, nodeIdMapCollection, nodeId, maybeCache);
60
- if (powerquery_parser_1.ResultUtils.isError(triedInvokeExpression)) {
61
- throw triedInvokeExpression;
62
- }
63
- result.push.apply(result, __spreadArray([], __read(invokeExpressionToDiagnostics(validationSettings, nodeIdMapCollection, triedInvokeExpression.value)), false));
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const maybeInvokeExpressionIds = nodeIdMapCollection.idsByNodeKind.get("FunctionExpression" /* FunctionExpression */);
25
+ if (maybeInvokeExpressionIds === undefined) {
26
+ return [];
64
27
  }
65
- }
66
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
67
- finally {
68
- try {
69
- if (maybeInvokeExpressionIds_1_1 && !maybeInvokeExpressionIds_1_1.done && (_a = maybeInvokeExpressionIds_1.return)) _a.call(maybeInvokeExpressionIds_1);
28
+ const inspectionTasks = [];
29
+ for (const nodeId of maybeInvokeExpressionIds) {
30
+ inspectionTasks.push(__1.Inspection.tryInvokeExpression(validationSettings, nodeIdMapCollection, nodeId, maybeCache));
70
31
  }
71
- finally { if (e_1) throw e_1.error; }
72
- }
73
- return result;
32
+ const inspections = yield Promise.all(inspectionTasks);
33
+ const invokeExpressionTasks = [];
34
+ for (const inspection of inspections) {
35
+ if (powerquery_parser_1.ResultUtils.isError(inspection)) {
36
+ throw inspection;
37
+ }
38
+ invokeExpressionTasks.push(invokeExpressionToDiagnostics(validationSettings, nodeIdMapCollection, inspection.value));
39
+ }
40
+ return (yield Promise.all(invokeExpressionTasks)).flat();
41
+ });
74
42
  }
75
43
  exports.validateFunctionExpression = validateFunctionExpression;
76
44
  function invokeExpressionToDiagnostics(validationSettings, nodeIdMapCollection, inspected) {
77
- var e_2, _a;
78
- var result = [];
79
- if (inspected.maybeArguments !== undefined) {
80
- var invokeExpressionArguments = inspected.maybeArguments;
81
- var givenArguments = inspected.maybeArguments.givenArguments;
82
- var invokeExpressionRange = powerquery_parser_1.Assert.asDefined(__1.PositionUtils.createRangeFromXorNode(nodeIdMapCollection, inspected.invokeExpressionXorNode), "expected at least one leaf node under InvokeExpression");
83
- var maybeFunctionName = parser_1.NodeIdMapUtils.maybeInvokeExpressionIdentifierLiteral(nodeIdMapCollection, inspected.invokeExpressionXorNode.node.id);
84
- try {
85
- for (var _b = __values(invokeExpressionArguments.typeChecked.invalid.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
86
- var _d = __read(_c.value, 2), argIndex = _d[0], mismatch = _d[1];
87
- var maybeGivenArgumentRange = __1.PositionUtils.createRangeFromXorNode(nodeIdMapCollection, givenArguments[argIndex]);
88
- result.push(createDiagnosticForArgumentMismatch(validationSettings, mismatch, maybeFunctionName, invokeExpressionRange, maybeGivenArgumentRange));
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const result = [];
47
+ if (inspected.maybeArguments !== undefined) {
48
+ const invokeExpressionArguments = inspected.maybeArguments;
49
+ const givenArguments = inspected.maybeArguments.givenArguments;
50
+ const invokeExpressionRange = powerquery_parser_1.Assert.asDefined(yield __1.PositionUtils.createRangeFromXorNode(nodeIdMapCollection, inspected.invokeExpressionXorNode), "expected at least one leaf node under InvokeExpression");
51
+ const maybeFunctionName = parser_1.NodeIdMapUtils.maybeInvokeExpressionIdentifierLiteral(nodeIdMapCollection, inspected.invokeExpressionXorNode.node.id);
52
+ let result = [];
53
+ result = result.concat(yield powerquery_parser_1.ArrayUtils.mapAsync([...invokeExpressionArguments.typeChecked.invalid.entries()], ([argIndex, mismatch]) => __awaiter(this, void 0, void 0, function* () {
54
+ const maybeGivenArgumentRange = yield __1.PositionUtils.createRangeFromXorNode(nodeIdMapCollection, givenArguments[argIndex]);
55
+ return createDiagnosticForArgumentMismatch(validationSettings, mismatch, maybeFunctionName, invokeExpressionRange, maybeGivenArgumentRange);
56
+ })));
57
+ const numGivenArguments = invokeExpressionArguments.givenArguments.length;
58
+ if (numGivenArguments < invokeExpressionArguments.numMinExpectedArguments ||
59
+ numGivenArguments > invokeExpressionArguments.numMaxExpectedArguments) {
60
+ result.push(createDiagnosticForArgumentNumberMismatch(validationSettings, invokeExpressionRange, invokeExpressionArguments.numMinExpectedArguments, invokeExpressionArguments.numMaxExpectedArguments, numGivenArguments));
89
61
  }
90
62
  }
91
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
92
- finally {
93
- try {
94
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
95
- }
96
- finally { if (e_2) throw e_2.error; }
97
- }
98
- var numGivenArguments = invokeExpressionArguments.givenArguments.length;
99
- if (numGivenArguments < invokeExpressionArguments.numMinExpectedArguments ||
100
- numGivenArguments > invokeExpressionArguments.numMaxExpectedArguments) {
101
- result.push(createDiagnosticForArgumentNumberMismatch(validationSettings, invokeExpressionRange, invokeExpressionArguments.numMinExpectedArguments, invokeExpressionArguments.numMaxExpectedArguments, numGivenArguments));
102
- }
103
- }
104
- return result;
63
+ return result;
64
+ });
105
65
  }
106
66
  function createDiagnosticForArgumentNumberMismatch(validationSettings, invokeExpressionRange, numMin, numMax, numGiven) {
107
- var templates = localization_1.LocalizationUtils.getLocalizationTemplates(validationSettings.locale);
67
+ const templates = localization_1.LocalizationUtils.getLocalizationTemplates(validationSettings.locale);
108
68
  return {
109
69
  code: diagnosticErrorCode_1.DiagnosticErrorCode.InvokeArgumentCountMismatch,
110
70
  message: localization_1.Localization.error_validation_invokeExpression_numArgs(templates, numMin, numMax, numGiven),
@@ -115,14 +75,14 @@ function createDiagnosticForArgumentNumberMismatch(validationSettings, invokeExp
115
75
  }
116
76
  function createDiagnosticForArgumentMismatch(validationSettings, mismatch, maybeFunctionName, invokeExpressionRange, maybeGivenArgumentRange) {
117
77
  var _a;
118
- var range;
119
- var message;
120
- var parameter = mismatch.expected;
121
- var argName = parameter.nameLiteral;
122
- var expected = language_1.TypeUtils.nameOfTypeKind((_a = parameter.maybeType) !== null && _a !== void 0 ? _a : language_1.Type.AnyInstance.kind);
78
+ let range;
79
+ let message;
80
+ const parameter = mismatch.expected;
81
+ const argName = parameter.nameLiteral;
82
+ const expected = language_1.TypeUtils.nameOfTypeKind((_a = parameter.maybeType) !== null && _a !== void 0 ? _a : language_1.Type.AnyInstance.kind);
123
83
  // An argument containing at least one leaf node was given.
124
84
  if (maybeGivenArgumentRange) {
125
- var actual = language_1.TypeUtils.nameOfTypeKind(powerquery_parser_1.Assert.asDefined(mismatch.actual).kind);
85
+ const actual = language_1.TypeUtils.nameOfTypeKind(powerquery_parser_1.Assert.asDefined(mismatch.actual).kind);
126
86
  range = maybeGivenArgumentRange;
127
87
  message = createTypeMismatchMessage(validationSettings.locale, maybeFunctionName, argName, expected, actual);
128
88
  }
@@ -132,18 +92,18 @@ function createDiagnosticForArgumentMismatch(validationSettings, mismatch, maybe
132
92
  }
133
93
  return {
134
94
  code: diagnosticErrorCode_1.DiagnosticErrorCode.InvokeArgumentTypeMismatch,
135
- message: message,
136
- range: range,
95
+ message,
96
+ range,
137
97
  severity: vscode_languageserver_types_1.DiagnosticSeverity.Error,
138
98
  source: validationSettings.source,
139
99
  };
140
100
  }
141
101
  function createMissingMandatoryMessage(locale, maybeFunctionName, argName) {
142
- var templates = localization_1.LocalizationUtils.getLocalizationTemplates(locale);
102
+ const templates = localization_1.LocalizationUtils.getLocalizationTemplates(locale);
143
103
  return localization_1.Localization.error_validation_invokeExpression_missingMandatory(templates, maybeFunctionName, argName);
144
104
  }
145
105
  function createTypeMismatchMessage(locale, maybeFunctionName, argName, expected, actual) {
146
- var templates = localization_1.LocalizationUtils.getLocalizationTemplates(locale);
106
+ const templates = localization_1.LocalizationUtils.getLocalizationTemplates(locale);
147
107
  return localization_1.Localization.error_validation_invokeExpression_typeMismatch(templates, maybeFunctionName, argName, expected, actual);
148
108
  }
149
109
  //# sourceMappingURL=validateFunctionExpression.js.map