@hydranium/glsp-server 1.0.0-next.31 → 1.0.0-next.315

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 (217) hide show
  1. package/README.md +80 -88
  2. package/lib/browser/start-glsp-server-in-worker.d.ts +43 -42
  3. package/lib/browser/start-glsp-server-in-worker.d.ts.map +1 -1
  4. package/lib/browser/start-glsp-server-in-worker.js +62 -13
  5. package/lib/browser/start-glsp-server-in-worker.js.map +1 -1
  6. package/lib/command/diagram-edit-dropped-error.d.ts +31 -0
  7. package/lib/command/diagram-edit-dropped-error.d.ts.map +1 -0
  8. package/lib/command/diagram-edit-dropped-error.js +48 -0
  9. package/lib/command/diagram-edit-dropped-error.js.map +1 -0
  10. package/lib/command/hydranium-glsp-command-stack.d.ts +33 -0
  11. package/lib/command/hydranium-glsp-command-stack.d.ts.map +1 -0
  12. package/lib/command/hydranium-glsp-command-stack.js +63 -0
  13. package/lib/command/hydranium-glsp-command-stack.js.map +1 -0
  14. package/lib/command/hydranium-glsp-operation-action-handler.d.ts +64 -0
  15. package/lib/command/hydranium-glsp-operation-action-handler.d.ts.map +1 -0
  16. package/lib/command/hydranium-glsp-operation-action-handler.js +142 -0
  17. package/lib/command/hydranium-glsp-operation-action-handler.js.map +1 -0
  18. package/lib/command/hydranium-glsp-operation-command.d.ts +250 -0
  19. package/lib/command/hydranium-glsp-operation-command.d.ts.map +1 -0
  20. package/lib/command/hydranium-glsp-operation-command.js +491 -0
  21. package/lib/command/hydranium-glsp-operation-command.js.map +1 -0
  22. package/lib/command/hydranium-glsp-recording-command.d.ts +26 -87
  23. package/lib/command/hydranium-glsp-recording-command.d.ts.map +1 -1
  24. package/lib/command/hydranium-glsp-recording-command.js +40 -117
  25. package/lib/command/hydranium-glsp-recording-command.js.map +1 -1
  26. package/lib/command/hydranium-glsp-undo-redo-action-handler.d.ts +23 -0
  27. package/lib/command/hydranium-glsp-undo-redo-action-handler.d.ts.map +1 -0
  28. package/lib/command/hydranium-glsp-undo-redo-action-handler.js +41 -0
  29. package/lib/command/hydranium-glsp-undo-redo-action-handler.js.map +1 -0
  30. package/lib/command/index.d.ts +5 -0
  31. package/lib/command/index.d.ts.map +1 -1
  32. package/lib/command/index.js +5 -0
  33. package/lib/command/index.js.map +1 -1
  34. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.d.ts +1 -1
  35. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.d.ts.map +1 -1
  36. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.js +2 -2
  37. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.js.map +1 -1
  38. package/lib/dispatcher/server-action-dispatcher.d.ts +25 -24
  39. package/lib/dispatcher/server-action-dispatcher.d.ts.map +1 -1
  40. package/lib/dispatcher/server-action-dispatcher.js +38 -26
  41. package/lib/dispatcher/server-action-dispatcher.js.map +1 -1
  42. package/lib/index.d.ts +1 -0
  43. package/lib/index.d.ts.map +1 -1
  44. package/lib/index.js +1 -0
  45. package/lib/index.js.map +1 -1
  46. package/lib/launcher/abstract-hydranium-glsp-diagram-module.d.ts +35 -59
  47. package/lib/launcher/abstract-hydranium-glsp-diagram-module.d.ts.map +1 -1
  48. package/lib/launcher/abstract-hydranium-glsp-diagram-module.js +60 -71
  49. package/lib/launcher/abstract-hydranium-glsp-diagram-module.js.map +1 -1
  50. package/lib/launcher/drop-notifications-to-gone-client.d.ts +23 -0
  51. package/lib/launcher/drop-notifications-to-gone-client.d.ts.map +1 -0
  52. package/lib/launcher/drop-notifications-to-gone-client.js +43 -0
  53. package/lib/launcher/drop-notifications-to-gone-client.js.map +1 -0
  54. package/lib/launcher/glsp-app-module.d.ts +1 -2
  55. package/lib/launcher/glsp-app-module.d.ts.map +1 -1
  56. package/lib/launcher/glsp-app-module.js.map +1 -1
  57. package/lib/launcher/glsp-connection-logger.d.ts +19 -0
  58. package/lib/launcher/glsp-connection-logger.d.ts.map +1 -0
  59. package/lib/launcher/glsp-connection-logger.js +24 -0
  60. package/lib/launcher/glsp-connection-logger.js.map +1 -0
  61. package/lib/launcher/glsp-server-overrides.d.ts +10 -8
  62. package/lib/launcher/glsp-server-overrides.d.ts.map +1 -1
  63. package/lib/launcher/glsp-server-overrides.js +25 -11
  64. package/lib/launcher/glsp-server-overrides.js.map +1 -1
  65. package/lib/launcher/hydranium-glsp-server.d.ts +60 -15
  66. package/lib/launcher/hydranium-glsp-server.d.ts.map +1 -1
  67. package/lib/launcher/hydranium-glsp-server.js +145 -22
  68. package/lib/launcher/hydranium-glsp-server.js.map +1 -1
  69. package/lib/launcher/index.d.ts +2 -0
  70. package/lib/launcher/index.d.ts.map +1 -1
  71. package/lib/launcher/index.js +5 -4
  72. package/lib/launcher/index.js.map +1 -1
  73. package/lib/logging/glsp-client-logger.d.ts +10 -6
  74. package/lib/logging/glsp-client-logger.d.ts.map +1 -1
  75. package/lib/logging/glsp-client-logger.js +14 -7
  76. package/lib/logging/glsp-client-logger.js.map +1 -1
  77. package/lib/messages/index.d.ts +11 -6
  78. package/lib/messages/index.d.ts.map +1 -1
  79. package/lib/messages/index.js +11 -6
  80. package/lib/messages/index.js.map +1 -1
  81. package/lib/node/start-glsp-server.d.ts +50 -15
  82. package/lib/node/start-glsp-server.d.ts.map +1 -1
  83. package/lib/node/start-glsp-server.js +97 -30
  84. package/lib/node/start-glsp-server.js.map +1 -1
  85. package/lib/state/abstract-hydranium-glsp-state.d.ts +326 -102
  86. package/lib/state/abstract-hydranium-glsp-state.d.ts.map +1 -1
  87. package/lib/state/abstract-hydranium-glsp-state.js +529 -139
  88. package/lib/state/abstract-hydranium-glsp-state.js.map +1 -1
  89. package/lib/state/diagram-status.d.ts +38 -0
  90. package/lib/state/diagram-status.d.ts.map +1 -0
  91. package/lib/state/diagram-status.js +27 -0
  92. package/lib/state/diagram-status.js.map +1 -0
  93. package/lib/state/full-text-hydranium-glsp-state.d.ts +22 -9
  94. package/lib/state/full-text-hydranium-glsp-state.d.ts.map +1 -1
  95. package/lib/state/full-text-hydranium-glsp-state.js +45 -18
  96. package/lib/state/full-text-hydranium-glsp-state.js.map +1 -1
  97. package/lib/state/hydranium-glsp-index.d.ts +40 -29
  98. package/lib/state/hydranium-glsp-index.d.ts.map +1 -1
  99. package/lib/state/hydranium-glsp-index.js +82 -45
  100. package/lib/state/hydranium-glsp-index.js.map +1 -1
  101. package/lib/state/hydranium-shared-core-services.d.ts +16 -29
  102. package/lib/state/hydranium-shared-core-services.d.ts.map +1 -1
  103. package/lib/state/hydranium-shared-core-services.js +15 -28
  104. package/lib/state/hydranium-shared-core-services.js.map +1 -1
  105. package/lib/state/index.d.ts +1 -0
  106. package/lib/state/index.d.ts.map +1 -1
  107. package/lib/state/index.js +1 -0
  108. package/lib/state/index.js.map +1 -1
  109. package/lib/state/model-ready-timeout-error.d.ts.map +1 -1
  110. package/lib/state/model-ready-timeout-error.js.map +1 -1
  111. package/lib/state/reconcile-source-model-write.d.ts +13 -27
  112. package/lib/state/reconcile-source-model-write.d.ts.map +1 -1
  113. package/lib/state/reconcile-source-model-write.js +44 -32
  114. package/lib/state/reconcile-source-model-write.js.map +1 -1
  115. package/lib/state/reconciling-multi-document-glsp-state.d.ts +125 -69
  116. package/lib/state/reconciling-multi-document-glsp-state.d.ts.map +1 -1
  117. package/lib/state/reconciling-multi-document-glsp-state.js +242 -100
  118. package/lib/state/reconciling-multi-document-glsp-state.js.map +1 -1
  119. package/lib/state/reconciling-transfer-hydranium-glsp-state.d.ts +36 -28
  120. package/lib/state/reconciling-transfer-hydranium-glsp-state.d.ts.map +1 -1
  121. package/lib/state/reconciling-transfer-hydranium-glsp-state.js +59 -42
  122. package/lib/state/reconciling-transfer-hydranium-glsp-state.js.map +1 -1
  123. package/lib/status/diagram-status-reporter.d.ts +44 -0
  124. package/lib/status/diagram-status-reporter.d.ts.map +1 -0
  125. package/lib/status/diagram-status-reporter.js +88 -0
  126. package/lib/status/diagram-status-reporter.js.map +1 -0
  127. package/lib/status/hydranium-glsp-request-model-action-handler.d.ts +27 -0
  128. package/lib/status/hydranium-glsp-request-model-action-handler.d.ts.map +1 -0
  129. package/lib/status/hydranium-glsp-request-model-action-handler.js +52 -0
  130. package/lib/status/hydranium-glsp-request-model-action-handler.js.map +1 -0
  131. package/lib/status/hydranium-glsp-set-edit-mode-action-handler.d.ts +27 -0
  132. package/lib/status/hydranium-glsp-set-edit-mode-action-handler.d.ts.map +1 -0
  133. package/lib/status/hydranium-glsp-set-edit-mode-action-handler.js +53 -0
  134. package/lib/status/hydranium-glsp-set-edit-mode-action-handler.js.map +1 -0
  135. package/lib/status/index.d.ts +12 -0
  136. package/lib/status/index.d.ts.map +1 -0
  137. package/lib/status/index.js +12 -0
  138. package/lib/status/index.js.map +1 -0
  139. package/lib/storage/hydranium-glsp-request-save-model-action-handler.d.ts +30 -0
  140. package/lib/storage/hydranium-glsp-request-save-model-action-handler.d.ts.map +1 -0
  141. package/lib/storage/hydranium-glsp-request-save-model-action-handler.js +47 -0
  142. package/lib/storage/hydranium-glsp-request-save-model-action-handler.js.map +1 -0
  143. package/lib/storage/hydranium-glsp-storage.d.ts +324 -143
  144. package/lib/storage/hydranium-glsp-storage.d.ts.map +1 -1
  145. package/lib/storage/hydranium-glsp-storage.js +569 -213
  146. package/lib/storage/hydranium-glsp-storage.js.map +1 -1
  147. package/lib/storage/index.d.ts +2 -1
  148. package/lib/storage/index.d.ts.map +1 -1
  149. package/lib/storage/index.js +2 -1
  150. package/lib/storage/index.js.map +1 -1
  151. package/lib/storage/save-delivery-policy.d.ts +51 -0
  152. package/lib/storage/save-delivery-policy.d.ts.map +1 -0
  153. package/lib/storage/{save-conflict-policy.js → save-delivery-policy.js} +7 -8
  154. package/lib/storage/save-delivery-policy.js.map +1 -0
  155. package/lib/submission/hydranium-glsp-submission-handler.d.ts +44 -4
  156. package/lib/submission/hydranium-glsp-submission-handler.d.ts.map +1 -1
  157. package/lib/submission/hydranium-glsp-submission-handler.js +82 -6
  158. package/lib/submission/hydranium-glsp-submission-handler.js.map +1 -1
  159. package/lib/testing/glsp-harness.d.ts +34 -7
  160. package/lib/testing/glsp-harness.d.ts.map +1 -1
  161. package/lib/testing/glsp-harness.js +47 -19
  162. package/lib/testing/glsp-harness.js.map +1 -1
  163. package/lib/validation/diagnostic-markers.d.ts +3 -3
  164. package/lib/validation/diagnostic-markers.d.ts.map +1 -1
  165. package/lib/validation/diagnostic-markers.js +1 -1
  166. package/lib/validation/diagnostic-markers.js.map +1 -1
  167. package/lib/validation/hydranium-glsp-model-validator.d.ts +1 -2
  168. package/lib/validation/hydranium-glsp-model-validator.d.ts.map +1 -1
  169. package/lib/validation/hydranium-glsp-model-validator.js +1 -1
  170. package/lib/validation/hydranium-glsp-model-validator.js.map +1 -1
  171. package/package.json +31 -52
  172. package/src/browser/start-glsp-server-in-worker.ts +79 -51
  173. package/src/command/diagram-edit-dropped-error.ts +51 -0
  174. package/src/command/hydranium-glsp-command-stack.ts +47 -0
  175. package/src/command/hydranium-glsp-operation-action-handler.ts +141 -0
  176. package/src/command/hydranium-glsp-operation-command.ts +602 -0
  177. package/src/command/hydranium-glsp-recording-command.ts +40 -121
  178. package/src/command/hydranium-glsp-undo-redo-action-handler.ts +29 -0
  179. package/src/command/index.ts +10 -0
  180. package/src/computed-bounds/hydranium-glsp-computed-bounds-action-handler.ts +2 -2
  181. package/src/dispatcher/server-action-dispatcher.ts +39 -31
  182. package/src/index.ts +1 -0
  183. package/src/launcher/abstract-hydranium-glsp-diagram-module.ts +79 -91
  184. package/src/launcher/drop-notifications-to-gone-client.ts +47 -0
  185. package/src/launcher/glsp-app-module.ts +1 -2
  186. package/src/launcher/glsp-connection-logger.ts +27 -0
  187. package/src/launcher/glsp-server-overrides.ts +27 -11
  188. package/src/launcher/hydranium-glsp-server.ts +153 -23
  189. package/src/launcher/index.ts +5 -4
  190. package/src/logging/glsp-client-logger.ts +16 -9
  191. package/src/messages/index.ts +16 -6
  192. package/src/node/start-glsp-server.ts +133 -40
  193. package/src/state/abstract-hydranium-glsp-state.ts +609 -154
  194. package/src/state/diagram-status.ts +41 -0
  195. package/src/state/full-text-hydranium-glsp-state.ts +46 -18
  196. package/src/state/hydranium-glsp-index.ts +85 -41
  197. package/src/state/hydranium-shared-core-services.ts +16 -29
  198. package/src/state/index.ts +1 -0
  199. package/src/state/reconcile-source-model-write.ts +51 -53
  200. package/src/state/reconciling-multi-document-glsp-state.ts +276 -102
  201. package/src/state/reconciling-transfer-hydranium-glsp-state.ts +67 -45
  202. package/src/status/diagram-status-reporter.ts +106 -0
  203. package/src/status/hydranium-glsp-request-model-action-handler.ts +43 -0
  204. package/src/status/hydranium-glsp-set-edit-mode-action-handler.ts +38 -0
  205. package/src/status/index.ts +12 -0
  206. package/src/storage/hydranium-glsp-request-save-model-action-handler.ts +40 -0
  207. package/src/storage/hydranium-glsp-storage.ts +647 -223
  208. package/src/storage/index.ts +2 -1
  209. package/src/storage/save-delivery-policy.ts +49 -0
  210. package/src/submission/hydranium-glsp-submission-handler.ts +91 -5
  211. package/src/testing/glsp-harness.ts +67 -25
  212. package/src/validation/diagnostic-markers.ts +3 -3
  213. package/src/validation/hydranium-glsp-model-validator.ts +4 -5
  214. package/lib/storage/save-conflict-policy.d.ts +0 -56
  215. package/lib/storage/save-conflict-policy.d.ts.map +0 -1
  216. package/lib/storage/save-conflict-policy.js.map +0 -1
  217. package/src/storage/save-conflict-policy.ts +0 -52
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-hydranium-glsp-state.js","sourceRoot":"","sources":["../../src/state/abstract-hydranium-glsp-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract-hydranium-glsp-state.js","sourceRoot":"","sources":["../../src/state/abstract-hydranium-glsp-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 CrossBreeze, 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 { ProposalString, SeverityLevel } from '@eclipse-glsp/server';
10
+ /**
11
+ * Why a diagram is in a state its client has to show: the key an entry is set
12
+ * and withdrawn under in {@link AbstractHydraniumGlspState.setStatus}.
13
+ *
14
+ * Open, as GLSP's `EditMode` is: an adopter keys its own statuses with any
15
+ * other string. Each writer withdraws only its own key, so no writer clears a
16
+ * status another one still holds.
17
+ */
18
+ export declare const DiagramStatus: {
19
+ /** The document does not parse, so the canvas refuses edits until it does. */
20
+ readonly PARSE_ERROR: 'parse-error';
21
+ /** Live validation of the model is running. */
22
+ readonly VALIDATION: 'validation';
23
+ /** The source model is loading. */
24
+ readonly MODEL_LOAD: 'model-load';
25
+ /** The client asked for the diagram to be read-only. */
26
+ readonly CLIENT_REQUEST: 'client-request';
27
+ };
28
+ export type DiagramStatus = ProposalString<(typeof DiagramStatus)[keyof typeof DiagramStatus]>;
29
+ /** What an active {@link DiagramStatus} does to the diagram. */
30
+ export interface DiagramStatusEntry {
31
+ /** Shown in the client's status overlay; omitted when the status has nothing to say. */
32
+ readonly message?: string;
33
+ /** Picks which message is shown when several statuses carry one; the most recently set wins a tie. */
34
+ readonly severity?: Exclude<SeverityLevel, 'NONE' | 'OK'>;
35
+ /** Blocks editing while the status is active. */
36
+ readonly readonly?: boolean;
37
+ }
38
+ //# sourceMappingURL=diagram-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-status.d.ts","sourceRoot":"","sources":["../../src/state/diagram-status.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1E;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;IACvB,8EAA8E;aAC9E,WAAW,EAAE,aAAa;IAC1B,+CAA+C;aAC/C,UAAU,EAAE,YAAY;IACxB,mCAAmC;aACnC,UAAU,EAAE,YAAY;IACxB,wDAAwD;aACxD,cAAc,EAAE,gBAAgB;CACzB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC,CAAC;AAE/F,gEAAgE;AAChE,MAAM,WAAW,kBAAkB;IAChC,wFAAwF;IACxF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,sGAAsG;IACtG,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1D,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC9B"}
@@ -0,0 +1,27 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 CrossBreeze, 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
+ * Why a diagram is in a state its client has to show: the key an entry is set
11
+ * and withdrawn under in {@link AbstractHydraniumGlspState.setStatus}.
12
+ *
13
+ * Open, as GLSP's `EditMode` is: an adopter keys its own statuses with any
14
+ * other string. Each writer withdraws only its own key, so no writer clears a
15
+ * status another one still holds.
16
+ */
17
+ export const DiagramStatus = {
18
+ /** The document does not parse, so the canvas refuses edits until it does. */
19
+ PARSE_ERROR: 'parse-error',
20
+ /** Live validation of the model is running. */
21
+ VALIDATION: 'validation',
22
+ /** The source model is loading. */
23
+ MODEL_LOAD: 'model-load',
24
+ /** The client asked for the diagram to be read-only. */
25
+ CLIENT_REQUEST: 'client-request'
26
+ };
27
+ //# sourceMappingURL=diagram-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-status.js","sourceRoot":"","sources":["../../src/state/diagram-status.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC1B,8EAA8E;IAC9E,WAAW,EAAE,aAAa;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,YAAY;IACxB,mCAAmC;IACnC,UAAU,EAAE,YAAY;IACxB,wDAAwD;IACxD,cAAc,EAAE,gBAAgB;CACzB,CAAC"}
@@ -8,7 +8,7 @@
8
8
  ********************************************************************************/
