@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,14 +1,13 @@
1
1
  import * as PQP from "@microsoft/powerquery-parser";
2
- import { TextDocument, TextDocumentContentChangeEvent } from "vscode-languageserver-textdocument";
2
+ import type { TextDocument, TextDocumentContentChangeEvent } from "vscode-languageserver-textdocument";
3
3
  import type { Position } from "vscode-languageserver-types";
4
- import type { CacheItem, InspectionCacheItem, InspectionTask, LexCacheItem, ParseCacheItem } from "./workspaceCache";
4
+ import { CacheCollection } from "./workspaceCache";
5
5
  import { Inspection } from "..";
6
6
  import { InspectionSettings } from "../inspectionSettings";
7
- export declare function assertIsInspectionTask(cacheItem: CacheItem): asserts cacheItem is InspectionTask;
8
- export declare function getOrCreateTypeCache(textDocument: TextDocument): Inspection.TypeCache;
9
- export declare function getOrCreateLex(textDocument: TextDocument, lexSettings: PQP.LexSettings): LexCacheItem;
10
- export declare function getOrCreateParse(textDocument: TextDocument, lexSettings: PQP.LexSettings & PQP.ParseSettings): ParseCacheItem;
11
- export declare function getOrCreateInspection(textDocument: TextDocument, inspectionSettings: InspectionSettings, position: Position): InspectionCacheItem;
12
7
  export declare function close(textDocument: TextDocument): void;
8
+ export declare function getTypeCache(textDocument: TextDocument): Inspection.TypeCache;
9
+ export declare function getOrCreateCacheCollection(textDocument: TextDocument): CacheCollection;
10
+ export declare function getOrCreateLexPromise(textDocument: TextDocument, lexSettings: PQP.LexSettings): Promise<PQP.Task.TriedLexTask>;
11
+ export declare function getOrCreateParsePromise(textDocument: TextDocument, lexAndParseSettings: PQP.LexSettings & PQP.ParseSettings): Promise<PQP.Task.TriedParseTask | undefined>;
12
+ export declare function getOrCreateInspectedPromise(textDocument: TextDocument, inspectionSettings: InspectionSettings, position: Position): Promise<Inspection.Inspected | undefined>;
13
13
  export declare function update(textDocument: TextDocument, _changes: ReadonlyArray<TextDocumentContentChangeEvent>, _version: number): void;
14
- export declare function isInspectionTask(cacheItem: CacheItem): cacheItem is InspectionTask;
@@ -1,174 +1,120 @@
1
1
  "use strict";
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
- var __assign = (this && this.__assign) || function () {
5
- __assign = Object.assign || function(t) {
6
- for (var s, i = 1, n = arguments.length; i < n; i++) {
7
- s = arguments[i];
8
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9
- t[p] = s[p];
10
- }
11
- return t;
12
- };
13
- return __assign.apply(this, arguments);
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;
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
+ });
30
12
  };
31
13
  Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.isInspectionTask = exports.update = exports.close = exports.getOrCreateInspection = exports.getOrCreateParse = exports.getOrCreateLex = exports.getOrCreateTypeCache = exports.assertIsInspectionTask = void 0;
