@hydranium/core 1.0.0-next.11 → 1.0.0-next.111

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 (415) hide show
  1. package/lib/documents/ast-document-manager.d.ts +75 -16
  2. package/lib/documents/ast-document-manager.d.ts.map +1 -1
  3. package/lib/documents/ast-document-manager.js +57 -19
  4. package/lib/documents/ast-document-manager.js.map +1 -1
  5. package/lib/documents/client-ids.d.ts +5 -19
  6. package/lib/documents/client-ids.d.ts.map +1 -1
  7. package/lib/documents/client-ids.js +5 -19
  8. package/lib/documents/client-ids.js.map +1 -1
  9. package/lib/documents/hydranium-text-documents.d.ts +124 -36
  10. package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
  11. package/lib/documents/hydranium-text-documents.js +191 -51
  12. package/lib/documents/hydranium-text-documents.js.map +1 -1
  13. package/lib/documents/language-client-text-shadow.d.ts +41 -9
  14. package/lib/documents/language-client-text-shadow.d.ts.map +1 -1
  15. package/lib/documents/language-client-text-shadow.js +56 -11
  16. package/lib/documents/language-client-text-shadow.js.map +1 -1
  17. package/lib/documents/self-save-registry.d.ts +37 -6
  18. package/lib/documents/self-save-registry.d.ts.map +1 -1
  19. package/lib/documents/self-save-registry.js +28 -15
  20. package/lib/documents/self-save-registry.js.map +1 -1
  21. package/lib/index.d.ts +3 -0
  22. package/lib/index.d.ts.map +1 -1
  23. package/lib/index.js +6 -0
  24. package/lib/index.js.map +1 -1
  25. package/lib/langium/ast-extension/ast-node-builder.d.ts +32 -9
  26. package/lib/langium/ast-extension/ast-node-builder.d.ts.map +1 -1
  27. package/lib/langium/ast-extension/ast-node-builder.js +60 -22
  28. package/lib/langium/ast-extension/ast-node-builder.js.map +1 -1
  29. package/lib/langium/bootstrap.d.ts.map +1 -1
  30. package/lib/langium/bootstrap.js +16 -9
  31. package/lib/langium/bootstrap.js.map +1 -1
  32. package/lib/langium/config/configuration-provider.d.ts +81 -0
  33. package/lib/langium/config/configuration-provider.d.ts.map +1 -0
  34. package/lib/langium/config/configuration-provider.js +112 -0
  35. package/lib/langium/config/configuration-provider.js.map +1 -0
  36. package/lib/langium/config/index.d.ts +1 -0
  37. package/lib/langium/config/index.d.ts.map +1 -1
  38. package/lib/langium/config/index.js +1 -0
  39. package/lib/langium/config/index.js.map +1 -1
  40. package/lib/langium/diagnostics/lsp-logger.d.ts +17 -0
  41. package/lib/langium/diagnostics/lsp-logger.d.ts.map +1 -1
  42. package/lib/langium/diagnostics/lsp-logger.js +40 -6
  43. package/lib/langium/diagnostics/lsp-logger.js.map +1 -1
  44. package/lib/langium/document-builder/build-pipeline-integration.d.ts +21 -1
  45. package/lib/langium/document-builder/build-pipeline-integration.d.ts.map +1 -1
  46. package/lib/langium/document-builder/build-pipeline-integration.js +32 -5
  47. package/lib/langium/document-builder/build-pipeline-integration.js.map +1 -1
  48. package/lib/langium/document-builder/build-session.d.ts +93 -0
  49. package/lib/langium/document-builder/build-session.d.ts.map +1 -0
  50. package/lib/langium/document-builder/build-session.js +72 -0
  51. package/lib/langium/document-builder/build-session.js.map +1 -0
  52. package/lib/langium/document-builder/document-builder.d.ts +150 -7
  53. package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
  54. package/lib/langium/document-builder/document-builder.js +298 -11
  55. package/lib/langium/document-builder/document-builder.js.map +1 -1
  56. package/lib/langium/document-builder/index.d.ts +1 -0
  57. package/lib/langium/document-builder/index.d.ts.map +1 -1
  58. package/lib/langium/document-builder/index.js +1 -0
  59. package/lib/langium/document-builder/index.js.map +1 -1
  60. package/lib/langium/integration-services.d.ts +45 -1
  61. package/lib/langium/integration-services.d.ts.map +1 -1
  62. package/lib/langium/integration-services.js +10 -5
  63. package/lib/langium/integration-services.js.map +1 -1
  64. package/lib/langium/integrity/integrity-service.d.ts +16 -0
  65. package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
  66. package/lib/langium/integrity/integrity-service.js +110 -2
  67. package/lib/langium/integrity/integrity-service.js.map +1 -1
  68. package/lib/langium/keys/containment.d.ts +64 -0
  69. package/lib/langium/keys/containment.d.ts.map +1 -0
  70. package/lib/langium/keys/containment.js +53 -0
  71. package/lib/langium/keys/containment.js.map +1 -0
  72. package/lib/langium/keys/index.d.ts +1 -0
  73. package/lib/langium/keys/index.d.ts.map +1 -1
  74. package/lib/langium/keys/index.js +1 -0
  75. package/lib/langium/keys/index.js.map +1 -1
  76. package/lib/langium/keys/name-based-key-provider.d.ts +4 -0
  77. package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -1
  78. package/lib/langium/keys/name-based-key-provider.js +4 -0
  79. package/lib/langium/keys/name-based-key-provider.js.map +1 -1
  80. package/lib/langium/language-module.d.ts +25 -0
  81. package/lib/langium/language-module.d.ts.map +1 -1
  82. package/lib/langium/language-module.js +14 -0
  83. package/lib/langium/language-module.js.map +1 -1
  84. package/lib/langium/model-service/model-service.d.ts +161 -10
  85. package/lib/langium/model-service/model-service.d.ts.map +1 -1
  86. package/lib/langium/model-service/model-service.js +174 -95
  87. package/lib/langium/model-service/model-service.js.map +1 -1
  88. package/lib/langium/module.d.ts +84 -15
  89. package/lib/langium/module.d.ts.map +1 -1
  90. package/lib/langium/module.js +26 -12
  91. package/lib/langium/module.js.map +1 -1
  92. package/lib/langium/naming/name-provider.d.ts +25 -4
  93. package/lib/langium/naming/name-provider.d.ts.map +1 -1
  94. package/lib/langium/naming/name-provider.js +2 -1
  95. package/lib/langium/naming/name-provider.js.map +1 -1
  96. package/lib/langium/naming/name-separator-validation.d.ts +23 -0
  97. package/lib/langium/naming/name-separator-validation.d.ts.map +1 -1
  98. package/lib/langium/naming/name-separator-validation.js +30 -1
  99. package/lib/langium/naming/name-separator-validation.js.map +1 -1
  100. package/lib/langium/residency/cst-residency-service.d.ts +31 -11
  101. package/lib/langium/residency/cst-residency-service.d.ts.map +1 -1
  102. package/lib/langium/residency/cst-residency-service.js +13 -56
  103. package/lib/langium/residency/cst-residency-service.js.map +1 -1
  104. package/lib/langium/scope/hydranium-scope-provider.d.ts +48 -13
  105. package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
  106. package/lib/langium/scope/hydranium-scope-provider.js +56 -20
  107. package/lib/langium/scope/hydranium-scope-provider.js.map +1 -1
  108. package/lib/langium/serialization/abstract-serializer.d.ts +11 -20
  109. package/lib/langium/serialization/abstract-serializer.d.ts.map +1 -1
  110. package/lib/langium/serialization/abstract-serializer.js +12 -21
  111. package/lib/langium/serialization/abstract-serializer.js.map +1 -1
  112. package/lib/langium/service-registry.d.ts +15 -1
  113. package/lib/langium/service-registry.d.ts.map +1 -1
  114. package/lib/langium/service-registry.js +16 -0
  115. package/lib/langium/service-registry.js.map +1 -1
  116. package/lib/langium/shared-services.d.ts +15 -2
  117. package/lib/langium/shared-services.d.ts.map +1 -1
  118. package/lib/langium/shared-services.js.map +1 -1
  119. package/lib/langium/transfer/transfer-encoder.d.ts +60 -17
  120. package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
  121. package/lib/langium/transfer/transfer-encoder.js +38 -16
  122. package/lib/langium/transfer/transfer-encoder.js.map +1 -1
  123. package/lib/langium/trivia/comment-preserver.d.ts +423 -0
  124. package/lib/langium/trivia/comment-preserver.d.ts.map +1 -0
  125. package/lib/langium/trivia/comment-preserver.js +906 -0
  126. package/lib/langium/trivia/comment-preserver.js.map +1 -0
  127. package/lib/langium/trivia/document-ending-preserver.d.ts +43 -0
  128. package/lib/langium/trivia/document-ending-preserver.d.ts.map +1 -0
  129. package/lib/langium/trivia/document-ending-preserver.js +48 -0
  130. package/lib/langium/trivia/document-ending-preserver.js.map +1 -0
  131. package/lib/langium/trivia/index.d.ts +14 -0
  132. package/lib/langium/trivia/index.d.ts.map +1 -0
  133. package/lib/langium/trivia/index.js +14 -0
  134. package/lib/langium/trivia/index.js.map +1 -0
  135. package/lib/langium/trivia/trivia-contribution.d.ts +37 -0
  136. package/lib/langium/trivia/trivia-contribution.d.ts.map +1 -0
  137. package/lib/langium/trivia/trivia-contribution.js +10 -0
  138. package/lib/langium/trivia/trivia-contribution.js.map +1 -0
  139. package/lib/langium/trivia/trivia-preserver.d.ts +50 -0
  140. package/lib/langium/trivia/trivia-preserver.d.ts.map +1 -0
  141. package/lib/langium/trivia/trivia-preserver.js +10 -0
  142. package/lib/langium/trivia/trivia-preserver.js.map +1 -0
  143. package/lib/langium/trivia/trivia-service.d.ts +70 -0
  144. package/lib/langium/trivia/trivia-service.d.ts.map +1 -0
  145. package/lib/langium/trivia/trivia-service.js +56 -0
  146. package/lib/langium/trivia/trivia-service.js.map +1 -0
  147. package/lib/langium/validation/document-validator.d.ts +294 -10
  148. package/lib/langium/validation/document-validator.d.ts.map +1 -1
  149. package/lib/langium/validation/document-validator.js +448 -5
  150. package/lib/langium/validation/document-validator.js.map +1 -1
  151. package/lib/langium/workspace/document-uri-policy.d.ts +3 -4
  152. package/lib/langium/workspace/document-uri-policy.d.ts.map +1 -1
  153. package/lib/langium/workspace/document-uri-policy.js +3 -4
  154. package/lib/langium/workspace/document-uri-policy.js.map +1 -1
  155. package/lib/langium/workspace/file-system-provider.d.ts +9 -1
  156. package/lib/langium/workspace/file-system-provider.d.ts.map +1 -1
  157. package/lib/langium/workspace/file-system-provider.js +40 -7
  158. package/lib/langium/workspace/file-system-provider.js.map +1 -1
  159. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +25 -0
  160. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -1
  161. package/lib/langium/workspace/hydranium-langium-document-factory.js +25 -0
  162. package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -1
  163. package/lib/langium/workspace/hydranium-workspace-manager.d.ts +21 -1
  164. package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -1
  165. package/lib/langium/workspace/hydranium-workspace-manager.js +28 -0
  166. package/lib/langium/workspace/hydranium-workspace-manager.js.map +1 -1
  167. package/lib/langium/workspace/in-memory-file-system-provider.d.ts +23 -0
  168. package/lib/langium/workspace/in-memory-file-system-provider.d.ts.map +1 -1
  169. package/lib/langium/workspace/in-memory-file-system-provider.js +47 -9
  170. package/lib/langium/workspace/in-memory-file-system-provider.js.map +1 -1
  171. package/lib/langium/workspace/initialize-workspace.d.ts +23 -2
  172. package/lib/langium/workspace/initialize-workspace.d.ts.map +1 -1
  173. package/lib/langium/workspace/initialize-workspace.js +13 -5
  174. package/lib/langium/workspace/initialize-workspace.js.map +1 -1
  175. package/lib/langium/workspace/langium-documents.d.ts +79 -17
  176. package/lib/langium/workspace/langium-documents.d.ts.map +1 -1
  177. package/lib/langium/workspace/langium-documents.js +83 -28
  178. package/lib/langium/workspace/langium-documents.js.map +1 -1
  179. package/lib/langium/workspace/virtual-document.d.ts +18 -3
  180. package/lib/langium/workspace/virtual-document.d.ts.map +1 -1
  181. package/lib/langium/workspace/virtual-document.js +19 -2
  182. package/lib/langium/workspace/virtual-document.js.map +1 -1
  183. package/lib/locale/index.d.ts +10 -0
  184. package/lib/locale/index.d.ts.map +1 -0
  185. package/lib/locale/index.js +10 -0
  186. package/lib/locale/index.js.map +1 -0
  187. package/lib/locale/server-locale.d.ts +73 -0
  188. package/lib/locale/server-locale.d.ts.map +1 -0
  189. package/lib/locale/server-locale.js +61 -0
  190. package/lib/locale/server-locale.js.map +1 -0
  191. package/lib/lsp/completion/hydranium-completion-provider.d.ts +44 -2
  192. package/lib/lsp/completion/hydranium-completion-provider.d.ts.map +1 -1
  193. package/lib/lsp/completion/hydranium-completion-provider.js +68 -0
  194. package/lib/lsp/completion/hydranium-completion-provider.js.map +1 -1
  195. package/lib/lsp/connection-features.d.ts +23 -0
  196. package/lib/lsp/connection-features.d.ts.map +1 -0
  197. package/lib/lsp/connection-features.js +60 -0
  198. package/lib/lsp/connection-features.js.map +1 -0
  199. package/lib/lsp/diagnostics-connection.d.ts +27 -0
  200. package/lib/lsp/diagnostics-connection.d.ts.map +1 -0
  201. package/lib/lsp/diagnostics-connection.js +53 -0
  202. package/lib/lsp/diagnostics-connection.js.map +1 -0
  203. package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -1
  204. package/lib/lsp/hydranium-document-update-handler.js +10 -1
  205. package/lib/lsp/hydranium-document-update-handler.js.map +1 -1
  206. package/lib/lsp/index.d.ts +3 -1
  207. package/lib/lsp/index.d.ts.map +1 -1
  208. package/lib/lsp/index.js +3 -1
  209. package/lib/lsp/index.js.map +1 -1
  210. package/lib/lsp/lsp-latency.d.ts +39 -0
  211. package/lib/lsp/lsp-latency.d.ts.map +1 -0
  212. package/lib/lsp/lsp-latency.js +58 -0
  213. package/lib/lsp/lsp-latency.js.map +1 -0
  214. package/lib/lsp/semantic-token-provider.d.ts +34 -1
  215. package/lib/lsp/semantic-token-provider.d.ts.map +1 -1
  216. package/lib/lsp/semantic-token-provider.js +55 -8
  217. package/lib/lsp/semantic-token-provider.js.map +1 -1
  218. package/lib/lsp/start-language-server.d.ts +5 -3
  219. package/lib/lsp/start-language-server.d.ts.map +1 -1
  220. package/lib/lsp/start-language-server.js +10 -3
  221. package/lib/lsp/start-language-server.js.map +1 -1
  222. package/lib/messages/carriers.d.ts +54 -0
  223. package/lib/messages/carriers.d.ts.map +1 -0
  224. package/lib/messages/carriers.js +62 -0
  225. package/lib/messages/carriers.js.map +1 -0
  226. package/lib/messages/index.d.ts +25 -0
  227. package/lib/messages/index.d.ts.map +1 -0
  228. package/lib/messages/index.js +25 -0
  229. package/lib/messages/index.js.map +1 -0
  230. package/lib/messages/renderer.d.ts +136 -0
  231. package/lib/messages/renderer.d.ts.map +1 -0
  232. package/lib/messages/renderer.js +159 -0
  233. package/lib/messages/renderer.js.map +1 -0
  234. package/lib/node/heap-ceiling.d.ts +61 -0
  235. package/lib/node/heap-ceiling.d.ts.map +1 -0
  236. package/lib/node/heap-ceiling.js +72 -0
  237. package/lib/node/heap-ceiling.js.map +1 -0
  238. package/lib/node/index.d.ts +1 -0
  239. package/lib/node/index.d.ts.map +1 -1
  240. package/lib/node/index.js +1 -0
  241. package/lib/node/index.js.map +1 -1
  242. package/lib/node/latency-from-env.d.ts +1 -1
  243. package/lib/node/latency-from-env.js +1 -1
  244. package/lib/node/node-file-system-provider.d.ts +35 -1
  245. package/lib/node/node-file-system-provider.d.ts.map +1 -1
  246. package/lib/node/node-file-system-provider.js +140 -45
  247. package/lib/node/node-file-system-provider.js.map +1 -1
  248. package/lib/node/profile-capture.d.ts +8 -2
  249. package/lib/node/profile-capture.d.ts.map +1 -1
  250. package/lib/node/profile-capture.js.map +1 -1
  251. package/lib/node/profiling-run.d.ts +2 -2
  252. package/lib/node/profiling-run.js +1 -1
  253. package/lib/node/profiling-run.js.map +1 -1
  254. package/lib/node/rename-over-open-readers.d.ts +52 -0
  255. package/lib/node/rename-over-open-readers.d.ts.map +1 -0
  256. package/lib/node/rename-over-open-readers.js +66 -0
  257. package/lib/node/rename-over-open-readers.js.map +1 -0
  258. package/lib/node/socket-launcher.d.ts +15 -0
  259. package/lib/node/socket-launcher.d.ts.map +1 -1
  260. package/lib/node/socket-launcher.js +3 -2
  261. package/lib/node/socket-launcher.js.map +1 -1
  262. package/lib/testing/fake-document.d.ts +16 -4
  263. package/lib/testing/fake-document.d.ts.map +1 -1
  264. package/lib/testing/fake-document.js +18 -3
  265. package/lib/testing/fake-document.js.map +1 -1
  266. package/lib/testing/make-noop-shared-services.d.ts +14 -0
  267. package/lib/testing/make-noop-shared-services.d.ts.map +1 -1
  268. package/lib/testing/make-noop-shared-services.js +28 -2
  269. package/lib/testing/make-noop-shared-services.js.map +1 -1
  270. package/lib/testing/make-test-services.d.ts +45 -9
  271. package/lib/testing/make-test-services.d.ts.map +1 -1
  272. package/lib/testing/make-test-services.js +19 -3
  273. package/lib/testing/make-test-services.js.map +1 -1
  274. package/lib/testing/node/index.d.ts +1 -0
  275. package/lib/testing/node/index.d.ts.map +1 -1
  276. package/lib/testing/node/index.js +1 -0
  277. package/lib/testing/node/index.js.map +1 -1
  278. package/lib/testing/node/lsp-server-connection.d.ts.map +1 -1
  279. package/lib/testing/node/lsp-server-connection.js +5 -6
  280. package/lib/testing/node/lsp-server-connection.js.map +1 -1
  281. package/lib/testing/node/scratch-workspace.d.ts.map +1 -1
  282. package/lib/testing/node/scratch-workspace.js +9 -4
  283. package/lib/testing/node/scratch-workspace.js.map +1 -1
  284. package/lib/testing/node/spawned-server.d.ts +14 -0
  285. package/lib/testing/node/spawned-server.d.ts.map +1 -1
  286. package/lib/testing/node/spawned-server.js +33 -1
  287. package/lib/testing/node/spawned-server.js.map +1 -1
  288. package/lib/testing/node/unhandled-rejections.d.ts +20 -0
  289. package/lib/testing/node/unhandled-rejections.d.ts.map +1 -0
  290. package/lib/testing/node/unhandled-rejections.js +32 -0
  291. package/lib/testing/node/unhandled-rejections.js.map +1 -0
  292. package/lib/testing/playwright/flaky-network-proxy.d.ts +76 -0
  293. package/lib/testing/playwright/flaky-network-proxy.d.ts.map +1 -0
  294. package/lib/testing/playwright/flaky-network-proxy.js +164 -0
  295. package/lib/testing/playwright/flaky-network-proxy.js.map +1 -0
  296. package/lib/testing/playwright/index.d.ts +1 -0
  297. package/lib/testing/playwright/index.d.ts.map +1 -1
  298. package/lib/testing/playwright/index.js +1 -0
  299. package/lib/testing/playwright/index.js.map +1 -1
  300. package/lib/testing/playwright/server-log-capture.d.ts +14 -4
  301. package/lib/testing/playwright/server-log-capture.d.ts.map +1 -1
  302. package/lib/testing/playwright/server-log-capture.js +21 -4
  303. package/lib/testing/playwright/server-log-capture.js.map +1 -1
  304. package/lib/testing/playwright/server-log-rename-reporter.d.ts.map +1 -1
  305. package/lib/testing/playwright/server-log-rename-reporter.js +10 -1
  306. package/lib/testing/playwright/server-log-rename-reporter.js.map +1 -1
  307. package/lib/testing/stub-ast-document-manager.d.ts +5 -5
  308. package/lib/testing/stub-ast-document-manager.d.ts.map +1 -1
  309. package/lib/testing/stub-ast-document-manager.js +4 -6
  310. package/lib/testing/stub-ast-document-manager.js.map +1 -1
  311. package/lib/testing/stub-document-builder.d.ts +8 -0
  312. package/lib/testing/stub-document-builder.d.ts.map +1 -1
  313. package/lib/testing/stub-document-builder.js +22 -3
  314. package/lib/testing/stub-document-builder.js.map +1 -1
  315. package/lib/testing/stub-langium-documents.d.ts +3 -2
  316. package/lib/testing/stub-langium-documents.d.ts.map +1 -1
  317. package/lib/testing/stub-langium-documents.js.map +1 -1
  318. package/lib/testing/stub-model-service.d.ts +5 -4
  319. package/lib/testing/stub-model-service.d.ts.map +1 -1
  320. package/lib/testing/stub-model-service.js +2 -2
  321. package/lib/testing/stub-model-service.js.map +1 -1
  322. package/lib/util/connection-liveness.d.ts +7 -6
  323. package/lib/util/connection-liveness.d.ts.map +1 -1
  324. package/lib/util/connection-liveness.js +35 -14
  325. package/lib/util/connection-liveness.js.map +1 -1
  326. package/package.json +17 -8
  327. package/src/documents/ast-document-manager.ts +129 -36
  328. package/src/documents/client-ids.ts +5 -22
  329. package/src/documents/hydranium-text-documents.ts +248 -75
  330. package/src/documents/language-client-text-shadow.ts +59 -11
  331. package/src/documents/self-save-registry.ts +52 -13
  332. package/src/index.ts +6 -0
  333. package/src/langium/ast-extension/ast-node-builder.ts +66 -22
  334. package/src/langium/bootstrap.ts +16 -9
  335. package/src/langium/config/configuration-provider.ts +119 -0
  336. package/src/langium/config/index.ts +1 -0
  337. package/src/langium/diagnostics/lsp-logger.ts +41 -6
  338. package/src/langium/document-builder/build-pipeline-integration.ts +50 -5
  339. package/src/langium/document-builder/build-session.ts +87 -0
  340. package/src/langium/document-builder/document-builder.ts +339 -11
  341. package/src/langium/document-builder/index.ts +1 -0
  342. package/src/langium/integration-services.ts +67 -6
  343. package/src/langium/integrity/integrity-service.ts +116 -2
  344. package/src/langium/keys/containment.ts +87 -0
  345. package/src/langium/keys/index.ts +1 -0
  346. package/src/langium/keys/name-based-key-provider.ts +4 -0
  347. package/src/langium/language-module.ts +38 -0
  348. package/src/langium/model-service/model-service.ts +264 -32
  349. package/src/langium/module.ts +106 -21
  350. package/src/langium/naming/name-provider.ts +27 -5
  351. package/src/langium/naming/name-separator-validation.ts +34 -5
  352. package/src/langium/residency/cst-residency-service.ts +36 -14
  353. package/src/langium/scope/hydranium-scope-provider.ts +60 -22
  354. package/src/langium/serialization/abstract-serializer.ts +13 -32
  355. package/src/langium/service-registry.ts +19 -2
  356. package/src/langium/shared-services.ts +19 -2
  357. package/src/langium/transfer/transfer-encoder.ts +85 -24
  358. package/src/langium/trivia/comment-preserver.ts +1100 -0
  359. package/src/langium/trivia/document-ending-preserver.ts +55 -0
  360. package/src/langium/trivia/index.ts +14 -0
  361. package/src/langium/trivia/trivia-contribution.ts +39 -0
  362. package/src/langium/trivia/trivia-preserver.ts +54 -0
  363. package/src/langium/trivia/trivia-service.ts +99 -0
  364. package/src/langium/validation/document-validator.ts +537 -11
  365. package/src/langium/workspace/document-uri-policy.ts +3 -4
  366. package/src/langium/workspace/file-system-provider.ts +48 -8
  367. package/src/langium/workspace/hydranium-langium-document-factory.ts +34 -0
  368. package/src/langium/workspace/hydranium-workspace-manager.ts +30 -1
  369. package/src/langium/workspace/in-memory-file-system-provider.ts +53 -10
  370. package/src/langium/workspace/initialize-workspace.ts +35 -5
  371. package/src/langium/workspace/langium-documents.ts +106 -33
  372. package/src/langium/workspace/virtual-document.ts +21 -3
  373. package/src/locale/index.ts +10 -0
  374. package/src/locale/server-locale.ts +86 -0
  375. package/src/lsp/completion/hydranium-completion-provider.ts +82 -2
  376. package/src/lsp/connection-features.ts +67 -0
  377. package/src/lsp/diagnostics-connection.ts +56 -0
  378. package/src/lsp/hydranium-document-update-handler.ts +10 -1
  379. package/src/lsp/index.ts +3 -1
  380. package/src/lsp/lsp-latency.ts +62 -0
  381. package/src/lsp/semantic-token-provider.ts +74 -7
  382. package/src/lsp/start-language-server.ts +10 -3
  383. package/src/messages/carriers.ts +78 -0
  384. package/src/messages/index.ts +36 -0
  385. package/src/messages/renderer.ts +206 -0
  386. package/src/node/heap-ceiling.ts +108 -0
  387. package/src/node/index.ts +1 -0
  388. package/src/node/latency-from-env.ts +1 -1
  389. package/src/node/node-file-system-provider.ts +154 -47
  390. package/src/node/profile-capture.ts +8 -2
  391. package/src/node/profiling-run.ts +3 -3
  392. package/src/node/rename-over-open-readers.ts +78 -0
  393. package/src/node/socket-launcher.ts +18 -2
  394. package/src/testing/fake-document.ts +24 -5
  395. package/src/testing/make-noop-shared-services.ts +50 -2
  396. package/src/testing/make-test-services.ts +74 -18
  397. package/src/testing/node/index.ts +1 -0
  398. package/src/testing/node/lsp-server-connection.ts +5 -6
  399. package/src/testing/node/scratch-workspace.ts +9 -4
  400. package/src/testing/node/spawned-server.ts +35 -1
  401. package/src/testing/node/unhandled-rejections.ts +31 -0
  402. package/src/testing/playwright/flaky-network-proxy.ts +240 -0
  403. package/src/testing/playwright/index.ts +1 -0
  404. package/src/testing/playwright/server-log-capture.ts +24 -5
  405. package/src/testing/playwright/server-log-rename-reporter.ts +12 -1
  406. package/src/testing/stub-ast-document-manager.ts +10 -14
  407. package/src/testing/stub-document-builder.ts +32 -3
  408. package/src/testing/stub-langium-documents.ts +3 -2
  409. package/src/testing/stub-model-service.ts +7 -6
  410. package/src/util/connection-liveness.ts +37 -14
  411. package/lib/lsp/instrument-connection.d.ts +0 -36
  412. package/lib/lsp/instrument-connection.d.ts.map +0 -1
  413. package/lib/lsp/instrument-connection.js +0 -62
  414. package/lib/lsp/instrument-connection.js.map +0 -1
  415. package/src/lsp/instrument-connection.ts +0 -66
