@hydranium/glsp-server 1.0.0-next.318 → 1.0.0-next.319

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 (41) hide show
  1. package/lib/command/hydranium-glsp-command-stack.d.ts +13 -2
  2. package/lib/command/hydranium-glsp-command-stack.d.ts.map +1 -1
  3. package/lib/command/hydranium-glsp-command-stack.js +49 -2
  4. package/lib/command/hydranium-glsp-command-stack.js.map +1 -1
  5. package/lib/command/hydranium-glsp-operation-command.d.ts +21 -2
  6. package/lib/command/hydranium-glsp-operation-command.d.ts.map +1 -1
  7. package/lib/command/hydranium-glsp-operation-command.js +29 -3
  8. package/lib/command/hydranium-glsp-operation-command.js.map +1 -1
  9. package/lib/command/hydranium-glsp-recording-command.d.ts +7 -0
  10. package/lib/command/hydranium-glsp-recording-command.d.ts.map +1 -1
  11. package/lib/command/hydranium-glsp-recording-command.js +12 -1
  12. package/lib/command/hydranium-glsp-recording-command.js.map +1 -1
  13. package/lib/command/hydranium-glsp-undo-redo-action-handler.d.ts +58 -1
  14. package/lib/command/hydranium-glsp-undo-redo-action-handler.d.ts.map +1 -1
  15. package/lib/command/hydranium-glsp-undo-redo-action-handler.js +116 -1
  16. package/lib/command/hydranium-glsp-undo-redo-action-handler.js.map +1 -1
  17. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.d.ts +11 -1
  18. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.d.ts.map +1 -1
  19. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.js +22 -3
  20. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.js.map +1 -1
  21. package/lib/messages/index.d.ts +3 -0
  22. package/lib/messages/index.d.ts.map +1 -1
  23. package/lib/messages/index.js +3 -0
  24. package/lib/messages/index.js.map +1 -1
  25. package/lib/state/abstract-hydranium-glsp-state.d.ts +12 -1
  26. package/lib/state/abstract-hydranium-glsp-state.d.ts.map +1 -1
  27. package/lib/state/abstract-hydranium-glsp-state.js +17 -1
  28. package/lib/state/abstract-hydranium-glsp-state.js.map +1 -1
  29. package/lib/status/diagram-status-reporter.d.ts +23 -3
  30. package/lib/status/diagram-status-reporter.d.ts.map +1 -1
  31. package/lib/status/diagram-status-reporter.js +28 -2
  32. package/lib/status/diagram-status-reporter.js.map +1 -1
  33. package/package.json +7 -7
  34. package/src/command/hydranium-glsp-command-stack.ts +52 -2
  35. package/src/command/hydranium-glsp-operation-command.ts +42 -3
  36. package/src/command/hydranium-glsp-recording-command.ts +14 -1
  37. package/src/command/hydranium-glsp-undo-redo-action-handler.ts +146 -1
  38. package/src/computed-bounds/hydranium-glsp-computed-bounds-action-handler.ts +21 -3
  39. package/src/messages/index.ts +12 -0
  40. package/src/state/abstract-hydranium-glsp-state.ts +19 -1
  41. package/src/status/diagram-status-reporter.ts +37 -4
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-glsp-undo-redo-action-handler.js","sourceRoot":"","sources":["../../src/command/hydranium-glsp-undo-redo-action-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;;;;;;;;;;AAElF,OAAO,EAAe,UAAU,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG/C;;;;;;GAMG;AAEI,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,qBAAqB;IACnC,UAAU,CAAgD;IAExF,OAAO,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;CACH,CAAA;AALyC;IAAtC,MAAM,CAAC,UAAU,CAAC;;sEAA8E;AADvF,kCAAkC;IAD9C,UAAU,EAAE;GACA,kCAAkC,CAM9C"}
1
+ {"version":3,"file":"hydranium-glsp-undo-redo-action-handler.js","sourceRoot":"","sources":["../../src/command/hydranium-glsp-undo-redo-action-handler.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,16 @@
8
8
  ********************************************************************************/
9
9
  import { type Action, type ComputedBoundsAction, ComputedBoundsActionHandler, type GModelRoot, type MaybePromise } from '@eclipse-glsp/server';
10
10
  import { type AstNode } from '@hydranium/langium';
11
+ import { type ServerSharedServices } from '@hydranium/core';
11
12
  import { type AbstractHydraniumGlspState } from '../state/abstract-hydranium-glsp-state.js';
12
13
  import { type HydraniumGlspSubmissionHandler } from '../submission/hydranium-glsp-submission-handler.js';
14
+ /**
15
+ * The first layout of a diagram arrived for a model the server has since
16
+ * replaced, so the diagram stays empty. Rendered at the raise site, since
17
+ * GLSP's message action has no slot for its identity. It names the recovery:
18
+ * a reopened diagram requests its model again.
19
+ */
20
+ export declare const DIAGRAM_LAYOUT_STALE: import("@hydranium/protocol").MessageDefinition<"Could not show this diagram: the document changed while it was opening. Close the diagram and open it again.">;
13
21
  /**
14
22
  * GLSP {@link ComputedBoundsActionHandler} base shared by all hydranium
15
23
  * adopters. Adds handshake-aware revision-mismatch logging on top of the
@@ -23,7 +31,8 @@ import { type HydraniumGlspSubmissionHandler } from '../submission/hydranium-gls
23
31
  * very first `computedBounds` arrives with a revision the server has already
24
32
  * bumped, the subsequent `SetModelAction` response never fires and the diagram
25
33
  * stays stuck at "model loading…". Adopters need this initial-handshake case
26
- * logged as an error: the diagram stays empty, so the requested load failed.
34
+ * logged as an error, and the client told with {@link DIAGRAM_LAYOUT_STALE}:
35
+ * the diagram stays empty, so the requested load failed.
27
36
  *
28
37
  * **Handshake detection** uses
29
38
  * {@link HydraniumGlspSubmissionHandler.hasPendingInitialRequest} — true
@@ -39,6 +48,7 @@ import { type HydraniumGlspSubmissionHandler } from '../submission/hydranium-gls
39
48
  export declare class HydraniumGlspComputedBoundsActionHandler extends ComputedBoundsActionHandler {
40
49
  protected readonly modelState: AbstractHydraniumGlspState<AstNode, unknown>;
41
50
  protected readonly submissionHandler: HydraniumGlspSubmissionHandler<AstNode, unknown>;
51
+ protected readonly sharedServices: ServerSharedServices;
42
52
  execute(action: ComputedBoundsAction): MaybePromise<Action[]>;
43
53
  /**
44
54
  * Defensively filter routes that lack the source+target endpoints upstream
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-glsp-computed-bounds-action-handler.d.ts","sourceRoot":"","sources":["../../src/computed-bounds/hydranium-glsp-computed-bounds-action-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,2BAA2B,EAC3B,KAAK,UAAU,EACf,KAAK,YAAY,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAC5F,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AAEzG;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,wCAAyC,SAAQ,2BAA2B;IACtF,mBAA2B,UAAU,EAAE,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpF,mBAA2B,iBAAiB,EAAE,8BAA8B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEtF,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAmBrE;IAED;;;;;;;;;;;;;;;OAeG;IACH,UAAmB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAYnF;CACH"}
1
+ {"version":3,"file":"hydranium-glsp-computed-bounds-action-handler.d.ts","sourceRoot":"","sources":["../../src/computed-bounds/hydranium-glsp-computed-bounds-action-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,2BAA2B,EAC3B,KAAK,UAAU,EACf,KAAK,YAAY,EAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG5D,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAE5F,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AAEzG;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,iKAGhC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,wCAAyC,SAAQ,2BAA2B;IACtF,mBAA2B,UAAU,EAAE,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpF,mBAA2B,iBAAiB,EAAE,8BAA8B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAG,oBAAoB,CAAC;IAE3F,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAoBrE;IAED;;;;;;;;;;;;;;;OAeG;IACH,UAAmB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAYnF;CACH"}
@@ -12,8 +12,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
12
12
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13
13
  return c > 3 && r && Object.defineProperty(target, key, r), r;
14
14
  };
15
- import { ComputedBoundsActionHandler } from '@eclipse-glsp/server';
16
- import { injectable } from 'inversify';
15
+ var __metadata = (this && this.__metadata) || function (k, v) {
16
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
17
+ };
18
+ import { ComputedBoundsActionHandler, MessageAction } from '@eclipse-glsp/server';
19
+ import { defineMessage } from '@hydranium/protocol';
20
+ import { inject, injectable } from 'inversify';
21
+ import { HydraniumTypes } from '../state/hydranium-shared-core-services.js';
22
+ /**
23
+ * The first layout of a diagram arrived for a model the server has since
24
+ * replaced, so the diagram stays empty. Rendered at the raise site, since
25
+ * GLSP's message action has no slot for its identity. It names the recovery:
26
+ * a reopened diagram requests its model again.
27
+ */
28
+ export const DIAGRAM_LAYOUT_STALE = defineMessage('hydranium/glsp-server/diagram-layout-stale', 'Could not show this diagram: the document changed while it was opening. Close the diagram and open it again.');
17
29
  /**
18
30
  * GLSP {@link ComputedBoundsActionHandler} base shared by all hydranium
19
31
  * adopters. Adds handshake-aware revision-mismatch logging on top of the
@@ -27,7 +39,8 @@ import { injectable } from 'inversify';
27
39
  * very first `computedBounds` arrives with a revision the server has already
28
40
  * bumped, the subsequent `SetModelAction` response never fires and the diagram
29
41
  * stays stuck at "model loading…". Adopters need this initial-handshake case
30
- * logged as an error: the diagram stays empty, so the requested load failed.
42
+ * logged as an error, and the client told with {@link DIAGRAM_LAYOUT_STALE}:
43
+ * the diagram stays empty, so the requested load failed.
31
44
  *
32
45
  * **Handshake detection** uses
33
46
  * {@link HydraniumGlspSubmissionHandler.hasPendingInitialRequest} — true
@@ -41,6 +54,7 @@ import { injectable } from 'inversify';
41
54
  * bounds-specific cleanup subclass and override `applyBounds`.
42
55
  */
43
56
  let HydraniumGlspComputedBoundsActionHandler = class HydraniumGlspComputedBoundsActionHandler extends ComputedBoundsActionHandler {
57
+ sharedServices;
44
58
  execute(action) {
45
59
  this.modelState.logger.debug(`ComputedBoundsActionHandler.execute entered: action.revision=${action.revision}`);
46
60
  const model = this.modelState.root;
@@ -48,6 +62,7 @@ let HydraniumGlspComputedBoundsActionHandler = class HydraniumGlspComputedBounds
48
62
  if (this.submissionHandler.hasPendingInitialRequest()) {
49
63
  this.modelState.logger.error(`ComputedBounds rejected (initial handshake): action.revision=${action.revision} model.revision=${model.revision} — ` +
50
64
  'initial SetModelAction will not fire (empty diagram)');
65
+ return [MessageAction.create(this.sharedServices.MessageRenderer.renderMessage(DIAGRAM_LAYOUT_STALE), { severity: 'ERROR' })];
51
66
  }
52
67
  else {
53
68
  this.modelState.logger.debug(`ComputedBounds dropped (stale): action.revision=${action.revision} model.revision=${model.revision} — ` +
@@ -86,6 +101,10 @@ let HydraniumGlspComputedBoundsActionHandler = class HydraniumGlspComputedBounds
86
101
  super.applyBounds(root, action);
87
102
  }
88
103
  };
104
+ __decorate([
105
+ inject(HydraniumTypes.SharedCoreServices),
106
+ __metadata("design:type", Object)
107
+ ], HydraniumGlspComputedBoundsActionHandler.prototype, "sharedServices", void 0);
89
108
  HydraniumGlspComputedBoundsActionHandler = __decorate([
90
109
  injectable()
91
110
  ], HydraniumGlspComputedBoundsActionHandler);
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-glsp-computed-bounds-action-handler.js","sourceRoot":"","sources":["../../src/computed-bounds/hydranium-glsp-computed-bounds-action-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;;;;;;;AAElF,OAAO,EAGJ,2BAA2B,EAG7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAIvC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEI,IAAM,wCAAwC,GAA9C,MAAM,wCAAyC,SAAQ,2BAA2B;IAI7E,OAAO,CAAC,MAA4B;QAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChH,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACnC,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,EAAE,CAAC;gBACrD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CACzB,gEAAgE,MAAM,CAAC,QAAQ,mBAAmB,KAAK,CAAC,QAAQ,KAAK;oBAClH,sDAAsD,CAC3D,CAAC;YACL,CAAC;iBAAM,CAAC;gBACL,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CACzB,mDAAmD,MAAM,CAAC,QAAQ,mBAAmB,KAAK,CAAC,QAAQ,KAAK;oBACrG,sDAAsD,CAC3D,CAAC;YACL,CAAC;YACD,OAAO,EAAE,CAAC;QACb,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,MAAM,CAAC,QAAQ,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3H,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACgB,WAAW,CAAC,IAAgB,EAAE,MAA4B;QAC1E,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YACtC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1F,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAChD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CACzB,0BAA0B,OAAO,IAAI,QAAQ,uEAAuE,CACtH,CAAC;YACL,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;CACH,CAAA;AAtDY,wCAAwC;IADpD,UAAU,EAAE;GACA,wCAAwC,CAsDpD"}
1
+ {"version":3,"file":"hydranium-glsp-computed-bounds-action-handler.js","sourceRoot":"","sources":["../../src/computed-bounds/hydranium-glsp-computed-bounds-action-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;;;;;;;;;;AAElF,OAAO,EAGJ,2BAA2B,EAG3B,aAAa,EACf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAG5E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAC9C,4CAA4C,EAC5C,8GAA8G,CAChH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEI,IAAM,wCAAwC,GAA9C,MAAM,wCAAyC,SAAQ,2BAA2B;IAGxB,cAAc,CAAwB;IAE3F,OAAO,CAAC,MAA4B;QAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChH,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACnC,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,EAAE,CAAC;gBACrD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CACzB,gEAAgE,MAAM,CAAC,QAAQ,mBAAmB,KAAK,CAAC,QAAQ,KAAK;oBAClH,sDAAsD,CAC3D,CAAC;gBACF,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YACjI,CAAC;iBAAM,CAAC;gBACL,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CACzB,mDAAmD,MAAM,CAAC,QAAQ,mBAAmB,KAAK,CAAC,QAAQ,KAAK;oBACrG,sDAAsD,CAC3D,CAAC;YACL,CAAC;YACD,OAAO,EAAE,CAAC;QACb,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,MAAM,CAAC,QAAQ,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3H,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACgB,WAAW,CAAC,IAAgB,EAAE,MAA4B;QAC1E,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YACtC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1F,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAChD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CACzB,0BAA0B,OAAO,IAAI,QAAQ,uEAAuE,CACtH,CAAC;YACL,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;CACH,CAAA;AArDgE;IAA7D,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC;;gFAA0D;AAH1F,wCAAwC;IADpD,UAAU,EAAE;GACA,wCAAwC,CAwDpD"}
@@ -20,5 +20,8 @@
20
20
  * The barrel is also how an adopter rendering their own diagram chrome
21
21
  * discovers the codes exist.
22
22
  */
23
+ export { DIAGRAM_REDO_ERROR, DIAGRAM_REDO_FAILED, DIAGRAM_REDO_PARTLY_SKIPPED, DIAGRAM_REDO_SKIPPED, DIAGRAM_UNDO_ERROR, DIAGRAM_UNDO_FAILED, DIAGRAM_UNDO_PARTLY_SKIPPED, DIAGRAM_UNDO_SKIPPED } from '../command/hydranium-glsp-undo-redo-action-handler.js';
24
+ export { DIAGRAM_LAYOUT_STALE } from '../computed-bounds/hydranium-glsp-computed-bounds-action-handler.js';
25
+ export { DIAGRAM_EDIT_DROPPED } from '../status/diagram-status-reporter.js';
23
26
  export { DIAGRAM_READONLY_PARSE_ERROR, DIAGRAM_SESSION_REFUSED, SAVE_TARGET_UNKNOWN, SOURCE_URI_MISSING } from '../storage/hydranium-glsp-storage.js';
24
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACJ,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EACpB,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACJ,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,oBAAoB,EACtB,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qEAAqE,CAAC;AAC3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EACJ,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EACpB,MAAM,sCAAsC,CAAC"}
@@ -20,5 +20,8 @@
20
20
  * The barrel is also how an adopter rendering their own diagram chrome
21
21
  * discovers the codes exist.
22
22
  */
23
+ export { DIAGRAM_REDO_ERROR, DIAGRAM_REDO_FAILED, DIAGRAM_REDO_PARTLY_SKIPPED, DIAGRAM_REDO_SKIPPED, DIAGRAM_UNDO_ERROR, DIAGRAM_UNDO_FAILED, DIAGRAM_UNDO_PARTLY_SKIPPED, DIAGRAM_UNDO_SKIPPED } from '../command/hydranium-glsp-undo-redo-action-handler.js';
24
+ export { DIAGRAM_LAYOUT_STALE } from '../computed-bounds/hydranium-glsp-computed-bounds-action-handler.js';
25
+ export { DIAGRAM_EDIT_DROPPED } from '../status/diagram-status-reporter.js';
23
26
  export { DIAGRAM_READONLY_PARSE_ERROR, DIAGRAM_SESSION_REFUSED, SAVE_TARGET_UNKNOWN, SOURCE_URI_MISSING } from '../storage/hydranium-glsp-storage.js';
24
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACJ,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EACpB,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACJ,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,oBAAoB,EACtB,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qEAAqE,CAAC;AAC3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EACJ,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EACpB,MAAM,sCAAsC,CAAC"}
@@ -255,9 +255,20 @@ export declare abstract class AbstractHydraniumGlspState<TRoot extends AstNode,
255
255
  /**
256
256
  * Resync after a write whose reconcile dropped the edit: during an
257
257
  * operation the operation undoes its side effects, pushes nothing, and
258
- * captures the document's current root when it ends.
258
+ * captures the document's current root when it ends. Announced on
259
+ * {@link onEditDropped}, except during an undo or redo, which fails and
260
+ * reports that itself.
259
261
  */
260
262
  protected writeDropped(): void;
263
+ /** Backing emitter for {@link onEditDropped}. */
264
+ protected readonly editDroppedEmitter: Emitter<void>;
265
+ /**
266
+ * Fires when a write's reconcile dropped a diagram edit, whether an
267
+ * operation or code outside one wrote it, so that one listener tells the
268
+ * client: the diagram returning to the document's state otherwise reads as
269
+ * the edit never having been made.
270
+ */
271
+ get onEditDropped(): Event<void>;
261
272
  /**
262
273
  * Take the document's built root as the source root; during an operation,
263
274
  * as the root the operation closes on. A write the document already held,
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-hydranium-glsp-state.d.ts","sourceRoot":"","sources":["../../src/state/abstract-hydranium-glsp-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract-hydranium-glsp-state.d.ts","sourceRoot":"","sources":["../../src/state/abstract-hydranium-glsp-state.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,iBAAiB,EAAY,KAAK,YAAY,EAAkB,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,KAAK,OAAO,EAAY,aAAa,EAAa,KAAK,SAAS,EAAE,KAAK,aAAa,EAAO,MAAM,oBAAoB,CAAC;AAC/H,OAAO,EAEJ,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACJ,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,eAAe,EAMtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,mBAAmB,EAAmB,MAAM,gDAAgD,CAAC;AAC3G,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,8BACsB,0BAA0B,CAAC,KAAK,SAAS,OAAO,EAAE,YAAY,GAAG,MAAM,CAAE,SAAQ,iBAAiB;IAC1E,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAG,oBAAoB,CAAC;IAEpG;;;;;;;;OAQG;IACsC,QAAQ,CAAC,gBAAgB,EAAG,gBAAgB,CAAC;IAEtF;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAK;IAEpD;;;;;OAKG;IAC4B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAG,MAAM,CAAC;IAEtE,oFAAoF;IACpF,SAAiB,KAAK,EAAE,kBAAkB,CAAC;IAE3C;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAEtC;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,IAAI,aAAa,CAAC,OAAO,CAAC,CAKtD;IAED,SAAS,CAAC,UAAU,EAAG,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,SAAS,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACnD;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAG,KAAK,CAAC;IAC9B,yEAAyE;IACzE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAqB;IAC9D,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,YAAY,EAAE,YAAY,CAAqB;IACzD;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,uBAA8B;IAC9D,mGAAmG;IACnG,SAAS,CAAC,QAAQ,CAAC,kBAAkB,4BAAmC;IAExE,6FAA6F;IAC7F,SAAS,CAAC,QAAQ,CAAC,2BAA2B,gBAAuB;IAErE,6BAA6B;IAC7B,MAAM,CAAC,QAAQ,CAAC,wBAAwB,SAAU;IAElD,kGAAkG;IAClG,SAAS,CAAC,cAAc,EAAE,MAAM,CAAuD;IAEvF;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAY5C;IAED;;;;;;OAMG;IACH,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAgB1D;IAED;;;;OAIG;IACH,IAAa,SAAS,IAAI,MAAM,CAE/B;IAED,kHAAkH;IAClH,IAAI,UAAU,IAAI,KAAK,CAEtB;IAED;;;;;OAKG;IACH,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAItD;IAED;;;;;;;;;;OAUG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAiBlF;IAED,qEAAqE;IACrE,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEhE;IAED;;;OAGG;IACH,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAEzC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;KAAO,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAS7H;IAED;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAiB1E;IAED;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAS/C;IAED;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAO9C;IAED;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI,CAU7B;IAED,iDAAiD;IACjD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAE5D;;;;;OAKG;IACH,IAAI,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,CAE/B;IAED;;;;;;;OAOG;IACH,gBAAgB,IAAI,IAAI,CAUvB;IAED;;;OAGG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAMnD;IAED;;;;;;;;;;;OAWG;IACH,IAAI,eAAe,IAAI,sBAAsB,GAAG,SAAS,CAExD;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,sBAAsB,GAAG,SAAS,CAK1F;IAED;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAE5E;IAED,wFAAwF;IACxF,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,sBAAsB,GAAG,SAAS,CAEvF;IAED,qGAAqG;IACrG,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,0BAA0B,GAAG,SAAS,CAE/F;IAED,yFAAyF;IACzF,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,2GAA2G;IAC3G,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;;;;;;;OAYG;IACH,IAAI,WAAW,IAAI,YAAY,CAE9B;IAED;;;;;;OAMG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAMD;;;;;;;;;;;;;;;;;;OAkBG;IACH,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAYxC;IAED;;;OAGG;IACH,yBAAyB,IAAI,IAAI,CAMhC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,sBAAsB,IAAI,KAAK,CAAC,IAAI,CAAC,CAExC;IAED,iEAAiE;IACjE,IAAI,aAAa,IAAI,SAAS,MAAM,EAAE,CAErC;IAED,wEAAwE;IACxE,SAAS,CAAC,QAAQ,CAAC,QAAQ,yCAAgD;IAE3E,mDAAmD;IACnD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,gBAAuB;IAE9D;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,GAAG,SAAS,GAAG,IAAI,CAiB5E;IAED,iGAAiG;IACjG,IAAI,aAAa,IAAI,kBAAkB,GAAG,SAAS,CAQlD;IAED,mFAAmF;IACnF,IAAI,gBAAgB,IAAI,aAAa,EAAE,CAEtC;IAED,gFAAgF;IAChF,IAAI,mBAAmB,IAAI,aAAa,GAAG,SAAS,CAGnD;IAED,oEAAoE;IACpE,IAAI,eAAe,IAAI,KAAK,CAAC,IAAI,CAAC,CAEjC;IAED;;;;;;;;OAQG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAKnD;IAED,0FAA0F;IAC1F,SAAS,CAAC,wBAAwB,IAAI,IAAI,CAKzC;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAGxD;IAED,yGAAyG;IACzG,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAKtE;IAED,2EAA2E;IAC3E,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEzD;IAED;;;;;;OAMG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI,CAclC;IAED;;;;;;;;;;;OAWG;IACH,UAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,YAAY,CAAA;KAAE,GAAG,SAAS,CAAC,CAiB1G;IAED;;;;;;;;OAQG;IACG,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/C;IAED;;;;;;OAMG;IACH,UAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BpE;IAED;;;;;;OAMG;IACH,UAAgB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhD;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,sBAAsB,CAK9F;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAE/F;;;;;OAKG;IACG,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAEnH;IAED,gHAAgH;IAChH,UAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAG/E;CACH"}
@@ -366,7 +366,9 @@ let AbstractHydraniumGlspState = class AbstractHydraniumGlspState extends Defaul
366
366
  /**
367
367
  * Resync after a write whose reconcile dropped the edit: during an
368
368
  * operation the operation undoes its side effects, pushes nothing, and
369
- * captures the document's current root when it ends.
369
+ * captures the document's current root when it ends. Announced on
370
+ * {@link onEditDropped}, except during an undo or redo, which fails and
371
+ * reports that itself.
370
372
  */
371
373
  writeDropped() {
372
374
  const operation = openOperationOf(this);
@@ -376,6 +378,20 @@ let AbstractHydraniumGlspState = class AbstractHydraniumGlspState extends Defaul
376
378
  else {
377
379
  this.refreshSourceRoot();
378
380
  }
381
+ if (!operation?.isUndoingOrRedoing()) {
382
+ this.editDroppedEmitter.fire();
383
+ }
384
+ }
385
+ /** Backing emitter for {@link onEditDropped}. */
386
+ editDroppedEmitter = new Emitter();
387
+ /**
388
+ * Fires when a write's reconcile dropped a diagram edit, whether an
389
+ * operation or code outside one wrote it, so that one listener tells the
390
+ * client: the diagram returning to the document's state otherwise reads as
391
+ * the edit never having been made.
392
+ */
393
+ get onEditDropped() {
394
+ return this.editDroppedEmitter.event;
379
395
  }
380
396
  /**
381
397
  * Take the document's built root as the source root; during an operation,
@@ -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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"}
@@ -7,16 +7,28 @@
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
9
  import { type Action, ActionDispatcher, type ClientSession, type ClientSessionInitializer, type ClientSessionListener, ClientSessionManager, EditMode } from '@eclipse-glsp/server';
10
+ import { type ServerSharedServices } from '@hydranium/core';
10
11
  import { type AstNode } from '@hydranium/langium';
11
12
  import { DisposableCollection } from '@hydranium/protocol';
12
13
  import { type AbstractHydraniumGlspState } from '../state/abstract-hydranium-glsp-state.js';
14
+ /**
15
+ * A diagram edit was dropped because another editor changed the same field
16
+ * first. The diagram returns to the document's state, which without this reads
17
+ * as the edit never having been made. It names the recovery: the edit made
18
+ * again applies to the other editor's change.
19
+ */
20
+ export declare const DIAGRAM_EDIT_DROPPED: import("@hydranium/protocol").MessageDefinition<"Your diagram change was not applied: another editor changed the same element first. Make the change again if you still want it.">;
13
21
  /**
14
22
  * Sends the client what {@link AbstractHydraniumGlspState.onStatusChanged}
15
- * announces: the current status for its status overlay and the edit mode.
23
+ * announces: the current status for its status overlay and the edit mode; and
24
+ * a warning for each edit {@link AbstractHydraniumGlspState.onEditDropped}
25
+ * announces.
16
26
  *
17
- * The only sender of either action. A status or edit mode dispatched from
27
+ * The only sender of the status and the edit mode. Either dispatched from
18
28
  * anywhere else is overwritten by the next change, and the state's account of
19
- * why the diagram is read-only no longer matches the client's.
29
+ * why the diagram is read-only no longer matches the client's. An
30
+ * implementation bound in place of {@link DefaultDiagramStatusReporter} takes
31
+ * over the dropped-edit warning too, or the client no longer hears of one.
20
32
  */
21
33
  export interface DiagramStatusReporter extends ClientSessionInitializer {
22
34
  /**
@@ -30,6 +42,7 @@ export declare class DefaultDiagramStatusReporter implements DiagramStatusReport
30
42
  protected readonly state: AbstractHydraniumGlspState<AstNode, unknown>;
31
43
  protected readonly actionDispatcher: ActionDispatcher;
32
44
  protected readonly sessionManager: ClientSessionManager;
45
+ protected readonly sharedServices: ServerSharedServices;
33
46
  protected readonly toDispose: DisposableCollection;
34
47
  /** What the client shows; it starts editable with an empty overlay. */
35
48
  protected sentStatus: string;
@@ -37,6 +50,13 @@ export declare class DefaultDiagramStatusReporter implements DiagramStatusReport
37
50
  initialize(): void;
38
51
  clientEditModeChanged(editMode: EditMode): void;
39
52
  protected send(): void;
53
+ /**
54
+ * Warn the client of a dropped edit. Not awaited: the drop is announced
55
+ * inside the diagram's exclusive section, and a dispatch from outside any
56
+ * action queues behind the action being processed, which may be waiting
57
+ * for that section.
58
+ */
59
+ protected sendEditDropped(): void;
40
60
  /** The actions that bring the client up to date, recording them as sent. */
41
61
  protected changedActions(): Action[];
42
62
  sessionDisposed(_clientSession: ClientSession): void;
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-status-reporter.d.ts","sourceRoot":"","sources":["../../src/status/diagram-status-reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,MAAM,EACX,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,oBAAoB,EACpB,QAAQ,EAIV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAA0B,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAG5F;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAsB,SAAQ,wBAAwB;IACpE;;;OAGG;IACH,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CAClD;AACD,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AAErE,qBACa,4BAA6B,YAAW,qBAAqB,EAAE,qBAAqB;IAC1E,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAG,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAG,gBAAgB,CAAC;IACnD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAG,oBAAoB,CAAC;IAEvF,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAC1D,uEAAuE;IACvE,SAAS,CAAC,UAAU,SAAwB;IAC5C,SAAS,CAAC,YAAY,EAAE,MAAM,CAAqB;IAEnD,UAAU,IAAI,IAAI,CAGjB;IAED,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAG9C;IAED,SAAS,CAAC,IAAI,IAAI,IAAI,CAIrB;IAED,4EAA4E;IAC5E,SAAS,CAAC,cAAc,IAAI,MAAM,EAAE,CAwBnC;IAED,eAAe,CAAC,cAAc,EAAE,aAAa,GAAG,IAAI,CAEnD;CACH"}
1
+ {"version":3,"file":"diagram-status-reporter.d.ts","sourceRoot":"","sources":["../../src/status/diagram-status-reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,MAAM,EACX,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,oBAAoB,EACpB,QAAQ,EAKV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAyC,MAAM,qBAAqB,CAAC;AAElG,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAI5F;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,oLAGhC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAsB,SAAQ,wBAAwB;IACpE;;;OAGG;IACH,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CAClD;AACD,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AAErE,qBACa,4BAA6B,YAAW,qBAAqB,EAAE,qBAAqB;IAC1E,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAG,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAG,gBAAgB,CAAC;IACnD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAG,oBAAoB,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAG,oBAAoB,CAAC;IAEpG,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAC1D,uEAAuE;IACvE,SAAS,CAAC,UAAU,SAAwB;IAC5C,SAAS,CAAC,YAAY,EAAE,MAAM,CAAqB;IAEnD,UAAU,IAAI,IAAI,CAIjB;IAED,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAG9C;IAED,SAAS,CAAC,IAAI,IAAI,IAAI,CAIrB;IAED;;;;;OAKG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI,CAKhC;IAED,4EAA4E;IAC5E,SAAS,CAAC,cAAc,IAAI,MAAM,EAAE,CAwBnC;IAED,eAAe,CAAC,cAAc,EAAE,aAAa,GAAG,IAAI,CAEnD;CACH"}
@@ -15,14 +15,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
15
15
  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
- import { ActionDispatcher, ClientSessionManager, EditMode, ModelState, SetEditModeAction, StatusAction } from '@eclipse-glsp/server';
19
- import { DisposableCollection, describeErrorWithStack } from '@hydranium/protocol';
18
+ import { ActionDispatcher, ClientSessionManager, EditMode, MessageAction, ModelState, SetEditModeAction, StatusAction } from '@eclipse-glsp/server';
19
+ import { DisposableCollection, defineMessage, describeErrorWithStack } from '@hydranium/protocol';
20
20
  import { inject, injectable } from 'inversify';
21
+ import { HydraniumTypes } from '../state/hydranium-shared-core-services.js';
22
+ /**
23
+ * A diagram edit was dropped because another editor changed the same field
24
+ * first. The diagram returns to the document's state, which without this reads
25
+ * as the edit never having been made. It names the recovery: the edit made
26
+ * again applies to the other editor's change.
27
+ */
28
+ export const DIAGRAM_EDIT_DROPPED = defineMessage('hydranium/glsp-server/diagram-edit-dropped', 'Your diagram change was not applied: another editor changed the same element first. Make the change again if you still want it.');
21
29
  export const DiagramStatusReporter = Symbol('DiagramStatusReporter');
22
30
  let DefaultDiagramStatusReporter = class DefaultDiagramStatusReporter {
23
31
  state;
24
32
  actionDispatcher;
25
33
  sessionManager;
34
+ sharedServices;
26
35
  toDispose = new DisposableCollection();
27
36
  /** What the client shows; it starts editable with an empty overlay. */
28
37
  sentStatus = statusKey(undefined);
@@ -30,6 +39,7 @@ let DefaultDiagramStatusReporter = class DefaultDiagramStatusReporter {
30
39
  initialize() {
31
40
  this.sessionManager.addListener(this, this.state.clientId);
32
41
  this.toDispose.push(this.state.onStatusChanged(() => this.send()));
42
+ this.toDispose.push(this.state.onEditDropped(() => this.sendEditDropped()));
33
43
  }
34
44
  clientEditModeChanged(editMode) {
35
45
  this.sentEditMode = editMode;
@@ -40,6 +50,18 @@ let DefaultDiagramStatusReporter = class DefaultDiagramStatusReporter {
40
50
  .dispatchAll(this.changedActions())
41
51
  .catch((error) => this.state.logger.warn(`Could not send the diagram status: ${describeErrorWithStack(error)}`));
42
52
  }
53
+ /**
54
+ * Warn the client of a dropped edit. Not awaited: the drop is announced
55
+ * inside the diagram's exclusive section, and a dispatch from outside any
56
+ * action queues behind the action being processed, which may be waiting
57
+ * for that section.
58
+ */
59
+ sendEditDropped() {
60
+ const message = this.sharedServices.MessageRenderer.renderMessage(DIAGRAM_EDIT_DROPPED);
61
+ this.actionDispatcher
62
+ .dispatch(MessageAction.create(message, { severity: 'WARNING' }))
63
+ .catch((error) => this.state.logger.warn(`Could not warn of a dropped edit: ${describeErrorWithStack(error)}`));
64
+ }
43
65
  /** The actions that bring the client up to date, recording them as sent. */
44
66
  changedActions() {
45
67
  const actions = [];
@@ -78,6 +100,10 @@ __decorate([
78
100
  inject(ClientSessionManager),
79
101
  __metadata("design:type", Object)
80
102
  ], DefaultDiagramStatusReporter.prototype, "sessionManager", void 0);
103
+ __decorate([
104
+ inject(HydraniumTypes.SharedCoreServices),
105
+ __metadata("design:type", Object)
106
+ ], DefaultDiagramStatusReporter.prototype, "sharedServices", void 0);
81
107
  DefaultDiagramStatusReporter = __decorate([
82
108
  injectable()
83
109
  ], DefaultDiagramStatusReporter);
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-status-reporter.js","sourceRoot":"","sources":["../../src/status/diagram-status-reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagram-status-reporter.js","sourceRoot":"","sources":["../../src/status/diagram-status-reporter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydranium/glsp-server",
3
- "version": "1.0.0-next.318",
3
+ "version": "1.0.0-next.319",
4
4
  "description": "GLSP protocol head for the hydranium framework. Peer of @hydranium/core/lsp and @hydranium/data-server; built on @hydranium/core.",
5
5
  "keywords": [
6
6
  "diagram",
@@ -70,9 +70,9 @@
70
70
  },
71
71
  "devDependencies": {
72
72
  "@eclipse-glsp/server": "2.7.0",
73
- "@hydranium/core": "1.0.0-next.318",
74
- "@hydranium/langium": "1.0.0-next.318",
75
- "@hydranium/protocol": "1.0.0-next.318",
73
+ "@hydranium/core": "1.0.0-next.319",
74
+ "@hydranium/langium": "1.0.0-next.319",
75
+ "@hydranium/protocol": "1.0.0-next.319",
76
76
  "inversify": "6.2.2",
77
77
  "reflect-metadata": "0.2.2",
78
78
  "rimraf": "^5.0.0",
@@ -82,9 +82,9 @@
82
82
  },
83
83
  "peerDependencies": {
84
84
  "@eclipse-glsp/server": "^2.6.0",
85
- "@hydranium/core": "1.0.0-next.318",
86
- "@hydranium/langium": "1.0.0-next.318",
87
- "@hydranium/protocol": "1.0.0-next.318",
85
+ "@hydranium/core": "1.0.0-next.319",
86
+ "@hydranium/langium": "1.0.0-next.319",
87
+ "@hydranium/protocol": "1.0.0-next.319",
88
88
  "inversify": "^6.0.0",
89
89
  "reflect-metadata": "^0.2.2",
90
90
  "vscode-jsonrpc": "^9.0.0",
@@ -7,15 +7,18 @@
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
9
 
10
- import { DefaultCommandStack, ModelState } from '@eclipse-glsp/server';
10
+ import { type Command, CompoundCommand, DefaultCommandStack, ModelState } from '@eclipse-glsp/server';
11
11
  import { type ServerSharedServices } from '@hydranium/core';
12
12
  import { inject, injectable } from 'inversify';
13
13
  import { HydraniumTypes } from '../state/hydranium-shared-core-services.js';
14
+ import { isCommandArray } from './hydranium-glsp-operation-command.js';
15
+ import { HydraniumGlspRecordingCommand } from './hydranium-glsp-recording-command.js';
14
16
 
15
17
  /**
16
18
  * GLSP's command stack with the diagram's dirty state read from the text store:
17
19
  * dirty while any document the diagram's client session has open differs from
18
- * its file, as the store last knew the file. Undo and redo are GLSP's.
20
+ * its file, as the store last knew the file. Undo and redo are GLSP's; a
21
+ * command whose every write was dropped is not pushed.
19
22
  *
20
23
  * GLSP's own answer counts the diagram's commands since its last save, so it
21
24
  * misses every change the diagram did not make: another client's unsaved edit
@@ -34,6 +37,43 @@ export class HydraniumGlspCommandStack extends DefaultCommandStack {
34
37
  return textDocuments.openDocuments().some(open => open.clients.includes(clientId) && textDocuments.isDirty(open.uri));
35
38
  }
36
39
 
40
+ /**
41
+ * Lifted from `@eclipse-glsp/server` 2.7.0's `DefaultCommandStack.execute`,
42
+ * pushing no entry for a recording command executed outside an operation
43
+ * whose write was dropped, or a `CompoundCommand` of only such commands at
44
+ * any depth: its undo would do nothing, and the user's next undo would be
45
+ * spent on it. A compound that also changed something is pushed, warning
46
+ * that its undo step leaves out what was dropped. The accompanying test
47
+ * pins upstream's source.
48
+ */
49
+ override async execute(command: Command): Promise<void> {
50
+ try {
51
+ await command.execute();
52
+ } catch (error: unknown) {
53
+ this.handleError(error);
54
+ }
55
+ const leaves = leavesOf(command);
56
+ const dropped = leaves.filter(leaf => leaf instanceof HydraniumGlspRecordingCommand && leaf.dropped).length;
57
+ if (dropped > 0 && dropped === leaves.length) {
58
+ return;
59
+ }
60
+ if (dropped > 0) {
61
+ this.logger.warn(
62
+ `${dropped} of ${leaves.length} commands of a compound executed outside an operation had their write dropped, ` +
63
+ 'so its undo step leaves them out; execute them in one operation to write and undo them as one'
64
+ );
65
+ }
66
+ // Clear the command list past the top (i.e. the old redo list)
67
+ this.commands = this.commands.slice(0, this.top + 1);
68
+ this.commands.push(command);
69
+ ++this.top;
70
+ // if the saveIndex points to the old redo list we can never reach a state again
71
+ // where save is not necessary. => ensure that `isDirty` always returns true
72
+ if (this.saveIndex >= this.top) {
73
+ this.saveIndex = -2;
74
+ }
75
+ }
76
+
37
77
  /**
38
78
  * Lifted from `@eclipse-glsp/server` 2.7.0's `DefaultCommandStack.handleError`
39
79
  * without its `error` line: the failure is rethrown, and whoever ends it
@@ -45,3 +85,13 @@ export class HydraniumGlspCommandStack extends DefaultCommandStack {
45
85
  throw error;
46
86
  }
47
87
  }
88
+
89
+ /**
90
+ * The commands `command` executes: itself, or a `CompoundCommand`'s children
91
+ * at any depth, read from GLSP's protected `CompoundCommand.commands`, as the
92
+ * operation reads them.
93
+ */
94
+ function leavesOf(command: Command): Command[] {
95
+ const children: unknown = command instanceof CompoundCommand ? Reflect.get(command, 'commands') : undefined;
96
+ return isCommandArray(children) ? children.flatMap(leavesOf) : [command];
97
+ }