33
- var PQP = require("@microsoft/powerquery-parser");
34
- var __1 = require("..");
35
- var inspection_1 = require("../inspection");
36
- function assertIsInspectionTask(cacheItem) {
37
- if (!isInspectionTask(cacheItem)) {
38
- throw new PQP.CommonError.InvariantError("expected cacheItem to be an InspectionCacheItem", {
39
- expectedStage: "Inspection",
40
- actualStage: cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.stage,
41
- });
42
- }
43
- }
44
- exports.assertIsInspectionTask = assertIsInspectionTask;
45
- function getOrCreateTypeCache(textDocument) {
46
- var cacheKey = createCacheKey(textDocument);
47
- var cacheVersion = textDocument.version;
48
- var cacheCollection = getOrCreateCacheCollection(cacheKey, cacheVersion);
49
- return cacheCollection.typeCache;
50
- }
51
- exports.getOrCreateTypeCache = getOrCreateTypeCache;
52
- function getOrCreateLex(textDocument, lexSettings) {
53
- var cacheKey = createCacheKey(textDocument);
54
- var cacheVersion = textDocument.version;
55
- var cacheCollection = getOrCreateCacheCollection(cacheKey, cacheVersion);
56
- var _a = __read(getOrCreateLexCacheItem(cacheCollection, textDocument, lexSettings), 2), updatedCacheCollection = _a[0], lexCacheItem = _a[1];
57
- CacheCollectionByCacheKey.set(cacheKey, updatedCacheCollection);
58
- return lexCacheItem;
59
- }
60
- exports.getOrCreateLex = getOrCreateLex;
61
- function getOrCreateParse(textDocument, lexSettings) {
62
- var cacheKey = createCacheKey(textDocument);
63
- var cacheVersion = textDocument.version;
64
- var cacheCollection = getOrCreateCacheCollection(cacheKey, cacheVersion);
65
- var _a = __read(getOrCreateParseCacheItem(cacheCollection, textDocument, lexSettings), 2), updatedCacheCollection = _a[0], parseCacheItem = _a[1];
66
- CacheCollectionByCacheKey.set(cacheKey, updatedCacheCollection);
67
- return parseCacheItem;
68
- }
69
- exports.getOrCreateParse = getOrCreateParse;
70
- function getOrCreateInspection(textDocument, inspectionSettings, position) {
71
- var cacheKey = createCacheKey(textDocument);
72
- var cacheVersion = textDocument.version;
73
- var cacheCollection = getOrCreateCacheCollection(cacheKey, cacheVersion);
74
- var _a = __read(getOrCreateInspectionCacheItem(cacheCollection, textDocument, inspectionSettings, position), 2), updatedCacheCollection = _a[0], inspectionCacheItem = _a[1];
75
- CacheCollectionByCacheKey.set(cacheKey, updatedCacheCollection);
76
- return inspectionCacheItem;
77
- }
78
- exports.getOrCreateInspection = getOrCreateInspection;
79
- // TODO: is the position key valid for a single intellisense operation,
80
- // or would it be the same for multiple invocations?
14
+ exports.update = exports.getOrCreateInspectedPromise = exports.getOrCreateParsePromise = exports.getOrCreateLexPromise = exports.getOrCreateCacheCollection = exports.getTypeCache = exports.close = void 0;
15
+ const PQP = require("@microsoft/powerquery-parser");
16
+ const __1 = require("..");
17
+ const inspection_1 = require("../inspection");
18
+ const CacheCollectionByCacheKey = new Map();
81
19
  function close(textDocument) {
82
- var cacheKey = createCacheKey(textDocument);
83
- CacheCollectionByCacheKey.delete(cacheKey);
20
+ const collectionCacheKey = createCollectionCacheKey(textDocument);
21
+ CacheCollectionByCacheKey.delete(collectionCacheKey);
84
22
  }
85
23
  exports.close = close;