@@ -19,7 +19,7 @@
19
19
  // eslint-disable-next-line @typescript-eslint/no-restricted-imports
20
20
  import { NormalizedTextDocuments } from '@hydranium/langium/lsp';
21
21
  import { UriUtils } from '@hydranium/langium';
22
- import { OptionalVersionedTextDocumentIdentifier, TextDocumentEdit, TextDocumentSyncKind } from 'vscode-languageserver';
22
+ import { OptionalVersionedTextDocumentIdentifier, TextDocumentContentChangeEvent as ContentChange, TextDocumentEdit, TextDocumentSyncKind } from 'vscode-languageserver';
23
23
  import { TextDocument } from 'vscode-languageserver-textdocument';
24
24
  import { asLanguageClientUri, DisposableCollection } from '@hydranium/protocol';
25
25
  import { LANGUAGE_CLIENT_ID } from './client-ids.js';
@@ -72,7 +72,7 @@ function contentHash(text) {
72
72
  * per-client staleness guard and never leak into the shared sequence —
73
73
  * the two are different things (an editor's edit-operation counter vs the
74
74
  * document's content-revision number), and splicing them lets versions drift
75
- * silently past `baseVersion` gate holders.
75
+ * silently past based-on gate holders.
76
76
  * - Version-author history so each edit is attributable to its originating client.
77
77
  * - Pending-content staging used by the integrity service to thread corrections
78
78
  * through `workspace/applyEdit` cycles for currently-closed documents.
@@ -84,7 +84,7 @@ function contentHash(text) {
84
84
  export class HydraniumTextDocuments extends NormalizedTextDocuments {
85
85
  services;
86
86
  /**
87
- * Per-URI client-facing tracking ({@link DocumentTracking}): client
87
+ * Per-URI client-facing tracking ({@link DocumentTrackingRecord}): client
88
88
  * membership, version-author history, and integrity-staged pending content,
89
89
  * keyed by normalized URI. One record per URI so the last-client close clears
90
90
  * every axis atomically. The language-client diff baseline stays in
@@ -95,11 +95,11 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
95
95
  /**
96
96
  * Per-URI shared-version continuity across close/reopen cycles
97
97
  * ({@link VersionSequence}), written at last-client close and consulted by
98
- * the next first-client open. DELIBERATELY outside {@link DocumentTracking}:
98
+ * the next first-client open. DELIBERATELY outside {@link DocumentTrackingRecord}:
99
99
  * that record is deleted on last close, while the version sequence must
100
100
  * survive it — the shared version is a server-owned, monotonic,
101
101
  * advances-iff-content-changes counter that never resets while the server
102
- * lives. That invariant is what makes an optimistic `baseVersion` gate
102
+ * lives. That invariant is what makes an optimistic based-on gate
103
103
  * sound: "version unchanged ⇔ content unchanged", with no false conflicts
104
104
  * from close/reopen version resets and no false passes from a reopened
105
105
  * sequence coincidentally landing on a stale writer's number.
@@ -111,7 +111,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
111
111
  /**
112
112
  * Texts pushed to the LSP textual language client via
113
113
  * {@link applyEditToLanguageClient} whose echoes have not come back yet
114
- * ({@link PendingPush}), keyed like the shadow by language-client URI.
114
+ * ({@link PendingLanguageClientPush}), keyed like the shadow by language-client URI.
115
115
  * Outbound pushes and inbound echoes are uncorrelated on the wire; this
116
116
  * FIFO is the explicit correlation, and it is what
117
117
  * {@link classifyLanguageClientChange} reconstructs against.
@@ -271,14 +271,15 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
271
271
  return;
272
272
  }
273
273
  record.clientVersions.set(clientId, td.version);
274
- // A language-client change arriving while one of our own pushes is in
275
- // flight is keyed to the buffer the client held BEFORE that push, NOT
276
- // to the synced text — the authored write already advanced the latter.
274
+ // A language-client change is keyed to the buffer that client holds,
275
+ // which is the synced text only while the two agree — an authored
276
+ // write advances the synced text without the client knowing, and a
277
+ // push in flight moves the client without the store knowing.
277
278
  // Resolve which it is, and against what, before touching anything.
278
- const inFlight = clientId === LANGUAGE_CLIENT_ID
279
+ const origin = clientId === LANGUAGE_CLIENT_ID
279
280
  ? this.classifyLanguageClientChange(this.toLanguageClientUri(td.uri), document, changes)
280
281
  : undefined;
281
- if (inFlight?.kind === 'echo') {
282
+ if (origin?.kind === 'echo') {
282
283
  // The client is reporting a text we pushed it, so the synced
283
284
  // document is ALREADY there and the changes must not be applied a
284
285
  // second time. Nothing is minted and no rebuild fires. The
@@ -290,18 +291,22 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
290
291
  this.logUri(uri, `Skip rebuild: echo of a server-authored push (client version ${td.version})`, 'debug');
291
292
  return;
292
293
  }
294
+ if (origin?.kind === 'unreconstructable') {
295
+ this.tracer.with(uri).warn(`Drop change: no known client buffer for its ranges (client version ${td.version})`);
296
+ return;
297
+ }
293
298
  // The SHARED version advances iff the content actually changes — the
294
- // invariant optimistic `baseVersion` gates rely on. The new text is
299
+ // invariant optimistic based-on gates rely on. The new text is
295
300
  // only known after applying the (possibly incremental) changes, so
296
301
  // apply at a tentative +1 and roll the version back on an identical
297
302
  // result (an empty-changes update only re-stamps the version).
298
303
  //
299
- // A divergent in-flight change is applied as its RECONSTRUCTED text
300
- // rather than as its own ranges: the ranges address the pre-push
301
- // baseline, so applying them here would splice the wrong lines.
304
+ // A divergent change is applied as its RECONSTRUCTED text rather than
305
+ // as its own ranges: those ranges address the client's own buffer, so
306
+ // applying them here would splice the wrong lines.
302
307
  const previousText = document.getText();
303
308
  const sharedVersion = document.version;
304
- document = this.configuration.update(document, inFlight === undefined ? changes : [{ text: inFlight.text }], sharedVersion + 1);
309
+ document = this.configuration.update(document, origin === undefined ? changes : [{ text: origin.text }], sharedVersion + 1);
305
310
  const changed = document.getText() !== previousText;
306
311
  if (!changed) {
307
312
  document = this.configuration.update(document, [], sharedVersion);
@@ -341,7 +346,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
341
346
  * A content-identical write still fires the change event (rebuild): the
342
347
  * authored write's server-side rebuild is correctness-bearing, it just
343
348
  * mints no new version — nothing observable changed, so watchers'
344
- * `baseVersion` pointers stay valid.
349
+ * based-on versions stay valid.
345
350
  *
346
351
  * Returns the resulting shared version. Throws when the document is not
347
352
  * open — callers (`AstDocumentManager.update`) open first.
@@ -433,18 +438,20 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
433
438
  if (this.isOpenInClient(uri, clientId)) {
434
439
  // Already open for this client under this canonical identity. If this is a
435
440
  // NEW client-facing URI for the same file (a second tab reached via a
436
- // divergent path, e.g. a symlink and its real path), record it and baseline
437
- // its shadow so outbound edits reach this tab too — but do NOT re-fire
438
- // open/rebuild; the document is already live.
441
+ // divergent path, e.g. a symlink and its real path), record it so outbound
442
+ // edits reach this tab too — but do NOT re-fire open/rebuild; the document
443
+ // is already live.
439
444
  if (clientId === LANGUAGE_CLIENT_ID) {
440
445
  const clientFacing = this.toLanguageClientUri(td.uri);
441
446
  const record = this.__documents.get(uri);
442
447
  if (record && !record.languageClientUris?.has(clientFacing)) {
443
448
  (record.languageClientUris ??= new Set()).add(clientFacing);
444
- const open = this.__syncedDocuments.get(uri);
445
- if (open) {
446
- this.__shadow.set(clientFacing, open.getText());
447
- }
449
+ // This tab's own buffer, NOT the synced text: a second tab is a second
450
+ // client model, read from disk, so a server-authored write already
451
+ // applied to the first tab leaves it BEHIND the synced document. Keying
452
+ // a diff to the synced text here addresses lines this tab does not have
453
+ // and drops content it does.
454
+ this.__shadow.setOpenedText(clientFacing, td.text);
448
455
  }
449
456
  }
450
457
  return;
@@ -468,7 +475,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
468
475
  const source = pendingText ? ', source=pending' : '';
469
476
  // The SHARED version is server-assigned: continue the persisted
470
477
  // sequence — same version when the content is unchanged since the
471
- // last close (so watchers' `baseVersion` pointers stay valid), one
478
+ // last close (so watchers' based-on versions stay valid), one
472
479
  // step when it changed (so no stale pointer can coincidentally pass
473
480
  // the optimistic gate). Only a first-ever open adopts the client's
474
481
  // declared id as the sequence seed.
@@ -482,7 +489,18 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
482
489
  // Baseline the shadow to what Monaco just opened so the next outbound
483
490
  // applyEditToLanguageClient diffs against the right starting point. Keyed by the
484
491
  // language-client URI (what Monaco holds), not the canonical document key.
485
- this.__shadow.set(this.toLanguageClientUri(td.uri), document.getText());
492
+ //
493
+ // The CLIENT's declared text, never the synced document: staged content
494
+ // consumed above leaves the two different, and a baseline asserting the
495
+ // client already holds the staged text suppresses the one sync that would
496
+ // deliver it. Skipped entirely when a push is already outstanding for this
497
+ // URI — an `applyEdit` to a closed file has the client open from disk and
498
+ // apply afterwards, so that shadow records what it is about to hold and
499
+ // disk text would key the next diff to a buffer nobody has.
500
+ const clientFacing = this.toLanguageClientUri(td.uri);
501
+ if (!this.__shadow.isTracked(clientFacing)) {
502
+ this.__shadow.set(clientFacing, td.text);
503
+ }
486
504
  }
487
505
  const toFire = Object.freeze({ document, clientId });
488
506
  this.__onDidOpen.fire(toFire);
@@ -490,11 +508,53 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
490
508
  }
491
509
  else {
492
510
  // An additional client attaches to a document already open by another client.
493
- this.log(uri, `Attach client: ${clientId} joined existing document (version ${document.version}, ` +
494
- `now open in: ${[...existingClients, clientId].join(', ')})`);
511
+ this.logClientJoined(uri, clientId, document.version, existingClients);
512
+ if (clientId === LANGUAGE_CLIENT_ID) {
513
+ // Monaco's own buffer, which on this path is NOT the synced text — another
514
+ // client opened the document and may already have changed it. Recorded as
515
+ // an equality-only baseline (never a diff one, see `setOpenedText`) so the
516
+ // refresh below does not push a full replace of content Monaco already
517
+ // holds, which would dirty the file on open.
518
+ this.__shadow.setOpenedText(this.toLanguageClientUri(td.uri), td.text);
519
+ }
495
520
  this.refreshContent(uri, clientId);
496
521
  }
497
522
  }
523
+ /**
524
+ * Record `clientId` as an additional holder of a document another client
525
+ * already has open.
526
+ *
527
+ * Unlike the attach branch of {@link notifyDidOpenTextDocument} this does
528
+ * not refresh. That branch re-renders an attaching TEXTUAL view; a client
529
+ * reaching a document through a non-textual route has nothing to re-render,
530
+ * and refreshing per attach turns each into a Langium rebuild and dependent
531
+ * relink cascade.
532
+ *
533
+ * The staleness guard baselines at the SYNCED version, not a declared buffer
534
+ * version, because a client arriving this way holds no buffer of its own.
535
+ * Unifying the two routes therefore rebaselines a textual client's guard to a
536
+ * version it never declared.
537
+ *
538
+ * Returns whether a hold was added — `false` when `uri` is not open, or
539
+ * `clientId` already holds it.
540
+ */
541
+ attachClient(uri, clientId) {
542
+ const key = this.documentKey(uri);
543
+ const document = this.__syncedDocuments.get(key);
544
+ if (!document || this.isOpenInClient(key, clientId)) {
545
+ return false;
546
+ }
547
+ const record = this.trackingFor(key);
548
+ const existingClients = [...record.clients];
549
+ record.clients.add(clientId);
550
+ record.clientVersions.set(clientId, document.version);
551
+ this.logClientJoined(key, clientId, document.version, existingClients);
552
+ return true;
553
+ }
554
+ logClientJoined(uri, clientId, version, existingClients) {
555
+ this.log(uri, `Attach client: ${clientId} joined existing document (version ${version}, ` +
556
+ `now open in: ${[...existingClients, clientId].join(', ')})`);
557
+ }
498
558
  refreshContent(uri, clientId) {
499
559
  const syncedDocument = this.__syncedDocuments.get(this.documentKey(uri));
500
560
  if (syncedDocument) {
@@ -511,7 +571,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
511
571
  * two URIs for one physical file (a symlink path and its real path) into a
512
572
  * single registration — dedup at the editor layer, not just in
513
573
  * `LangiumDocuments`. The URI the client opened under is preserved separately
514
- * for egress addressing (see {@link DocumentTracking.languageClientUris}). The
574
+ * for egress addressing (see {@link DocumentTrackingRecord.languageClientUris}). The
515
575
  * policy is always bound (the framework defaults it to
516
576
  * `DefaultDocumentUriPolicy`, where canonical ≡ syntactic normalize).
517
577
  */
@@ -566,7 +626,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
566
626
  * `0` for a URI this store has never seen. The shared sequence is
567
627
  * server-owned and monotonic across close/reopen cycles, and advances
568
628
  * exactly when the synced content changes — which is what makes it a sound
569
- * optimistic-concurrency token (`baseVersion` gates): version unchanged ⇔
629
+ * optimistic-concurrency token (based-on gates): version unchanged ⇔
570
630
  * content unchanged.
571
631
  */
572
632
  version(uri) {
@@ -606,6 +666,50 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
606
666
  this.logUri(key, `External content change while closed: sequence stepped to version ${stepped.version}`, 'debug');
607
667
  return stepped.version;
608
668
  }
669
+ /**
670
+ * Commit an integrity repair into the OPEN document for `uri`, returning the
671
+ * document that now holds it, or `undefined` when there was nothing here to
672
+ * commit into.
673
+ *
674
+ * The one thing this exists to do is address the store BY URI. A repair
675
+ * reaches the resync as a text-document object, and that object is the
676
+ * store's own only on the LSP path; a document built for an already-open URI
677
+ * through `LangiumDocumentFactory.fromString` carries its own, so writing the
678
+ * repair into it corrects a copy the store does not know about and the editor
679
+ * never sees.
680
+ *
681
+ * `parsedFrom` is the text the repaired AST was parsed from, and a mismatch
682
+ * against the current content REFUSES the commit: the store has moved on,
683
+ * which means an editor change landed after that parse, and committing would
684
+ * overwrite a newer edit with a repair computed against text the user has
685
+ * already replaced. The build that change provokes recomputes the repair.
686
+ *
687
+ * Deliberately NOT compared by version. A separately created document seeds
688
+ * its own numbering, so requiring the two to agree would refuse every commit
689
+ * on the path this exists for. Content is the thing both sides can be held to.
690
+ *
691
+ * The version is KEPT rather than stepped, and no change event is fired: the
692
+ * repair rides the build already under way, so minting a version would
693
+ * invalidate the based-on token every watcher just took, and an event would
694
+ * re-enter the build that is mid-flight.
695
+ */
696
+ commitRepair(uri, parsedFrom, repaired) {
697
+ const key = this.documentKey(uri);
698
+ const document = this.__syncedDocuments.get(key);
699
+ if (document === undefined) {
700
+ return { status: 'not-open' };
701
+ }
702
+ if (document.getText() !== parsedFrom) {
703
+ this.logUri(key, 'Refuse repair commit: the open document moved on from the text the AST was parsed from', 'debug');
704
+ return { status: 'stale' };
705
+ }
706
+ // Reassigned rather than mutated in place: the default configuration
707
+ // updates and returns the SAME instance, but an adopter-supplied one may
708
+ // return a new object, and the store must end up holding whichever it is.
709
+ const updated = this.configuration.update(document, [{ text: repaired }], document.version);
710
+ this.__syncedDocuments.set(key, updated);
711
+ return { status: 'committed', document: updated };
712
+ }
609
713
  getAuthor(uri, version) {
610
714
  const history = this.__documents.get(this.documentKey(uri))?.versionAuthors;
611
715
  // Either the requested version, or the latest. `version !== undefined` so we treat 0 correctly.
@@ -729,10 +833,11 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
729
833
  const targets = recorded && recorded.size > 0 ? recorded : [this.toLanguageClientUri(uri)];
730
834
  let lastResult;
731
835
  for (const targetUri of targets) {
732
- // Read BEFORE computeEdits, which overwrites it. This is the text the
733
- // edits below are keyed to, and therefore the only text the client's
734
- // echo of them can be reconstructed against.
735
- const before = this.__shadow.get(targetUri);
836
+ // Read BEFORE computeEdits, which overwrites the baseline and drops
837
+ // the opened snapshot. This is the text the client holds, and
838
+ // therefore the only text its echo of this push can be reconstructed
839
+ // against — whether or not the push below is keyed to it.
840
+ const before = this.__shadow.clientText(targetUri);
736
841
  const edits = this.__shadow.computeEdits(targetUri, newText);
737
842
  if (edits.length === 0) {
738
843
  continue;
@@ -747,9 +852,20 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
747
852
  // it is exactly what the caller retries with after a rejection, so
748
853
  // gating it there would refuse the recovery too.
749
854
  const version = isFullReplace(edits) ? UNKNOWN_CLIENT_VERSION : this.languageClientVersion(uri);
855
+ // A full `ApplyWorkspaceEditParams`, `edit` and all — NOT a bare
856
+ // `WorkspaceEdit` with a `label` beside it. `applyEdit` takes
857
+ // `ApplyWorkspaceEditParams | WorkspaceEdit` and discriminates on
858
+ // `!!value.edit`, so `{ label, documentChanges }` is wrapped as
859
+ // `{ edit: { label, documentChanges } }` — putting the label inside
860
+ // the edit, where LSP defines no such field and no client reads it.
861
+ // The union is also what hides it at compile time: excess-property
862
+ // checking admits a property present in EITHER member, so an object
863
+ // matching neither type-checks against the union.
750
864
  const result = await connection.workspace.applyEdit({
751
865
  label: options?.label,
752
- documentChanges: [TextDocumentEdit.create(OptionalVersionedTextDocumentIdentifier.create(targetUri, version), edits)]
866
+ edit: {
867
+ documentChanges: [TextDocumentEdit.create(OptionalVersionedTextDocumentIdentifier.create(targetUri, version), edits)]
868
+ }
753
869
  });
754
870
  if (result && result.applied === false) {
755
871
  this.__shadow.invalidate(targetUri);
@@ -803,12 +919,17 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
803
919
  }
804
920
  /**
805
921
  * Decide what an incoming language-client change actually is, by
806
- * reconstructing the client's resulting buffer against the OLDEST push still
807
- * in flight for `clientFacing`.
922
+ * reconstructing the client's resulting buffer against the text its ranges
923
+ * address — the pre-push buffer of the OLDEST push still in flight for
924
+ * `clientFacing`, else whatever that client is believed to hold.
808
925
  *
809
- * `undefined` when nothing of ours is in flight, which is the ordinary path:
810
- * the client's ranges then address the synced text and the caller applies
811
- * them to it directly.
926
+ * `undefined` when the client's ranges address the synced text itself —
927
+ * nothing in flight, and no evidence the client holds anything else. That
928
+ * is the ordinary path, and the caller then applies the ranges directly.
929
+ * The two texts part company without a push in flight whenever a client
930
+ * attaches to a document another client has already written: it opened
931
+ * from disk, so applying its ranges to the synced text splices lines they
932
+ * never addressed.
812
933
  *
813
934
  * **Why the oldest, and why reconstruct at all.** The client applies our
814
935
  * pushes in order and echoes each against the buffer it held before that
@@ -835,22 +956,41 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
835
956
  * queue, so undo revisits PAST states while the queue holds IN-FLIGHT ones.
836
957
  */
837
958
  classifyLanguageClientChange(clientFacing, document, changes) {
838
- const pending = this.__pendingPushes.get(clientFacing);
839
- if (pending === undefined || pending.length === 0) {
959
+ const queued = this.__pendingPushes.get(clientFacing);
960
+ const pending = queued?.length ? queued : undefined;
961
+ // The text the client's ranges address: the buffer it held before the
962
+ // oldest push still in flight, else the buffer it is believed to hold.
963
+ const clientText = pending?.[0].before ?? this.__shadow.clientText(clientFacing);
964
+ if (pending === undefined && (clientText === undefined || clientText === document.getText())) {
840
965
  return undefined;
841
966
  }
967
+ if (pending !== undefined && pending[0].before === undefined && changes.some(change => ContentChange.isIncremental(change))) {
968
+ // A push sent to a client whose buffer was unknown — a first sync, or
969
+ // the recovery push after a rejection. The shadow now holds the text
970
+ // that push MOVES the client to, which is the one text the echo's
971
+ // ranges provably do not address, so the fallback above is a baseline
972
+ // known to be wrong rather than merely unverified. Drop the queue and
973
+ // the shadow: the next sync is then a full replace, which lands on
974
+ // whatever the client holds. A full-text change is exempt because it
975
+ // reconstructs identically against any baseline.
976
+ pending.length = 0;
977
+ this.__shadow.invalidate(clientFacing);
978
+ return { kind: 'unreconstructable' };
979
+ }
842
980
  // Through the configured factories, not `TextDocument` directly, so an
843
981
  // adopter's custom text-document type governs how the ranges are applied
844
982
  // here exactly as it does on the synced document.
845
- const probe = this.create(clientFacing, document.languageId, 0, pending[0].before ?? document.getText());
846
- const clientText = this.update(probe, changes, 0).getText();
847
- const matchIndex = pending.findIndex(push => push.afterHash === contentHash(clientText));
848
- if (matchIndex >= 0) {
849
- pending.splice(0, matchIndex + 1);
850
- return { kind: 'echo' };
851
- }
852
- pending.length = 0;
853
- return { kind: 'divergent', text: clientText };
983
+ const probe = this.create(clientFacing, document.languageId, 0, clientText ?? document.getText());
984
+ const reconstructed = this.update(probe, changes, 0).getText();
985
+ if (pending !== undefined) {
986
+ const matchIndex = pending.findIndex(push => push.afterHash === contentHash(reconstructed));
987
+ if (matchIndex >= 0) {
988
+ pending.splice(0, matchIndex + 1);
989
+ return { kind: 'echo' };
990
+ }
991
+ pending.length = 0;
992
+ }
993
+ return { kind: 'divergent', text: reconstructed };
854
994
  }
855
995
  /**
856
996
  * Explicitly baseline the language-client text shadow for a URI. Useful in
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-text-documents.js","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydranium-text-documents.js","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,8 @@ export declare function isFullReplace(edits: readonly TextEdit[]): boolean;
43
43
  * - {@link computeEdits} after each outgoing server→client sync (updates the shadow optimistically).
44
44
  * - {@link set} when the server receives a `didChange` from the language client (the client now
45
45
  * holds that text; we shouldn't resend it).
46
+ * - {@link setOpenedText} when the client opens a document the server did not baseline for it —
47
+ * an equality-only baseline, since that text is a snapshot rather than a tracked one.
46
48
  * - {@link invalidate} when the client rejects an edit (`applied=false`) or a doc is closed —
47
49
  * the shadow is now stale and the next sync must fall back to a full replace.
48
50
  */
@@ -50,6 +52,14 @@ export declare class LanguageClientTextShadow {
50
52
  protected onFallback: (uri: string, reason: string) => void;
51
53
  protected documents: ShadowDocumentSource;
52
54
  protected shadow: Map<string, string>;
55
+ /**
56
+ * Per URI, the text the client declared it opened the document with, held
57
+ * only until a real baseline exists. Consulted by {@link computeEdits} when
58
+ * there is no shadow, and dropped on {@link invalidate}: a snapshot that
59
+ * outlived what the client holds would let the equality check skip an edit
60
+ * the client still needs.
61
+ */
62
+ protected opened: Map<string, string>;
53
63
  /**
54
64
  * @param onFallback invoked when {@link computeEdits} falls back to a full-range replace due to
55
65
  * apply-verify mismatch. Useful for logging regressions.
@@ -65,17 +75,37 @@ export declare class LanguageClientTextShadow {
65
75
  /** Record the text the language client is known to hold (e.g. after a `didChange` echo). */
66
76
  set(uri: string, text: string): void;
67
77
  /**
68
- * The text the language client is believed to hold, or `undefined` when
69
- * there is no baseline (first sync, or after an {@link invalidate}).
78
+ * Record the buffer the language client declared at `didOpen`, for a URI
79
+ * with no baseline yet.
80
+ *
81
+ * Deliberately NOT a {@link set}: this text is only ever compared for
82
+ * EQUALITY, never diffed against. A line-keyed diff is position-dependent,
83
+ * so keying one to a `didOpen` snapshot the client may have moved past
84
+ * splices its buffer — the failure {@link computeEdits}'s full-replace
85
+ * fallback exists to avoid.
86
+ */
87
+ setOpenedText(uri: string, text: string): void;
88
+ /**
89
+ * The text the language client is believed to hold: the tracked text, else
90
+ * the buffer it declared at `didOpen`.
70
91
  *
71
92
  * Read at the `workspace/applyEdit` egress BEFORE {@link computeEdits},
72
- * which overwrites it: a push's minimal edits are keyed to this text, so an
73
- * echo of that push carries ranges addressing it and nothing else. Losing
74
- * it is what makes an incremental echo unreconstructable, and applying such
75
- * an echo to the already-advanced synced text duplicates every inserted
76
- * line.
93
+ * which overwrites the tracked text and drops the opened snapshot. A change
94
+ * the client sends carries ranges addressing this text and nothing else, so
95
+ * losing it leaves that change unreconstructable — and applying its ranges
96
+ * to the already-advanced synced text splices lines they never addressed.
97
+ *
98
+ * Deliberately wider than what {@link computeEdits} may diff from: an
99
+ * opened snapshot is a position-dependent key to a buffer the client may
100
+ * have moved past, so keying a diff to it splices that buffer.
101
+ */
102
+ clientText(uri: string): string | undefined;
103
+ /**
104
+ * Whether a tracked text exists for `uri`, which is what decides whether a
105
+ * push can be diffed at all. Distinct from {@link clientText}, which also
106
+ * answers from the opened snapshot and so cannot settle this.
77
107
  */
78
- get(uri: string): string | undefined;
108
+ isTracked(uri: string): boolean;
79
109
  /** Forget the shadow for a URI; next {@link computeEdits} falls back to a full-document replace. */
80
110
  invalidate(uri: string): void;
81
111
  /**
@@ -83,7 +113,9 @@ export declare class LanguageClientTextShadow {
83
113
  * the tracked shadow to `newText`. Updates the shadow to `newText` so subsequent calls diff
84
114
  * against it.
85
115
  *
86
- * - Empty array when the shadow already equals `newText` (caller should skip the RPC).
116
+ * - Empty array when the shadow already equals `newText` (caller should skip the RPC),
117
+ * or when there is no shadow and the client opened the document with exactly `newText`
118
+ * (see {@link setOpenedText}) — pushing it anyway dirties the client's buffer on open.
87
119
  * - Full-range replace when there is no shadow (first sync or post-{@link invalidate}).
88
120
  * - Line-level diff otherwise. Before returning, we locally reconstruct `newText` by applying
89
121
  * the diff to `old`; if that doesn't match, we fall back to a full-range replace and notify
@@ -1 +1 @@
1
- {"version":3,"file":"language-client-text-shadow.d.ts","sourceRoot":"","sources":["../../src/documents/language-client-text-shadow.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAGlF,OAAO,EAAS,KAAK,QAAQ,EAAY,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IAClC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;CAC1F;AAKD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,OAAO,CAMjE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,wBAAwB;IAe/B,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI;IAC3D,SAAS,CAAC,SAAS,EAAE,oBAAoB;IAf5C,SAAS,CAAC,MAAM,sBAA6B;IAE7C;;;;;;;;;;OAUG;gBAEU,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EACjD,SAAS,EAAE,oBAAoB;IAG5C,4FAA4F;IAC5F,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpC;;;;;;;;;;OAUG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpC,oGAAoG;IACpG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE;CAkBxD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CA+BxE"}
1
+ {"version":3,"file":"language-client-text-shadow.d.ts","sourceRoot":"","sources":["../../src/documents/language-client-text-shadow.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAGlF,OAAO,EAAS,KAAK,QAAQ,EAAY,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IAClC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;CAC1F;AAKD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,OAAO,CAMjE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,wBAAwB;IAwB/B,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI;IAC3D,SAAS,CAAC,SAAS,EAAE,oBAAoB;IAxB5C,SAAS,CAAC,MAAM,sBAA6B;IAE7C;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,sBAA6B;IAE7C;;;;;;;;;;OAUG;gBAEU,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EACjD,SAAS,EAAE,oBAAoB;IAG5C,4FAA4F;IAC5F,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpC;;;;;;;;;OASG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI/B,oGAAoG;IACpG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAS7B;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE;CAsBxD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CA+BxE"}