9
9
  import { type JsonModelState } from '@eclipse-glsp/server';
10
10
  import { type AstNode } from '@hydranium/langium';
11
- import { type MaybePromise } from '@hydranium/protocol';
11
+ import { type BaseVersion, type MaybePromise } from '@hydranium/protocol';
12
12
  import { AbstractHydraniumGlspState } from './abstract-hydranium-glsp-state.js';
13
13
  /** Whole-document-text source model: the serialised text of the source root. */
14
14
  export interface FullTextSourceModel {
@@ -25,19 +25,32 @@ export interface FullTextSourceModel {
25
25
  * nothing beyond narrowing `TRoot` and their index:
26
26
  * - {@link sourceModel} serialises the source root through the per-URI
27
27
  * `serializer.Serializer` reached via `sharedServices.ServiceRegistry`
28
- * (so multi-grammar workspaces route to the right serializer). `MaybePromise`
29
- * because serialization may be async; the sync fast path is preserved.
30
- * - {@link updateSourceModel} pushes the text back through
31
- * `ModelService.update` (which accepts a raw text payload) and captures the
32
- * re-parsed root.
28
+ * (so multi-grammar workspaces route to the right serializer), keeping the
29
+ * document's comments. `MaybePromise` because serialization may be async;
30
+ * the sync fast path is preserved.
31
+ * - {@link updateSourceModel} pushes the text back through the diagram's
32
+ * session (`update` accepts a raw text payload) and captures the re-parsed
33
+ * root, gated on the caller's `baseVersion`; it throws without a session.
33
34
  *
34
- * No `baseline` / conflict reconcile: a whole-document model has exactly one
35
+ * No `base` / conflict reconcile: a whole-document model has exactly one
35
36
  * field, so every concurrent edit is a same-field collision and undo / redo
36
- * degrade to drop-on-divergence. Adopters that need field-level undo use
37
+ * degrade to drop-on-divergence, unless the text already holds what they
38
+ * write. Adopters that need field-level undo use
37
39
  * `ReconcilingTransferHydraniumGlspState` instead.
38
40
  */
39
41
  export declare class FullTextHydraniumGlspState<TRoot extends AstNode> extends AbstractHydraniumGlspState<TRoot, FullTextSourceModel> implements JsonModelState<FullTextSourceModel> {
42
+ /**
43
+ * The source root serialised, with the comments of the built document the
44
+ * captured root was parsed from re-attached through the language's trivia
45
+ * service, as a structured write's text gets them. The serializer emits
46
+ * none, so without them every write, undo and redo would delete them.
47
+ */
40
48
  get sourceModel(): MaybePromise<FullTextSourceModel>;
41
- updateSourceModel(model: FullTextSourceModel): Promise<void>;
49
+ /**
50
+ * A write that conflicts while the store already holds `model.text`, as
51
+ * when an undo's side effect brought the text to the undo's result, is
52
+ * taken as applied; any other conflict is thrown.
53
+ */
54
+ updateSourceModel(model: FullTextSourceModel, baseVersion?: BaseVersion): Promise<void>;
42
55
  }
43
56
  //# sourceMappingURL=full-text-hydranium-glsp-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"full-text-hydranium-glsp-state.d.ts","sourceRoot":"","sources":["../../src/state/full-text-hydranium-glsp-state.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IACjC,IAAI,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,0BAA0B,CAAC,KAAK,SAAS,OAAO,CAC1D,SAAQ,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,CAC7D,YAAW,cAAc,CAAC,mBAAmB,CAAC;IAE9C,IAAI,WAAW,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAInD;IAEK,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAQpE"}
1
+ {"version":3,"file":"full-text-hydranium-glsp-state.d.ts","sourceRoot":"","sources":["../../src/state/full-text-hydranium-glsp-state.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,KAAK,WAAW,EAAkC,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IACjC,IAAI,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBACa,0BAA0B,CAAC,KAAK,SAAS,OAAO,CAC1D,SAAQ,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,CAC7D,YAAW,cAAc,CAAC,mBAAmB,CAAC;IAE9C;;;;;OAKG;IACH,IAAI,WAAW,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAWnD;IAED;;;;OAIG;IACG,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,EAAE,WAAW,GAAE,WAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAe9G;CACH"}
@@ -14,7 +14,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
14
14
  };
15
15
  import { injectable } from 'inversify';
16
16
  import { URI } from '@hydranium/langium';
17
- import { isPromiseLike } from '@hydranium/protocol';
17
+ import { isConflictError, isPromiseLike } from '@hydranium/protocol';
18
18
  import { AbstractHydraniumGlspState } from './abstract-hydranium-glsp-state.js';
19
19
  /**
20
20
  * Editable GLSP state for adopters whose source model is the **whole document
@@ -27,30 +27,57 @@ import { AbstractHydraniumGlspState } from './abstract-hydranium-glsp-state.js';
27
27
  * nothing beyond narrowing `TRoot` and their index:
28
28
  * - {@link sourceModel} serialises the source root through the per-URI
29
29
  * `serializer.Serializer` reached via `sharedServices.ServiceRegistry`
30
- * (so multi-grammar workspaces route to the right serializer). `MaybePromise`
31
- * because serialization may be async; the sync fast path is preserved.
32
- * - {@link updateSourceModel} pushes the text back through
33
- * `ModelService.update` (which accepts a raw text payload) and captures the
34
- * re-parsed root.
30
+ * (so multi-grammar workspaces route to the right serializer), keeping the
31
+ * document's comments. `MaybePromise` because serialization may be async;
32
+ * the sync fast path is preserved.
33
+ * - {@link updateSourceModel} pushes the text back through the diagram's
34
+ * session (`update` accepts a raw text payload) and captures the re-parsed
35
+ * root, gated on the caller's `baseVersion`; it throws without a session.
35
36
  *
36
- * No `baseline` / conflict reconcile: a whole-document model has exactly one
37
+ * No `base` / conflict reconcile: a whole-document model has exactly one
37
38
  * field, so every concurrent edit is a same-field collision and undo / redo
38
- * degrade to drop-on-divergence. Adopters that need field-level undo use
39
+ * degrade to drop-on-divergence, unless the text already holds what they
40
+ * write. Adopters that need field-level undo use
39
41
  * `ReconcilingTransferHydraniumGlspState` instead.
40
42
  */
41
43
  let FullTextHydraniumGlspState = class FullTextHydraniumGlspState extends AbstractHydraniumGlspState {
44
+ /**
45
+ * The source root serialised, with the comments of the built document the
46
+ * captured root was parsed from re-attached through the language's trivia
47
+ * service, as a structured write's text gets them. The serializer emits
48
+ * none, so without them every write, undo and redo would delete them.
49
+ */
42
50
  get sourceModel() {
43
- const serializer = this.sharedServices.ServiceRegistry.getServices(URI.parse(this._sourceUri)).serializer.Serializer;
44
- const text = serializer.serializeAst(this._sourceRoot);
45
- return isPromiseLike(text) ? text.then(value => ({ text: value })) : { text };
46
- }
47
- async updateSourceModel(model) {
48
- const document = await this.sharedServices.model.ModelService.update({
49
- uri: this._sourceUri,
50
- model: model.text,
51
- clientId: this.clientId
51
+ const uri = URI.parse(this._sourceUri);
52
+ const services = this.sharedServices.ServiceRegistry.getServices(uri);
53
+ const trivia = services.trivia?.TriviaService;
54
+ const document = this._sourceRoot.$document;
55
+ const extracted = trivia !== undefined && document !== undefined ? trivia.extract(document) : undefined;
56
+ const withTrivia = (text) => ({
57
+ text: trivia !== undefined && extracted !== undefined ? trivia.apply(text, extracted, uri) : text
52
58
  });
53
- this.setSourceRoot(this._sourceUri, document.root);
59
+ const text = services.serializer.Serializer.serializeAst(this.sourceRoot);
60
+ return isPromiseLike(text) ? text.then(withTrivia) : withTrivia(text);
61
+ }
62
+ /**
63
+ * A write that conflicts while the store already holds `model.text`, as
64
+ * when an undo's side effect brought the text to the undo's result, is
65
+ * taken as applied; any other conflict is thrown.
66
+ */
67
+ async updateSourceModel(model, baseVersion = this.baseVersion) {
68
+ let document;
69
+ try {
70
+ document = await this.requireModelSession().update({ uri: this._sourceUri, model: model.text, baseVersion });
71
+ }
72
+ catch (error) {
73
+ if (isConflictError(error) && this.sharedServices.workspace.TextDocuments.get(this._sourceUri)?.getText() === model.text) {
74
+ this.logger.debug(`updateSourceModel already applied (model v${error.baseVersion} / text v${error.actualVersion}); the document already holds the diagram edit`);
75
+ this.captureBuiltRoot();
76
+ return;
77
+ }
78
+ throw error;
79
+ }
80
+ this.captureWrittenRoot(document.root);
54
81
  }
55
82
  };
56
83
  FullTextHydraniumGlspState = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"full-text-hydranium-glsp-state.js","sourceRoot":"","sources":["../../src/state/full-text-hydranium-glsp-state.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;;;;;;;AAGlF,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAOhF;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEI,IAAM,0BAA0B,GAAhC,MAAM,0BACV,SAAQ,0BAAsD;IAG9D,IAAI,WAAW;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QACrH,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAA0B;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;YAClE,GAAG,EAAE,IAAI,CAAC,UAAU;YACpB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAa,CAAC,CAAC;IAC/D,CAAC;CACH,CAAA;AAlBY,0BAA0B;IADtC,UAAU,EAAE;GACA,0BAA0B,CAkBtC"}
1
+ {"version":3,"file":"full-text-hydranium-glsp-state.js","sourceRoot":"","sources":["../../src/state/full-text-hydranium-glsp-state.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;;;;;;;AAGlF,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAoB,eAAe,EAAE,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAOhF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEI,IAAM,0BAA0B,GAAhC,MAAM,0BACV,SAAQ,0BAAsD;IAG9D;;;;;OAKG;IACH,IAAI,WAAW;QACZ,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,MAAM,UAAU,GAAG,CAAC,IAAY,EAAuB,EAAE,CAAC,CAAC;YACxD,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;SACnG,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1E,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAA0B,EAAE,WAAW,GAAgB,IAAI,CAAC,WAAW;QAC5F,IAAI,QAA2B,CAAC;QAChC,IAAI,CAAC;YACF,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAChH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACvB,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBACxH,IAAI,CAAC,MAAM,CAAC,KAAK,CACd,6CAA6C,KAAK,CAAC,WAAW,YAAY,KAAK,CAAC,aAAa,gDAAgD,CAC/I,CAAC;gBACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,OAAO;YACV,CAAC;YACD,MAAM,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAa,CAAC,CAAC;IACnD,CAAC;CACH,CAAA;AA5CY,0BAA0B;IADtC,UAAU,EAAE;GACA,0BAA0B,CA4CtC"}
@@ -38,32 +38,21 @@ import { type ElementKeyProvider, type ServerLanguageServices, type ServerShared
38
38
  export declare class HydraniumGlspIndex extends GModelIndex {
39
39
  protected readonly sharedServices: ServerSharedServices;
40
40
  protected idToSemanticNode: Map<string, AstNode>;
41
+ /**
42
+ * The entries {@link indexSemanticElement} added outside the walk, by id.
43
+ * Kept across {@link reindexSemanticElements}, which walks containment
44
+ * only and so cannot rebuild them, and moved with {@link remapSemanticAliases}.
45
+ */
46
+ protected semanticAliases: Map<string, AstNode>;
47
+ /** Whether {@link reindexSemanticElements} is walking, so an entry it adds is not an alias. */
48
+ protected walking: boolean;
41
49
  /**
42
50
  * The language services of the diagram's OWN document, captured from the
43
51
  * source root in {@link indexSourceRoot}. Used only as the fallback for a
44
52
  * node that routes nowhere — a synthetic or freshly-built node with no
45
53
  * `$document` yet, which a GModel factory legitimately hands us mid-edit.
46
- *
47
- * Captured rather than injected because it is the language the loaded
48
- * document ACTUALLY routes to, which is not necessarily the one the diagram
49
- * module declared — precisely the drift
50
- * `AbstractHydraniumGlspState.checkDeclaredLanguage` warns about. (Not
51
- * a cost argument: {@link HydraniumTypes}.DiagramLanguage is bound
52
- * `inSingletonScope`, so injecting it would resolve once per session too.)
53
54
  */
54
55
  protected diagramLanguage?: ServerLanguageServices;
55
- /**
56
- * The grammar the diagram module declared, as the last resort behind
57
- * {@link diagramLanguage}.
58
- *
59
- * Order-independent where the captured one is not: GLSP builds every
60
- * operation handler at `InitializeClientSession`, so a document-less node
61
- * can reach {@link createId} before the first {@link indexSourceRoot} — and
62
- * with no language at all that mints an unstable `fallback_<uuid>` where a
63
- * stable positional key was available. `@optional()` so a harness that binds
64
- * no diagram module still resolves.
65
- */
66
- protected readonly declaredLanguage?: ServerLanguageServices;
67
56
  /**
68
57
  * Reverse map: the *stable id* of the AST element a GModel element
69
58
  * represents → the GModel id(s) that render it. Multi-valued because one
@@ -121,8 +110,8 @@ export declare class HydraniumGlspIndex extends GModelIndex {
121
110
  protected doFindId(node?: AstNode, keyProvider?: ElementKeyProvider): string | undefined;
122
111
  /**
123
112
  * The {@link ElementKeyProvider} of the language owning `node`'s document,
124
- * falling back to the language the diagram document routes to and then to
125
- * the one its module declared, for a node that routes nowhere.
113
+ * falling back to the language the diagram document routes to for a node
114
+ * that routes nowhere.
126
115
  *
127
116
  * **Resolved per node on the cross-document entry points.** This index is
128
117
  * deliberately cross-document — {@link registerElementId} and
@@ -136,6 +125,13 @@ export declare class HydraniumGlspIndex extends GModelIndex {
136
125
  * {@link indexSourceRoot} needs no per-node lookup and does not pay for one.
137
126
  */
138
127
  protected elementKeyProviderFor(node?: AstNode): ElementKeyProvider | undefined;
128
+ /**
129
+ * The language services owning `node`, falling back to the diagram's
130
+ * language for a node that routes nowhere. A per-language lookup an index
131
+ * subclass adds goes through this, so an operation's copy of a node from
132
+ * another document reaches that document's language, as its built node does.
133
+ */
134
+ languageServicesFor(node?: AstNode): ServerLanguageServices | undefined;
139
135
  /** Return the GModel id assigned to `node`, falling back to a fresh `fallback_<uuid>`. */
140
136
  createId(node?: AstNode): string;
141
137
  /**
@@ -151,14 +147,24 @@ export declare class HydraniumGlspIndex extends GModelIndex {
151
147
  */
152
148
  assertId(node?: AstNode): string;
153
149
  /**
154
- * Walk the source root and index every reachable AST node with a resolvable
155
- * id.
150
+ * Index `root` as a new source root: forget what {@link registerElementId}
151
+ * and {@link indexSemanticElement} recorded, seed the diagram document as
152
+ * rendered, and index the nodes through {@link reindexSemanticElements}.
153
+ */
154
+ indexSourceRoot(root: AstNode, uri?: URI | string): void;
155
+ /**
156
+ * Index the nodes of `root` by id, keeping what {@link registerElementId}
157
+ * and, outside the walk, {@link indexSemanticElement} recorded. For a root
158
+ * carrying the same ids as the one indexed, such as a working copy: those
159
+ * are made only when the GModel is built, and clearing them leaves
160
+ * diagnostics with no marker and an alias resolving to nothing until the
161
+ * next build. An alias still names its node; move it with
162
+ * {@link remapSemanticAliases}.
156
163
  *
157
- * `uri` is the diagram document's URI, supplied by
158
- * `AbstractHydraniumGlspState.setSourceRoot`, and is used only to
159
- * resolve the diagram's language when `root` carries no `$document` —
160
- * always the case for a synthesised root, and the more authoritative signal
161
- * either way since it is what the caller declared it was loading.
164
+ * `uri` is the diagram document's URI and is used only to resolve the
165
+ * diagram's language when `root` carries no `$document` — always the case
166
+ * for a synthesised root or a working copy, and the more authoritative
167
+ * signal either way since it is what the caller declared it was loading.
162
168
  *
163
169
  * The walk resolves the key provider ONCE and threads it: `streamAllContents`
164
170
  * is containment-only, so every node it yields has `root` as its root node
@@ -167,7 +173,12 @@ export declare class HydraniumGlspIndex extends GModelIndex {
167
173
  * languageId, file name, extension — for an answer already in hand, on every
168
174
  * diagram open and every source-root refresh.
169
175
  */
170
- indexSourceRoot(root: AstNode, uri?: URI | string): void;
176
+ reindexSemanticElements(root: AstNode, uri?: URI | string): void;
177
+ /**
178
+ * Point every alias {@link indexSemanticElement} added at `map(node)`, or
179
+ * drop it where that is `undefined`: the node it named is gone.
180
+ */
181
+ remapSemanticAliases(map: (node: AstNode) => AstNode | undefined): void;
171
182
  /**
172
183
  * Register that the GModel element `id` renders `element` — the reverse of
173
184
  * the GModel-id keying. Adopters call this when a GModel element represents
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-glsp-index.d.ts","sourceRoot":"","sources":["../../src/state/hydranium-glsp-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydranium-glsp-index.d.ts","sourceRoot":"","sources":["../../src/state/hydranium-glsp-index.ts"],"names":[],"mappings":"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"}
@@ -16,9 +16,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
16
16
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
17
17
  };
18
18
  import { GModelIndex } from '@eclipse-glsp/server';
19
- import { inject, injectable, optional } from 'inversify';
19
+ import { inject, injectable } from 'inversify';
20
20
  import { AstUtils } from '@hydranium/langium';
21
- import * as uuid from 'uuid';
21
+ import { randomUuid } from '@hydranium/protocol';
22
+ import { workingUriOfCopy } from '../command/hydranium-glsp-operation-command.js';
22
23
  import { HydraniumTypes } from './hydranium-shared-core-services.js';
23
24
  /**
24
25
  * GLSP model index extended with an AST-node ↔ id map so adopters can
@@ -49,32 +50,21 @@ import { HydraniumTypes } from './hydranium-shared-core-services.js';
49
50
  let HydraniumGlspIndex = class HydraniumGlspIndex extends GModelIndex {
50
51
  sharedServices;
51
52
  idToSemanticNode = new Map();
53
+ /**
54
+ * The entries {@link indexSemanticElement} added outside the walk, by id.
55
+ * Kept across {@link reindexSemanticElements}, which walks containment
56
+ * only and so cannot rebuild them, and moved with {@link remapSemanticAliases}.
57
+ */
58
+ semanticAliases = new Map();
59
+ /** Whether {@link reindexSemanticElements} is walking, so an entry it adds is not an alias. */
60
+ walking = false;
52
61
  /**
53
62
  * The language services of the diagram's OWN document, captured from the
54
63
  * source root in {@link indexSourceRoot}. Used only as the fallback for a
55
64
  * node that routes nowhere — a synthetic or freshly-built node with no
56
65
  * `$document` yet, which a GModel factory legitimately hands us mid-edit.
57
- *
58
- * Captured rather than injected because it is the language the loaded
59
- * document ACTUALLY routes to, which is not necessarily the one the diagram
60
- * module declared — precisely the drift
61
- * `AbstractHydraniumGlspState.checkDeclaredLanguage` warns about. (Not
62
- * a cost argument: {@link HydraniumTypes}.DiagramLanguage is bound
63
- * `inSingletonScope`, so injecting it would resolve once per session too.)
64
66
  */
65
67
  diagramLanguage;
66
- /**
67
- * The grammar the diagram module declared, as the last resort behind
68
- * {@link diagramLanguage}.
69
- *
70
- * Order-independent where the captured one is not: GLSP builds every
71
- * operation handler at `InitializeClientSession`, so a document-less node
72
- * can reach {@link createId} before the first {@link indexSourceRoot} — and
73
- * with no language at all that mints an unstable `fallback_<uuid>` where a
74
- * stable positional key was available. `@optional()` so a harness that binds
75
- * no diagram module still resolves.
76
- */
77
- declaredLanguage;
78
68
  /**
79
69
  * Reverse map: the *stable id* of the AST element a GModel element
80
70
  * represents → the GModel id(s) that render it. Multi-valued because one
@@ -123,8 +113,8 @@ let HydraniumGlspIndex = class HydraniumGlspIndex extends GModelIndex {
123
113
  }
124
114
  /**
125
115
  * The {@link ElementKeyProvider} of the language owning `node`'s document,
126
- * falling back to the language the diagram document routes to and then to
127
- * the one its module declared, for a node that routes nowhere.
116
+ * falling back to the language the diagram document routes to for a node
117
+ * that routes nowhere.
128
118
  *
129
119
  * **Resolved per node on the cross-document entry points.** This index is
130
120
  * deliberately cross-document — {@link registerElementId} and
@@ -138,12 +128,22 @@ let HydraniumGlspIndex = class HydraniumGlspIndex extends GModelIndex {
138
128
  * {@link indexSourceRoot} needs no per-node lookup and does not pay for one.
139
129
  */
140
130
  elementKeyProviderFor(node) {
141
- const language = this.sharedServices.ServiceRegistry.getServicesFor(node) ?? this.diagramLanguage ?? this.declaredLanguage;
142
- return language?.references.ElementKeyProvider;
131
+ return this.languageServicesFor(node)?.references.ElementKeyProvider;
132
+ }
133
+ /**
134
+ * The language services owning `node`, falling back to the diagram's
135
+ * language for a node that routes nowhere. A per-language lookup an index
136
+ * subclass adds goes through this, so an operation's copy of a node from
137
+ * another document reaches that document's language, as its built node does.
138
+ */
139
+ languageServicesFor(node) {
140
+ // A copy node has no `$document`; it routes by its working root's URI.
141
+ const route = node === undefined ? undefined : workingUriOfCopy(node);
142
+ return this.sharedServices.ServiceRegistry.getServicesFor(route ?? node) ?? this.diagramLanguage;
143
143
  }
144
144
  /** Return the GModel id assigned to `node`, falling back to a fresh `fallback_<uuid>`. */
145
145
  createId(node) {
146
- return this.findId(node, () => 'fallback_' + uuid.v4());
146
+ return this.findId(node, () => 'fallback_' + randomUuid());
147
147
  }
148
148
  /**
149
149
  * Return the GModel id assigned to `node` or throw if none is available.
@@ -166,14 +166,30 @@ let HydraniumGlspIndex = class HydraniumGlspIndex extends GModelIndex {
166
166
  return id;
167
167
  }
168
168
  /**
169
- * Walk the source root and index every reachable AST node with a resolvable
170
- * id.
169
+ * Index `root` as a new source root: forget what {@link registerElementId}
170
+ * and {@link indexSemanticElement} recorded, seed the diagram document as
171
+ * rendered, and index the nodes through {@link reindexSemanticElements}.
172
+ */
173
+ indexSourceRoot(root, uri) {
174
+ this.semanticAliases.clear();
175
+ this.elementToIds.clear();
176
+ this.renderedDocUris.clear();
177
+ this.addRenderedDocUri(root);
178
+ this.reindexSemanticElements(root, uri);
179
+ }
180
+ /**
181
+ * Index the nodes of `root` by id, keeping what {@link registerElementId}
182
+ * and, outside the walk, {@link indexSemanticElement} recorded. For a root
183
+ * carrying the same ids as the one indexed, such as a working copy: those
184
+ * are made only when the GModel is built, and clearing them leaves
185
+ * diagnostics with no marker and an alias resolving to nothing until the
186
+ * next build. An alias still names its node; move it with
187
+ * {@link remapSemanticAliases}.
171
188
  *
172
- * `uri` is the diagram document's URI, supplied by
173
- * `AbstractHydraniumGlspState.setSourceRoot`, and is used only to
174
- * resolve the diagram's language when `root` carries no `$document` —
175
- * always the case for a synthesised root, and the more authoritative signal
176
- * either way since it is what the caller declared it was loading.
189
+ * `uri` is the diagram document's URI and is used only to resolve the
190
+ * diagram's language when `root` carries no `$document` — always the case
191
+ * for a synthesised root or a working copy, and the more authoritative
192
+ * signal either way since it is what the caller declared it was loading.
177
193
  *
178
194
  * The walk resolves the key provider ONCE and threads it: `streamAllContents`
179
195
  * is containment-only, so every node it yields has `root` as its root node
@@ -182,15 +198,38 @@ let HydraniumGlspIndex = class HydraniumGlspIndex extends GModelIndex {
182
198
  * languageId, file name, extension — for an answer already in hand, on every
183
199
  * diagram open and every source-root refresh.
184
200
  */
185
- indexSourceRoot(root, uri) {
201
+ reindexSemanticElements(root, uri) {
186
202
  this.idToSemanticNode.clear();
187
- this.elementToIds.clear();
188
- this.renderedDocUris.clear();
189
203
  const registry = this.sharedServices.ServiceRegistry;
190
204
  this.diagramLanguage = registry.getServicesFor(root) ?? registry.getServicesFor(uri);
191
- this.addRenderedDocUri(root);
192
205
  const keyProvider = this.elementKeyProviderFor(root);
193
- AstUtils.streamAllContents(root).forEach(node => this.indexAstNode(node, keyProvider));
206
+ this.walking = true;
207
+ try {
208
+ AstUtils.streamAllContents(root).forEach(node => this.indexAstNode(node, keyProvider));
209
+ }
210
+ finally {
211
+ this.walking = false;
212
+ }
213
+ for (const [id, node] of this.semanticAliases) {
214
+ this.idToSemanticNode.set(id, node);
215
+ }
216
+ }
217
+ /**
218
+ * Point every alias {@link indexSemanticElement} added at `map(node)`, or
219
+ * drop it where that is `undefined`: the node it named is gone.
220
+ */
221
+ remapSemanticAliases(map) {
222
+ for (const [id, node] of [...this.semanticAliases]) {
223
+ const mapped = map(node);
224
+ if (mapped === undefined) {
225
+ this.semanticAliases.delete(id);
226
+ this.idToSemanticNode.delete(id);
227
+ }
228
+ else {
229
+ this.semanticAliases.set(id, mapped);
230
+ this.idToSemanticNode.set(id, mapped);
231
+ }
232
+ }
194
233
  }
195
234
  /**
196
235
  * Register that the GModel element `id` renders `element` — the reverse of
@@ -220,7 +259,7 @@ let HydraniumGlspIndex = class HydraniumGlspIndex extends GModelIndex {
220
259
  }
221
260
  /** Record `node`'s document uri (if it has one) as contributing rendered elements. */
222
261
  addRenderedDocUri(node) {
223
- const uri = AstUtils.findRootNode(node).$document?.uri.toString();
262
+ const uri = AstUtils.findRootNode(node).$document?.uri.toString() ?? workingUriOfCopy(node);
224
263
  if (uri !== undefined) {
225
264
  this.renderedDocUris.add(uri);
226
265
  }
@@ -241,6 +280,9 @@ let HydraniumGlspIndex = class HydraniumGlspIndex extends GModelIndex {
241
280
  /** Insert an AST node under `id` directly — for adopters that need to seed entries outside the standard walk. */
242
281
  indexSemanticElement(id, element) {
243
282
  this.idToSemanticNode.set(id, element);
283
+ if (!this.walking) {
284
+ this.semanticAliases.set(id, element);
285
+ }
244
286
  }
245
287
  findSemanticElement(id, guard) {
246
288
  const semanticNode = this.idToSemanticNode.get(id);
@@ -298,7 +340,7 @@ let HydraniumGlspIndex = class HydraniumGlspIndex extends GModelIndex {
298
340
  */
299
341
  doIndex(element) {
300
342
  if (this.idToElement.has(element.id)) {
301
- this.sharedServices.Logger.for('Index').error('Duplicate element id in graph: ' + element.id);
343
+ this.sharedServices.Logger.for('Index').warn('Skipping duplicate element id in graph: ' + element.id);
302
344
  return;
303
345
  }
304
346
  super.doIndex(element);
@@ -308,11 +350,6 @@ __decorate([
308
350
  inject(HydraniumTypes.SharedCoreServices),
309
351
  __metadata("design:type", Object)
310
352
  ], HydraniumGlspIndex.prototype, "sharedServices", void 0);
311
- __decorate([
312
- inject(HydraniumTypes.DiagramLanguage),
313
- optional(),
314
- __metadata("design:type", Object)
315
- ], HydraniumGlspIndex.prototype, "declaredLanguage", void 0);
316
353
  HydraniumGlspIndex = __decorate([
317
354
  injectable()
318
355
  ], HydraniumGlspIndex);