@hydranium/core 1.0.0-next.34 → 1.0.0-next.341

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 (779) hide show
  1. package/README.md +78 -82
  2. package/lib/browser/host-heads-in-worker.d.ts +77 -0
  3. package/lib/browser/host-heads-in-worker.d.ts.map +1 -0
  4. package/lib/browser/host-heads-in-worker.js +169 -0
  5. package/lib/browser/host-heads-in-worker.js.map +1 -0
  6. package/lib/browser/index.d.ts +12 -0
  7. package/lib/browser/index.d.ts.map +1 -0
  8. package/lib/browser/index.js +17 -0
  9. package/lib/browser/index.js.map +1 -0
  10. package/lib/browser/indexeddb-file-system-store.d.ts +82 -0
  11. package/lib/browser/indexeddb-file-system-store.d.ts.map +1 -0
  12. package/lib/browser/indexeddb-file-system-store.js +181 -0
  13. package/lib/browser/indexeddb-file-system-store.js.map +1 -0
  14. package/lib/browser/start-language-server-in-worker.d.ts +32 -0
  15. package/lib/browser/start-language-server-in-worker.d.ts.map +1 -0
  16. package/lib/browser/start-language-server-in-worker.js +40 -0
  17. package/lib/browser/start-language-server-in-worker.js.map +1 -0
  18. package/lib/documents/ast-document-manager.d.ts +256 -124
  19. package/lib/documents/ast-document-manager.d.ts.map +1 -1
  20. package/lib/documents/ast-document-manager.js +293 -132
  21. package/lib/documents/ast-document-manager.js.map +1 -1
  22. package/lib/documents/client-ids.d.ts +5 -19
  23. package/lib/documents/client-ids.d.ts.map +1 -1
  24. package/lib/documents/client-ids.js +5 -19
  25. package/lib/documents/client-ids.js.map +1 -1
  26. package/lib/documents/client-session-errors.d.ts +15 -0
  27. package/lib/documents/client-session-errors.d.ts.map +1 -0
  28. package/lib/documents/client-session-errors.js +15 -0
  29. package/lib/documents/client-session-errors.js.map +1 -0
  30. package/lib/documents/client-session-registry.d.ts +146 -0
  31. package/lib/documents/client-session-registry.d.ts.map +1 -0
  32. package/lib/documents/client-session-registry.js +207 -0
  33. package/lib/documents/client-session-registry.js.map +1 -0
  34. package/lib/documents/dirty-state-tracker.d.ts +101 -0
  35. package/lib/documents/dirty-state-tracker.d.ts.map +1 -0
  36. package/lib/documents/dirty-state-tracker.js +85 -0
  37. package/lib/documents/dirty-state-tracker.js.map +1 -0
  38. package/lib/documents/document-release-handler.d.ts +204 -0
  39. package/lib/documents/document-release-handler.d.ts.map +1 -0
  40. package/lib/documents/document-release-handler.js +317 -0
  41. package/lib/documents/document-release-handler.js.map +1 -0
  42. package/lib/documents/document-release-scheduler.d.ts +67 -0
  43. package/lib/documents/document-release-scheduler.d.ts.map +1 -0
  44. package/lib/documents/document-release-scheduler.js +80 -0
  45. package/lib/documents/document-release-scheduler.js.map +1 -0
  46. package/lib/documents/file-system-task-queue.d.ts +52 -0
  47. package/lib/documents/file-system-task-queue.d.ts.map +1 -0
  48. package/lib/documents/file-system-task-queue.js +37 -0
  49. package/lib/documents/file-system-task-queue.js.map +1 -0
  50. package/lib/documents/hydranium-text-documents.d.ts +445 -282
  51. package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
  52. package/lib/documents/hydranium-text-documents.js +903 -483
  53. package/lib/documents/hydranium-text-documents.js.map +1 -1
  54. package/lib/documents/index.d.ts +10 -2
  55. package/lib/documents/index.d.ts.map +1 -1
  56. package/lib/documents/index.js +10 -2
  57. package/lib/documents/index.js.map +1 -1
  58. package/lib/documents/language-client-shadow.d.ts +234 -0
  59. package/lib/documents/language-client-shadow.d.ts.map +1 -0
  60. package/lib/documents/language-client-shadow.js +306 -0
  61. package/lib/documents/language-client-shadow.js.map +1 -0
  62. package/lib/documents/model-ledger.d.ts +47 -0
  63. package/lib/documents/model-ledger.d.ts.map +1 -0
  64. package/lib/documents/model-ledger.js +30 -0
  65. package/lib/documents/model-ledger.js.map +1 -0
  66. package/lib/documents/text-ledger.d.ts +64 -0
  67. package/lib/documents/text-ledger.d.ts.map +1 -0
  68. package/lib/documents/text-ledger.js +63 -0
  69. package/lib/documents/text-ledger.js.map +1 -0
  70. package/lib/documents/version-sync-service.d.ts +138 -0
  71. package/lib/documents/version-sync-service.d.ts.map +1 -0
  72. package/lib/documents/version-sync-service.js +173 -0
  73. package/lib/documents/version-sync-service.js.map +1 -0
  74. package/lib/index.d.ts +4 -0
  75. package/lib/index.d.ts.map +1 -1
  76. package/lib/index.js +7 -0
  77. package/lib/index.js.map +1 -1
  78. package/lib/langium/ast-extension/ast-extension-service.d.ts +42 -31
  79. package/lib/langium/ast-extension/ast-extension-service.d.ts.map +1 -1
  80. package/lib/langium/ast-extension/ast-extension-service.js +45 -19
  81. package/lib/langium/ast-extension/ast-extension-service.js.map +1 -1
  82. package/lib/langium/ast-extension/ast-node-builder.d.ts +12 -7
  83. package/lib/langium/ast-extension/ast-node-builder.d.ts.map +1 -1
  84. package/lib/langium/ast-extension/ast-node-builder.js +25 -9
  85. package/lib/langium/ast-extension/ast-node-builder.js.map +1 -1
  86. package/lib/langium/bootstrap.d.ts +49 -36
  87. package/lib/langium/bootstrap.d.ts.map +1 -1
  88. package/lib/langium/bootstrap.js +83 -44
  89. package/lib/langium/bootstrap.js.map +1 -1
  90. package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts +9 -9
  91. package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts.map +1 -1
  92. package/lib/langium/build-phase-pass/build-phase-pass-service.js +25 -16
  93. package/lib/langium/build-phase-pass/build-phase-pass-service.js.map +1 -1
  94. package/lib/langium/build-phase-pass/build-phase-pass.d.ts +20 -8
  95. package/lib/langium/build-phase-pass/build-phase-pass.d.ts.map +1 -1
  96. package/lib/langium/build-phase-pass/build-phase-pass.js +20 -0
  97. package/lib/langium/build-phase-pass/build-phase-pass.js.map +1 -1
  98. package/lib/langium/composite-ast-reflection.d.ts +46 -0
  99. package/lib/langium/composite-ast-reflection.d.ts.map +1 -0
  100. package/lib/langium/composite-ast-reflection.js +97 -0
  101. package/lib/langium/composite-ast-reflection.js.map +1 -0
  102. package/lib/langium/config/configuration-provider.d.ts +81 -0
  103. package/lib/langium/config/configuration-provider.d.ts.map +1 -0
  104. package/lib/langium/config/configuration-provider.js +112 -0
  105. package/lib/langium/config/configuration-provider.js.map +1 -0
  106. package/lib/langium/config/index.d.ts +1 -0
  107. package/lib/langium/config/index.d.ts.map +1 -1
  108. package/lib/langium/config/index.js +1 -0
  109. package/lib/langium/config/index.js.map +1 -1
  110. package/lib/langium/config/settings.js.map +1 -1
  111. package/lib/langium/diagnostics/console-tee.d.ts +27 -0
  112. package/lib/langium/diagnostics/console-tee.d.ts.map +1 -0
  113. package/lib/langium/diagnostics/console-tee.js +142 -0
  114. package/lib/langium/diagnostics/console-tee.js.map +1 -0
  115. package/lib/langium/diagnostics/format-log-arg.d.ts +18 -0
  116. package/lib/langium/diagnostics/format-log-arg.d.ts.map +1 -0
  117. package/lib/langium/diagnostics/format-log-arg.js +36 -0
  118. package/lib/langium/diagnostics/format-log-arg.js.map +1 -0
  119. package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts +9 -20
  120. package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts.map +1 -1
  121. package/lib/langium/diagnostics/hydranium-langium-profiler.js +15 -24
  122. package/lib/langium/diagnostics/hydranium-langium-profiler.js.map +1 -1
  123. package/lib/langium/diagnostics/log-preamble.js +1 -1
  124. package/lib/langium/diagnostics/log-preamble.js.map +1 -1
  125. package/lib/langium/diagnostics/logger.d.ts +25 -6
  126. package/lib/langium/diagnostics/logger.d.ts.map +1 -1
  127. package/lib/langium/diagnostics/logger.js +49 -17
  128. package/lib/langium/diagnostics/logger.js.map +1 -1
  129. package/lib/langium/diagnostics/lsp-logger.d.ts +25 -0
  130. package/lib/langium/diagnostics/lsp-logger.d.ts.map +1 -1
  131. package/lib/langium/diagnostics/lsp-logger.js +81 -45
  132. package/lib/langium/diagnostics/lsp-logger.js.map +1 -1
  133. package/lib/langium/diagnostics/server-tracer.d.ts.map +1 -1
  134. package/lib/langium/diagnostics/server-tracer.js.map +1 -1
  135. package/lib/langium/document-builder/build-pipeline-integration.d.ts +21 -1
  136. package/lib/langium/document-builder/build-pipeline-integration.d.ts.map +1 -1
  137. package/lib/langium/document-builder/build-pipeline-integration.js +28 -30
  138. package/lib/langium/document-builder/build-pipeline-integration.js.map +1 -1
  139. package/lib/langium/document-builder/build-session.d.ts +6 -5
  140. package/lib/langium/document-builder/build-session.d.ts.map +1 -1
  141. package/lib/langium/document-builder/build-session.js +5 -5
  142. package/lib/langium/document-builder/build-session.js.map +1 -1
  143. package/lib/langium/document-builder/document-builder.d.ts +283 -41
  144. package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
  145. package/lib/langium/document-builder/document-builder.js +449 -79
  146. package/lib/langium/document-builder/document-builder.js.map +1 -1
  147. package/lib/langium/documentation/comment-provider.d.ts.map +1 -1
  148. package/lib/langium/documentation/comment-provider.js.map +1 -1
  149. package/lib/langium/integration-services.d.ts +40 -24
  150. package/lib/langium/integration-services.d.ts.map +1 -1
  151. package/lib/langium/integration-services.js +7 -4
  152. package/lib/langium/integration-services.js.map +1 -1
  153. package/lib/langium/integrity/integrity-rule.d.ts +17 -8
  154. package/lib/langium/integrity/integrity-rule.d.ts.map +1 -1
  155. package/lib/langium/integrity/integrity-rule.js.map +1 -1
  156. package/lib/langium/integrity/integrity-service.d.ts +95 -27
  157. package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
  158. package/lib/langium/integrity/integrity-service.js +303 -63
  159. package/lib/langium/integrity/integrity-service.js.map +1 -1
  160. package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -1
  161. package/lib/langium/keys/name-based-key-provider.js.map +1 -1
  162. package/lib/langium/keys/positional-key-provider.d.ts.map +1 -1
  163. package/lib/langium/keys/positional-key-provider.js.map +1 -1
  164. package/lib/langium/labeling/label-provider.d.ts.map +1 -1
  165. package/lib/langium/labeling/label-provider.js.map +1 -1
  166. package/lib/langium/language-module.d.ts +30 -5
  167. package/lib/langium/language-module.d.ts.map +1 -1
  168. package/lib/langium/language-module.js +18 -4
  169. package/lib/langium/language-module.js.map +1 -1
  170. package/lib/langium/model-service/client-session.d.ts +383 -0
  171. package/lib/langium/model-service/client-session.d.ts.map +1 -0
  172. package/lib/langium/model-service/client-session.js +455 -0
  173. package/lib/langium/model-service/client-session.js.map +1 -0
  174. package/lib/langium/model-service/index.d.ts +2 -0
  175. package/lib/langium/model-service/index.d.ts.map +1 -1
  176. package/lib/langium/model-service/index.js +2 -0
  177. package/lib/langium/model-service/index.js.map +1 -1
  178. package/lib/langium/model-service/model-events.d.ts +66 -0
  179. package/lib/langium/model-service/model-events.d.ts.map +1 -0
  180. package/lib/langium/model-service/model-events.js +10 -0
  181. package/lib/langium/model-service/model-events.js.map +1 -0
  182. package/lib/langium/model-service/model-service.d.ts +456 -300
  183. package/lib/langium/model-service/model-service.d.ts.map +1 -1
  184. package/lib/langium/model-service/model-service.js +571 -466
  185. package/lib/langium/model-service/model-service.js.map +1 -1
  186. package/lib/langium/module.d.ts +141 -40
  187. package/lib/langium/module.d.ts.map +1 -1
  188. package/lib/langium/module.js +52 -40
  189. package/lib/langium/module.js.map +1 -1
  190. package/lib/langium/naming/name-provider.d.ts +32 -7
  191. package/lib/langium/naming/name-provider.d.ts.map +1 -1
  192. package/lib/langium/naming/name-provider.js +10 -4
  193. package/lib/langium/naming/name-provider.js.map +1 -1
  194. package/lib/langium/naming/name-separator-validation.d.ts.map +1 -1
  195. package/lib/langium/project/abstract-project-manager.d.ts.map +1 -1
  196. package/lib/langium/project/abstract-project-manager.js +13 -6
  197. package/lib/langium/project/abstract-project-manager.js.map +1 -1
  198. package/lib/langium/project/project-change-event.d.ts +2 -2
  199. package/lib/langium/project/single-project-manager.d.ts.map +1 -1
  200. package/lib/langium/project/single-project-manager.js.map +1 -1
  201. package/lib/langium/residency/cst-residency-service.d.ts +38 -14
  202. package/lib/langium/residency/cst-residency-service.d.ts.map +1 -1
  203. package/lib/langium/residency/cst-residency-service.js +24 -58
  204. package/lib/langium/residency/cst-residency-service.js.map +1 -1
  205. package/lib/langium/scope/ast-node-description-provider.d.ts.map +1 -1
  206. package/lib/langium/scope/ast-node-description-provider.js.map +1 -1
  207. package/lib/langium/scope/fallback-scope.d.ts +27 -0
  208. package/lib/langium/scope/fallback-scope.d.ts.map +1 -0
  209. package/lib/langium/scope/fallback-scope.js +35 -0
  210. package/lib/langium/scope/fallback-scope.js.map +1 -0
  211. package/lib/langium/scope/hydranium-scope-computation.d.ts +21 -18
  212. package/lib/langium/scope/hydranium-scope-computation.d.ts.map +1 -1
  213. package/lib/langium/scope/hydranium-scope-computation.js +38 -39
  214. package/lib/langium/scope/hydranium-scope-computation.js.map +1 -1
  215. package/lib/langium/scope/hydranium-scope-provider.d.ts +66 -26
  216. package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
  217. package/lib/langium/scope/hydranium-scope-provider.js +114 -33
  218. package/lib/langium/scope/hydranium-scope-provider.js.map +1 -1
  219. package/lib/langium/scope/index.d.ts +1 -0
  220. package/lib/langium/scope/index.d.ts.map +1 -1
  221. package/lib/langium/scope/index.js +1 -0
  222. package/lib/langium/scope/index.js.map +1 -1
  223. package/lib/langium/scope/reference-builder.d.ts.map +1 -1
  224. package/lib/langium/scope/reference-builder.js.map +1 -1
  225. package/lib/langium/scope/reference-candidate-provider.d.ts +6 -5
  226. package/lib/langium/scope/reference-candidate-provider.d.ts.map +1 -1
  227. package/lib/langium/scope/reference-candidate-provider.js +3 -2
  228. package/lib/langium/scope/reference-candidate-provider.js.map +1 -1
  229. package/lib/langium/scope/scope-extension-service.d.ts +41 -37
  230. package/lib/langium/scope/scope-extension-service.d.ts.map +1 -1
  231. package/lib/langium/scope/scope-extension-service.js +57 -29
  232. package/lib/langium/scope/scope-extension-service.js.map +1 -1
  233. package/lib/langium/scope/scoped-ast-node-description.d.ts +1 -3
  234. package/lib/langium/scope/scoped-ast-node-description.d.ts.map +1 -1
  235. package/lib/langium/scope/scoped-ast-node-description.js +1 -3
  236. package/lib/langium/scope/scoped-ast-node-description.js.map +1 -1
  237. package/lib/langium/serialization/abstract-serializer.d.ts +38 -27
  238. package/lib/langium/serialization/abstract-serializer.d.ts.map +1 -1
  239. package/lib/langium/serialization/abstract-serializer.js +54 -30
  240. package/lib/langium/serialization/abstract-serializer.js.map +1 -1
  241. package/lib/langium/serialization/json-serializer.d.ts +8 -1
  242. package/lib/langium/serialization/json-serializer.d.ts.map +1 -1
  243. package/lib/langium/serialization/json-serializer.js +13 -3
  244. package/lib/langium/serialization/json-serializer.js.map +1 -1
  245. package/lib/langium/serialization/serializer.d.ts +1 -1
  246. package/lib/langium/serialization/yaml-serializer.d.ts +4 -0
  247. package/lib/langium/serialization/yaml-serializer.d.ts.map +1 -1
  248. package/lib/langium/serialization/yaml-serializer.js +4 -0
  249. package/lib/langium/serialization/yaml-serializer.js.map +1 -1
  250. package/lib/langium/service-registry.d.ts +29 -1
  251. package/lib/langium/service-registry.d.ts.map +1 -1
  252. package/lib/langium/service-registry.js +37 -0
  253. package/lib/langium/service-registry.js.map +1 -1
  254. package/lib/langium/shared-services.d.ts +13 -7
  255. package/lib/langium/shared-services.d.ts.map +1 -1
  256. package/lib/langium/shared-services.js.map +1 -1
  257. package/lib/langium/single-langium-copy.d.ts +22 -0
  258. package/lib/langium/single-langium-copy.d.ts.map +1 -0
  259. package/lib/langium/single-langium-copy.js +36 -0
  260. package/lib/langium/single-langium-copy.js.map +1 -0
  261. package/lib/langium/transfer/transfer-encoder.d.ts +86 -37
  262. package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
  263. package/lib/langium/transfer/transfer-encoder.js +36 -25
  264. package/lib/langium/transfer/transfer-encoder.js.map +1 -1
  265. package/lib/langium/trivia/comment-preserver.d.ts +543 -0
  266. package/lib/langium/trivia/comment-preserver.d.ts.map +1 -0
  267. package/lib/langium/trivia/comment-preserver.js +1164 -0
  268. package/lib/langium/trivia/comment-preserver.js.map +1 -0
  269. package/lib/langium/trivia/document-ending-preserver.d.ts +51 -0
  270. package/lib/langium/trivia/document-ending-preserver.d.ts.map +1 -0
  271. package/lib/langium/trivia/document-ending-preserver.js +62 -0
  272. package/lib/langium/trivia/document-ending-preserver.js.map +1 -0
  273. package/lib/langium/trivia/index.d.ts +14 -0
  274. package/lib/langium/trivia/index.d.ts.map +1 -0
  275. package/lib/langium/trivia/index.js +14 -0
  276. package/lib/langium/trivia/index.js.map +1 -0
  277. package/lib/langium/trivia/trivia-contribution.d.ts +37 -0
  278. package/lib/langium/trivia/trivia-contribution.d.ts.map +1 -0
  279. package/lib/langium/trivia/trivia-contribution.js +10 -0
  280. package/lib/langium/trivia/trivia-contribution.js.map +1 -0
  281. package/lib/langium/trivia/trivia-preserver.d.ts +52 -0
  282. package/lib/langium/trivia/trivia-preserver.d.ts.map +1 -0
  283. package/lib/langium/trivia/trivia-preserver.js +10 -0
  284. package/lib/langium/trivia/trivia-preserver.js.map +1 -0
  285. package/lib/langium/trivia/trivia-service.d.ts +70 -0
  286. package/lib/langium/trivia/trivia-service.d.ts.map +1 -0
  287. package/lib/langium/trivia/trivia-service.js +56 -0
  288. package/lib/langium/trivia/trivia-service.js.map +1 -0
  289. package/lib/langium/update-rewrite/normalize-empty-strings.d.ts.map +1 -1
  290. package/lib/langium/update-rewrite/update-rewrite-service.d.ts +1 -1
  291. package/lib/langium/update-rewrite/update-rewrite-service.d.ts.map +1 -1
  292. package/lib/langium/update-rewrite/update-rewrite-service.js.map +1 -1
  293. package/lib/langium/update-rewrite/update-rewrite.d.ts +1 -1
  294. package/lib/langium/validation/document-validator.d.ts +168 -23
  295. package/lib/langium/validation/document-validator.d.ts.map +1 -1
  296. package/lib/langium/validation/document-validator.js +264 -26
  297. package/lib/langium/validation/document-validator.js.map +1 -1
  298. package/lib/langium/validation/validation-contribution-collector.d.ts +9 -1
  299. package/lib/langium/validation/validation-contribution-collector.d.ts.map +1 -1
  300. package/lib/langium/validation/validation-contribution-collector.js +1 -1
  301. package/lib/langium/validation/validation-contribution-collector.js.map +1 -1
  302. package/lib/langium/workspace/document-uri-policy.d.ts +24 -15
  303. package/lib/langium/workspace/document-uri-policy.d.ts.map +1 -1
  304. package/lib/langium/workspace/document-uri-policy.js +22 -13
  305. package/lib/langium/workspace/document-uri-policy.js.map +1 -1
  306. package/lib/langium/workspace/file-not-found.d.ts +23 -0
  307. package/lib/langium/workspace/file-not-found.d.ts.map +1 -0
  308. package/lib/langium/workspace/file-not-found.js +31 -0
  309. package/lib/langium/workspace/file-not-found.js.map +1 -0
  310. package/lib/langium/workspace/file-system-provider.d.ts +167 -8
  311. package/lib/langium/workspace/file-system-provider.d.ts.map +1 -1
  312. package/lib/langium/workspace/file-system-provider.js +115 -13
  313. package/lib/langium/workspace/file-system-provider.js.map +1 -1
  314. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +31 -1
  315. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -1
  316. package/lib/langium/workspace/hydranium-langium-document-factory.js +54 -0
  317. package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -1
  318. package/lib/langium/workspace/hydranium-workspace-lock.d.ts +43 -1
  319. package/lib/langium/workspace/hydranium-workspace-lock.d.ts.map +1 -1
  320. package/lib/langium/workspace/hydranium-workspace-lock.js +58 -1
  321. package/lib/langium/workspace/hydranium-workspace-lock.js.map +1 -1
  322. package/lib/langium/workspace/hydranium-workspace-manager.d.ts +103 -21
  323. package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -1
  324. package/lib/langium/workspace/hydranium-workspace-manager.js +184 -31
  325. package/lib/langium/workspace/hydranium-workspace-manager.js.map +1 -1
  326. package/lib/langium/workspace/in-memory-file-system-provider.d.ts +26 -9
  327. package/lib/langium/workspace/in-memory-file-system-provider.d.ts.map +1 -1
  328. package/lib/langium/workspace/in-memory-file-system-provider.js +45 -22
  329. package/lib/langium/workspace/in-memory-file-system-provider.js.map +1 -1
  330. package/lib/langium/workspace/index-manager.d.ts.map +1 -1
  331. package/lib/langium/workspace/index-manager.js.map +1 -1
  332. package/lib/langium/workspace/index.d.ts +1 -0
  333. package/lib/langium/workspace/index.d.ts.map +1 -1
  334. package/lib/langium/workspace/index.js +1 -0
  335. package/lib/langium/workspace/index.js.map +1 -1
  336. package/lib/langium/workspace/initialize-workspace.d.ts +40 -3
  337. package/lib/langium/workspace/initialize-workspace.d.ts.map +1 -1
  338. package/lib/langium/workspace/initialize-workspace.js +68 -3
  339. package/lib/langium/workspace/initialize-workspace.js.map +1 -1
  340. package/lib/langium/workspace/langium-documents.d.ts +7 -0
  341. package/lib/langium/workspace/langium-documents.d.ts.map +1 -1
  342. package/lib/langium/workspace/langium-documents.js +18 -1
  343. package/lib/langium/workspace/langium-documents.js.map +1 -1
  344. package/lib/langium/workspace/persistent-file-system-provider.d.ts +16 -10
  345. package/lib/langium/workspace/persistent-file-system-provider.d.ts.map +1 -1
  346. package/lib/langium/workspace/persistent-file-system-provider.js +25 -13
  347. package/lib/langium/workspace/persistent-file-system-provider.js.map +1 -1
  348. package/lib/langium/workspace/self-save-registry.d.ts +84 -0
  349. package/lib/langium/workspace/self-save-registry.d.ts.map +1 -0
  350. package/lib/{documents → langium/workspace}/self-save-registry.js +33 -22
  351. package/lib/langium/workspace/self-save-registry.js.map +1 -0
  352. package/lib/langium/workspace/virtual-document.d.ts +55 -21
  353. package/lib/langium/workspace/virtual-document.d.ts.map +1 -1
  354. package/lib/langium/workspace/virtual-document.js +87 -24
  355. package/lib/langium/workspace/virtual-document.js.map +1 -1
  356. package/lib/langium/workspace/write-lock-scope.d.ts +22 -10
  357. package/lib/langium/workspace/write-lock-scope.d.ts.map +1 -1
  358. package/lib/langium/workspace/write-lock-scope.js +15 -5
  359. package/lib/langium/workspace/write-lock-scope.js.map +1 -1
  360. package/lib/launcher/integrated-server.d.ts +3 -1
  361. package/lib/launcher/integrated-server.d.ts.map +1 -1
  362. package/lib/locale/server-locale.d.ts +19 -5
  363. package/lib/locale/server-locale.d.ts.map +1 -1
  364. package/lib/locale/server-locale.js +1 -1
  365. package/lib/locale/server-locale.js.map +1 -1
  366. package/lib/lsp/completion/hydranium-completion-provider.d.ts +44 -2
  367. package/lib/lsp/completion/hydranium-completion-provider.d.ts.map +1 -1
  368. package/lib/lsp/completion/hydranium-completion-provider.js +68 -0
  369. package/lib/lsp/completion/hydranium-completion-provider.js.map +1 -1
  370. package/lib/lsp/connection-features.d.ts +23 -0
  371. package/lib/lsp/connection-features.d.ts.map +1 -0
  372. package/lib/lsp/connection-features.js +60 -0
  373. package/lib/lsp/connection-features.js.map +1 -0
  374. package/lib/lsp/diagnostics-connection.d.ts +27 -0
  375. package/lib/lsp/diagnostics-connection.d.ts.map +1 -0
  376. package/lib/lsp/diagnostics-connection.js +53 -0
  377. package/lib/lsp/diagnostics-connection.js.map +1 -0
  378. package/lib/lsp/edit-requests-guard.d.ts +31 -0
  379. package/lib/lsp/edit-requests-guard.d.ts.map +1 -0
  380. package/lib/lsp/edit-requests-guard.js +125 -0
  381. package/lib/lsp/edit-requests-guard.js.map +1 -0
  382. package/lib/lsp/hydranium-document-update-handler.d.ts +126 -82
  383. package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -1
  384. package/lib/lsp/hydranium-document-update-handler.js +235 -102
  385. package/lib/lsp/hydranium-document-update-handler.js.map +1 -1
  386. package/lib/lsp/index.d.ts +6 -2
  387. package/lib/lsp/index.d.ts.map +1 -1
  388. package/lib/lsp/index.js +6 -2
  389. package/lib/lsp/index.js.map +1 -1
  390. package/lib/lsp/lsp-latency.d.ts +39 -0
  391. package/lib/lsp/lsp-latency.d.ts.map +1 -0
  392. package/lib/lsp/lsp-latency.js +58 -0
  393. package/lib/lsp/lsp-latency.js.map +1 -0
  394. package/lib/lsp/save-text-document.d.ts +31 -0
  395. package/lib/lsp/save-text-document.d.ts.map +1 -0
  396. package/lib/lsp/save-text-document.js +52 -0
  397. package/lib/lsp/save-text-document.js.map +1 -0
  398. package/lib/lsp/semantic-token-provider.d.ts +58 -2
  399. package/lib/lsp/semantic-token-provider.d.ts.map +1 -1
  400. package/lib/lsp/semantic-token-provider.js +98 -9
  401. package/lib/lsp/semantic-token-provider.js.map +1 -1
  402. package/lib/lsp/shared-module.d.ts +4 -8
  403. package/lib/lsp/shared-module.d.ts.map +1 -1
  404. package/lib/lsp/shared-module.js.map +1 -1
  405. package/lib/lsp/start-language-server.d.ts +12 -7
  406. package/lib/lsp/start-language-server.d.ts.map +1 -1
  407. package/lib/lsp/start-language-server.js +21 -7
  408. package/lib/lsp/start-language-server.js.map +1 -1
  409. package/lib/messages/carriers.d.ts +4 -6
  410. package/lib/messages/carriers.d.ts.map +1 -1
  411. package/lib/messages/carriers.js +4 -6
  412. package/lib/messages/carriers.js.map +1 -1
  413. package/lib/messages/index.d.ts +2 -2
  414. package/lib/messages/index.d.ts.map +1 -1
  415. package/lib/messages/index.js +2 -2
  416. package/lib/messages/index.js.map +1 -1
  417. package/lib/messages/renderer.d.ts +32 -7
  418. package/lib/messages/renderer.d.ts.map +1 -1
  419. package/lib/messages/renderer.js +7 -1
  420. package/lib/messages/renderer.js.map +1 -1
  421. package/lib/node/event-loop-monitor.d.ts.map +1 -1
  422. package/lib/node/event-loop-monitor.js +2 -1
  423. package/lib/node/event-loop-monitor.js.map +1 -1
  424. package/lib/node/heap-ceiling.d.ts +61 -0
  425. package/lib/node/heap-ceiling.d.ts.map +1 -0
  426. package/lib/node/heap-ceiling.js +72 -0
  427. package/lib/node/heap-ceiling.js.map +1 -0
  428. package/lib/node/index.d.ts +1 -1
  429. package/lib/node/index.d.ts.map +1 -1
  430. package/lib/node/index.js +5 -1
  431. package/lib/node/index.js.map +1 -1
  432. package/lib/node/latency-from-env.d.ts +1 -1
  433. package/lib/node/latency-from-env.js +1 -1
  434. package/lib/node/lint-grammar.js.map +1 -1
  435. package/lib/node/log-file-sink.d.ts +3 -2
  436. package/lib/node/log-file-sink.d.ts.map +1 -1
  437. package/lib/node/log-file-sink.js +6 -2
  438. package/lib/node/log-file-sink.js.map +1 -1
  439. package/lib/node/log-preamble-node.d.ts +5 -3
  440. package/lib/node/log-preamble-node.d.ts.map +1 -1
  441. package/lib/node/log-preamble-node.js +13 -10
  442. package/lib/node/log-preamble-node.js.map +1 -1
  443. package/lib/node/measure-memory.d.ts.map +1 -1
  444. package/lib/node/measure-memory.js +5 -4
  445. package/lib/node/measure-memory.js.map +1 -1
  446. package/lib/node/memory-monitor.d.ts +2 -2
  447. package/lib/node/memory-monitor.d.ts.map +1 -1
  448. package/lib/node/memory-monitor.js +9 -10
  449. package/lib/node/memory-monitor.js.map +1 -1
  450. package/lib/node/node-file-system-provider.d.ts +67 -9
  451. package/lib/node/node-file-system-provider.d.ts.map +1 -1
  452. package/lib/node/node-file-system-provider.js +198 -53
  453. package/lib/node/node-file-system-provider.js.map +1 -1
  454. package/lib/node/profile-capture.d.ts +12 -4
  455. package/lib/node/profile-capture.d.ts.map +1 -1
  456. package/lib/node/profile-capture.js +8 -6
  457. package/lib/node/profile-capture.js.map +1 -1
  458. package/lib/node/profile-digest.js.map +1 -1
  459. package/lib/node/profiling-run.d.ts +13 -3
  460. package/lib/node/profiling-run.d.ts.map +1 -1
  461. package/lib/node/profiling-run.js +17 -8
  462. package/lib/node/profiling-run.js.map +1 -1
  463. package/lib/node/rename-over-open-readers.d.ts +61 -0
  464. package/lib/node/rename-over-open-readers.d.ts.map +1 -0
  465. package/lib/node/rename-over-open-readers.js +80 -0
  466. package/lib/node/rename-over-open-readers.js.map +1 -0
  467. package/lib/node/server-diagnostics.js +1 -1
  468. package/lib/node/server-diagnostics.js.map +1 -1
  469. package/lib/node/server-state-snapshot.js +4 -4
  470. package/lib/node/server-state-snapshot.js.map +1 -1
  471. package/lib/node/socket-launcher.d.ts +43 -7
  472. package/lib/node/socket-launcher.d.ts.map +1 -1
  473. package/lib/node/socket-launcher.js +42 -7
  474. package/lib/node/socket-launcher.js.map +1 -1
  475. package/lib/node/startup-cpu-profile.d.ts +29 -0
  476. package/lib/node/startup-cpu-profile.d.ts.map +1 -0
  477. package/lib/node/startup-cpu-profile.js +91 -0
  478. package/lib/node/startup-cpu-profile.js.map +1 -0
  479. package/lib/node/stdio-launcher.d.ts +13 -13
  480. package/lib/node/stdio-launcher.d.ts.map +1 -1
  481. package/lib/node/stdio-launcher.js +21 -11
  482. package/lib/node/stdio-launcher.js.map +1 -1
  483. package/lib/node/validate-workspace.d.ts +1 -1
  484. package/lib/node/validate-workspace.d.ts.map +1 -1
  485. package/lib/node/validate-workspace.js +5 -1
  486. package/lib/node/validate-workspace.js.map +1 -1
  487. package/lib/testing/document-uri-policy-conformance.js +1 -1
  488. package/lib/testing/document-uri-policy-conformance.js.map +1 -1
  489. package/lib/testing/fake-description.js.map +1 -1
  490. package/lib/testing/fake-document.d.ts +2 -1
  491. package/lib/testing/fake-document.d.ts.map +1 -1
  492. package/lib/testing/fake-document.js.map +1 -1
  493. package/lib/testing/index.d.ts +1 -1
  494. package/lib/testing/index.d.ts.map +1 -1
  495. package/lib/testing/index.js +2 -1
  496. package/lib/testing/index.js.map +1 -1
  497. package/lib/testing/langium-test-helpers.d.ts.map +1 -1
  498. package/lib/testing/langium-test-helpers.js +1 -0
  499. package/lib/testing/langium-test-helpers.js.map +1 -1
  500. package/lib/testing/make-noop-language-services.js.map +1 -1
  501. package/lib/testing/make-noop-shared-services.d.ts +4 -4
  502. package/lib/testing/make-noop-shared-services.d.ts.map +1 -1
  503. package/lib/testing/make-noop-shared-services.js +4 -4
  504. package/lib/testing/make-noop-shared-services.js.map +1 -1
  505. package/lib/testing/make-test-services.d.ts +51 -20
  506. package/lib/testing/make-test-services.d.ts.map +1 -1
  507. package/lib/testing/make-test-services.js +29 -13
  508. package/lib/testing/make-test-services.js.map +1 -1
  509. package/lib/testing/make-test-tracer.d.ts +12 -0
  510. package/lib/testing/make-test-tracer.d.ts.map +1 -1
  511. package/lib/testing/make-test-tracer.js +13 -0
  512. package/lib/testing/make-test-tracer.js.map +1 -1
  513. package/lib/testing/node/applied-edit-capture.d.ts +29 -0
  514. package/lib/testing/node/applied-edit-capture.d.ts.map +1 -0
  515. package/lib/testing/node/applied-edit-capture.js +117 -0
  516. package/lib/testing/node/applied-edit-capture.js.map +1 -0
  517. package/lib/testing/node/golden-corpus.js.map +1 -1
  518. package/lib/testing/node/index.d.ts +1 -0
  519. package/lib/testing/node/index.d.ts.map +1 -1
  520. package/lib/testing/node/index.js +1 -0
  521. package/lib/testing/node/index.js.map +1 -1
  522. package/lib/testing/node/lsp-harness.d.ts.map +1 -1
  523. package/lib/testing/node/lsp-harness.js +2 -0
  524. package/lib/testing/node/lsp-harness.js.map +1 -1
  525. package/lib/testing/node/lsp-server-connection.d.ts +21 -6
  526. package/lib/testing/node/lsp-server-connection.d.ts.map +1 -1
  527. package/lib/testing/node/lsp-server-connection.js +49 -106
  528. package/lib/testing/node/lsp-server-connection.js.map +1 -1
  529. package/lib/testing/node/scratch-workspace.d.ts.map +1 -1
  530. package/lib/testing/node/scratch-workspace.js +10 -5
  531. package/lib/testing/node/scratch-workspace.js.map +1 -1
  532. package/lib/testing/node/spawned-server.d.ts +30 -1
  533. package/lib/testing/node/spawned-server.d.ts.map +1 -1
  534. package/lib/testing/node/spawned-server.js +39 -2
  535. package/lib/testing/node/spawned-server.js.map +1 -1
  536. package/lib/testing/node/unhandled-rejections.d.ts +20 -0
  537. package/lib/testing/node/unhandled-rejections.d.ts.map +1 -0
  538. package/lib/testing/node/unhandled-rejections.js +32 -0
  539. package/lib/testing/node/unhandled-rejections.js.map +1 -0
  540. package/lib/testing/playwright/browser-capture-bridge.js.map +1 -1
  541. package/lib/testing/playwright/e2e-profiling.js.map +1 -1
  542. package/lib/testing/playwright/flaky-network-proxy.d.ts +76 -0
  543. package/lib/testing/playwright/flaky-network-proxy.d.ts.map +1 -0
  544. package/lib/testing/playwright/flaky-network-proxy.js +164 -0
  545. package/lib/testing/playwright/flaky-network-proxy.js.map +1 -0
  546. package/lib/testing/playwright/index.d.ts +1 -0
  547. package/lib/testing/playwright/index.d.ts.map +1 -1
  548. package/lib/testing/playwright/index.js +1 -0
  549. package/lib/testing/playwright/index.js.map +1 -1
  550. package/lib/testing/playwright/server-log-capture.d.ts +46 -16
  551. package/lib/testing/playwright/server-log-capture.d.ts.map +1 -1
  552. package/lib/testing/playwright/server-log-capture.js +111 -40
  553. package/lib/testing/playwright/server-log-capture.js.map +1 -1
  554. package/lib/testing/playwright/server-log-fixture.d.ts +16 -0
  555. package/lib/testing/playwright/server-log-fixture.d.ts.map +1 -1
  556. package/lib/testing/playwright/server-log-fixture.js +25 -6
  557. package/lib/testing/playwright/server-log-fixture.js.map +1 -1
  558. package/lib/testing/playwright/server-log-region.d.ts +15 -0
  559. package/lib/testing/playwright/server-log-region.d.ts.map +1 -0
  560. package/lib/testing/playwright/server-log-region.js +30 -0
  561. package/lib/testing/playwright/server-log-region.js.map +1 -0
  562. package/lib/testing/playwright/server-log-rename-reporter.d.ts.map +1 -1
  563. package/lib/testing/playwright/server-log-rename-reporter.js +4 -3
  564. package/lib/testing/playwright/server-log-rename-reporter.js.map +1 -1
  565. package/lib/testing/run-update-pipeline.d.ts +8 -5
  566. package/lib/testing/run-update-pipeline.d.ts.map +1 -1
  567. package/lib/testing/run-update-pipeline.js.map +1 -1
  568. package/lib/testing/stub-ast-document-manager.d.ts +11 -52
  569. package/lib/testing/stub-ast-document-manager.d.ts.map +1 -1
  570. package/lib/testing/stub-ast-document-manager.js +31 -62
  571. package/lib/testing/stub-ast-document-manager.js.map +1 -1
  572. package/lib/testing/stub-document-builder.d.ts +33 -11
  573. package/lib/testing/stub-document-builder.d.ts.map +1 -1
  574. package/lib/testing/stub-document-builder.js +103 -5
  575. package/lib/testing/stub-document-builder.js.map +1 -1
  576. package/lib/testing/stub-hydranium-text-documents.d.ts +33 -10
  577. package/lib/testing/stub-hydranium-text-documents.d.ts.map +1 -1
  578. package/lib/testing/stub-hydranium-text-documents.js +132 -16
  579. package/lib/testing/stub-hydranium-text-documents.js.map +1 -1
  580. package/lib/testing/stub-index-manager.js.map +1 -1
  581. package/lib/testing/stub-langium-documents.d.ts +3 -2
  582. package/lib/testing/stub-langium-documents.d.ts.map +1 -1
  583. package/lib/testing/stub-langium-documents.js.map +1 -1
  584. package/lib/testing/stub-model-service.d.ts +9 -8
  585. package/lib/testing/stub-model-service.d.ts.map +1 -1
  586. package/lib/testing/stub-model-service.js +6 -6
  587. package/lib/testing/stub-model-service.js.map +1 -1
  588. package/lib/testing/stub-project-manager.js.map +1 -1
  589. package/lib/testing/stub-self-save-registry.d.ts +1 -1
  590. package/lib/testing/stub-self-save-registry.d.ts.map +1 -1
  591. package/lib/testing/stub-service-registry.d.ts +1 -1
  592. package/lib/testing/stub-service-registry.js.map +1 -1
  593. package/lib/testing/stub-writable-file-system.d.ts +1 -1
  594. package/lib/testing/stub-writable-file-system.d.ts.map +1 -1
  595. package/lib/testing/stub-writable-file-system.js +2 -1
  596. package/lib/testing/stub-writable-file-system.js.map +1 -1
  597. package/lib/util/connection-liveness.d.ts +22 -6
  598. package/lib/util/connection-liveness.d.ts.map +1 -1
  599. package/lib/util/connection-liveness.js +74 -15
  600. package/lib/util/connection-liveness.js.map +1 -1
  601. package/lib/util/environment.d.ts +7 -0
  602. package/lib/util/environment.d.ts.map +1 -1
  603. package/lib/util/environment.js +15 -1
  604. package/lib/util/environment.js.map +1 -1
  605. package/lib/util/registry.d.ts.map +1 -1
  606. package/package.json +41 -60
  607. package/src/browser/host-heads-in-worker.ts +218 -0
  608. package/src/browser/index.ts +17 -0
  609. package/src/browser/indexeddb-file-system-store.ts +192 -0
  610. package/src/browser/start-language-server-in-worker.ts +56 -0
  611. package/src/documents/ast-document-manager.ts +467 -233
  612. package/src/documents/client-ids.ts +5 -22
  613. package/src/documents/client-session-errors.ts +24 -0
  614. package/src/documents/client-session-registry.ts +262 -0
  615. package/src/documents/dirty-state-tracker.ts +167 -0
  616. package/src/documents/document-release-handler.ts +404 -0
  617. package/src/documents/document-release-scheduler.ts +121 -0
  618. package/src/documents/file-system-task-queue.ts +74 -0
  619. package/src/documents/hydranium-text-documents.ts +1029 -595
  620. package/src/documents/index.ts +10 -2
  621. package/src/documents/language-client-shadow.ts +501 -0
  622. package/src/documents/model-ledger.ts +66 -0
  623. package/src/documents/text-ledger.ts +112 -0
  624. package/src/documents/version-sync-service.ts +275 -0
  625. package/src/index.ts +7 -0
  626. package/src/langium/ast-extension/ast-extension-service.ts +77 -41
  627. package/src/langium/ast-extension/ast-node-builder.ts +35 -13
  628. package/src/langium/bootstrap.ts +87 -51
  629. package/src/langium/build-phase-pass/build-phase-pass-service.ts +29 -19
  630. package/src/langium/build-phase-pass/build-phase-pass.ts +37 -8
  631. package/src/langium/composite-ast-reflection.ts +112 -0
  632. package/src/langium/config/configuration-provider.ts +119 -0
  633. package/src/langium/config/index.ts +1 -0
  634. package/src/langium/diagnostics/console-tee.ts +151 -0
  635. package/src/langium/diagnostics/format-log-arg.ts +36 -0
  636. package/src/langium/diagnostics/hydranium-langium-profiler.ts +15 -39
  637. package/src/langium/diagnostics/log-preamble.ts +1 -1
  638. package/src/langium/diagnostics/logger.ts +51 -17
  639. package/src/langium/diagnostics/lsp-logger.ts +83 -44
  640. package/src/langium/document-builder/build-pipeline-integration.ts +46 -32
  641. package/src/langium/document-builder/build-session.ts +4 -3
  642. package/src/langium/document-builder/document-builder.ts +554 -79
  643. package/src/langium/integration-services.ts +59 -28
  644. package/src/langium/integrity/integrity-rule.ts +17 -8
  645. package/src/langium/integrity/integrity-service.ts +332 -69
  646. package/src/langium/language-module.ts +49 -8
  647. package/src/langium/model-service/client-session.ts +718 -0
  648. package/src/langium/model-service/index.ts +2 -0
  649. package/src/langium/model-service/model-events.ts +80 -0
  650. package/src/langium/model-service/model-service.ts +878 -494
  651. package/src/langium/module.ts +195 -72
  652. package/src/langium/naming/name-provider.ts +34 -8
  653. package/src/langium/project/abstract-project-manager.ts +13 -5
  654. package/src/langium/project/project-change-event.ts +2 -2
  655. package/src/langium/residency/cst-residency-service.ts +54 -19
  656. package/src/langium/scope/fallback-scope.ts +38 -0
  657. package/src/langium/scope/hydranium-scope-computation.ts +45 -44
  658. package/src/langium/scope/hydranium-scope-provider.ts +132 -33
  659. package/src/langium/scope/index.ts +1 -0
  660. package/src/langium/scope/reference-candidate-provider.ts +6 -5
  661. package/src/langium/scope/scope-extension-service.ts +74 -59
  662. package/src/langium/scope/scoped-ast-node-description.ts +1 -3
  663. package/src/langium/serialization/abstract-serializer.ts +57 -41
  664. package/src/langium/serialization/json-serializer.ts +14 -3
  665. package/src/langium/serialization/serializer.ts +1 -1
  666. package/src/langium/serialization/yaml-serializer.ts +4 -0
  667. package/src/langium/service-registry.ts +41 -2
  668. package/src/langium/shared-services.ts +16 -7
  669. package/src/langium/single-langium-copy.ts +42 -0
  670. package/src/langium/transfer/transfer-encoder.ts +104 -47
  671. package/src/langium/trivia/comment-preserver.ts +1409 -0
  672. package/src/langium/trivia/document-ending-preserver.ts +71 -0
  673. package/src/langium/trivia/index.ts +14 -0
  674. package/src/langium/trivia/trivia-contribution.ts +39 -0
  675. package/src/langium/trivia/trivia-preserver.ts +56 -0
  676. package/src/langium/trivia/trivia-service.ts +99 -0
  677. package/src/langium/update-rewrite/update-rewrite-service.ts +1 -1
  678. package/src/langium/update-rewrite/update-rewrite.ts +1 -1
  679. package/src/langium/validation/document-validator.ts +312 -31
  680. package/src/langium/validation/validation-contribution-collector.ts +10 -1
  681. package/src/langium/workspace/document-uri-policy.ts +32 -18
  682. package/src/langium/workspace/file-not-found.ts +35 -0
  683. package/src/langium/workspace/file-system-provider.ts +258 -16
  684. package/src/langium/workspace/hydranium-langium-document-factory.ts +83 -0
  685. package/src/langium/workspace/hydranium-workspace-lock.ts +86 -2
  686. package/src/langium/workspace/hydranium-workspace-manager.ts +212 -35
  687. package/src/langium/workspace/in-memory-file-system-provider.ts +54 -23
  688. package/src/langium/workspace/index.ts +1 -0
  689. package/src/langium/workspace/initialize-workspace.ts +96 -4
  690. package/src/langium/workspace/langium-documents.ts +19 -1
  691. package/src/langium/workspace/persistent-file-system-provider.ts +27 -15
  692. package/src/langium/workspace/self-save-registry.ts +118 -0
  693. package/src/langium/workspace/virtual-document.ts +106 -25
  694. package/src/langium/workspace/write-lock-scope.ts +27 -12
  695. package/src/launcher/integrated-server.ts +3 -1
  696. package/src/locale/server-locale.ts +20 -5
  697. package/src/lsp/completion/hydranium-completion-provider.ts +82 -2
  698. package/src/lsp/connection-features.ts +67 -0
  699. package/src/lsp/diagnostics-connection.ts +56 -0
  700. package/src/lsp/edit-requests-guard.ts +152 -0
  701. package/src/lsp/hydranium-document-update-handler.ts +285 -111
  702. package/src/lsp/index.ts +6 -2
  703. package/src/lsp/lsp-latency.ts +62 -0
  704. package/src/lsp/save-text-document.ts +63 -0
  705. package/src/lsp/semantic-token-provider.ts +146 -8
  706. package/src/lsp/shared-module.ts +4 -8
  707. package/src/lsp/start-language-server.ts +21 -7
  708. package/src/messages/carriers.ts +4 -6
  709. package/src/messages/index.ts +11 -2
  710. package/src/messages/renderer.ts +34 -6
  711. package/src/node/event-loop-monitor.ts +2 -1
  712. package/src/node/heap-ceiling.ts +108 -0
  713. package/src/node/index.ts +5 -1
  714. package/src/node/latency-from-env.ts +1 -1
  715. package/src/node/log-file-sink.ts +6 -2
  716. package/src/node/log-preamble-node.ts +20 -10
  717. package/src/node/measure-memory.ts +5 -4
  718. package/src/node/memory-monitor.ts +10 -10
  719. package/src/node/node-file-system-provider.ts +214 -57
  720. package/src/node/profile-capture.ts +16 -15
  721. package/src/node/profiling-run.ts +30 -8
  722. package/src/node/rename-over-open-readers.ts +94 -0
  723. package/src/node/server-diagnostics.ts +1 -1
  724. package/src/node/server-state-snapshot.ts +5 -5
  725. package/src/node/socket-launcher.ts +78 -14
  726. package/src/node/startup-cpu-profile.ts +94 -0
  727. package/src/node/stdio-launcher.ts +29 -19
  728. package/src/node/validate-workspace.ts +8 -2
  729. package/src/testing/document-uri-policy-conformance.ts +1 -1
  730. package/src/testing/fake-document.ts +2 -1
  731. package/src/testing/index.ts +2 -1
  732. package/src/testing/langium-test-helpers.ts +1 -0
  733. package/src/testing/make-noop-shared-services.ts +6 -6
  734. package/src/testing/make-test-services.ts +93 -41
  735. package/src/testing/make-test-tracer.ts +26 -0
  736. package/src/testing/node/applied-edit-capture.ts +141 -0
  737. package/src/testing/node/index.ts +1 -0
  738. package/src/testing/node/lsp-harness.ts +2 -0
  739. package/src/testing/node/lsp-server-connection.ts +83 -119
  740. package/src/testing/node/scratch-workspace.ts +10 -5
  741. package/src/testing/node/spawned-server.ts +57 -3
  742. package/src/testing/node/unhandled-rejections.ts +31 -0
  743. package/src/testing/parse-semantic-root.ts +1 -1
  744. package/src/testing/playwright/flaky-network-proxy.ts +240 -0
  745. package/src/testing/playwright/index.ts +1 -0
  746. package/src/testing/playwright/server-log-capture.ts +137 -47
  747. package/src/testing/playwright/server-log-fixture.ts +46 -6
  748. package/src/testing/playwright/server-log-region.ts +32 -0
  749. package/src/testing/playwright/server-log-rename-reporter.ts +4 -3
  750. package/src/testing/run-update-pipeline.ts +8 -5
  751. package/src/testing/stub-ast-document-manager.ts +47 -128
  752. package/src/testing/stub-document-builder.ts +133 -18
  753. package/src/testing/stub-hydranium-text-documents.ts +184 -27
  754. package/src/testing/stub-langium-documents.ts +3 -2
  755. package/src/testing/stub-model-service.ts +11 -10
  756. package/src/testing/stub-self-save-registry.ts +1 -1
  757. package/src/testing/stub-service-registry.ts +1 -1
  758. package/src/testing/stub-writable-file-system.ts +3 -2
  759. package/src/util/connection-liveness.ts +80 -15
  760. package/src/util/environment.ts +24 -2
  761. package/lib/documents/language-client-text-shadow.d.ts +0 -101
  762. package/lib/documents/language-client-text-shadow.d.ts.map +0 -1
  763. package/lib/documents/language-client-text-shadow.js +0 -156
  764. package/lib/documents/language-client-text-shadow.js.map +0 -1
  765. package/lib/documents/self-save-registry.d.ts +0 -55
  766. package/lib/documents/self-save-registry.d.ts.map +0 -1
  767. package/lib/documents/self-save-registry.js.map +0 -1
  768. package/lib/lsp/instrument-connection.d.ts +0 -36
  769. package/lib/lsp/instrument-connection.d.ts.map +0 -1
  770. package/lib/lsp/instrument-connection.js +0 -62
  771. package/lib/lsp/instrument-connection.js.map +0 -1
  772. package/lib/node/process-memory.d.ts +0 -66
  773. package/lib/node/process-memory.d.ts.map +0 -1
  774. package/lib/node/process-memory.js +0 -252
  775. package/lib/node/process-memory.js.map +0 -1
  776. package/src/documents/language-client-text-shadow.ts +0 -175
  777. package/src/documents/self-save-registry.ts +0 -81
  778. package/src/lsp/instrument-connection.ts +0 -66
  779. package/src/node/process-memory.ts +0 -299