86
- function update(textDocument, _changes, _version) {
87
- // TODO: support incremental lexing
88
- // TODO: premptively prepare cache on background thread?
89
- // TODO: use document version
90
- close(textDocument);
91
- }
92
- exports.update = update;
93
- function isInspectionTask(cacheItem) {
94
- return (cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.stage) === "Inspection";
24
+ function getTypeCache(textDocument) {
25
+ const cacheCollection = getOrCreateCacheCollection(textDocument);
26
+ return cacheCollection.typeCache;
95
27
  }
96
- exports.isInspectionTask = isInspectionTask;
97
- var CacheCollectionByCacheKey = new Map();
98
- function getOrCreateCacheCollection(cacheKey, cacheVersion) {
99
- var maybeCollection = CacheCollectionByCacheKey.get(cacheKey);
100
- if (maybeCollection !== undefined && maybeCollection.version === cacheVersion) {
101
- return maybeCollection;
102
- }
103
- else {
104
- var cacheCollection = createEmptyCollection(cacheVersion);
105
- CacheCollectionByCacheKey.set(cacheKey, cacheCollection);
106
- return cacheCollection;
28
+ exports.getTypeCache = getTypeCache;
29
+ function getOrCreateCacheCollection(textDocument) {
30
+ const cacheKey = createCollectionCacheKey(textDocument);
31
+ const maybeCollection = CacheCollectionByCacheKey.get(cacheKey);
32
+ if (maybeCollection !== undefined) {
33
+ if (textDocument.version === maybeCollection.version) {
34
+ return maybeCollection;
35
+ }
36
+ else {
37
+ close(textDocument);
38
+ }
107
39
  }
40
+ const cacheCollection = createEmptyCollection(textDocument.version);
41
+ CacheCollectionByCacheKey.set(cacheKey, cacheCollection);
42
+ return cacheCollection;
108
43
  }
109
- function getOrCreateLexCacheItem(cacheCollection, textDocument, lexSettings) {
44
+ exports.getOrCreateCacheCollection = getOrCreateCacheCollection;
45
+ function getOrCreateLexPromise(textDocument, lexSettings) {
46
+ const cacheCollection = getOrCreateCacheCollection(textDocument);
110
47
  if (cacheCollection.maybeLex) {
111
- return [cacheCollection, cacheCollection.maybeLex];
48
+ return cacheCollection.maybeLex;
112
49
  }
113
- var lexCacheItem = PQP.TaskUtils.tryLex(lexSettings, textDocument.getText());
114
- var updatedCacheCollection = __assign(__assign({}, cacheCollection), { maybeLex: lexCacheItem });
115
- return [updatedCacheCollection, lexCacheItem];
50
+ const lexPromise = Promise.resolve(PQP.TaskUtils.tryLex(lexSettings, textDocument.getText()));
51
+ cacheCollection.maybeLex = lexPromise;
52
+ return lexPromise;
116
53
  }
117
- function getOrCreateParseCacheItem(cacheCollection, textDocument, lexAndParseSettings) {
118
- if (cacheCollection.maybeParse) {
119
- return [cacheCollection, cacheCollection.maybeParse];
120
- }
121
- var _a = __read(getOrCreateLexCacheItem(cacheCollection, textDocument, lexAndParseSettings), 2), updatedCacheCollection = _a[0], lexCacheItem = _a[1];
122
- if (!PQP.TaskUtils.isLexStageOk(lexCacheItem)) {
123
- return [updateCacheCollectionAttribute(updatedCacheCollection, "maybeParse", lexCacheItem), lexCacheItem];
124
- }
125
- var parseCacheItem = PQP.TaskUtils.tryParse(lexAndParseSettings, lexCacheItem.lexerSnapshot);
126
- return [updateCacheCollectionAttribute(updatedCacheCollection, "maybeParse", parseCacheItem), parseCacheItem];
54
+ exports.getOrCreateLexPromise = getOrCreateLexPromise;
55
+ function getOrCreateParsePromise(textDocument, lexAndParseSettings) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const cacheCollection = getOrCreateCacheCollection(textDocument);
58
+ if (cacheCollection.maybeParse) {
59
+ return cacheCollection.maybeParse;
60
+ }
61
+ const maybeTriedLexPromise = getOrCreateLexPromise(textDocument, lexAndParseSettings);
62
+ const maybeTriedLex = yield maybeTriedLexPromise;
63
+ if (PQP.TaskUtils.isError(maybeTriedLex)) {
64
+ cacheCollection.maybeParse = Promise.resolve(undefined);
65
+ return undefined;
66
+ }
67
+ cacheCollection.maybeParse = PQP.TaskUtils.tryParse(lexAndParseSettings, maybeTriedLex.lexerSnapshot);
68
+ return cacheCollection.maybeParse;
69
+ });
127
70
  }
128
- function getOrCreateInspectionCacheItem(cacheCollection, textDocument, inspectionSettings, position) {
129
- var _a;
130
- if (cacheCollection.maybeInspectionByPosition) {
131
- var maybeInspectionByPosition = cacheCollection.maybeInspectionByPosition;
132
- var maybeInspection = maybeInspectionByPosition.get(position);
133
- if (maybeInspection) {
134
- return [cacheCollection, maybeInspection];
71
+ exports.getOrCreateParsePromise = getOrCreateParsePromise;
72
+ function getOrCreateInspectedPromise(textDocument, inspectionSettings, position) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ const cacheCollection = getOrCreateCacheCollection(textDocument);
75
+ const positionMapKey = createInspectionByPositionKey(position);
76
+ if (cacheCollection.inspectionByPosition.has(positionMapKey)) {
77
+ return cacheCollection.inspectionByPosition.get(positionMapKey);
135
78
  }
136
- }
137
- var _b = __read(getOrCreateParseCacheItem(cacheCollection, textDocument, inspectionSettings), 2), parseCacheCollection = _b[0], parseCacheItem = _b[1];
138
- var parseState;
139
- if (!PQP.TaskUtils.isParseStage(parseCacheItem) || PQP.TaskUtils.isParseStageCommonError(parseCacheItem)) {
140
- return [parseCacheCollection, parseCacheItem];
141
- }
142
- else if (PQP.TaskUtils.isParseStageOk(parseCacheItem)) {
143
- parseState = parseCacheItem.parseState;
144
- }
145
- else if (PQP.TaskUtils.isParseStageParseError(parseCacheItem)) {
146
- parseState = parseCacheItem.parseState;
147
- }
148
- else {
149
- throw new PQP.CommonError.InvariantError("this should never be reached, but 'never' doesn't catch it.");
150
- }
151
- var inspection = __1.Inspection.inspection(inspectionSettings, parseState, PQP.TaskUtils.isParseStageParseError(parseCacheItem) ? parseCacheItem.error : undefined, position, cacheCollection.typeCache);
152
- var inspectionCacheItem = __assign(__assign({}, inspection), { stage: "Inspection", version: textDocument.version, parseState: parseState });
153
- var updatedByPosition = new Map((_a = parseCacheCollection.maybeInspectionByPosition) !== null && _a !== void 0 ? _a : []);
154
- updatedByPosition.set(position, inspectionCacheItem);
155
- var updatedCacheCollection = updateCacheCollectionAttribute(parseCacheCollection, "maybeInspectionByPosition", updatedByPosition);
156
- return [updatedCacheCollection, inspectionCacheItem];
79
+ const maybeTriedParsePromise = getOrCreateParsePromise(textDocument, inspectionSettings);
80
+ const maybeTriedParse = yield maybeTriedParsePromise;
81
+ if (maybeTriedParse === undefined ||
82
+ !PQP.TaskUtils.isParseStage(maybeTriedParse) ||
83
+ PQP.TaskUtils.isParseStageCommonError(maybeTriedParse)) {
84
+ cacheCollection.inspectionByPosition.set(positionMapKey, undefined);
85
+ return undefined;
86
+ }
87
+ let parseState;
88
+ if (PQP.TaskUtils.isParseStageOk(maybeTriedParse)) {
89
+ parseState = maybeTriedParse.parseState;
90
+ }
91
+ else if (PQP.TaskUtils.isParseStageParseError(maybeTriedParse)) {
92
+ parseState = maybeTriedParse.parseState;
93
+ }
94
+ else {
95
+ throw PQP.Assert.isNever(maybeTriedParse);
96
+ }
97
+ return __1.Inspection.inspect(inspectionSettings, parseState, PQP.TaskUtils.isParseStageParseError(maybeTriedParse) ? maybeTriedParse.error : undefined, position, cacheCollection.typeCache);
98
+ });
157
99
  }
158
- function updateCacheCollectionAttribute(cacheCollection, key, value) {
159
- var _a;
160
- return __assign(__assign({}, cacheCollection), (_a = {}, _a[key] = value, _a));
100
+ exports.getOrCreateInspectedPromise = getOrCreateInspectedPromise;
101
+ function update(textDocument, _changes, _version) {
102
+ close(textDocument);
103
+ }
104
+ exports.update = update;
105
+ function createCollectionCacheKey(textDocument) {
106
+ return `${textDocument.uri}`;
161
107
  }
162
108
  function createEmptyCollection(version) {
163
109
  return {
164
- version: version,
165
110
  maybeLex: undefined,
166
111
  maybeParse: undefined,
167
- maybeInspectionByPosition: undefined,
112
+ inspectionByPosition: new Map(),
168
113
  typeCache: inspection_1.TypeCacheUtils.createEmptyCache(),
114
+ version,
169
115
  };
170
116
  }
171
- function createCacheKey(textDocument) {
172
- return textDocument.uri;
117
+ function createInspectionByPositionKey(position) {
118
+ return `${position.character};${position.line}`;
173
119
  }
174
120
  //# sourceMappingURL=workspaceCacheUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceCacheUtils.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/workspaceCache/workspaceCacheUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaceCacheUtils.js","sourceRoot":"","sources":["../../../src/powerquery-language-services/workspaceCache/workspaceCacheUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/powerquery-language-services",
3
- "version": "0.2.19",
3
+ "version": "0.3.3",
4
4
  "author": "Microsoft",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -37,7 +37,7 @@
37
37
  "eslint-plugin-prettier": "4.0.0",
38
38
  "eslint-plugin-promise": "6.0.0",
39
39
  "eslint-plugin-security": "1.4.0",
40
- "mocha": "9.1.3",
40
+ "mocha": "^9.2.0",
41
41
  "mocha-junit-reporter": "2.0.2",
42
42
  "mocha-multi-reporters": "1.5.1",
43
43
  "prettier": "2.5.1",
@@ -46,8 +46,8 @@
46
46
  "typescript": "4.5.4"
47
47
  },
48
48
  "dependencies": {
49
- "@microsoft/powerquery-formatter": "0.0.44",
50
- "@microsoft/powerquery-parser": "0.5.22",
49
+ "@microsoft/powerquery-formatter": "0.0.46",
50
+ "@microsoft/powerquery-parser": "0.6.4",
51
51
  "vscode-languageserver-textdocument": "1.0.3",
52
52
  "vscode-languageserver-types": "3.16.0"
53
53
  },
@@ -1,126 +0,0 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT license.
4
- var __assign = (this && this.__assign) || function () {
5
- __assign = Object.assign || function(t) {
6
- for (var s, i = 1, n = arguments.length; i < n; i++) {
7
- s = arguments[i];
8
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9
- t[p] = s[p];
10
- }
11
- return t;
12
- };
13
- return __assign.apply(this, arguments);
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));
39
- };
40
- Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.inspectTypeFieldProjection = void 0;
42
- var PQP = require("@microsoft/powerquery-parser");
43
- var language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
44
- var parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
45
- var common_1 = require("./common");
46
- var __1 = require("../../..");
47
- function inspectTypeFieldProjection(state, xorNode) {
48
- var _a;
49
- var _b;
50
- var trace = state.traceManager.entry("Type" /* Type */, inspectTypeFieldProjection.name, __1.TraceUtils.createXorNodeDetails(xorNode));
51
- (_b = state.maybeCancellationToken) === null || _b === void 0 ? void 0 : _b.throwIfCancelled();
52
- parser_1.XorNodeUtils.assertIsNodeKind(xorNode, "FieldProjection" /* FieldProjection */);
53
- var projectedFieldNames = parser_1.NodeIdMapIterator.iterFieldProjectionNames(state.nodeIdMapCollection, xorNode);
54
- var previousSibling = parser_1.NodeIdMapUtils.assertGetRecursiveExpressionPreviousSibling(state.nodeIdMapCollection, xorNode.node.id);
55
- var previousSiblingType = (0, common_1.inspectXor)(state, previousSibling);
56
- var isOptional = parser_1.NodeIdMapUtils.maybeUnboxNthChildIfAstChecked(state.nodeIdMapCollection, xorNode.node.id, 3, "Constant" /* Constant */) !== undefined;
57
- var result = inspectFieldProjectionHelper(previousSiblingType, projectedFieldNames, isOptional);
58
- trace.exit((_a = {}, _a["Result" /* Result */] = __1.TraceUtils.createTypeDetails(result), _a));
59
- return result;
60
- }
61
- exports.inspectTypeFieldProjection = inspectTypeFieldProjection;
62
- function inspectFieldProjectionHelper(previousSiblingType, projectedFieldNames, isOptional) {
63
- switch (previousSiblingType.kind) {
64
- case "Any" /* Any */: {
65
- var projectedFields = new Map(projectedFieldNames.map(function (fieldName) { return [fieldName, language_1.Type.AnyInstance]; }));
66
- return {
67
- kind: "Any" /* Any */,
68
- maybeExtendedKind: "AnyUnion" /* AnyUnion */,
69
- isNullable: previousSiblingType.isNullable,
70
- unionedTypePairs: [
71
- {
72
- kind: "Record" /* Record */,
73
- maybeExtendedKind: "DefinedRecord" /* DefinedRecord */,
74
- isNullable: previousSiblingType.isNullable,
75
- fields: projectedFields,
76
- isOpen: false,
77
- },
78
- {
79
- kind: "Table" /* Table */,
80
- maybeExtendedKind: "DefinedTable" /* DefinedTable */,
81
- isNullable: previousSiblingType.isNullable,
82
- fields: new PQP.OrderedMap(__spreadArray([], __read(projectedFields), false)),
83
- isOpen: false,
84
- },
85
- ],
86
- };
87
- }
88
- case "Record" /* Record */:
89
- case "Table" /* Table */:
90
- return inspectRecordOrTableProjection(previousSiblingType, projectedFieldNames, isOptional);
91
- default:
92
- return language_1.Type.NoneInstance;
93
- }
94
- }
95
- function inspectRecordOrTableProjection(previousSiblingType, projectedFieldNames, isOptional) {
96
- // All we know is previousSibling was a Record/Table.
97
- // Create a DefinedRecord/DefinedTable with the projected fields.
98
- if (language_1.TypeUtils.isDefinedRecord(previousSiblingType)) {
99
- return reducedFieldsToKeys(previousSiblingType, projectedFieldNames, isOptional, reducedRecordFields);
100
- }
101
- else if (language_1.TypeUtils.isDefinedTable(previousSiblingType)) {
102
- return reducedFieldsToKeys(previousSiblingType, projectedFieldNames, isOptional, reducedTableFields);
103
- }
104
- else {
105
- var newFields = new Map(projectedFieldNames.map(function (fieldName) { return [fieldName, language_1.Type.AnyInstance]; }));
106
- return previousSiblingType.kind === "Record" /* Record */
107
- ? language_1.TypeUtils.createDefinedRecord(false, newFields, false)
108
- : language_1.TypeUtils.createDefinedTable(false, new PQP.OrderedMap(__spreadArray([], __read(newFields), false)), false);
109
- }
110
- }
111
- // Returns a subset of `current` using `keys`.
112
- // If a mismatch is found it either returns Null if isOptional, else None.
113
- function reducedFieldsToKeys(current, keys, isOptional, createFieldsFn) {
114
- var currentFieldNames = __spreadArray([], __read(current.fields.keys()), false);
115
- if (!current.isOpen && !PQP.ArrayUtils.isSubset(currentFieldNames, keys)) {
116
- return isOptional ? language_1.Type.NullInstance : language_1.Type.NoneInstance;
117
- }
118
- return __assign(__assign({}, current), { fields: createFieldsFn(current, keys), isOpen: false });
119
- }
120
- function reducedRecordFields(current, keys) {
121
- return PQP.MapUtils.pick(current.fields, keys);
122
- }
123
- function reducedTableFields(current, keys) {
124
- return new PQP.OrderedMap(__spreadArray([], __read(PQP.MapUtils.pick(current.fields, keys).entries()), false));
125
- }
126
- //# sourceMappingURL=inspectTypeFieldProjection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inspectTypeFieldProjection.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldProjection.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT license.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.inspectTypeFieldSelector = void 0;
6
- var language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
7
- var parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
8
- var powerquery_parser_1 = require("@microsoft/powerquery-parser");
9
- var common_1 = require("./common");
10
- var __1 = require("../../..");
11
- function inspectTypeFieldSelector(state, xorNode) {
12
- var _a, _b;
13
- var _c;
14
- var trace = state.traceManager.entry("Type" /* Type */, inspectTypeFieldSelector.name, __1.TraceUtils.createXorNodeDetails(xorNode));
15
- (_c = state.maybeCancellationToken) === null || _c === void 0 ? void 0 : _c.throwIfCancelled();
16
- parser_1.XorNodeUtils.assertIsNodeKind(xorNode, "FieldSelector" /* FieldSelector */);
17
- var maybeFieldName = parser_1.NodeIdMapUtils.maybeUnboxWrappedContentIfAstChecked(state.nodeIdMapCollection, xorNode.node.id, "GeneralizedIdentifier" /* GeneralizedIdentifier */);
18
- if (maybeFieldName === undefined) {
19
- trace.exit((_a = {}, _a["Result" /* Result */] = __1.TraceUtils.createTypeDetails(language_1.Type.UnknownInstance), _a));
20
- return language_1.Type.UnknownInstance;
21
- }
22
- var fieldName = maybeFieldName.literal;
23
- var previousSibling = parser_1.NodeIdMapUtils.assertGetRecursiveExpressionPreviousSibling(state.nodeIdMapCollection, xorNode.node.id);
24
- var previousSiblingType = (0, common_1.inspectXor)(state, previousSibling);
25
- var isOptional = parser_1.NodeIdMapUtils.maybeUnboxNthChildIfAstChecked(state.nodeIdMapCollection, xorNode.node.id, 3, "Constant" /* Constant */) !== undefined;
26
- var result;
27
- switch (previousSiblingType.kind) {
28
- case "Any" /* Any */:
29
- result = language_1.Type.AnyInstance;
30
- break;
31
- case "Unknown" /* Unknown */:
32
- result = language_1.Type.UnknownInstance;
33
- break;
34
- case "Record" /* Record */:
35
- case "Table" /* Table */:
36
- switch (previousSiblingType.maybeExtendedKind) {
37
- case undefined:
38
- result = language_1.Type.AnyInstance;
39
- break;
40
- case "DefinedRecord" /* DefinedRecord */:
41
- case "DefinedTable" /* DefinedTable */:
42
- return inspectDefinedRecordOrDefinedTable(previousSiblingType, fieldName, isOptional);
43
- default:
44
- throw powerquery_parser_1.Assert.isNever(previousSiblingType);
45
- }
46
- break;
47
- default:
48
- result = language_1.Type.NoneInstance;
49
- break;
50
- }
51
- trace.exit((_b = {}, _b["Result" /* Result */] = __1.TraceUtils.createTypeDetails(result), _b));
52
- return result;
53
- }
54
- exports.inspectTypeFieldSelector = inspectTypeFieldSelector;
55
- function inspectDefinedRecordOrDefinedTable(previousSiblingType, fieldName, isOptional) {
56
- var maybeNamedField = previousSiblingType.fields.get(fieldName);
57
- if (maybeNamedField !== undefined) {
58
- return maybeNamedField;
59
- }
60
- else if (previousSiblingType.isOpen) {
61
- return language_1.Type.AnyInstance;
62
- }
63
- else {
64
- return isOptional ? language_1.Type.NullInstance : language_1.Type.NoneInstance;
65
- }
66
- }
67
- //# sourceMappingURL=inspectTypeFieldSelector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inspectTypeFieldSelector.js","sourceRoot":"","sources":["../../../../../src/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSelector.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,wFAAwF;AACxF,oFAAmH;AAEnH,kEAAsD;AAEtD,mCAAwD;AACxD,8BAAoE;AAEpE,SAAgB,wBAAwB,CAAC,KAAuB,EAAE,OAAiB;;;IAC/E,IAAM,KAAK,GAAU,KAAK,CAAC,YAAY,CAAC,KAAK,oBAEzC,wBAAwB,CAAC,IAAI,EAC7B,cAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAC3C,CAAC;IAEF,MAAA,KAAK,CAAC,sBAAsB,0CAAE,gBAAgB,EAAE,CAAC;IACjD,qBAAY,CAAC,gBAAgB,CAAoB,OAAO,sCAA6B,CAAC;IAEtF,IAAM,cAAc,GAA0C,uBAAc,CAAC,oCAAoC,CAC7G,KAAK,CAAC,mBAAmB,EACzB,OAAO,CAAC,IAAI,CAAC,EAAE,sDAElB,CAAC;IAEF,IAAI,cAAc,KAAK,SAAS,EAAE;QAC9B,KAAK,CAAC,IAAI,WAAG,4BAAwB,cAAU,CAAC,iBAAiB,CAAC,eAAI,CAAC,eAAe,CAAC,MAAG,CAAC;QAE3F,OAAO,eAAI,CAAC,eAAe,CAAC;KAC/B;IAED,IAAM,SAAS,GAAW,cAAc,CAAC,OAAO,CAAC;IAEjD,IAAM,eAAe,GAAa,uBAAc,CAAC,2CAA2C,CACxF,KAAK,CAAC,mBAAmB,EACzB,OAAO,CAAC,IAAI,CAAC,EAAE,CAClB,CAAC;IAEF,IAAM,mBAAmB,GAAyB,IAAA,mBAAU,EAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAErF,IAAM,UAAU,GACZ,uBAAc,CAAC,8BAA8B,CACzC,KAAK,CAAC,mBAAmB,EACzB,OAAO,CAAC,IAAI,CAAC,EAAE,EACf,CAAC,4BAEJ,KAAK,SAAS,CAAC;IAEpB,IAAI,MAA4B,CAAC;IAEjC,QAAQ,mBAAmB,CAAC,IAAI,EAAE;QAC9B;YACI,MAAM,GAAG,eAAI,CAAC,WAAW,CAAC;YAC1B,MAAM;QAEV;YACI,MAAM,GAAG,eAAI,CAAC,eAAe,CAAC;YAC9B,MAAM;QAEV,2BAA0B;QAC1B;YACI,QAAQ,mBAAmB,CAAC,iBAAiB,EAAE;gBAC3C,KAAK,SAAS;oBACV,MAAM,GAAG,eAAI,CAAC,WAAW,CAAC;oBAC1B,MAAM;gBAEV,yCAAyC;gBACzC;oBACI,OAAO,kCAAkC,CAAC,mBAAmB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAE1F;oBACI,MAAM,0BAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;aACjD;YAED,MAAM;QAEV;YACI,MAAM,GAAG,eAAI,CAAC,YAAY,CAAC;YAC3B,MAAM;KACb;IAED,KAAK,CAAC,IAAI,WAAG,4BAAwB,cAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAG,CAAC;IAE7E,OAAO,MAAM,CAAC;AAClB,CAAC;AA3ED,4DA2EC;AAED,SAAS,kCAAkC,CACvC,mBAA2D,EAC3D,SAAiB,EACjB,UAAmB;IAEnB,IAAM,eAAe,GAAqC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEpG,IAAI,eAAe,KAAK,SAAS,EAAE;QAC/B,OAAO,eAAe,CAAC;KAC1B;SAAM,IAAI,mBAAmB,CAAC,MAAM,EAAE;QACnC,OAAO,eAAI,CAAC,WAAW,CAAC;KAC3B;SAAM;QACH,OAAO,UAAU,CAAC,CAAC,CAAC,eAAI,CAAC,YAAY,CAAC,CAAC,CAAC,eAAI,CAAC,YAAY,CAAC;KAC7D;AACL,CAAC"}