@hydranium/core 1.0.0-next.33 → 1.0.0-next.330
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.
- package/README.md +78 -82
- package/lib/browser/host-heads-in-worker.d.ts +77 -0
- package/lib/browser/host-heads-in-worker.d.ts.map +1 -0
- package/lib/browser/host-heads-in-worker.js +169 -0
- package/lib/browser/host-heads-in-worker.js.map +1 -0
- package/lib/browser/index.d.ts +12 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +17 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/indexeddb-file-system-store.d.ts +82 -0
- package/lib/browser/indexeddb-file-system-store.d.ts.map +1 -0
- package/lib/browser/indexeddb-file-system-store.js +181 -0
- package/lib/browser/indexeddb-file-system-store.js.map +1 -0
- package/lib/browser/start-language-server-in-worker.d.ts +32 -0
- package/lib/browser/start-language-server-in-worker.d.ts.map +1 -0
- package/lib/browser/start-language-server-in-worker.js +40 -0
- package/lib/browser/start-language-server-in-worker.js.map +1 -0
- package/lib/documents/ast-document-manager.d.ts +256 -124
- package/lib/documents/ast-document-manager.d.ts.map +1 -1
- package/lib/documents/ast-document-manager.js +293 -132
- package/lib/documents/ast-document-manager.js.map +1 -1
- package/lib/documents/client-ids.d.ts +5 -19
- package/lib/documents/client-ids.d.ts.map +1 -1
- package/lib/documents/client-ids.js +5 -19
- package/lib/documents/client-ids.js.map +1 -1
- package/lib/documents/client-session-errors.d.ts +15 -0
- package/lib/documents/client-session-errors.d.ts.map +1 -0
- package/lib/documents/client-session-errors.js +15 -0
- package/lib/documents/client-session-errors.js.map +1 -0
- package/lib/documents/client-session-registry.d.ts +146 -0
- package/lib/documents/client-session-registry.d.ts.map +1 -0
- package/lib/documents/client-session-registry.js +207 -0
- package/lib/documents/client-session-registry.js.map +1 -0
- package/lib/documents/dirty-state-tracker.d.ts +101 -0
- package/lib/documents/dirty-state-tracker.d.ts.map +1 -0
- package/lib/documents/dirty-state-tracker.js +85 -0
- package/lib/documents/dirty-state-tracker.js.map +1 -0
- package/lib/documents/document-release-handler.d.ts +204 -0
- package/lib/documents/document-release-handler.d.ts.map +1 -0
- package/lib/documents/document-release-handler.js +317 -0
- package/lib/documents/document-release-handler.js.map +1 -0
- package/lib/documents/document-release-scheduler.d.ts +67 -0
- package/lib/documents/document-release-scheduler.d.ts.map +1 -0
- package/lib/documents/document-release-scheduler.js +80 -0
- package/lib/documents/document-release-scheduler.js.map +1 -0
- package/lib/documents/file-system-task-queue.d.ts +52 -0
- package/lib/documents/file-system-task-queue.d.ts.map +1 -0
- package/lib/documents/file-system-task-queue.js +37 -0
- package/lib/documents/file-system-task-queue.js.map +1 -0
- package/lib/documents/hydranium-text-documents.d.ts +436 -282
- package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
- package/lib/documents/hydranium-text-documents.js +886 -483
- package/lib/documents/hydranium-text-documents.js.map +1 -1
- package/lib/documents/index.d.ts +10 -2
- package/lib/documents/index.d.ts.map +1 -1
- package/lib/documents/index.js +10 -2
- package/lib/documents/index.js.map +1 -1
- package/lib/documents/language-client-shadow.d.ts +234 -0
- package/lib/documents/language-client-shadow.d.ts.map +1 -0
- package/lib/documents/language-client-shadow.js +306 -0
- package/lib/documents/language-client-shadow.js.map +1 -0
- package/lib/documents/model-ledger.d.ts +47 -0
- package/lib/documents/model-ledger.d.ts.map +1 -0
- package/lib/documents/model-ledger.js +30 -0
- package/lib/documents/model-ledger.js.map +1 -0
- package/lib/documents/text-ledger.d.ts +64 -0
- package/lib/documents/text-ledger.d.ts.map +1 -0
- package/lib/documents/text-ledger.js +63 -0
- package/lib/documents/text-ledger.js.map +1 -0
- package/lib/documents/version-sync-service.d.ts +138 -0
- package/lib/documents/version-sync-service.d.ts.map +1 -0
- package/lib/documents/version-sync-service.js +173 -0
- package/lib/documents/version-sync-service.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -0
- package/lib/index.js.map +1 -1
- package/lib/langium/ast-extension/ast-extension-service.d.ts +42 -31
- package/lib/langium/ast-extension/ast-extension-service.d.ts.map +1 -1
- package/lib/langium/ast-extension/ast-extension-service.js +45 -19
- package/lib/langium/ast-extension/ast-extension-service.js.map +1 -1
- package/lib/langium/ast-extension/ast-node-builder.d.ts +12 -7
- package/lib/langium/ast-extension/ast-node-builder.d.ts.map +1 -1
- package/lib/langium/ast-extension/ast-node-builder.js +25 -9
- package/lib/langium/ast-extension/ast-node-builder.js.map +1 -1
- package/lib/langium/bootstrap.d.ts +49 -36
- package/lib/langium/bootstrap.d.ts.map +1 -1
- package/lib/langium/bootstrap.js +83 -44
- package/lib/langium/bootstrap.js.map +1 -1
- package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts +9 -9
- package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts.map +1 -1
- package/lib/langium/build-phase-pass/build-phase-pass-service.js +25 -16
- package/lib/langium/build-phase-pass/build-phase-pass-service.js.map +1 -1
- package/lib/langium/build-phase-pass/build-phase-pass.d.ts +20 -8
- package/lib/langium/build-phase-pass/build-phase-pass.d.ts.map +1 -1
- package/lib/langium/build-phase-pass/build-phase-pass.js +20 -0
- package/lib/langium/build-phase-pass/build-phase-pass.js.map +1 -1
- package/lib/langium/composite-ast-reflection.d.ts +46 -0
- package/lib/langium/composite-ast-reflection.d.ts.map +1 -0
- package/lib/langium/composite-ast-reflection.js +97 -0
- package/lib/langium/composite-ast-reflection.js.map +1 -0
- package/lib/langium/config/configuration-provider.d.ts +81 -0
- package/lib/langium/config/configuration-provider.d.ts.map +1 -0
- package/lib/langium/config/configuration-provider.js +112 -0
- package/lib/langium/config/configuration-provider.js.map +1 -0
- package/lib/langium/config/index.d.ts +1 -0
- package/lib/langium/config/index.d.ts.map +1 -1
- package/lib/langium/config/index.js +1 -0
- package/lib/langium/config/index.js.map +1 -1
- package/lib/langium/config/settings.js.map +1 -1
- package/lib/langium/diagnostics/console-tee.d.ts +27 -0
- package/lib/langium/diagnostics/console-tee.d.ts.map +1 -0
- package/lib/langium/diagnostics/console-tee.js +142 -0
- package/lib/langium/diagnostics/console-tee.js.map +1 -0
- package/lib/langium/diagnostics/format-log-arg.d.ts +18 -0
- package/lib/langium/diagnostics/format-log-arg.d.ts.map +1 -0
- package/lib/langium/diagnostics/format-log-arg.js +36 -0
- package/lib/langium/diagnostics/format-log-arg.js.map +1 -0
- package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts +9 -20
- package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts.map +1 -1
- package/lib/langium/diagnostics/hydranium-langium-profiler.js +15 -24
- package/lib/langium/diagnostics/hydranium-langium-profiler.js.map +1 -1
- package/lib/langium/diagnostics/log-preamble.js +1 -1
- package/lib/langium/diagnostics/log-preamble.js.map +1 -1
- package/lib/langium/diagnostics/logger.d.ts +25 -6
- package/lib/langium/diagnostics/logger.d.ts.map +1 -1
- package/lib/langium/diagnostics/logger.js +49 -17
- package/lib/langium/diagnostics/logger.js.map +1 -1
- package/lib/langium/diagnostics/lsp-logger.d.ts +17 -0
- package/lib/langium/diagnostics/lsp-logger.d.ts.map +1 -1
- package/lib/langium/diagnostics/lsp-logger.js +68 -45
- package/lib/langium/diagnostics/lsp-logger.js.map +1 -1
- package/lib/langium/diagnostics/server-tracer.d.ts.map +1 -1
- package/lib/langium/diagnostics/server-tracer.js.map +1 -1
- package/lib/langium/document-builder/build-pipeline-integration.d.ts +21 -1
- package/lib/langium/document-builder/build-pipeline-integration.d.ts.map +1 -1
- package/lib/langium/document-builder/build-pipeline-integration.js +28 -30
- package/lib/langium/document-builder/build-pipeline-integration.js.map +1 -1
- package/lib/langium/document-builder/build-session.d.ts +6 -5
- package/lib/langium/document-builder/build-session.d.ts.map +1 -1
- package/lib/langium/document-builder/build-session.js +5 -5
- package/lib/langium/document-builder/build-session.js.map +1 -1
- package/lib/langium/document-builder/document-builder.d.ts +283 -41
- package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
- package/lib/langium/document-builder/document-builder.js +448 -78
- package/lib/langium/document-builder/document-builder.js.map +1 -1
- package/lib/langium/documentation/comment-provider.d.ts.map +1 -1
- package/lib/langium/documentation/comment-provider.js.map +1 -1
- package/lib/langium/integration-services.d.ts +40 -24
- package/lib/langium/integration-services.d.ts.map +1 -1
- package/lib/langium/integration-services.js +7 -4
- package/lib/langium/integration-services.js.map +1 -1
- package/lib/langium/integrity/integrity-rule.d.ts +17 -8
- package/lib/langium/integrity/integrity-rule.d.ts.map +1 -1
- package/lib/langium/integrity/integrity-rule.js.map +1 -1
- package/lib/langium/integrity/integrity-service.d.ts +95 -27
- package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
- package/lib/langium/integrity/integrity-service.js +303 -63
- package/lib/langium/integrity/integrity-service.js.map +1 -1
- package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -1
- package/lib/langium/keys/name-based-key-provider.js.map +1 -1
- package/lib/langium/keys/positional-key-provider.d.ts.map +1 -1
- package/lib/langium/keys/positional-key-provider.js.map +1 -1
- package/lib/langium/labeling/label-provider.d.ts.map +1 -1
- package/lib/langium/labeling/label-provider.js.map +1 -1
- package/lib/langium/language-module.d.ts +30 -5
- package/lib/langium/language-module.d.ts.map +1 -1
- package/lib/langium/language-module.js +18 -4
- package/lib/langium/language-module.js.map +1 -1
- package/lib/langium/model-service/client-session.d.ts +383 -0
- package/lib/langium/model-service/client-session.d.ts.map +1 -0
- package/lib/langium/model-service/client-session.js +455 -0
- package/lib/langium/model-service/client-session.js.map +1 -0
- package/lib/langium/model-service/index.d.ts +2 -0
- package/lib/langium/model-service/index.d.ts.map +1 -1
- package/lib/langium/model-service/index.js +2 -0
- package/lib/langium/model-service/index.js.map +1 -1
- package/lib/langium/model-service/model-events.d.ts +66 -0
- package/lib/langium/model-service/model-events.d.ts.map +1 -0
- package/lib/langium/model-service/model-events.js +10 -0
- package/lib/langium/model-service/model-events.js.map +1 -0
- package/lib/langium/model-service/model-service.d.ts +456 -300
- package/lib/langium/model-service/model-service.d.ts.map +1 -1
- package/lib/langium/model-service/model-service.js +571 -466
- package/lib/langium/model-service/model-service.js.map +1 -1
- package/lib/langium/module.d.ts +141 -40
- package/lib/langium/module.d.ts.map +1 -1
- package/lib/langium/module.js +52 -40
- package/lib/langium/module.js.map +1 -1
- package/lib/langium/naming/name-provider.d.ts +32 -7
- package/lib/langium/naming/name-provider.d.ts.map +1 -1
- package/lib/langium/naming/name-provider.js +10 -4
- package/lib/langium/naming/name-provider.js.map +1 -1
- package/lib/langium/naming/name-separator-validation.d.ts.map +1 -1
- package/lib/langium/project/abstract-project-manager.d.ts.map +1 -1
- package/lib/langium/project/abstract-project-manager.js +13 -6
- package/lib/langium/project/abstract-project-manager.js.map +1 -1
- package/lib/langium/project/project-change-event.d.ts +2 -2
- package/lib/langium/project/single-project-manager.d.ts.map +1 -1
- package/lib/langium/project/single-project-manager.js.map +1 -1
- package/lib/langium/residency/cst-residency-service.d.ts +38 -14
- package/lib/langium/residency/cst-residency-service.d.ts.map +1 -1
- package/lib/langium/residency/cst-residency-service.js +24 -58
- package/lib/langium/residency/cst-residency-service.js.map +1 -1
- package/lib/langium/scope/ast-node-description-provider.d.ts.map +1 -1
- package/lib/langium/scope/ast-node-description-provider.js.map +1 -1
- package/lib/langium/scope/fallback-scope.d.ts +27 -0
- package/lib/langium/scope/fallback-scope.d.ts.map +1 -0
- package/lib/langium/scope/fallback-scope.js +35 -0
- package/lib/langium/scope/fallback-scope.js.map +1 -0
- package/lib/langium/scope/hydranium-scope-computation.d.ts +21 -18
- package/lib/langium/scope/hydranium-scope-computation.d.ts.map +1 -1
- package/lib/langium/scope/hydranium-scope-computation.js +38 -39
- package/lib/langium/scope/hydranium-scope-computation.js.map +1 -1
- package/lib/langium/scope/hydranium-scope-provider.d.ts +29 -11
- package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
- package/lib/langium/scope/hydranium-scope-provider.js +37 -15
- package/lib/langium/scope/hydranium-scope-provider.js.map +1 -1
- package/lib/langium/scope/index.d.ts +1 -0
- package/lib/langium/scope/index.d.ts.map +1 -1
- package/lib/langium/scope/index.js +1 -0
- package/lib/langium/scope/index.js.map +1 -1
- package/lib/langium/scope/reference-builder.d.ts.map +1 -1
- package/lib/langium/scope/reference-builder.js.map +1 -1
- package/lib/langium/scope/reference-candidate-provider.d.ts +6 -5
- package/lib/langium/scope/reference-candidate-provider.d.ts.map +1 -1
- package/lib/langium/scope/reference-candidate-provider.js +3 -2
- package/lib/langium/scope/reference-candidate-provider.js.map +1 -1
- package/lib/langium/scope/scope-extension-service.d.ts +41 -37
- package/lib/langium/scope/scope-extension-service.d.ts.map +1 -1
- package/lib/langium/scope/scope-extension-service.js +57 -29
- package/lib/langium/scope/scope-extension-service.js.map +1 -1
- package/lib/langium/scope/scoped-ast-node-description.d.ts +1 -3
- package/lib/langium/scope/scoped-ast-node-description.d.ts.map +1 -1
- package/lib/langium/scope/scoped-ast-node-description.js +1 -3
- package/lib/langium/scope/scoped-ast-node-description.js.map +1 -1
- package/lib/langium/serialization/abstract-serializer.d.ts +38 -27
- package/lib/langium/serialization/abstract-serializer.d.ts.map +1 -1
- package/lib/langium/serialization/abstract-serializer.js +54 -30
- package/lib/langium/serialization/abstract-serializer.js.map +1 -1
- package/lib/langium/serialization/json-serializer.d.ts +8 -1
- package/lib/langium/serialization/json-serializer.d.ts.map +1 -1
- package/lib/langium/serialization/json-serializer.js +13 -3
- package/lib/langium/serialization/json-serializer.js.map +1 -1
- package/lib/langium/serialization/serializer.d.ts +1 -1
- package/lib/langium/serialization/yaml-serializer.d.ts +4 -0
- package/lib/langium/serialization/yaml-serializer.d.ts.map +1 -1
- package/lib/langium/serialization/yaml-serializer.js +4 -0
- package/lib/langium/serialization/yaml-serializer.js.map +1 -1
- package/lib/langium/service-registry.d.ts +29 -1
- package/lib/langium/service-registry.d.ts.map +1 -1
- package/lib/langium/service-registry.js +37 -0
- package/lib/langium/service-registry.js.map +1 -1
- package/lib/langium/shared-services.d.ts +13 -7
- package/lib/langium/shared-services.d.ts.map +1 -1
- package/lib/langium/shared-services.js.map +1 -1
- package/lib/langium/single-langium-copy.d.ts +22 -0
- package/lib/langium/single-langium-copy.d.ts.map +1 -0
- package/lib/langium/single-langium-copy.js +36 -0
- package/lib/langium/single-langium-copy.js.map +1 -0
- package/lib/langium/transfer/transfer-encoder.d.ts +86 -37
- package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
- package/lib/langium/transfer/transfer-encoder.js +36 -25
- package/lib/langium/transfer/transfer-encoder.js.map +1 -1
- package/lib/langium/trivia/comment-preserver.d.ts +471 -0
- package/lib/langium/trivia/comment-preserver.d.ts.map +1 -0
- package/lib/langium/trivia/comment-preserver.js +1026 -0
- package/lib/langium/trivia/comment-preserver.js.map +1 -0
- package/lib/langium/trivia/document-ending-preserver.d.ts +51 -0
- package/lib/langium/trivia/document-ending-preserver.d.ts.map +1 -0
- package/lib/langium/trivia/document-ending-preserver.js +62 -0
- package/lib/langium/trivia/document-ending-preserver.js.map +1 -0
- package/lib/langium/trivia/index.d.ts +14 -0
- package/lib/langium/trivia/index.d.ts.map +1 -0
- package/lib/langium/trivia/index.js +14 -0
- package/lib/langium/trivia/index.js.map +1 -0
- package/lib/langium/trivia/trivia-contribution.d.ts +37 -0
- package/lib/langium/trivia/trivia-contribution.d.ts.map +1 -0
- package/lib/langium/trivia/trivia-contribution.js +10 -0
- package/lib/langium/trivia/trivia-contribution.js.map +1 -0
- package/lib/langium/trivia/trivia-preserver.d.ts +52 -0
- package/lib/langium/trivia/trivia-preserver.d.ts.map +1 -0
- package/lib/langium/trivia/trivia-preserver.js +10 -0
- package/lib/langium/trivia/trivia-preserver.js.map +1 -0
- package/lib/langium/trivia/trivia-service.d.ts +70 -0
- package/lib/langium/trivia/trivia-service.d.ts.map +1 -0
- package/lib/langium/trivia/trivia-service.js +56 -0
- package/lib/langium/trivia/trivia-service.js.map +1 -0
- package/lib/langium/update-rewrite/normalize-empty-strings.d.ts.map +1 -1
- package/lib/langium/update-rewrite/update-rewrite-service.d.ts +1 -1
- package/lib/langium/update-rewrite/update-rewrite-service.d.ts.map +1 -1
- package/lib/langium/update-rewrite/update-rewrite-service.js.map +1 -1
- package/lib/langium/update-rewrite/update-rewrite.d.ts +1 -1
- package/lib/langium/validation/document-validator.d.ts +168 -23
- package/lib/langium/validation/document-validator.d.ts.map +1 -1
- package/lib/langium/validation/document-validator.js +263 -25
- package/lib/langium/validation/document-validator.js.map +1 -1
- package/lib/langium/validation/validation-contribution-collector.d.ts +9 -1
- package/lib/langium/validation/validation-contribution-collector.d.ts.map +1 -1
- package/lib/langium/validation/validation-contribution-collector.js +1 -1
- package/lib/langium/validation/validation-contribution-collector.js.map +1 -1
- package/lib/langium/workspace/document-uri-policy.d.ts +24 -15
- package/lib/langium/workspace/document-uri-policy.d.ts.map +1 -1
- package/lib/langium/workspace/document-uri-policy.js +22 -13
- package/lib/langium/workspace/document-uri-policy.js.map +1 -1
- package/lib/langium/workspace/file-not-found.d.ts +23 -0
- package/lib/langium/workspace/file-not-found.d.ts.map +1 -0
- package/lib/langium/workspace/file-not-found.js +31 -0
- package/lib/langium/workspace/file-not-found.js.map +1 -0
- package/lib/langium/workspace/file-system-provider.d.ts +167 -8
- package/lib/langium/workspace/file-system-provider.d.ts.map +1 -1
- package/lib/langium/workspace/file-system-provider.js +115 -13
- package/lib/langium/workspace/file-system-provider.js.map +1 -1
- package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +31 -1
- package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -1
- package/lib/langium/workspace/hydranium-langium-document-factory.js +54 -0
- package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -1
- package/lib/langium/workspace/hydranium-workspace-lock.d.ts +43 -1
- package/lib/langium/workspace/hydranium-workspace-lock.d.ts.map +1 -1
- package/lib/langium/workspace/hydranium-workspace-lock.js +58 -1
- package/lib/langium/workspace/hydranium-workspace-lock.js.map +1 -1
- package/lib/langium/workspace/hydranium-workspace-manager.d.ts +103 -21
- package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -1
- package/lib/langium/workspace/hydranium-workspace-manager.js +184 -31
- package/lib/langium/workspace/hydranium-workspace-manager.js.map +1 -1
- package/lib/langium/workspace/in-memory-file-system-provider.d.ts +26 -9
- package/lib/langium/workspace/in-memory-file-system-provider.d.ts.map +1 -1
- package/lib/langium/workspace/in-memory-file-system-provider.js +45 -22
- package/lib/langium/workspace/in-memory-file-system-provider.js.map +1 -1
- package/lib/langium/workspace/index-manager.d.ts.map +1 -1
- package/lib/langium/workspace/index-manager.js.map +1 -1
- package/lib/langium/workspace/index.d.ts +1 -0
- package/lib/langium/workspace/index.d.ts.map +1 -1
- package/lib/langium/workspace/index.js +1 -0
- package/lib/langium/workspace/index.js.map +1 -1
- package/lib/langium/workspace/initialize-workspace.d.ts +40 -3
- package/lib/langium/workspace/initialize-workspace.d.ts.map +1 -1
- package/lib/langium/workspace/initialize-workspace.js +68 -3
- package/lib/langium/workspace/initialize-workspace.js.map +1 -1
- package/lib/langium/workspace/langium-documents.d.ts +7 -0
- package/lib/langium/workspace/langium-documents.d.ts.map +1 -1
- package/lib/langium/workspace/langium-documents.js +18 -1
- package/lib/langium/workspace/langium-documents.js.map +1 -1
- package/lib/langium/workspace/persistent-file-system-provider.d.ts +16 -10
- package/lib/langium/workspace/persistent-file-system-provider.d.ts.map +1 -1
- package/lib/langium/workspace/persistent-file-system-provider.js +25 -13
- package/lib/langium/workspace/persistent-file-system-provider.js.map +1 -1
- package/lib/langium/workspace/self-save-registry.d.ts +84 -0
- package/lib/langium/workspace/self-save-registry.d.ts.map +1 -0
- package/lib/{documents → langium/workspace}/self-save-registry.js +33 -22
- package/lib/langium/workspace/self-save-registry.js.map +1 -0
- package/lib/langium/workspace/virtual-document.d.ts +55 -21
- package/lib/langium/workspace/virtual-document.d.ts.map +1 -1
- package/lib/langium/workspace/virtual-document.js +87 -24
- package/lib/langium/workspace/virtual-document.js.map +1 -1
- package/lib/langium/workspace/write-lock-scope.d.ts +22 -10
- package/lib/langium/workspace/write-lock-scope.d.ts.map +1 -1
- package/lib/langium/workspace/write-lock-scope.js +15 -5
- package/lib/langium/workspace/write-lock-scope.js.map +1 -1
- package/lib/launcher/integrated-server.d.ts +3 -1
- package/lib/launcher/integrated-server.d.ts.map +1 -1
- package/lib/locale/server-locale.d.ts +19 -5
- package/lib/locale/server-locale.d.ts.map +1 -1
- package/lib/locale/server-locale.js +1 -1
- package/lib/locale/server-locale.js.map +1 -1
- package/lib/lsp/completion/hydranium-completion-provider.d.ts +44 -2
- package/lib/lsp/completion/hydranium-completion-provider.d.ts.map +1 -1
- package/lib/lsp/completion/hydranium-completion-provider.js +68 -0
- package/lib/lsp/completion/hydranium-completion-provider.js.map +1 -1
- package/lib/lsp/connection-features.d.ts +23 -0
- package/lib/lsp/connection-features.d.ts.map +1 -0
- package/lib/lsp/connection-features.js +60 -0
- package/lib/lsp/connection-features.js.map +1 -0
- package/lib/lsp/diagnostics-connection.d.ts +27 -0
- package/lib/lsp/diagnostics-connection.d.ts.map +1 -0
- package/lib/lsp/diagnostics-connection.js +53 -0
- package/lib/lsp/diagnostics-connection.js.map +1 -0
- package/lib/lsp/hydranium-document-update-handler.d.ts +126 -82
- package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -1
- package/lib/lsp/hydranium-document-update-handler.js +235 -102
- package/lib/lsp/hydranium-document-update-handler.js.map +1 -1
- package/lib/lsp/index.d.ts +4 -1
- package/lib/lsp/index.d.ts.map +1 -1
- package/lib/lsp/index.js +4 -1
- package/lib/lsp/index.js.map +1 -1
- package/lib/lsp/lsp-latency.d.ts +39 -0
- package/lib/lsp/lsp-latency.d.ts.map +1 -0
- package/lib/lsp/lsp-latency.js +58 -0
- package/lib/lsp/lsp-latency.js.map +1 -0
- package/lib/lsp/save-text-document.d.ts +31 -0
- package/lib/lsp/save-text-document.d.ts.map +1 -0
- package/lib/lsp/save-text-document.js +52 -0
- package/lib/lsp/save-text-document.js.map +1 -0
- package/lib/lsp/semantic-token-provider.d.ts +34 -1
- package/lib/lsp/semantic-token-provider.d.ts.map +1 -1
- package/lib/lsp/semantic-token-provider.js +55 -8
- package/lib/lsp/semantic-token-provider.js.map +1 -1
- package/lib/lsp/shared-module.d.ts +4 -8
- package/lib/lsp/shared-module.d.ts.map +1 -1
- package/lib/lsp/shared-module.js.map +1 -1
- package/lib/lsp/start-language-server.d.ts +11 -7
- package/lib/lsp/start-language-server.d.ts.map +1 -1
- package/lib/lsp/start-language-server.js +18 -7
- package/lib/lsp/start-language-server.js.map +1 -1
- package/lib/messages/carriers.d.ts +3 -5
- package/lib/messages/carriers.d.ts.map +1 -1
- package/lib/messages/carriers.js +3 -5
- package/lib/messages/carriers.js.map +1 -1
- package/lib/messages/index.d.ts +2 -2
- package/lib/messages/index.d.ts.map +1 -1
- package/lib/messages/index.js +2 -2
- package/lib/messages/index.js.map +1 -1
- package/lib/messages/renderer.d.ts +32 -7
- package/lib/messages/renderer.d.ts.map +1 -1
- package/lib/messages/renderer.js +7 -1
- package/lib/messages/renderer.js.map +1 -1
- package/lib/node/event-loop-monitor.d.ts.map +1 -1
- package/lib/node/event-loop-monitor.js +2 -1
- package/lib/node/event-loop-monitor.js.map +1 -1
- package/lib/node/heap-ceiling.d.ts +61 -0
- package/lib/node/heap-ceiling.d.ts.map +1 -0
- package/lib/node/heap-ceiling.js +72 -0
- package/lib/node/heap-ceiling.js.map +1 -0
- package/lib/node/index.d.ts +1 -1
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +5 -1
- package/lib/node/index.js.map +1 -1
- package/lib/node/latency-from-env.d.ts +1 -1
- package/lib/node/latency-from-env.js +1 -1
- package/lib/node/lint-grammar.js.map +1 -1
- package/lib/node/log-file-sink.d.ts +3 -2
- package/lib/node/log-file-sink.d.ts.map +1 -1
- package/lib/node/log-file-sink.js +6 -2
- package/lib/node/log-file-sink.js.map +1 -1
- package/lib/node/log-preamble-node.d.ts +5 -3
- package/lib/node/log-preamble-node.d.ts.map +1 -1
- package/lib/node/log-preamble-node.js +13 -10
- package/lib/node/log-preamble-node.js.map +1 -1
- package/lib/node/measure-memory.d.ts.map +1 -1
- package/lib/node/measure-memory.js +5 -4
- package/lib/node/measure-memory.js.map +1 -1
- package/lib/node/memory-monitor.d.ts +2 -2
- package/lib/node/memory-monitor.d.ts.map +1 -1
- package/lib/node/memory-monitor.js +9 -10
- package/lib/node/memory-monitor.js.map +1 -1
- package/lib/node/node-file-system-provider.d.ts +67 -9
- package/lib/node/node-file-system-provider.d.ts.map +1 -1
- package/lib/node/node-file-system-provider.js +198 -53
- package/lib/node/node-file-system-provider.js.map +1 -1
- package/lib/node/profile-capture.d.ts +12 -4
- package/lib/node/profile-capture.d.ts.map +1 -1
- package/lib/node/profile-capture.js +8 -6
- package/lib/node/profile-capture.js.map +1 -1
- package/lib/node/profile-digest.js.map +1 -1
- package/lib/node/profiling-run.d.ts +13 -3
- package/lib/node/profiling-run.d.ts.map +1 -1
- package/lib/node/profiling-run.js +17 -8
- package/lib/node/profiling-run.js.map +1 -1
- package/lib/node/rename-over-open-readers.d.ts +61 -0
- package/lib/node/rename-over-open-readers.d.ts.map +1 -0
- package/lib/node/rename-over-open-readers.js +80 -0
- package/lib/node/rename-over-open-readers.js.map +1 -0
- package/lib/node/server-diagnostics.js +1 -1
- package/lib/node/server-diagnostics.js.map +1 -1
- package/lib/node/server-state-snapshot.js +4 -4
- package/lib/node/server-state-snapshot.js.map +1 -1
- package/lib/node/socket-launcher.d.ts +43 -7
- package/lib/node/socket-launcher.d.ts.map +1 -1
- package/lib/node/socket-launcher.js +42 -7
- package/lib/node/socket-launcher.js.map +1 -1
- package/lib/node/startup-cpu-profile.d.ts +29 -0
- package/lib/node/startup-cpu-profile.d.ts.map +1 -0
- package/lib/node/startup-cpu-profile.js +91 -0
- package/lib/node/startup-cpu-profile.js.map +1 -0
- package/lib/node/stdio-launcher.d.ts +13 -13
- package/lib/node/stdio-launcher.d.ts.map +1 -1
- package/lib/node/stdio-launcher.js +21 -11
- package/lib/node/stdio-launcher.js.map +1 -1
- package/lib/testing/document-uri-policy-conformance.js +1 -1
- package/lib/testing/document-uri-policy-conformance.js.map +1 -1
- package/lib/testing/fake-description.js.map +1 -1
- package/lib/testing/fake-document.d.ts +2 -1
- package/lib/testing/fake-document.d.ts.map +1 -1
- package/lib/testing/fake-document.js.map +1 -1
- package/lib/testing/index.d.ts +1 -1
- package/lib/testing/index.d.ts.map +1 -1
- package/lib/testing/index.js +2 -1
- package/lib/testing/index.js.map +1 -1
- package/lib/testing/langium-test-helpers.d.ts.map +1 -1
- package/lib/testing/langium-test-helpers.js +1 -0
- package/lib/testing/langium-test-helpers.js.map +1 -1
- package/lib/testing/make-noop-language-services.js.map +1 -1
- package/lib/testing/make-noop-shared-services.d.ts +4 -4
- package/lib/testing/make-noop-shared-services.d.ts.map +1 -1
- package/lib/testing/make-noop-shared-services.js +4 -4
- package/lib/testing/make-noop-shared-services.js.map +1 -1
- package/lib/testing/make-test-services.d.ts +51 -20
- package/lib/testing/make-test-services.d.ts.map +1 -1
- package/lib/testing/make-test-services.js +29 -13
- package/lib/testing/make-test-services.js.map +1 -1
- package/lib/testing/make-test-tracer.d.ts +12 -0
- package/lib/testing/make-test-tracer.d.ts.map +1 -1
- package/lib/testing/make-test-tracer.js +13 -0
- package/lib/testing/make-test-tracer.js.map +1 -1
- package/lib/testing/node/applied-edit-capture.d.ts +29 -0
- package/lib/testing/node/applied-edit-capture.d.ts.map +1 -0
- package/lib/testing/node/applied-edit-capture.js +117 -0
- package/lib/testing/node/applied-edit-capture.js.map +1 -0
- package/lib/testing/node/golden-corpus.js.map +1 -1
- package/lib/testing/node/index.d.ts +1 -0
- package/lib/testing/node/index.d.ts.map +1 -1
- package/lib/testing/node/index.js +1 -0
- package/lib/testing/node/index.js.map +1 -1
- package/lib/testing/node/lsp-harness.d.ts.map +1 -1
- package/lib/testing/node/lsp-harness.js +2 -0
- package/lib/testing/node/lsp-harness.js.map +1 -1
- package/lib/testing/node/lsp-server-connection.d.ts +21 -6
- package/lib/testing/node/lsp-server-connection.d.ts.map +1 -1
- package/lib/testing/node/lsp-server-connection.js +49 -106
- package/lib/testing/node/lsp-server-connection.js.map +1 -1
- package/lib/testing/node/scratch-workspace.d.ts.map +1 -1
- package/lib/testing/node/scratch-workspace.js +10 -5
- package/lib/testing/node/scratch-workspace.js.map +1 -1
- package/lib/testing/node/spawned-server.d.ts +30 -1
- package/lib/testing/node/spawned-server.d.ts.map +1 -1
- package/lib/testing/node/spawned-server.js +39 -2
- package/lib/testing/node/spawned-server.js.map +1 -1
- package/lib/testing/node/unhandled-rejections.d.ts +20 -0
- package/lib/testing/node/unhandled-rejections.d.ts.map +1 -0
- package/lib/testing/node/unhandled-rejections.js +32 -0
- package/lib/testing/node/unhandled-rejections.js.map +1 -0
- package/lib/testing/playwright/browser-capture-bridge.js.map +1 -1
- package/lib/testing/playwright/e2e-profiling.js.map +1 -1
- package/lib/testing/playwright/flaky-network-proxy.d.ts +76 -0
- package/lib/testing/playwright/flaky-network-proxy.d.ts.map +1 -0
- package/lib/testing/playwright/flaky-network-proxy.js +164 -0
- package/lib/testing/playwright/flaky-network-proxy.js.map +1 -0
- package/lib/testing/playwright/index.d.ts +1 -0
- package/lib/testing/playwright/index.d.ts.map +1 -1
- package/lib/testing/playwright/index.js +1 -0
- package/lib/testing/playwright/index.js.map +1 -1
- package/lib/testing/playwright/server-log-capture.d.ts +46 -16
- package/lib/testing/playwright/server-log-capture.d.ts.map +1 -1
- package/lib/testing/playwright/server-log-capture.js +111 -40
- package/lib/testing/playwright/server-log-capture.js.map +1 -1
- package/lib/testing/playwright/server-log-fixture.d.ts +16 -0
- package/lib/testing/playwright/server-log-fixture.d.ts.map +1 -1
- package/lib/testing/playwright/server-log-fixture.js +25 -6
- package/lib/testing/playwright/server-log-fixture.js.map +1 -1
- package/lib/testing/playwright/server-log-region.d.ts +15 -0
- package/lib/testing/playwright/server-log-region.d.ts.map +1 -0
- package/lib/testing/playwright/server-log-region.js +30 -0
- package/lib/testing/playwright/server-log-region.js.map +1 -0
- package/lib/testing/playwright/server-log-rename-reporter.d.ts.map +1 -1
- package/lib/testing/playwright/server-log-rename-reporter.js +4 -3
- package/lib/testing/playwright/server-log-rename-reporter.js.map +1 -1
- package/lib/testing/run-update-pipeline.d.ts +8 -5
- package/lib/testing/run-update-pipeline.d.ts.map +1 -1
- package/lib/testing/run-update-pipeline.js.map +1 -1
- package/lib/testing/stub-ast-document-manager.d.ts +11 -52
- package/lib/testing/stub-ast-document-manager.d.ts.map +1 -1
- package/lib/testing/stub-ast-document-manager.js +31 -62
- package/lib/testing/stub-ast-document-manager.js.map +1 -1
- package/lib/testing/stub-document-builder.d.ts +33 -11
- package/lib/testing/stub-document-builder.d.ts.map +1 -1
- package/lib/testing/stub-document-builder.js +103 -5
- package/lib/testing/stub-document-builder.js.map +1 -1
- package/lib/testing/stub-hydranium-text-documents.d.ts +33 -10
- package/lib/testing/stub-hydranium-text-documents.d.ts.map +1 -1
- package/lib/testing/stub-hydranium-text-documents.js +132 -16
- package/lib/testing/stub-hydranium-text-documents.js.map +1 -1
- package/lib/testing/stub-index-manager.js.map +1 -1
- package/lib/testing/stub-langium-documents.d.ts +3 -2
- package/lib/testing/stub-langium-documents.d.ts.map +1 -1
- package/lib/testing/stub-langium-documents.js.map +1 -1
- package/lib/testing/stub-model-service.d.ts +9 -8
- package/lib/testing/stub-model-service.d.ts.map +1 -1
- package/lib/testing/stub-model-service.js +6 -6
- package/lib/testing/stub-model-service.js.map +1 -1
- package/lib/testing/stub-project-manager.js.map +1 -1
- package/lib/testing/stub-self-save-registry.d.ts +1 -1
- package/lib/testing/stub-self-save-registry.d.ts.map +1 -1
- package/lib/testing/stub-service-registry.d.ts +1 -1
- package/lib/testing/stub-service-registry.js.map +1 -1
- package/lib/testing/stub-writable-file-system.d.ts +1 -1
- package/lib/testing/stub-writable-file-system.d.ts.map +1 -1
- package/lib/testing/stub-writable-file-system.js +2 -1
- package/lib/testing/stub-writable-file-system.js.map +1 -1
- package/lib/util/connection-liveness.d.ts +22 -6
- package/lib/util/connection-liveness.d.ts.map +1 -1
- package/lib/util/connection-liveness.js +74 -15
- package/lib/util/connection-liveness.js.map +1 -1
- package/lib/util/environment.d.ts +7 -0
- package/lib/util/environment.d.ts.map +1 -1
- package/lib/util/environment.js +15 -1
- package/lib/util/environment.js.map +1 -1
- package/lib/util/registry.d.ts.map +1 -1
- package/package.json +39 -58
- package/src/browser/host-heads-in-worker.ts +218 -0
- package/src/browser/index.ts +17 -0
- package/src/browser/indexeddb-file-system-store.ts +192 -0
- package/src/browser/start-language-server-in-worker.ts +56 -0
- package/src/documents/ast-document-manager.ts +467 -233
- package/src/documents/client-ids.ts +5 -22
- package/src/documents/client-session-errors.ts +24 -0
- package/src/documents/client-session-registry.ts +262 -0
- package/src/documents/dirty-state-tracker.ts +167 -0
- package/src/documents/document-release-handler.ts +404 -0
- package/src/documents/document-release-scheduler.ts +121 -0
- package/src/documents/file-system-task-queue.ts +74 -0
- package/src/documents/hydranium-text-documents.ts +1011 -595
- package/src/documents/index.ts +10 -2
- package/src/documents/language-client-shadow.ts +501 -0
- package/src/documents/model-ledger.ts +66 -0
- package/src/documents/text-ledger.ts +112 -0
- package/src/documents/version-sync-service.ts +275 -0
- package/src/index.ts +7 -0
- package/src/langium/ast-extension/ast-extension-service.ts +77 -41
- package/src/langium/ast-extension/ast-node-builder.ts +35 -13
- package/src/langium/bootstrap.ts +87 -51
- package/src/langium/build-phase-pass/build-phase-pass-service.ts +29 -19
- package/src/langium/build-phase-pass/build-phase-pass.ts +37 -8
- package/src/langium/composite-ast-reflection.ts +112 -0
- package/src/langium/config/configuration-provider.ts +119 -0
- package/src/langium/config/index.ts +1 -0
- package/src/langium/diagnostics/console-tee.ts +151 -0
- package/src/langium/diagnostics/format-log-arg.ts +36 -0
- package/src/langium/diagnostics/hydranium-langium-profiler.ts +15 -39
- package/src/langium/diagnostics/log-preamble.ts +1 -1
- package/src/langium/diagnostics/logger.ts +51 -17
- package/src/langium/diagnostics/lsp-logger.ts +70 -44
- package/src/langium/document-builder/build-pipeline-integration.ts +46 -32
- package/src/langium/document-builder/build-session.ts +4 -3
- package/src/langium/document-builder/document-builder.ts +553 -78
- package/src/langium/integration-services.ts +59 -28
- package/src/langium/integrity/integrity-rule.ts +17 -8
- package/src/langium/integrity/integrity-service.ts +332 -69
- package/src/langium/language-module.ts +49 -8
- package/src/langium/model-service/client-session.ts +718 -0
- package/src/langium/model-service/index.ts +2 -0
- package/src/langium/model-service/model-events.ts +80 -0
- package/src/langium/model-service/model-service.ts +878 -494
- package/src/langium/module.ts +195 -72
- package/src/langium/naming/name-provider.ts +34 -8
- package/src/langium/project/abstract-project-manager.ts +13 -5
- package/src/langium/project/project-change-event.ts +2 -2
- package/src/langium/residency/cst-residency-service.ts +54 -19
- package/src/langium/scope/fallback-scope.ts +38 -0
- package/src/langium/scope/hydranium-scope-computation.ts +45 -44
- package/src/langium/scope/hydranium-scope-provider.ts +49 -16
- package/src/langium/scope/index.ts +1 -0
- package/src/langium/scope/reference-candidate-provider.ts +6 -5
- package/src/langium/scope/scope-extension-service.ts +74 -59
- package/src/langium/scope/scoped-ast-node-description.ts +1 -3
- package/src/langium/serialization/abstract-serializer.ts +57 -41
- package/src/langium/serialization/json-serializer.ts +14 -3
- package/src/langium/serialization/serializer.ts +1 -1
- package/src/langium/serialization/yaml-serializer.ts +4 -0
- package/src/langium/service-registry.ts +41 -2
- package/src/langium/shared-services.ts +16 -7
- package/src/langium/single-langium-copy.ts +42 -0
- package/src/langium/transfer/transfer-encoder.ts +104 -47
- package/src/langium/trivia/comment-preserver.ts +1241 -0
- package/src/langium/trivia/document-ending-preserver.ts +71 -0
- package/src/langium/trivia/index.ts +14 -0
- package/src/langium/trivia/trivia-contribution.ts +39 -0
- package/src/langium/trivia/trivia-preserver.ts +56 -0
- package/src/langium/trivia/trivia-service.ts +99 -0
- package/src/langium/update-rewrite/update-rewrite-service.ts +1 -1
- package/src/langium/update-rewrite/update-rewrite.ts +1 -1
- package/src/langium/validation/document-validator.ts +311 -30
- package/src/langium/validation/validation-contribution-collector.ts +10 -1
- package/src/langium/workspace/document-uri-policy.ts +32 -18
- package/src/langium/workspace/file-not-found.ts +35 -0
- package/src/langium/workspace/file-system-provider.ts +258 -16
- package/src/langium/workspace/hydranium-langium-document-factory.ts +83 -0
- package/src/langium/workspace/hydranium-workspace-lock.ts +86 -2
- package/src/langium/workspace/hydranium-workspace-manager.ts +212 -35
- package/src/langium/workspace/in-memory-file-system-provider.ts +54 -23
- package/src/langium/workspace/index.ts +1 -0
- package/src/langium/workspace/initialize-workspace.ts +96 -4
- package/src/langium/workspace/langium-documents.ts +19 -1
- package/src/langium/workspace/persistent-file-system-provider.ts +27 -15
- package/src/langium/workspace/self-save-registry.ts +118 -0
- package/src/langium/workspace/virtual-document.ts +106 -25
- package/src/langium/workspace/write-lock-scope.ts +27 -12
- package/src/launcher/integrated-server.ts +3 -1
- package/src/locale/server-locale.ts +20 -5
- package/src/lsp/completion/hydranium-completion-provider.ts +82 -2
- package/src/lsp/connection-features.ts +67 -0
- package/src/lsp/diagnostics-connection.ts +56 -0
- package/src/lsp/hydranium-document-update-handler.ts +285 -111
- package/src/lsp/index.ts +4 -1
- package/src/lsp/lsp-latency.ts +62 -0
- package/src/lsp/save-text-document.ts +63 -0
- package/src/lsp/semantic-token-provider.ts +74 -7
- package/src/lsp/shared-module.ts +4 -8
- package/src/lsp/start-language-server.ts +18 -7
- package/src/messages/carriers.ts +3 -5
- package/src/messages/index.ts +11 -2
- package/src/messages/renderer.ts +34 -6
- package/src/node/event-loop-monitor.ts +2 -1
- package/src/node/heap-ceiling.ts +108 -0
- package/src/node/index.ts +5 -1
- package/src/node/latency-from-env.ts +1 -1
- package/src/node/log-file-sink.ts +6 -2
- package/src/node/log-preamble-node.ts +20 -10
- package/src/node/measure-memory.ts +5 -4
- package/src/node/memory-monitor.ts +10 -10
- package/src/node/node-file-system-provider.ts +214 -57
- package/src/node/profile-capture.ts +16 -15
- package/src/node/profiling-run.ts +30 -8
- package/src/node/rename-over-open-readers.ts +94 -0
- package/src/node/server-diagnostics.ts +1 -1
- package/src/node/server-state-snapshot.ts +5 -5
- package/src/node/socket-launcher.ts +78 -14
- package/src/node/startup-cpu-profile.ts +94 -0
- package/src/node/stdio-launcher.ts +29 -19
- package/src/testing/document-uri-policy-conformance.ts +1 -1
- package/src/testing/fake-document.ts +2 -1
- package/src/testing/index.ts +2 -1
- package/src/testing/langium-test-helpers.ts +1 -0
- package/src/testing/make-noop-shared-services.ts +6 -6
- package/src/testing/make-test-services.ts +93 -41
- package/src/testing/make-test-tracer.ts +26 -0
- package/src/testing/node/applied-edit-capture.ts +141 -0
- package/src/testing/node/index.ts +1 -0
- package/src/testing/node/lsp-harness.ts +2 -0
- package/src/testing/node/lsp-server-connection.ts +83 -119
- package/src/testing/node/scratch-workspace.ts +10 -5
- package/src/testing/node/spawned-server.ts +57 -3
- package/src/testing/node/unhandled-rejections.ts +31 -0
- package/src/testing/parse-semantic-root.ts +1 -1
- package/src/testing/playwright/flaky-network-proxy.ts +240 -0
- package/src/testing/playwright/index.ts +1 -0
- package/src/testing/playwright/server-log-capture.ts +137 -47
- package/src/testing/playwright/server-log-fixture.ts +46 -6
- package/src/testing/playwright/server-log-region.ts +32 -0
- package/src/testing/playwright/server-log-rename-reporter.ts +4 -3
- package/src/testing/run-update-pipeline.ts +8 -5
- package/src/testing/stub-ast-document-manager.ts +47 -128
- package/src/testing/stub-document-builder.ts +133 -18
- package/src/testing/stub-hydranium-text-documents.ts +184 -27
- package/src/testing/stub-langium-documents.ts +3 -2
- package/src/testing/stub-model-service.ts +11 -10
- package/src/testing/stub-self-save-registry.ts +1 -1
- package/src/testing/stub-service-registry.ts +1 -1
- package/src/testing/stub-writable-file-system.ts +3 -2
- package/src/util/connection-liveness.ts +80 -15
- package/src/util/environment.ts +24 -2
- package/lib/documents/language-client-text-shadow.d.ts +0 -101
- package/lib/documents/language-client-text-shadow.d.ts.map +0 -1
- package/lib/documents/language-client-text-shadow.js +0 -156
- package/lib/documents/language-client-text-shadow.js.map +0 -1
- package/lib/documents/self-save-registry.d.ts +0 -55
- package/lib/documents/self-save-registry.d.ts.map +0 -1
- package/lib/documents/self-save-registry.js.map +0 -1
- package/lib/lsp/instrument-connection.d.ts +0 -36
- package/lib/lsp/instrument-connection.d.ts.map +0 -1
- package/lib/lsp/instrument-connection.js +0 -62
- package/lib/lsp/instrument-connection.js.map +0 -1
- package/lib/node/process-memory.d.ts +0 -66
- package/lib/node/process-memory.d.ts.map +0 -1
- package/lib/node/process-memory.js +0 -252
- package/lib/node/process-memory.js.map +0 -1
- package/src/documents/language-client-text-shadow.ts +0 -175
- package/src/documents/self-save-registry.ts +0 -81
- package/src/lsp/instrument-connection.ts +0 -66
- package/src/node/process-memory.ts +0 -299
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-registry.js","sourceRoot":"","sources":["../../src/langium/service-registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"service-registry.js","sourceRoot":"","sources":["../../src/langium/service-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
import type { Clock, Logger, Project, Tracer } from '@hydranium/protocol';
|
|
10
10
|
import type { LangiumSharedCoreServices } from '@hydranium/langium';
|
|
11
11
|
import type { ServerLocale } from '../locale/server-locale.js';
|
|
12
|
-
import type {
|
|
13
|
-
import type { SelfSaveRegistry } from '
|
|
14
|
-
import type {
|
|
12
|
+
import type { MessageRenderer } from '../messages/renderer.js';
|
|
13
|
+
import type { SelfSaveRegistry } from './workspace/self-save-registry.js';
|
|
14
|
+
import type { ModelLedger } from '../documents/model-ledger.js';
|
|
15
|
+
import type { VersionSyncService } from '../documents/version-sync-service.js';
|
|
16
|
+
import type { WritableFileSystemProvider } from './workspace/file-system-provider.js';
|
|
15
17
|
import type { HydraniumDocumentRegistry } from './workspace/langium-documents.js';
|
|
16
18
|
import type { BuildPhasePassService } from './build-phase-pass/build-phase-pass-service.js';
|
|
17
19
|
import type { CstResidencyService } from './residency/cst-residency-service.js';
|
|
@@ -20,6 +22,7 @@ import type { ProjectManager } from './project/project-manager.js';
|
|
|
20
22
|
import type { ExtendedServiceRegistry } from './service-registry.js';
|
|
21
23
|
import type { DocumentUriPolicy } from './workspace/document-uri-policy.js';
|
|
22
24
|
import type { HydraniumWorkspaceManager } from './workspace/hydranium-workspace-manager.js';
|
|
25
|
+
import type { HydraniumDocumentBuilder } from './document-builder/document-builder.js';
|
|
23
26
|
import type { AdditionalDocumentContribution } from './workspace/additional-document-contribution.js';
|
|
24
27
|
/**
|
|
25
28
|
* Minimum shared-services shape every framework component reads from.
|
|
@@ -29,12 +32,12 @@ import type { AdditionalDocumentContribution } from './workspace/additional-docu
|
|
|
29
32
|
* {@link Clock}, {@link Logger} and {@link Tracer} top-level slots (injectable
|
|
30
33
|
* time source, emission-only logger, and the measure-and-emit tracer composed
|
|
31
34
|
* from the other two), the {@link AdditionalDocumentContribution} group, the
|
|
32
|
-
* {@link
|
|
35
|
+
* {@link MessageRenderer} and the {@link ServerLocale} it renders in,
|
|
33
36
|
* an {@link ExtendedServiceRegistry}, and on `workspace` a writable file-system
|
|
34
37
|
* provider plus {@link HydraniumWorkspaceManager}, {@link ProjectManager},
|
|
35
38
|
* {@link SelfSaveRegistry}, {@link BuildPipelineIntegration},
|
|
36
|
-
* {@link BuildPhasePassService}, {@link CstResidencyService}
|
|
37
|
-
* {@link DocumentUriPolicy}.
|
|
39
|
+
* {@link BuildPhasePassService}, {@link CstResidencyService},
|
|
40
|
+
* {@link DocumentUriPolicy}, {@link ModelLedger} and {@link VersionSyncService}.
|
|
38
41
|
*
|
|
39
42
|
* Declared structurally (interface extends + intersection on nested slots)
|
|
40
43
|
* so the full `ServerSharedServices` and any consumer-extended variant
|
|
@@ -64,7 +67,7 @@ export interface ServerSharedServicesMinimal<TProject extends Project = Project>
|
|
|
64
67
|
* shared tier with no workspace dependency, because all three heads'
|
|
65
68
|
* messages pass through it.
|
|
66
69
|
*/
|
|
67
|
-
MessageRenderer:
|
|
70
|
+
MessageRenderer: MessageRenderer;
|
|
68
71
|
/** The locale an init handed the server, for whoever renders in it. */
|
|
69
72
|
ServerLocale: ServerLocale;
|
|
70
73
|
/**
|
|
@@ -81,12 +84,15 @@ export interface ServerSharedServicesMinimal<TProject extends Project = Project>
|
|
|
81
84
|
FileSystemProvider: WritableFileSystemProvider;
|
|
82
85
|
WorkspaceManager: HydraniumWorkspaceManager;
|
|
83
86
|
LangiumDocuments: HydraniumDocumentRegistry;
|
|
87
|
+
DocumentBuilder: HydraniumDocumentBuilder;
|
|
84
88
|
ProjectManager: ProjectManager<TProject>;
|
|
85
89
|
SelfSaveRegistry: SelfSaveRegistry;
|
|
86
90
|
BuildPipelineIntegration: BuildPipelineIntegration;
|
|
87
91
|
BuildPhasePassService: BuildPhasePassService;
|
|
88
92
|
CstResidencyService: CstResidencyService;
|
|
89
93
|
DocumentUriPolicy: DocumentUriPolicy;
|
|
94
|
+
ModelLedger: ModelLedger;
|
|
95
|
+
VersionSyncService: VersionSyncService;
|
|
90
96
|
};
|
|
91
97
|
}
|
|
92
98
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-services.d.ts","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"shared-services.d.ts","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AAEtG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,2BAA2B,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,yBAAyB;IAC/G,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACpE;;;;OAIG;IACH,eAAe,EAAE,eAAe,CAAC;IACjC,uEAAuE;IACvE,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;;;;;OAQG;IACH,eAAe,EAAE,uBAAuB,CAAC;IACzC,SAAS,EAAE,yBAAyB,CAAC,WAAW,CAAC,GAAG;QAGjD,kBAAkB,EAAE,0BAA0B,CAAC;QAI/C,gBAAgB,EAAE,yBAAyB,CAAC;QAK7B,gBAAgB,EAAE,yBAAyB,CAAC;QAI5C,eAAe,EAAE,wBAAwB,CAAC;QACzD,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzC,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,WAAW,EAAE,WAAW,CAAC;QACzB,kBAAkB,EAAE,kBAAkB,CAAC;KACzC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,2BAA2B,KAAK,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAEvI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-services.js","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;
|
|
1
|
+
{"version":3,"file":"shared-services.js","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAyGlF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,mBAAmB,CAAU,MAA0D;IACpG,OAAO,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,QAAuC,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
import { type AstReflection } from '@hydranium/langium';
|
|
10
|
+
/**
|
|
11
|
+
* Fail fast when `reflection` extends `AbstractAstReflection` from a second
|
|
12
|
+
* copy of `langium`, which the files `langium-cli` generates run on: a second
|
|
13
|
+
* install, or one install a bundler or test runner loads twice.
|
|
14
|
+
*
|
|
15
|
+
* A reflection whose prototype chain misses this copy's base is taken to come
|
|
16
|
+
* from another copy when it carries the `subtypes` and `allSubtypes` fields that
|
|
17
|
+
* base creates, which `AstReflection` does not declare. Fields rather than the
|
|
18
|
+
* class name, because bundlers and minifiers rename classes; a hand-written
|
|
19
|
+
* reflection passes unless it declares both fields itself.
|
|
20
|
+
*/
|
|
21
|
+
export declare function assertSingleLangiumCopy(reflection: AstReflection, subject?: () => string): void;
|
|
22
|
+
//# sourceMappingURL=single-langium-copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-langium-copy.d.ts","sourceRoot":"","sources":["../../src/langium/single-langium-copy.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACpC,UAAU,EAAE,aAAa,EACzB,OAAO,GAAE,MAAM,MAA+F,GAC9G,IAAI,CAgBN"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
import { AbstractAstReflection } from '@hydranium/langium';
|
|
10
|
+
/**
|
|
11
|
+
* Fail fast when `reflection` extends `AbstractAstReflection` from a second
|
|
12
|
+
* copy of `langium`, which the files `langium-cli` generates run on: a second
|
|
13
|
+
* install, or one install a bundler or test runner loads twice.
|
|
14
|
+
*
|
|
15
|
+
* A reflection whose prototype chain misses this copy's base is taken to come
|
|
16
|
+
* from another copy when it carries the `subtypes` and `allSubtypes` fields that
|
|
17
|
+
* base creates, which `AstReflection` does not declare. Fields rather than the
|
|
18
|
+
* class name, because bundlers and minifiers rename classes; a hand-written
|
|
19
|
+
* reflection passes unless it declares both fields itself.
|
|
20
|
+
*/
|
|
21
|
+
export function assertSingleLangiumCopy(reflection, subject = () => `the shared AstReflection (${reflection.constructor?.name ?? 'no constructor'})`) {
|
|
22
|
+
if (reflection instanceof AbstractAstReflection) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (Object.hasOwn(reflection, 'subtypes') && Object.hasOwn(reflection, 'allSubtypes')) {
|
|
26
|
+
throw new Error(`[hydranium] ${subject()} extends \`AbstractAstReflection\` from another instance of \`langium\` than ` +
|
|
27
|
+
'the one `@hydranium/langium` loads, a second physical copy or one install loaded twice, so the generated ' +
|
|
28
|
+
'code runs on one and the framework on the other. Values Langium compares by identity, such as its ' +
|
|
29
|
+
'cancellation signal, are not recognised across the two. `npm explain langium` lists each installed copy ' +
|
|
30
|
+
'and what requires it. If your package resolves another version, declare `langium` at the version ' +
|
|
31
|
+
'`@hydranium/langium` pins and reinstall from scratch, without the lockfile; in a workspace, declare the ' +
|
|
32
|
+
'same pins in the root as well. If a test runner or bundler inlines `langium` but not `@hydranium/*`, ' +
|
|
33
|
+
'load both the same way.');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=single-langium-copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-langium-copy.js","sourceRoot":"","sources":["../../src/langium/single-langium-copy.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,qBAAqB,EAAsB,MAAM,oBAAoB,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACpC,UAAyB,EACzB,OAAO,GAAiB,GAAG,EAAE,CAAC,6BAA6B,UAAU,CAAC,WAAW,EAAE,IAAI,IAAI,gBAAgB,GAAG;IAE9G,IAAI,UAAU,YAAY,qBAAqB,EAAE,CAAC;QAC/C,OAAO;IACV,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CACZ,eAAe,OAAO,EAAE,+EAA+E;YACpG,2GAA2G;YAC3G,oGAAoG;YACpG,0GAA0G;YAC1G,mGAAmG;YACnG,0GAA0G;YAC1G,uGAAuG;YACvG,yBAAyB,CAC9B,CAAC;IACL,CAAC;AACJ,CAAC"}
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import { type
|
|
9
|
+
import { type TransferModelSnapshot, type Tracer, type TransferDiagnostic, type TransferElement, type TransferTypeFor } from '@hydranium/protocol';
|
|
10
10
|
import { type AstNode, DocumentCache, type LangiumDocument } from '@hydranium/langium';
|
|
11
11
|
import { Diagnostic } from 'vscode-languageserver-protocol';
|
|
12
12
|
import { type AstDocument } from '../../documents/ast-document-manager.js';
|
|
13
13
|
import { type LogNameOptions } from '../diagnostics/logger.js';
|
|
14
14
|
import { type ServerSharedServicesMinimal } from '../shared-services.js';
|
|
15
|
-
import { type
|
|
15
|
+
import { type AstDiagnostic } from '../validation/document-validator.js';
|
|
16
16
|
/**
|
|
17
17
|
* Which set of properties {@link TransferEncoder.toTransfer} emits.
|
|
18
18
|
*
|
|
@@ -20,25 +20,28 @@ import { type TransferLspDiagnostic } from '../validation/document-validator.js'
|
|
|
20
20
|
* including AST-extension-derived computed scalars and synthetic child
|
|
21
21
|
* mirrors. This is the wire shape clients consume, and the default.
|
|
22
22
|
* - `'grammar'` — only the grammar-declared properties, per
|
|
23
|
-
* `AstReflection.getTypeMetaData($type).properties
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
23
|
+
* `AstReflection.getTypeMetaData($type).properties`, each carrying the
|
|
24
|
+
* node's own authored value. Excludes every computed / synthetic property
|
|
25
|
+
* by construction (no naming convention, no registration) and bypasses the
|
|
26
|
+
* `resolvePropertyValue` substitution hook, so neither a computed KEY nor a
|
|
27
|
+
* computed VALUE can reach this shape. Yields the authored state a
|
|
28
|
+
* serializer round-trips — a diffable, acyclic baseline for field-level
|
|
29
|
+
* recording / forward-write reconcile.
|
|
28
30
|
*/
|
|
29
31
|
export type TransferMode = 'full' | 'grammar';
|
|
30
32
|
/**
|
|
31
33
|
* Per-encode inputs threaded through the {@link TransferEncoder} walk and its
|
|
32
34
|
* hooks. Created once per encode entry (see
|
|
33
|
-
* {@link
|
|
34
|
-
* the recursion, so every hook invocation of one encode observes the
|
|
35
|
-
* inputs — unlike instance state, which two interleaving encodes would
|
|
35
|
+
* {@link DefaultTransferEncoder.createEncodeContext}) and passed unchanged
|
|
36
|
+
* through the recursion, so every hook invocation of one encode observes the
|
|
37
|
+
* same inputs — unlike instance state, which two interleaving encodes would
|
|
36
38
|
* clobber.
|
|
37
39
|
*
|
|
38
40
|
* Adopters widen the context by overriding `createEncodeContext` with a
|
|
39
41
|
* covariant return type and narrowing the hook parameter types accordingly
|
|
40
42
|
* (TypeScript method bivariance admits the narrowing). An input that changes
|
|
41
|
-
* the encoded output must also be folded into
|
|
43
|
+
* the encoded output must also be folded into
|
|
44
|
+
* {@link DefaultTransferEncoder.rootCacheKey}.
|
|
42
45
|
*/
|
|
43
46
|
export interface EncodeContext {
|
|
44
47
|
/** Property-set selection for this encode — see {@link TransferMode}. */
|
|
@@ -52,21 +55,58 @@ export interface EncodeContext {
|
|
|
52
55
|
readonly uri?: string;
|
|
53
56
|
}
|
|
54
57
|
/**
|
|
55
|
-
* The non-root inputs {@link
|
|
56
|
-
* build a wire envelope. Both of the encoder's document paths narrow
|
|
57
|
-
* before assembling — a built `LangiumDocument` (whose `uri` /
|
|
58
|
-
* its `textDocument`) and a server-internal `AstDocument`
|
|
59
|
-
* satisfies the shape structurally — so the assembly seam has
|
|
60
|
-
* implementation to override.
|
|
58
|
+
* The non-root inputs {@link DefaultTransferEncoder.assembleTransferDocument}
|
|
59
|
+
* needs to build a wire envelope. Both of the encoder's document paths narrow
|
|
60
|
+
* to this before assembling — a built `LangiumDocument` (whose `uri` /
|
|
61
|
+
* `version` live on its `textDocument`) and a server-internal `AstDocument`
|
|
62
|
+
* snapshot, which satisfies the shape structurally — so the assembly seam has
|
|
63
|
+
* exactly one implementation to override.
|
|
61
64
|
*
|
|
62
65
|
* `diagnostics` accepts either the wire shape (an already-projected
|
|
63
66
|
* `TDiagnostic`, as a snapshot may carry) or a raw LSP {@link Diagnostic}; the
|
|
64
67
|
* assembly projects each through {@link TransferEncoder.toTransferDiagnostic}.
|
|
68
|
+
* Absent for a document not validated yet, and left absent on the wire.
|
|
65
69
|
*/
|
|
66
70
|
export interface TransferEnvelopeSource<TDiagnostic> {
|
|
67
71
|
readonly uri: string;
|
|
68
72
|
readonly version: number;
|
|
69
|
-
readonly diagnostics
|
|
73
|
+
readonly diagnostics?: readonly (TDiagnostic | Diagnostic)[];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* A `TransferDocument` as the encoder produces it: the model block without
|
|
77
|
+
* its `hash`, which the data server computes from the encoded model.
|
|
78
|
+
*/
|
|
79
|
+
export interface EncodedTransferDocument<TTransfer extends TransferElement, TDiagnostic = TransferDiagnostic> {
|
|
80
|
+
uri: string;
|
|
81
|
+
model: Omit<TransferModelSnapshot<TTransfer, TDiagnostic>, 'hash'>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The AST→transfer contract a DI slot holds, implemented by
|
|
85
|
+
* {@link DefaultTransferEncoder}.
|
|
86
|
+
*
|
|
87
|
+
* **This is an interface and not the class, and that is load-bearing.** A class
|
|
88
|
+
* in a slot drags its `protected` members into every assignability check, which
|
|
89
|
+
* TypeScript compares NOMINALLY — so the slot type could not be satisfied by a
|
|
90
|
+
* subclass declared against a second physical copy of this package, and an
|
|
91
|
+
* adopter narrowing the slot had to intersect with the framework's declaration
|
|
92
|
+
* rather than replace it, leaving method resolution dependent on declaration
|
|
93
|
+
* order. An interface has no protected members and is compared structurally, so
|
|
94
|
+
* neither applies.
|
|
95
|
+
*
|
|
96
|
+
* **The transfer returns are the structural base ({@link TransferElement}), not
|
|
97
|
+
* the per-grammar overlay.** The overlay cannot parameterise this contract:
|
|
98
|
+
* `TransferTypeFor` reaches `keyof TTransferMap`, which makes that parameter
|
|
99
|
+
* measured-INVARIANT, and invariant parameters relate only when their arguments
|
|
100
|
+
* are mutually assignable — so a map-parameterised contract admits no adopter
|
|
101
|
+
* instantiation at all. Heads read this contract and do not know adopter maps;
|
|
102
|
+
* an adopter recovers the precise type by declaring its own slot, which it can
|
|
103
|
+
* now do by replacement.
|
|
104
|
+
*/
|
|
105
|
+
export interface TransferEncoder<TDiagnostic extends TransferDiagnostic = TransferDiagnostic> {
|
|
106
|
+
toTransfer<T extends AstNode>(ast: T, mode?: TransferMode): TransferElement;
|
|
107
|
+
toTransferDocument(langiumDocument: LangiumDocument): EncodedTransferDocument<TransferElement, TDiagnostic>;
|
|
108
|
+
astDocumentToTransferDocument<TAst extends AstNode>(document: AstDocument<TAst, AstDiagnostic>): EncodedTransferDocument<TransferElement, TDiagnostic>;
|
|
109
|
+
toTransferDiagnostic(diagnostic: AstDiagnostic): TDiagnostic;
|
|
70
110
|
}
|
|
71
111
|
/**
|
|
72
112
|
* One-directional structural mapper from a Langium AST into the wire
|
|
@@ -85,8 +125,8 @@ export interface TransferEnvelopeSource<TDiagnostic> {
|
|
|
85
125
|
* resolving each AST type to its declared wire shape. Default is
|
|
86
126
|
* `Record<string, TransferElement>`, which collapses every encoded node
|
|
87
127
|
* to the structural base — adequate for adopters without a generated
|
|
88
|
-
* overlay;
|
|
89
|
-
* encoder's
|
|
128
|
+
* overlay; an adopter passes the generated `<LanguageId>TransferTypes` to
|
|
129
|
+
* type the encoder's returns by the grammar.
|
|
90
130
|
* - `TDiagnostic` — wire-diagnostic shape produced by
|
|
91
131
|
* {@link toTransferDiagnostic}. Constrained to extend
|
|
92
132
|
* {@link TransferDiagnostic} so the framework default (which constructs a
|
|
@@ -101,18 +141,19 @@ export interface TransferEnvelopeSource<TDiagnostic> {
|
|
|
101
141
|
* - {@link propertyKeys} — which property names the walk visits.
|
|
102
142
|
* - {@link shouldEmitProperty} — per-key filter on top of the default
|
|
103
143
|
* `$`-internals strip.
|
|
104
|
-
* - {@link resolvePropertyValue} — value substitution per property
|
|
144
|
+
* - {@link resolvePropertyValue} — value substitution per property, `'full'`
|
|
145
|
+
* mode only (see there for why `'grammar'` bypasses it).
|
|
105
146
|
* - {@link finalizeTransferNode} — post-decoration per encoded node.
|
|
106
147
|
* - {@link toTransferValue} — recursion seam per property value. Override
|
|
107
148
|
* to special-case reference encoding or to drop specific value shapes.
|
|
108
149
|
* Envelope-level seams:
|
|
109
150
|
* - {@link toTransferDocument} — bundle root + diagnostics into the wire
|
|
110
|
-
* {@link
|
|
151
|
+
* {@link EncodedTransferDocument} envelope. Override to filter / merge
|
|
111
152
|
* diagnostics from auxiliary sources or to project a synthesised root.
|
|
112
|
-
* - {@link toTransferDiagnostic} — project a {@link
|
|
153
|
+
* - {@link toTransferDiagnostic} — project a {@link AstDiagnostic}
|
|
113
154
|
* (the framework validator's output) to {@link TDiagnostic}.
|
|
114
155
|
*/
|
|
115
|
-
export declare class
|
|
156
|
+
export declare class DefaultTransferEncoder<TTransferMap = Record<string, TransferElement>, TDiagnostic extends TransferDiagnostic = TransferDiagnostic> {
|
|
116
157
|
protected readonly services: ServerSharedServicesMinimal;
|
|
117
158
|
protected readonly tracer: Tracer;
|
|
118
159
|
/**
|
|
@@ -194,8 +235,17 @@ export declare class TransferEncoder<TTransferMap = Record<string, TransferEleme
|
|
|
194
235
|
*/
|
|
195
236
|
protected shouldEmitProperty(_ast: AstNode, key: string, _context: EncodeContext): boolean;
|
|
196
237
|
/**
|
|
197
|
-
* Which value the walk emits under `key
|
|
198
|
-
*
|
|
238
|
+
* Which value the walk emits under `key`, in `'full'` mode ONLY. Default:
|
|
239
|
+
* the node's own value.
|
|
240
|
+
*
|
|
241
|
+
* Override to substitute a derived value under a grammar property name — an
|
|
242
|
+
* inheritance-resolved field, a preference-dependent label. `'grammar'`
|
|
243
|
+
* bypasses this hook and reads the node directly: that mode's contract is
|
|
244
|
+
* the authored state a serializer round-trips, and a substituted value is by
|
|
245
|
+
* construction not the one the document declared. An override that applied
|
|
246
|
+
* in both modes would leave the grammar shape carrying derived values under
|
|
247
|
+
* declared property names — diffable and acyclic still, but no longer
|
|
248
|
+
* authored, which is the property every consumer of that mode relies on.
|
|
199
249
|
*/
|
|
200
250
|
protected resolvePropertyValue(ast: AstNode, key: string, _context: EncodeContext): unknown;
|
|
201
251
|
/**
|
|
@@ -206,7 +256,7 @@ export declare class TransferEncoder<TTransferMap = Record<string, TransferEleme
|
|
|
206
256
|
*/
|
|
207
257
|
protected finalizeTransferNode(_ast: AstNode, _result: Record<string, unknown>, _context: EncodeContext): void;
|
|
208
258
|
/**
|
|
209
|
-
* Build a wire {@link
|
|
259
|
+
* Build a wire {@link EncodedTransferDocument} envelope from a built
|
|
210
260
|
* {@link LangiumDocument}. The `'full'` root is served from the internal
|
|
211
261
|
* {@link rootCache} (memoised per document until it next rebuilds), under
|
|
212
262
|
* {@link rootCacheKey} — so the data-server's fingerprint and emitted
|
|
@@ -228,7 +278,7 @@ export declare class TransferEncoder<TTransferMap = Record<string, TransferEleme
|
|
|
228
278
|
* that claim — Langium types `parseResult.value` as a bare `AstNode` — but
|
|
229
279
|
* the runtime walk doesn't depend on the typing being correct.
|
|
230
280
|
*/
|
|
231
|
-
toTransferDocument<TAst extends AstNode>(langiumDocument: LangiumDocument):
|
|
281
|
+
toTransferDocument<TAst extends AstNode>(langiumDocument: LangiumDocument): EncodedTransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic>;
|
|
232
282
|
/**
|
|
233
283
|
* Wrap an already-encoded root into the wire envelope (uri / version /
|
|
234
284
|
* projected diagnostics).
|
|
@@ -241,19 +291,18 @@ export declare class TransferEncoder<TTransferMap = Record<string, TransferEleme
|
|
|
241
291
|
* {@link TransferEnvelopeSource} rather than a `LangiumDocument` precisely
|
|
242
292
|
* so the snapshot path can reach it without a `LangiumDocuments` lookup.
|
|
243
293
|
*/
|
|
244
|
-
protected assembleTransferDocument<TAst extends AstNode>(source: TransferEnvelopeSource<TDiagnostic>, root: TransferTypeFor<TAst, TTransferMap>):
|
|
294
|
+
protected assembleTransferDocument<TAst extends AstNode>(source: TransferEnvelopeSource<TDiagnostic>, root: TransferTypeFor<TAst, TTransferMap>): EncodedTransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic>;
|
|
245
295
|
/**
|
|
246
|
-
* Build a wire {@link
|
|
247
|
-
* {@link AstDocument} snapshot (the AST-typed envelope
|
|
248
|
-
*
|
|
249
|
-
* `ModelService.request` / `update` / `save`). Distinct from
|
|
296
|
+
* Build a wire {@link EncodedTransferDocument} envelope from a server-internal
|
|
297
|
+
* {@link AstDocument} snapshot (the AST-typed envelope `ModelService`'s
|
|
298
|
+
* events carry and its reads and session writes return). Distinct from
|
|
250
299
|
* {@link toTransferDocument}(`LangiumDocument`) which encodes against
|
|
251
300
|
* the live build artifact — adopter facade returns hold the snapshot
|
|
252
301
|
* directly, and this helper bridges that to the wire shape without a
|
|
253
302
|
* second `LangiumDocuments.getDocument` lookup.
|
|
254
303
|
*
|
|
255
304
|
* The `diagnostic` projection assumes the snapshot's diagnostics carry
|
|
256
|
-
* the `
|
|
305
|
+
* the `AstDiagnostic` shape ({@link Diagnostic} plus the
|
|
257
306
|
* framework validator's `element` / `property` decoration). Snapshots
|
|
258
307
|
* built from raw Langium diagnostics structurally satisfy this — the
|
|
259
308
|
* extra fields are optional in the projection.
|
|
@@ -263,10 +312,10 @@ export declare class TransferEncoder<TTransferMap = Record<string, TransferEleme
|
|
|
263
312
|
* {@link TransferEnvelopeSource} structurally), so this path shares the
|
|
264
313
|
* assembly seam rather than duplicating it.
|
|
265
314
|
*/
|
|
266
|
-
astDocumentToTransferDocument<TAst extends AstNode>(document: AstDocument<TAst,
|
|
315
|
+
astDocumentToTransferDocument<TAst extends AstNode>(document: AstDocument<TAst, AstDiagnostic>): EncodedTransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic>;
|
|
267
316
|
/**
|
|
268
317
|
* Project an LSP-shaped diagnostic (typically a
|
|
269
|
-
* {@link
|
|
318
|
+
* {@link AstDiagnostic} produced by
|
|
270
319
|
* `HydraniumDocumentValidator` — adds `element` + optional `property`
|
|
271
320
|
* to the standard {@link Diagnostic} shape) to the wire-diagnostic
|
|
272
321
|
* shape.
|
|
@@ -285,7 +334,7 @@ export declare class TransferEncoder<TTransferMap = Record<string, TransferEleme
|
|
|
285
334
|
* Override only if the wire-diagnostic shape needs fields beyond
|
|
286
335
|
* what {@link TransferDiagnostic} carries.
|
|
287
336
|
*/
|
|
288
|
-
toTransferDiagnostic(diagnostic:
|
|
337
|
+
toTransferDiagnostic(diagnostic: AstDiagnostic): TDiagnostic;
|
|
289
338
|
/**
|
|
290
339
|
* Recursion seam — converts a single property value during the AST
|
|
291
340
|
* walk. Arrays recurse element-wise; cross-references collapse to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer-encoder.d.ts","sourceRoot":"","sources":["../../../src/langium/transfer/transfer-encoder.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,
|
|
1
|
+
{"version":3,"file":"transfer-encoder.d.ts","sourceRoot":"","sources":["../../../src/langium/transfer/transfer-encoder.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAGJ,KAAK,qBAAqB,EAC1B,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAY,KAAK,OAAO,EAAE,aAAa,EAAyC,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxI,OAAO,EAAE,UAAU,EAAsB,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAa;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,sBAAsB,CAAC,WAAW;IAChD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC;CAC/D;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB,CAAC,SAAS,SAAS,eAAe,EAAE,WAAW,GAAG,kBAAkB;IACzG,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;CACrE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,eAAe,CAAC,WAAW,SAAS,kBAAkB,GAAG,kBAAkB;IACzF,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC;IAC5E,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,uBAAuB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC5G,6BAA6B,CAAC,IAAI,SAAS,OAAO,EAC/C,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,GAC1C,uBAAuB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACzD,oBAAoB,CAAC,UAAU,EAAE,aAAa,GAAG,WAAW,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qBAAa,sBAAsB,CAKhC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC9C,WAAW,SAAS,kBAAkB,GAAG,kBAAkB;IA2BxD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,2BAA2B;IAzB3D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAQ7D,YACsB,QAAQ,EAAE,2BAA2B,EACxD,OAAO,GAAE,cAAmB,EAI9B;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAErD;IAED;;;;;;;;;OASG;IACH,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,GAAE,YAAqB,GAAG,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAOnG;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,CAE7E;IAED;;;;;OAKG;IACH,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyBlF;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,SAAS,MAAM,EAAE,CAI9E;IAED;;;;;;OAMG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAEzF;IAED;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAE1F;IAED;;;;;OAKG;IACH,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAE7G;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,kBAAkB,CAAC,IAAI,SAAS,OAAO,EACpC,eAAe,EAAE,eAAe,GAChC,uBAAuB,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,CAa3E;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,wBAAwB,CAAC,IAAI,SAAS,OAAO,EACpD,MAAM,EAAE,sBAAsB,CAAC,WAAW,CAAC,EAC3C,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,GACzC,uBAAuB,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,CAG3E;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,6BAA6B,CAAC,IAAI,SAAS,OAAO,EAC/C,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,GAC1C,uBAAuB,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,CAG3E;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,oBAAoB,CAAC,UAAU,EAAE,aAAa,GAAG,WAAW,CAwB3D;IAED;;;;;OAKG;IACH,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAWzE;CACH"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import { hasMessageIdentity } from '@hydranium/protocol';
|
|
9
|
+
import { asModelVersion, hasMessageIdentity } from '@hydranium/protocol';
|
|
10
10
|
import { AstUtils, DocumentCache, DocumentState, isAstNode, isReference } from '@hydranium/langium';
|
|
11
11
|
import { Diagnostic, DiagnosticSeverity } from 'vscode-languageserver-protocol';
|
|
12
12
|
/**
|
|
@@ -26,8 +26,8 @@ import { Diagnostic, DiagnosticSeverity } from 'vscode-languageserver-protocol';
|
|
|
26
26
|
* resolving each AST type to its declared wire shape. Default is
|
|
27
27
|
* `Record<string, TransferElement>`, which collapses every encoded node
|
|
28
28
|
* to the structural base — adequate for adopters without a generated
|
|
29
|
-
* overlay;
|
|
30
|
-
* encoder's
|
|
29
|
+
* overlay; an adopter passes the generated `<LanguageId>TransferTypes` to
|
|
30
|
+
* type the encoder's returns by the grammar.
|
|
31
31
|
* - `TDiagnostic` — wire-diagnostic shape produced by
|
|
32
32
|
* {@link toTransferDiagnostic}. Constrained to extend
|
|
33
33
|
* {@link TransferDiagnostic} so the framework default (which constructs a
|
|
@@ -42,18 +42,19 @@ import { Diagnostic, DiagnosticSeverity } from 'vscode-languageserver-protocol';
|
|
|
42
42
|
* - {@link propertyKeys} — which property names the walk visits.
|
|
43
43
|
* - {@link shouldEmitProperty} — per-key filter on top of the default
|
|
44
44
|
* `$`-internals strip.
|
|
45
|
-
* - {@link resolvePropertyValue} — value substitution per property
|
|
45
|
+
* - {@link resolvePropertyValue} — value substitution per property, `'full'`
|
|
46
|
+
* mode only (see there for why `'grammar'` bypasses it).
|
|
46
47
|
* - {@link finalizeTransferNode} — post-decoration per encoded node.
|
|
47
48
|
* - {@link toTransferValue} — recursion seam per property value. Override
|
|
48
49
|
* to special-case reference encoding or to drop specific value shapes.
|
|
49
50
|
* Envelope-level seams:
|
|
50
51
|
* - {@link toTransferDocument} — bundle root + diagnostics into the wire
|
|
51
|
-
* {@link
|
|
52
|
+
* {@link EncodedTransferDocument} envelope. Override to filter / merge
|
|
52
53
|
* diagnostics from auxiliary sources or to project a synthesised root.
|
|
53
|
-
* - {@link toTransferDiagnostic} — project a {@link
|
|
54
|
+
* - {@link toTransferDiagnostic} — project a {@link AstDiagnostic}
|
|
54
55
|
* (the framework validator's output) to {@link TDiagnostic}.
|
|
55
56
|
*/
|
|
56
|
-
export class
|
|
57
|
+
export class DefaultTransferEncoder {
|
|
57
58
|
services;
|
|
58
59
|
tracer;
|
|
59
60
|
/**
|
|
@@ -142,7 +143,13 @@ export class TransferEncoder {
|
|
|
142
143
|
if (!this.shouldEmitProperty(ast, key, context)) {
|
|
143
144
|
continue;
|
|
144
145
|
}
|
|
145
|
-
|
|
146
|
+
// `'grammar'` reads the authored value straight off the node rather than
|
|
147
|
+
// through `resolvePropertyValue`. The mode promises a shape the serializer
|
|
148
|
+
// round-trips, and a value-substitution hook cannot honour that: what it
|
|
149
|
+
// returns is by construction not what the document declared. Scoping the
|
|
150
|
+
// hook to `'full'` is what makes that guarantee structural instead of a
|
|
151
|
+
// rule every override has to remember.
|
|
152
|
+
const value = context.mode === 'grammar' ? ast[key] : this.resolvePropertyValue(ast, key, context);
|
|
146
153
|
// `'grammar'` lists every declared property, including those absent on
|
|
147
154
|
// this node; skip the absent ones. (`'full'` enumerates only own
|
|
148
155
|
// properties, so absent properties never surface there.) Part of the
|
|
@@ -180,8 +187,17 @@ export class TransferEncoder {
|
|
|
180
187
|
return !key.startsWith('$');
|
|
181
188
|
}
|
|
182
189
|
/**
|
|
183
|
-
* Which value the walk emits under `key
|
|
184
|
-
*
|
|
190
|
+
* Which value the walk emits under `key`, in `'full'` mode ONLY. Default:
|
|
191
|
+
* the node's own value.
|
|
192
|
+
*
|
|
193
|
+
* Override to substitute a derived value under a grammar property name — an
|
|
194
|
+
* inheritance-resolved field, a preference-dependent label. `'grammar'`
|
|
195
|
+
* bypasses this hook and reads the node directly: that mode's contract is
|
|
196
|
+
* the authored state a serializer round-trips, and a substituted value is by
|
|
197
|
+
* construction not the one the document declared. An override that applied
|
|
198
|
+
* in both modes would leave the grammar shape carrying derived values under
|
|
199
|
+
* declared property names — diffable and acyclic still, but no longer
|
|
200
|
+
* authored, which is the property every consumer of that mode relies on.
|
|
185
201
|
*/
|
|
186
202
|
resolvePropertyValue(ast, key, _context) {
|
|
187
203
|
return ast[key];
|
|
@@ -196,7 +212,7 @@ export class TransferEncoder {
|
|
|
196
212
|
// Intentionally empty — adopter seam.
|
|
197
213
|
}
|
|
198
214
|
/**
|
|
199
|
-
* Build a wire {@link
|
|
215
|
+
* Build a wire {@link EncodedTransferDocument} envelope from a built
|
|
200
216
|
* {@link LangiumDocument}. The `'full'` root is served from the internal
|
|
201
217
|
* {@link rootCache} (memoised per document until it next rebuilds), under
|
|
202
218
|
* {@link rootCacheKey} — so the data-server's fingerprint and emitted
|
|
@@ -223,8 +239,8 @@ export class TransferEncoder {
|
|
|
223
239
|
const root = this.rootCache.get(langiumDocument.uri, this.rootCacheKey(context), () => this.encodeNode(langiumDocument.parseResult.value, context));
|
|
224
240
|
return this.assembleTransferDocument({
|
|
225
241
|
uri: langiumDocument.textDocument.uri,
|
|
226
|
-
version: langiumDocument.
|
|
227
|
-
diagnostics: langiumDocument.diagnostics
|
|
242
|
+
version: this.services.workspace.ModelLedger.versionOf(langiumDocument.parseResult.value),
|
|
243
|
+
diagnostics: langiumDocument.diagnostics
|
|
228
244
|
}, root);
|
|
229
245
|
}
|
|
230
246
|
/**
|
|
@@ -240,25 +256,20 @@ export class TransferEncoder {
|
|
|
240
256
|
* so the snapshot path can reach it without a `LangiumDocuments` lookup.
|
|
241
257
|
*/
|
|
242
258
|
assembleTransferDocument(source, root) {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
version: source.version,
|
|
246
|
-
root,
|
|
247
|
-
diagnostics: source.diagnostics.map(diagnostic => this.toTransferDiagnostic(diagnostic))
|
|
248
|
-
};
|
|
259
|
+
const diagnostics = source.diagnostics?.map(diagnostic => this.toTransferDiagnostic(diagnostic));
|
|
260
|
+
return { uri: source.uri, model: { root, version: asModelVersion(source.version), ...(diagnostics ? { diagnostics } : {}) } };
|
|
249
261
|
}
|
|
250
262
|
/**
|
|
251
|
-
* Build a wire {@link
|
|
252
|
-
* {@link AstDocument} snapshot (the AST-typed envelope
|
|
253
|
-
*
|
|
254
|
-
* `ModelService.request` / `update` / `save`). Distinct from
|
|
263
|
+
* Build a wire {@link EncodedTransferDocument} envelope from a server-internal
|
|
264
|
+
* {@link AstDocument} snapshot (the AST-typed envelope `ModelService`'s
|
|
265
|
+
* events carry and its reads and session writes return). Distinct from
|
|
255
266
|
* {@link toTransferDocument}(`LangiumDocument`) which encodes against
|
|
256
267
|
* the live build artifact — adopter facade returns hold the snapshot
|
|
257
268
|
* directly, and this helper bridges that to the wire shape without a
|
|
258
269
|
* second `LangiumDocuments.getDocument` lookup.
|
|
259
270
|
*
|
|
260
271
|
* The `diagnostic` projection assumes the snapshot's diagnostics carry
|
|
261
|
-
* the `
|
|
272
|
+
* the `AstDiagnostic` shape ({@link Diagnostic} plus the
|
|
262
273
|
* framework validator's `element` / `property` decoration). Snapshots
|
|
263
274
|
* built from raw Langium diagnostics structurally satisfy this — the
|
|
264
275
|
* extra fields are optional in the projection.
|
|
@@ -274,7 +285,7 @@ export class TransferEncoder {
|
|
|
274
285
|
}
|
|
275
286
|
/**
|
|
276
287
|
* Project an LSP-shaped diagnostic (typically a
|
|
277
|
-
* {@link
|
|
288
|
+
* {@link AstDiagnostic} produced by
|
|
278
289
|
* `HydraniumDocumentValidator` — adds `element` + optional `property`
|
|
279
290
|
* to the standard {@link Diagnostic} shape) to the wire-diagnostic
|
|
280
291
|
* shape.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer-encoder.js","sourceRoot":"","sources":["../../../src/langium/transfer/transfer-encoder.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,kBAAkB,EAMpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAgB,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAwB,MAAM,oBAAoB,CAAC;AACxI,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"transfer-encoder.js","sourceRoot":"","sources":["../../../src/langium/transfer/transfer-encoder.ts"],"names":[],"mappings":"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"}
|