@@ -1 +1 @@
1
- {"version":3,"file":"cst-residency-service.js","sourceRoot":"","sources":["../../../src/langium/residency/cst-residency-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cst-residency-service.js","sourceRoot":"","sources":["../../../src/langium/residency/cst-residency-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ast-node-description-provider.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/ast-node-description-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAAE,iCAAiC,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEvG;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mCAAoC,SAAQ,iCAAiC;IACvF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEtB,QAAQ,EAAE,yBAAyB,EAAE,OAAO,GAAE,cAAmB;IAK7E;;;;;;;;;OASG;IACM,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,wBAAwB;IAI5G;;;;;;;;OAQG;IACH,WAAW,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;KAAE,GAAG,wBAAwB;IAIrI;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,OAAO,EAAE;QACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;QACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC7B,GAAG,wBAAwB;IAI5B;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,OAAO,EAAE;QACnB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;QACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC7B,GAAG,wBAAwB;IAI5B;;;;;;;;;OASG;IACH,eAAe,CAAC,OAAO,EAAE;QACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;KACrC,GAAG,wBAAwB;IAI5B;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,wBAAwB;CAGnH"}
1
+ {"version":3,"file":"ast-node-description-provider.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/ast-node-description-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAAE,iCAAiC,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEvG;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mCAAoC,SAAQ,iCAAiC;IACvF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,YAAY,QAAQ,EAAE,yBAAyB,EAAE,OAAO,GAAE,cAAmB,EAG5E;IAED;;;;;;;;;OASG;IACM,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,wBAAwB,CAE3G;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;KAAE,GAAG,wBAAwB,CAEpI;IAED;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,OAAO,EAAE;QACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;QACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC7B,GAAG,wBAAwB,CAE3B;IAED;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,OAAO,EAAE;QACnB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;QACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC7B,GAAG,wBAAwB,CAE3B;IAED;;;;;;;;;OASG;IACH,eAAe,CAAC,OAAO,EAAE;QACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;KACrC,GAAG,wBAAwB,CAE3B;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,wBAAwB,CAEhH;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"ast-node-description-provider.js","sourceRoot":"","sources":["../../../src/langium/scope/ast-node-description-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAGlF,OAAO,EAAyC,iCAAiC,EAAwB,MAAM,oBAAoB,CAAC;AAKpI;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,mCAAoC,SAAQ,iCAAiC;IACpE,MAAM,CAAS;IAElC,YAAY,QAAmC,EAAE,UAA0B,EAAE;QAC1E,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,4BAA4B,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACnH,CAAC;IAED;;;;;;;;;OASG;IACM,iBAAiB,CAAC,IAAa,EAAE,IAAY,EAAE,QAAyB;QAC9E,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,OAA8F;QACvG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IACxG,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,OAKb;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7H,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,OAKZ;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5H,CAAC;IAED;;;;;;;;;OASG;IACH,eAAe,CAAC,OAIf;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;IAC5G,CAAC;IAED;;;;;OAKG;IACO,QAAQ,CAAC,IAAwB,EAAE,IAAqB,EAAE,SAAkB;QACnF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAA6B,CAAC;IAC/E,CAAC;CACH"}
1
+ {"version":3,"file":"ast-node-description-provider.js","sourceRoot":"","sources":["../../../src/langium/scope/ast-node-description-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAGlF,OAAO,EAAyC,iCAAiC,EAAwB,MAAM,oBAAoB,CAAC;AAKpI;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,mCAAoC,SAAQ,iCAAiC;IACpE,MAAM,CAAS;IAElC,YAAY,QAAmC,EAAE,OAAO,GAAmB,EAAE;QAC1E,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,4BAA4B,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACnH,CAAC;IAED;;;;;;;;;OASG;IACM,iBAAiB,CAAC,IAAa,EAAE,IAAY,EAAE,QAAyB;QAC9E,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,OAA8F;QACvG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IACxG,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,OAKb;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7H,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,OAKZ;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5H,CAAC;IAED;;;;;;;;;OASG;IACH,eAAe,CAAC,OAIf;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;IAC5G,CAAC;IAED;;;;;OAKG;IACO,QAAQ,CAAC,IAAwB,EAAE,IAAqB,EAAE,SAAkB;QACnF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAA6B,CAAC;IAC/E,CAAC;CACH"}
@@ -0,0 +1,27 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ import { type AstNodeDescription, type Scope, type Stream } from '@hydranium/langium';
10
+ /**
11
+ * A scope that answers from `primary`, and from `fallback` only for a name
12
+ * `primary` does not hold.
13
+ *
14
+ * Langium fixes a scope's outer scope when the scope is built, so a tier cannot
15
+ * be put below a scope that already exists, such as a cached one. Re-wrapping
16
+ * that scope's elements instead would turn its keyed lookup into a scan of
17
+ * every element; chaining keeps each scope's own lookup.
18
+ */
19
+ export declare class FallbackScope implements Scope {
20
+ protected readonly primary: Scope;
21
+ protected readonly fallback: Scope;
22
+ constructor(primary: Scope, fallback: Scope);
23
+ getElement(name: string): AstNodeDescription | undefined;
24
+ getElements(name: string): Stream<AstNodeDescription>;
25
+ getAllElements(): Stream<AstNodeDescription>;
26
+ }
27
+ //# sourceMappingURL=fallback-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback-scope.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/fallback-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEtF;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,KAAK;IAErC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK;IACjC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK;IAFrC,YACsB,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,KAAK,EACjC;IAEJ,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEvD;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAEpD;IAED,cAAc,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAE3C;CACH"}
@@ -0,0 +1,35 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ /**
10
+ * A scope that answers from `primary`, and from `fallback` only for a name
11
+ * `primary` does not hold.
12
+ *
13
+ * Langium fixes a scope's outer scope when the scope is built, so a tier cannot
14
+ * be put below a scope that already exists, such as a cached one. Re-wrapping
15
+ * that scope's elements instead would turn its keyed lookup into a scan of
16
+ * every element; chaining keeps each scope's own lookup.
17
+ */
18
+ export class FallbackScope {
19
+ primary;
20
+ fallback;
21
+ constructor(primary, fallback) {
22
+ this.primary = primary;
23
+ this.fallback = fallback;
24
+ }
25
+ getElement(name) {
26
+ return this.primary.getElement(name) ?? this.fallback.getElement(name);
27
+ }
28
+ getElements(name) {
29
+ return this.primary.getElements(name).concat(this.fallback.getElements(name));
30
+ }
31
+ getAllElements() {
32
+ return this.primary.getAllElements().concat(this.fallback.getAllElements());
33
+ }
34
+ }
35
+ //# sourceMappingURL=fallback-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback-scope.js","sourceRoot":"","sources":["../../../src/langium/scope/fallback-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IAED,OAAO;IACP,QAAQ;IAF9B,YACsB,OAAc,EACd,QAAe;uBADf,OAAO;wBACP,QAAQ;IAC3B,CAAC;IAEJ,UAAU,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,cAAc;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/E,CAAC;CACH"}
@@ -6,11 +6,13 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import { type AstNode, type AstNodeDescription, DefaultScopeComputation, type LangiumDocument, type LocalSymbols, MultiMap } from '@hydranium/langium';
10
- import { type Tracer } from '@hydranium/protocol';
9
+ import { type AstNode, type AstNodeDescription, DefaultScopeComputation, type LangiumDocument, type LocalSymbols, type MultiMap } from '@hydranium/langium';
10
+ import { type ProfileSession, type Tracer } from '@hydranium/protocol';
11
11
  import type { CancellationToken } from 'vscode-languageserver-protocol';
12
12
  import type { LogNameOptions } from '../diagnostics/logger.js';
13
13
  import type { HydraniumLanguageServices } from '../language-module.js';
14
+ import type { NameProvider } from '../naming/name-provider.js';
15
+ import { type HydraniumAstNodeDescriptionProvider } from './ast-node-description-provider.js';
14
16
  /**
15
17
  * Default scope computation for `@hydranium/core` consumers. Two
16
18
  * framework behaviours layered on top of Langium's
@@ -21,8 +23,9 @@ import type { HydraniumLanguageServices } from '../language-module.js';
21
23
  * `NameProvider.getName` defaults to the workspace-unique
22
24
  * `getProjectQualifiedName`. Routing the local-symbols pass through
23
25
  * `getName` would put qualified names in the per-document symbol map
24
- * and break within-document bare-name references. {@link addLocalSymbol}
25
- * bypasses the default and calls {@link NameProvider.getOwnName}
26
+ * and break within-document bare-name references.
27
+ * {@link addLocalSymbolByOwnName} bypasses the default and calls
28
+ * {@link NameProvider.getOwnName}
26
29
  * directly so local symbols stay keyed by bare names regardless of
27
30
  * what `getName` returns.
28
31
  *
@@ -41,27 +44,25 @@ import type { HydraniumLanguageServices } from '../language-module.js';
41
44
  *
42
45
  * Performance: piggybacks on the existing single AST walk Langium does
43
46
  * for local-symbol collection — the AST-extension dispatch and the
44
- * own-name read both happen in `addLocalSymbol`, no extra traversal.
47
+ * own-name read both happen in `addLocalSymbolByOwnName`, no extra traversal.
45
48
  * The exported-symbol pass reads both name tiers once per node, no
46
49
  * duplicated walks.
47
50
  */
48
51
  export declare class HydraniumScopeComputation extends DefaultScopeComputation {
49
52
  protected readonly services: HydraniumLanguageServices;
53
+ /** The framework's name provider, which its language module binds to the slot. */
54
+ protected readonly nameProvider: NameProvider;
55
+ /** The framework's description provider, which its language module binds to the slot. */
56
+ protected readonly descriptions: HydraniumAstNodeDescriptionProvider;
50
57
  protected readonly tracer: Tracer;
51
58
  constructor(services: HydraniumLanguageServices, options?: LogNameOptions);
59
+ /** The session {@link addLocalSymbol} records into while a `debug`-level walk runs. */
60
+ protected localSymbolsProfile: ProfileSession | undefined;
52
61
  /**
53
- * Local-symbol collection with optional per-`$type` self-time profiling.
54
- *
55
- * Langium's default walks the full AST and calls {@link addLocalSymbol} per
56
- * node. At the default `info` level this delegates straight to `super` (zero
57
- * cost). At `debug` it reproduces the same walk under a `ProfileSession`
58
- * so each `$type`'s contribution to the heaviest scope-computation pass is
59
- * aggregated and reported line-based — the walk is gated rather than the
60
- * per-node `scope`, since `ProfileSession.scope` is not itself level-gated.
61
- *
62
- * The instance carries no profiling state: the session is local to the call,
63
- * which is safe because Langium's document builder runs `collectLocalSymbols`
64
- * strictly one document at a time (`runCancelable`'s sequential `for…await`).
62
+ * Langium's local-symbol walk, with per-`$type` self-time profiling at
63
+ * `debug`. The walk is Langium's at every level: a copy run only at `debug`
64
+ * would drift from the one every other level runs. Overlapping builds share
65
+ * the session and blur each other's report.
65
66
  */
66
67
  collectLocalSymbols(document: LangiumDocument, cancelToken?: CancellationToken): Promise<LocalSymbols>;
67
68
  /**
@@ -143,6 +144,8 @@ export declare class HydraniumScopeComputation extends DefaultScopeComputation {
143
144
  * (e.g. a per-document descriptor service).
144
145
  */
145
146
  protected getProjectIdForDocument(document: LangiumDocument): string | undefined;
147
+ /** {@link addLocalSymbolByOwnName}, timed per `$type` while {@link localSymbolsProfile} is set. */
148
+ protected addLocalSymbol(node: AstNode, document: LangiumDocument, symbols: MultiMap<AstNode, AstNodeDescription>): void;
146
149
  /**
147
150
  * Bypasses Langium's `super.addLocalSymbol` (which would key the
148
151
  * local-symbols map by `nameProvider.getName(node)`, qualified by
@@ -158,6 +161,6 @@ export declare class HydraniumScopeComputation extends DefaultScopeComputation {
158
161
  * extension `compute` callbacks fire after this `addLocalSymbol` pass
159
162
  * completes for the whole document.
160
163
  */
161
- protected addLocalSymbol(node: AstNode, document: LangiumDocument, symbols: MultiMap<AstNode, AstNodeDescription>): void;
164
+ protected addLocalSymbolByOwnName(node: AstNode, document: LangiumDocument, symbols: MultiMap<AstNode, AstNodeDescription>): void;
162
165
  }
163
166
  //# sourceMappingURL=hydranium-scope-computation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-scope-computation.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-computation.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,OAAO,EACZ,KAAK,kBAAkB,EAEvB,uBAAuB,EAEvB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,QAAQ,EAEV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAIvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,yBAA0B,SAAQ,uBAAuB;IAIhE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB;IAHzD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGZ,QAAQ,EAAE,yBAAyB,EACtD,OAAO,GAAE,cAAmB;IAM/B;;;;;;;;;;;;;OAaG;IACY,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAqBrH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;cACgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAKnH;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAetG;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAcrG;;;;;;;;;OASG;IACH,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS;IAIhF;;;;;;;;;;;;;;OAcG;cACgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAAG,IAAI;CAUnI"}
1
+ {"version":3,"file":"hydranium-scope-computation.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-computation.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,QAAQ,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAU,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,oCAAoC,CAAC;AAE9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,yBAA0B,SAAQ,uBAAuB;IAQhE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB;IAPzD,kFAAkF;IAClF,mBAA2B,YAAY,EAAE,YAAY,CAAC;IACtD,yFAAyF;IACzF,mBAA2B,YAAY,EAAE,mCAAmC,CAAC;IAC7E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,YACsB,QAAQ,EAAE,yBAAyB,EACtD,OAAO,GAAE,cAAmB,EAI9B;IAED,uFAAuF;IACvF,SAAS,CAAC,mBAAmB,EAAE,cAAc,GAAG,SAAS,CAAC;IAE1D;;;;;OAKG;IACY,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBpH;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,UAAmB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAGlH;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAWrG;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAUpG;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAE/E;IAED,mGAAmG;IACnG,UAAmB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAOhI;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAShI;CACH"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import { AstUtils, DefaultScopeComputation, interruptAndCheck, MultiMap, UriUtils } from '@hydranium/langium';
9
+ import { DefaultScopeComputation, UriUtils } from '@hydranium/langium';
10
10
  import { Logger } from '@hydranium/protocol';
11
11
  /**
12
12
  * Default scope computation for `@hydranium/core` consumers. Two
@@ -18,8 +18,9 @@ import { Logger } from '@hydranium/protocol';
18
18
  * `NameProvider.getName` defaults to the workspace-unique
19
19
  * `getProjectQualifiedName`. Routing the local-symbols pass through
20
20
  * `getName` would put qualified names in the per-document symbol map
21
- * and break within-document bare-name references. {@link addLocalSymbol}
22
- * bypasses the default and calls {@link NameProvider.getOwnName}
21
+ * and break within-document bare-name references.
22
+ * {@link addLocalSymbolByOwnName} bypasses the default and calls
23
+ * {@link NameProvider.getOwnName}
23
24
  * directly so local symbols stay keyed by bare names regardless of
24
25
  * what `getName` returns.
25
26
  *
@@ -38,7 +39,7 @@ import { Logger } from '@hydranium/protocol';
38
39
  *
39
40
  * Performance: piggybacks on the existing single AST walk Langium does
40
41
  * for local-symbol collection — the AST-extension dispatch and the
41
- * own-name read both happen in `addLocalSymbol`, no extra traversal.
42
+ * own-name read both happen in `addLocalSymbolByOwnName`, no extra traversal.
42
43
  * The exported-symbol pass reads both name tiers once per node, no
43
44
  * duplicated walks.
44
45
  */
@@ -50,38 +51,30 @@ export class HydraniumScopeComputation extends DefaultScopeComputation {
50
51
  this.services = services;
51
52
  this.tracer = services.shared.Tracer.for(options.logName ?? 'ScopeComputation').trace('instantiated');
52
53
  }
54
+ /** The session {@link addLocalSymbol} records into while a `debug`-level walk runs. */
55
+ localSymbolsProfile;
53
56
  /**
54
- * Local-symbol collection with optional per-`$type` self-time profiling.
55
- *
56
- * Langium's default walks the full AST and calls {@link addLocalSymbol} per
57
- * node. At the default `info` level this delegates straight to `super` (zero
58
- * cost). At `debug` it reproduces the same walk under a `ProfileSession`
59
- * so each `$type`'s contribution to the heaviest scope-computation pass is
60
- * aggregated and reported line-based — the walk is gated rather than the
61
- * per-node `scope`, since `ProfileSession.scope` is not itself level-gated.
62
- *
63
- * The instance carries no profiling state: the session is local to the call,
64
- * which is safe because Langium's document builder runs `collectLocalSymbols`
65
- * strictly one document at a time (`runCancelable`'s sequential `for…await`).
57
+ * Langium's local-symbol walk, with per-`$type` self-time profiling at
58
+ * `debug`. The walk is Langium's at every level: a copy run only at `debug`
59
+ * would drift from the one every other level runs. Overlapping builds share
60
+ * the session and blur each other's report.
66
61
  */
67
62
  async collectLocalSymbols(document, cancelToken) {
68
63
  if (!Logger.isLevelEnabled('debug')) {
69
64
  return super.collectLocalSymbols(document, cancelToken);
70
65
  }
71
- // Faithfully reproduces Langium's local-symbol walk (root's full-AST stream
72
- // → addLocalSymbol per node) under a session. The MultiMap conforms to
73
- // LocalSymbols. interruptAndCheck only when a token is supplied (the base
74
- // defaults to CancellationToken.None, a no-op token).
75
- const rootNode = document.parseResult.value;
76
- const symbols = new MultiMap();
77
- const session = this.tracer.profile(`scope-local ${UriUtils.basename(document.uri)}`);
78
- for (const node of AstUtils.streamAllContents(rootNode)) {
79
- if (cancelToken) {
80
- await interruptAndCheck(cancelToken);
66
+ const profile = this.tracer.profile(`scope-local ${UriUtils.basename(document.uri)}`);
67
+ this.localSymbolsProfile = profile;
68
+ let symbols;
69
+ try {
70
+ symbols = await super.collectLocalSymbols(document, cancelToken);
71
+ }
72
+ finally {
73
+ if (this.localSymbolsProfile === profile) {
74
+ this.localSymbolsProfile = undefined;
81
75
  }
82
- session.scope(node.$type, () => this.addLocalSymbol(node, document, symbols));
83
76
  }
84
- session.report('debug');
77
+ profile.report('debug');
85
78
  return symbols;
86
79
  }
87
80
  /**
@@ -142,16 +135,14 @@ export class HydraniumScopeComputation extends DefaultScopeComputation {
142
135
  * workspace-visible rather than being filtered out everywhere.
143
136
  */
144
137
  exportProject(node, exports, document) {
145
- const nameProvider = this.nameProvider;
146
- const documentName = nameProvider.getDocumentQualifiedName(node);
138
+ const documentName = this.nameProvider.getDocumentQualifiedName(node);
147
139
  if (!documentName) {
148
140
  return;
149
141
  }
150
142
  const projectId = this.getProjectIdForDocument(document);
151
- const descriptions = this.descriptions;
152
143
  exports.push(projectId !== undefined
153
- ? descriptions.createProject({ node, name: documentName, document, projectId })
154
- : descriptions.createUniversal({ node, name: documentName, document }));
144
+ ? this.descriptions.createProject({ node, name: documentName, document, projectId })
145
+ : this.descriptions.createUniversal({ node, name: documentName, document }));
155
146
  }
156
147
  /**
157
148
  * Conditional public-tier emit hook — `tier: 'public'` description keyed
@@ -166,16 +157,14 @@ export class HydraniumScopeComputation extends DefaultScopeComputation {
166
157
  * document-qualified name.
167
158
  */
168
159
  exportPublic(node, exports, document) {
169
- const nameProvider = this.nameProvider;
170
160
  const projectId = this.getProjectIdForDocument(document);
171
161
  if (projectId === undefined) {
172
162
  return;
173
163
  }
174
- const documentName = nameProvider.getDocumentQualifiedName(node);
175
- const projectName = nameProvider.getProjectQualifiedName(node);
164
+ const documentName = this.nameProvider.getDocumentQualifiedName(node);
165
+ const projectName = this.nameProvider.getProjectQualifiedName(node);
176
166
  if (projectName && projectName !== documentName) {
177
- const descriptions = this.descriptions;
178
- exports.push(descriptions.createPublic({ node, name: projectName, document, projectId }));
167
+ exports.push(this.descriptions.createPublic({ node, name: projectName, document, projectId }));
179
168
  }
180
169
  }
181
170
  /**
@@ -191,6 +180,16 @@ export class HydraniumScopeComputation extends DefaultScopeComputation {
191
180
  getProjectIdForDocument(document) {
192
181
  return this.services.shared.workspace.ProjectManager.getProject(document.uri)?.id;
193
182
  }
183
+ /** {@link addLocalSymbolByOwnName}, timed per `$type` while {@link localSymbolsProfile} is set. */
184
+ addLocalSymbol(node, document, symbols) {
185
+ const profile = this.localSymbolsProfile;
186
+ if (profile) {
187
+ profile.scope(node.$type, () => this.addLocalSymbolByOwnName(node, document, symbols));
188
+ }
189
+ else {
190
+ this.addLocalSymbolByOwnName(node, document, symbols);
191
+ }
192
+ }
194
193
  /**
195
194
  * Bypasses Langium's `super.addLocalSymbol` (which would key the
196
195
  * local-symbols map by `nameProvider.getName(node)`, qualified by
@@ -206,7 +205,7 @@ export class HydraniumScopeComputation extends DefaultScopeComputation {
206
205
  * extension `compute` callbacks fire after this `addLocalSymbol` pass
207
206
  * completes for the whole document.
208
207
  */
209
- addLocalSymbol(node, document, symbols) {
208
+ addLocalSymbolByOwnName(node, document, symbols) {
210
209
  const container = node.$container;
211
210
  if (!container) {
212
211
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-scope-computation.js","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-computation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydranium-scope-computation.js","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-computation.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,13 @@
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
9
  import { type Tracer, type ReferenceContext, type ReferenceRequest, type ReferenceSource, type SyntheticSource } from '@hydranium/protocol';
10
- import { type AstNode, type AstNodeDescription, type AstNodeLocator, DefaultScopeProvider, type ReferenceInfo, type Scope, type ScopeOptions, type URI, WorkspaceCache } from '@hydranium/langium';
10
+ import { type AstNode, type AstNodeDescription, type AstNodeLocator, DefaultScopeProvider, type LocalSymbols, type ReferenceInfo, type Scope, type ScopeOptions, type URI, WorkspaceCache } from '@hydranium/langium';
11
11
  import { type LogNameOptions } from '../diagnostics/logger.js';
12
12
  import { type HydraniumLanguageServices } from '../language-module.js';
13
13
  import { type NameProvider } from '../naming/name-provider.js';
14
14
  import { type HydraniumDocumentRegistry } from '../workspace/langium-documents.js';
15
15
  import { type ScopeExtensionService } from './scope-extension-service.js';
16
+ import { type TieredAstNodeDescription } from './scoped-ast-node-description.js';
16
17
  /**
17
18
  * Construction-time options for {@link HydraniumScopeProvider}. Extends
18
19
  * {@link LogNameOptions} so the standard `logName?` field
@@ -72,16 +73,16 @@ export interface ScopeContext {
72
73
  * ## Scope chain (high → low, inner shadows outer)
73
74
  *
74
75
  * ```
75
- * document-local (Langium precomputed) [DefaultScopeProvider.getScope]
76
+ * document-local (Langium precomputed) [getScope, CACHED per build in localScope]
76
77
  * extension:local [layerLocalExtension, per-context]
77
78
  * own-project → dependency → universal-index [createGlobalScope default, CACHED per ${project}::${refType}]
78
79
  * extension:universal [layerUniversalExtension, per-context, outermost]
79
80
  * ```
80
81
  *
81
- * Implementation: Langium's `getScope` layers document-local on top of
82
- * whatever `getGlobalScope` returns. The framework owns `getGlobalScope`
83
- * and uses it to assemble everything *below* document-local, with the
84
- * adopter-overridable {@link createGlobalScope} in the middle.
82
+ * Implementation: {@link getScope} layers document-local on top of
83
+ * whatever `getGlobalScope` returns, as Langium's does. The framework owns
84
+ * `getGlobalScope` and uses it to assemble everything *below* document-local,
85
+ * with the adopter-overridable {@link createGlobalScope} in the middle.
85
86
  *
86
87
  * ## Adopter override surface
87
88
  *
@@ -131,6 +132,12 @@ export declare class HydraniumScopeProvider extends DefaultScopeProvider {
131
132
  * the workspace-global `DocumentBuilder.onUpdate`.
132
133
  */
133
134
  protected readonly scopeCache: WorkspaceCache<string, Scope>;
135
+ /**
136
+ * Each container's local scope per reference type, keyed by the local
137
+ * symbols it was built from. A build replaces a document's local symbols
138
+ * when it recomputes them, so a rebuilt document never reads a stale entry.
139
+ */
140
+ protected readonly localScopes: WeakMap<LocalSymbols, Map<AstNode, Map<string, Scope>>>;
134
141
  protected readonly tracer: Tracer;
135
142
  /**
136
143
  * Narrows the inherited Langium {@link NameProvider} field to the framework's
@@ -140,14 +147,46 @@ export declare class HydraniumScopeProvider extends DefaultScopeProvider {
140
147
  */
141
148
  protected readonly nameProvider: NameProvider;
142
149
  constructor(services: HydraniumLanguageServices, options?: HydraniumScopeProviderOptions);
150
+ /**
151
+ * Drop every cached scope — the framework's project-tier chain and the
152
+ * inherited global scope it is filtered from.
153
+ *
154
+ * **Called from outside the class**, by the build pipeline once the batch is
155
+ * re-indexed. The caches' own eviction does not cover this:
156
+ * `DocumentBuilder.onUpdate` fires after the build has taken every changed
157
+ * document's symbols out of the index and before it puts them back, so a
158
+ * scope built in that gap denies those symbols exist and every document the
159
+ * same build links afterwards resolves against it.
160
+ *
161
+ * Both go together because the second is derived from the first: clearing
162
+ * only {@link scopeCache} refills it from a stale `globalScopeCache`, and
163
+ * clearing only `globalScopeCache` leaves the filtered copy standing.
164
+ */
165
+ clearScopeCaches(): void;
166
+ /**
167
+ * Langium's, with each container's local scope built once per build through
168
+ * {@link localScope} rather than once per reference. Linking a document then
169
+ * costs its references plus its declarations, not their product.
170
+ */
171
+ getScope(context: ReferenceInfo): Scope;
172
+ /**
173
+ * The symbols `container` declares that a `referenceType` reference can
174
+ * reach, through {@link createScope}, built once per `localSymbols`.
175
+ */
176
+ protected localScope(localSymbols: LocalSymbols, container: AstNode, referenceType: string): Scope;
177
+ /**
178
+ * Keyed by name, where Langium's walks every element on each lookup. Every
179
+ * description of a name is kept and the first answers, as in Langium's;
180
+ * `getAllElements` lists them grouped by name.
181
+ */
182
+ protected createScope(elements: Iterable<AstNodeDescription>, outerScope?: Scope, options?: ScopeOptions): Scope;
143
183
  /**
144
184
  * Framework-owned assembly seam. **Adopters do NOT override this** —
145
185
  * override {@link createGlobalScope} instead. This method layers the
146
186
  * scope-extension tiers around the adopter-overridable global scope.
147
187
  *
148
- * Langium's `DefaultScopeProvider.getScope` then layers document-local
149
- * on top of this result, yielding the full chain documented on the
150
- * class.
188
+ * {@link getScope} then layers document-local on top of this result,
189
+ * yielding the full chain documented on the class.
151
190
  */
152
191
  protected getGlobalScope(referenceType: string, context: ReferenceInfo): Scope;
153
192
  /**
@@ -177,18 +216,18 @@ export declare class HydraniumScopeProvider extends DefaultScopeProvider {
177
216
  */
178
217
  protected createGlobalScope(referenceType: string, context: ReferenceInfo): Scope;
179
218
  /**
180
- * Layer scope-extension `local`-tier descriptions on top of `inner`.
181
- * Returns `inner` unchanged when no extension contributes for the
182
- * reference type (zero-cost common path).
219
+ * Layer the scope extensions' `local`-tier `descriptions` on top of
220
+ * `inner`, through {@link createScope}. Returns `inner` unchanged when there
221
+ * are none.
183
222
  */
184
- protected layerLocalExtension(referenceType: string, context: ReferenceInfo, inner: Scope): Scope;
223
+ protected layerLocalExtension(descriptions: readonly TieredAstNodeDescription[], inner: Scope, _referenceType: string, _context: ReferenceInfo): Scope;
185
224
  /**
186
- * Layer scope-extension `universal`-tier descriptions BELOW `inner`
187
- * (extensions appear last in the chain, shadowed by inner). Returns
188
- * `inner` unchanged when no extension contributes for the reference
189
- * type.
225
+ * Layer the scope extensions' `universal`-tier `descriptions` below
226
+ * `inner`, which shadows them, through {@link createScope} and a
227
+ * {@link FallbackScope}, so `inner` keeps its own lookup. Returns `inner`
228
+ * unchanged when there are none.
190
229
  */
191
- protected layerUniversalExtension(referenceType: string, context: ReferenceInfo, inner: Scope): Scope;
230
+ protected layerUniversalExtension(descriptions: readonly TieredAstNodeDescription[], inner: Scope, _referenceType: string, _context: ReferenceInfo): Scope;
192
231
  /**
193
232
  * Project-tier scope filter. Given a source URI and a global scope,
194
233
  * returns the subset of descriptions whose owning project is visible
@@ -215,7 +254,7 @@ export declare class HydraniumScopeProvider extends DefaultScopeProvider {
215
254
  * closure).
216
255
  *
217
256
  * Contrast {@link getGlobalScope}, which applies the framework's
218
- * tier filter to this set, and `getScope` (Langium default), which
257
+ * tier filter to this set, and {@link getScope}, which
219
258
  * additionally merges in the local scope.
220
259
  */
221
260
  protected getAllElementsGlobalScope(referenceType: string, context: ReferenceInfo): Scope;
@@ -240,7 +279,7 @@ export declare class HydraniumScopeProvider extends DefaultScopeProvider {
240
279
  * Includes own-project `'public'`-tier descriptions when
241
280
  * {@link HydraniumScopeProviderOptions.includeOwnProjectPublic} is set
242
281
  * (routed to the own-project bucket by {@link bucketFor}). Returns a
243
- * {@link StreamScope} (not {@link MapScope}) so same-name siblings are
282
+ * {@link MultiMapScope} (not {@link MapScope}) so same-name siblings are
244
283
  * preserved rather than collapsed.
245
284
  */
246
285
  protected createOwnProjectScope(context: ScopeContext): Scope;
@@ -256,10 +295,10 @@ export declare class HydraniumScopeProvider extends DefaultScopeProvider {
256
295
  */
257
296
  protected createUniversalScope(context: ScopeContext): Scope;
258
297
  /**
259
- * Chain three tier sub-scopes inner-first. The `outerScope` argument
260
- * of {@link StreamScope} is consulted only when the inner stream has
261
- * no match, so a more specific tier shadows a less specific one of
262
- * the same name.
298
+ * Chain three tier sub-scopes inner-first through {@link FallbackScope},
299
+ * which consults an outer tier only when the inner one has no match, so a
300
+ * more specific tier shadows a less specific one of the same name, and each
301
+ * tier keeps its own lookup.
263
302
  */
264
303
  protected chainScopes(ownScope: Scope, dependencyScope: Scope, universalScope: Scope): Scope;
265
304
  /**
@@ -292,8 +331,9 @@ export declare class HydraniumScopeProvider extends DefaultScopeProvider {
292
331
  protected getProjectIdForDescription(description: AstNodeDescription): string | undefined;
293
332
  /**
294
333
  * Keys the scope by {@link NameProvider.getOwnName} instead of Langium's
295
- * `getName`. Same correction `HydraniumScopeComputation.addLocalSymbol`
296
- * makes to the local-symbols pass, for the same reason: `getName` defaults
334
+ * `getName`. Same correction
335
+ * `HydraniumScopeComputation.addLocalSymbolByOwnName` makes to the
336
+ * local-symbols pass, for the same reason: `getName` defaults
297
337
  * to the project-qualified form here, so the base would key a member scope
298
338
  * by the fully qualified `Container.member` while the reference text after
299
339
  * the dot is the bare `member` — and nothing reports the mismatch, because
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-scope-provider.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydranium-scope-provider.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EAKtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACJ,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,cAAc,EAEnB,oBAAoB,EACpB,KAAK,YAAY,EAGjB,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,YAAY,EAEjB,KAAK,GAAG,EAER,cAAc,EAEhB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,KAAK,wBAAwB,EAAuB,MAAM,kCAAkC,CAAC;AAEtG;;;;GAIG;AACH,MAAM,WAAW,6BAA8B,SAAQ,cAAc;IAClE;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC7C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACrD,2EAA2E;IAC3E,QAAQ,CAAC,iBAAiB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC1D,2DAA2D;IAC3D,QAAQ,CAAC,iBAAiB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC1D,iDAAiD;IACjD,QAAQ,CAAC,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,qBAAa,sBAAuB,SAAQ,oBAAoB;IAkC1D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB;IAjCzD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;IAC/D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAClD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAChE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;IAC1D;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7D;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,0DAAiE;IAC/F,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAClC;;;;;OAKG;IACH,mBAA2B,YAAY,EAAE,YAAY,CAAC;IAEtD,YACsB,QAAQ,EAAE,yBAAyB,EACtD,OAAO,GAAE,6BAAkC,EAS7C;IAED;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,IAAI,IAAI,CAGvB;IAED;;;;OAIG;IACM,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,KAAK,CAkB/C;IAED;;;OAGG;IACH,SAAS,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,KAAK,CAmBjG;IAED;;;;OAIG;IACH,UAAmB,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,KAAK,CAExH;IAED;;;;;;;OAOG;IACH,UAAmB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK,CAKtF;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,SAAS,CAAC,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK,CAIhF;IAED;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,CAC1B,YAAY,EAAE,SAAS,wBAAwB,EAAE,EACjD,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,aAAa,GACvB,KAAK,CAEP;IAED;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,CAC9B,YAAY,EAAE,SAAS,wBAAwB,EAAE,EACjD,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,aAAa,GACvB,KAAK,CAEP;IAED;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,KAAK,CAWhF;IAED;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK,CAExF;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,GAAG,KAAK,CAM9E;IAED;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,GAAG,YAAY,CAsBpF;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,KAAK,CAE5D;IAED;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,KAAK,CAE5D;IAED;;;OAGG;IACH,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,KAAK,CAE3D;IAED;;;;;OAKG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,GAAG,KAAK,CAE3F;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,SAAS,CAChB,WAAW,EAAE,kBAAkB,EAC/B,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACtC,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CA2B/C;IAED;;;;OAIG;IACH,SAAS,CAAC,0BAA0B,CAAC,WAAW,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAExF;IAED;;;;;;;;;;;;;OAaG;IACH,UAAmB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,KAAK,CAUrH;IAED;;;;;;;;;;;;;;;OAeG;IACH,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,CAqB3D;IAED;;;;OAIG;IACH,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,GAAG,SAAS,CAkBjE;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,GAAG,OAAO,GAAG,SAAS,CActF;IAED,wEAAwE;IACxE,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,GAAG,SAAS,CAcvE;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,GAAG,SAAS,CAM7E;IAED;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,GAAG,SAAS,CAE1D;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjF;IAED;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,WAAW,EAAE,kBAAkB,GAAG,MAAM,CAEhD;CACH"}