@hydranium/core 1.0.0-next.27 → 1.0.0-next.271
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 +64 -82
- package/lib/documents/ast-document-manager.d.ts +219 -122
- package/lib/documents/ast-document-manager.d.ts.map +1 -1
- package/lib/documents/ast-document-manager.js +242 -130
- 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 +86 -0
- package/lib/documents/dirty-state-tracker.d.ts.map +1 -0
- package/lib/documents/dirty-state-tracker.js +72 -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 +49 -0
- package/lib/documents/file-system-task-queue.d.ts.map +1 -0
- package/lib/documents/file-system-task-queue.js +34 -0
- package/lib/documents/file-system-task-queue.js.map +1 -0
- package/lib/documents/hydranium-text-documents.d.ts +401 -282
- package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
- package/lib/documents/hydranium-text-documents.js +827 -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 +218 -0
- package/lib/documents/language-client-shadow.d.ts.map +1 -0
- package/lib/documents/language-client-shadow.js +284 -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 +5 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -1
- package/lib/langium/ast-extension/ast-extension-service.d.ts +3 -0
- package/lib/langium/ast-extension/ast-extension-service.d.ts.map +1 -1
- package/lib/langium/ast-extension/ast-extension-service.js.map +1 -1
- package/lib/langium/ast-extension/ast-node-builder.d.ts +32 -9
- package/lib/langium/ast-extension/ast-node-builder.d.ts.map +1 -1
- package/lib/langium/ast-extension/ast-node-builder.js +60 -22
- package/lib/langium/ast-extension/ast-node-builder.js.map +1 -1
- package/lib/langium/bootstrap.d.ts +34 -25
- package/lib/langium/bootstrap.d.ts.map +1 -1
- package/lib/langium/bootstrap.js +77 -37
- package/lib/langium/bootstrap.js.map +1 -1
- package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts +1 -1
- 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.map +1 -1
- package/lib/langium/build-phase-pass/build-phase-pass.d.ts +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/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 +10 -3
- package/lib/langium/diagnostics/logger.d.ts.map +1 -1
- package/lib/langium/diagnostics/logger.js +12 -5
- 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 +58 -17
- 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 +32 -5
- 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 +309 -35
- package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
- package/lib/langium/document-builder/document-builder.js +511 -75
- 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 +61 -19
- package/lib/langium/integration-services.d.ts.map +1 -1
- package/lib/langium/integration-services.js +10 -5
- package/lib/langium/integration-services.js.map +1 -1
- package/lib/langium/integrity/integrity-rule.d.ts +16 -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 +83 -27
- package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
- package/lib/langium/integrity/integrity-service.js +273 -63
- package/lib/langium/integrity/integrity-service.js.map +1 -1
- package/lib/langium/keys/containment.d.ts +64 -0
- package/lib/langium/keys/containment.d.ts.map +1 -0
- package/lib/langium/keys/containment.js +53 -0
- package/lib/langium/keys/containment.js.map +1 -0
- package/lib/langium/keys/index.d.ts +1 -0
- package/lib/langium/keys/index.d.ts.map +1 -1
- package/lib/langium/keys/index.js +1 -0
- package/lib/langium/keys/index.js.map +1 -1
- package/lib/langium/keys/name-based-key-provider.d.ts +4 -0
- package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -1
- package/lib/langium/keys/name-based-key-provider.js +4 -0
- 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 +343 -0
- package/lib/langium/model-service/client-session.d.ts.map +1 -0
- package/lib/langium/model-service/client-session.js +428 -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 +61 -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 +433 -282
- package/lib/langium/model-service/model-service.d.ts.map +1 -1
- package/lib/langium/model-service/model-service.js +537 -441
- package/lib/langium/model-service/model-service.js.map +1 -1
- package/lib/langium/module.d.ts +151 -36
- package/lib/langium/module.d.ts.map +1 -1
- package/lib/langium/module.js +48 -36
- package/lib/langium/module.js.map +1 -1
- package/lib/langium/naming/name-provider.d.ts +27 -6
- package/lib/langium/naming/name-provider.d.ts.map +1 -1
- package/lib/langium/naming/name-provider.js +4 -3
- package/lib/langium/naming/name-provider.js.map +1 -1
- package/lib/langium/naming/name-separator-validation.d.ts +23 -1
- package/lib/langium/naming/name-separator-validation.d.ts.map +1 -1
- package/lib/langium/naming/name-separator-validation.js +22 -0
- package/lib/langium/naming/name-separator-validation.js.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 +35 -12
- package/lib/langium/residency/cst-residency-service.d.ts.map +1 -1
- package/lib/langium/residency/cst-residency-service.js +23 -57
- 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 +61 -24
- package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
- package/lib/langium/scope/hydranium-scope-provider.js +74 -35
- 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 +11 -20
- package/lib/langium/serialization/abstract-serializer.d.ts.map +1 -1
- package/lib/langium/serialization/abstract-serializer.js +12 -21
- package/lib/langium/serialization/abstract-serializer.js.map +1 -1
- package/lib/langium/serialization/json-serializer.d.ts +1 -1
- package/lib/langium/serialization/json-serializer.d.ts.map +1 -1
- 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.map +1 -1
- 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 +23 -6
- 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 +88 -36
- package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
- package/lib/langium/transfer/transfer-encoder.js +46 -24
- package/lib/langium/transfer/transfer-encoder.js.map +1 -1
- package/lib/langium/trivia/comment-preserver.d.ts +423 -0
- package/lib/langium/trivia/comment-preserver.d.ts.map +1 -0
- package/lib/langium/trivia/comment-preserver.js +906 -0
- package/lib/langium/trivia/comment-preserver.js.map +1 -0
- package/lib/langium/trivia/document-ending-preserver.d.ts +43 -0
- package/lib/langium/trivia/document-ending-preserver.d.ts.map +1 -0
- package/lib/langium/trivia/document-ending-preserver.js +48 -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 +50 -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 +280 -9
- package/lib/langium/validation/document-validator.d.ts.map +1 -1
- package/lib/langium/validation/document-validator.js +453 -8
- 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 +15 -10
- package/lib/langium/workspace/document-uri-policy.d.ts.map +1 -1
- package/lib/langium/workspace/document-uri-policy.js +7 -5
- 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 +147 -9
- package/lib/langium/workspace/file-system-provider.d.ts.map +1 -1
- package/lib/langium/workspace/file-system-provider.js +97 -14
- package/lib/langium/workspace/file-system-provider.js.map +1 -1
- package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +56 -1
- package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -1
- package/lib/langium/workspace/hydranium-langium-document-factory.js +79 -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 +82 -9
- package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -1
- package/lib/langium/workspace/hydranium-workspace-manager.js +129 -12
- package/lib/langium/workspace/hydranium-workspace-manager.js.map +1 -1
- package/lib/langium/workspace/in-memory-file-system-provider.d.ts +22 -7
- package/lib/langium/workspace/in-memory-file-system-provider.d.ts.map +1 -1
- package/lib/langium/workspace/in-memory-file-system-provider.js +36 -19
- 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 +31 -2
- package/lib/langium/workspace/initialize-workspace.d.ts.map +1 -1
- package/lib/langium/workspace/initialize-workspace.js +13 -5
- package/lib/langium/workspace/initialize-workspace.js.map +1 -1
- package/lib/langium/workspace/langium-documents.d.ts +37 -4
- package/lib/langium/workspace/langium-documents.d.ts.map +1 -1
- package/lib/langium/workspace/langium-documents.js +49 -4
- package/lib/langium/workspace/langium-documents.js.map +1 -1
- package/lib/langium/workspace/persistent-file-system-provider.d.ts +1 -8
- package/lib/langium/workspace/persistent-file-system-provider.d.ts.map +1 -1
- package/lib/langium/workspace/persistent-file-system-provider.js +2 -8
- 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 +48 -15
- package/lib/langium/workspace/virtual-document.d.ts.map +1 -1
- package/lib/langium/workspace/virtual-document.js +78 -18
- package/lib/langium/workspace/virtual-document.js.map +1 -1
- package/lib/langium/workspace/write-lock-scope.d.ts +20 -10
- package/lib/langium/workspace/write-lock-scope.d.ts.map +1 -1
- package/lib/langium/workspace/write-lock-scope.js +12 -4
- 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/index.d.ts +10 -0
- package/lib/locale/index.d.ts.map +1 -0
- package/lib/locale/index.js +10 -0
- package/lib/locale/index.js.map +1 -0
- package/lib/locale/server-locale.d.ts +73 -0
- package/lib/locale/server-locale.d.ts.map +1 -0
- package/lib/locale/server-locale.js +61 -0
- package/lib/locale/server-locale.js.map +1 -0
- 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 +92 -81
- package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -1
- package/lib/lsp/hydranium-document-update-handler.js +155 -101
- package/lib/lsp/hydranium-document-update-handler.js.map +1 -1
- package/lib/lsp/index.d.ts +3 -1
- package/lib/lsp/index.d.ts.map +1 -1
- package/lib/lsp/index.js +3 -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/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 +8 -7
- package/lib/lsp/start-language-server.d.ts.map +1 -1
- package/lib/lsp/start-language-server.js +13 -7
- package/lib/lsp/start-language-server.js.map +1 -1
- package/lib/messages/carriers.d.ts +18 -12
- package/lib/messages/carriers.d.ts.map +1 -1
- package/lib/messages/carriers.js +22 -13
- package/lib/messages/carriers.js.map +1 -1
- package/lib/messages/index.d.ts +4 -1
- package/lib/messages/index.d.ts.map +1 -1
- package/lib/messages/index.js +4 -1
- package/lib/messages/index.js.map +1 -1
- package/lib/messages/renderer.d.ts +142 -0
- package/lib/messages/renderer.d.ts.map +1 -0
- package/lib/messages/renderer.js +165 -0
- package/lib/messages/renderer.js.map +1 -0
- 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 +1 -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-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 +54 -9
- package/lib/node/node-file-system-provider.d.ts.map +1 -1
- package/lib/node/node-file-system-provider.js +141 -52
- 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 +20 -4
- package/lib/node/socket-launcher.d.ts.map +1 -1
- package/lib/node/socket-launcher.js +8 -7
- package/lib/node/socket-launcher.js.map +1 -1
- package/lib/node/stdio-launcher.d.ts +6 -5
- package/lib/node/stdio-launcher.d.ts.map +1 -1
- package/lib/node/stdio-launcher.js +13 -4
- 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 +16 -4
- package/lib/testing/fake-document.d.ts.map +1 -1
- package/lib/testing/fake-document.js +18 -3
- 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 +14 -0
- package/lib/testing/make-noop-shared-services.d.ts.map +1 -1
- package/lib/testing/make-noop-shared-services.js +28 -2
- package/lib/testing/make-noop-shared-services.js.map +1 -1
- package/lib/testing/make-test-services.d.ts +72 -14
- package/lib/testing/make-test-services.d.ts.map +1 -1
- package/lib/testing/make-test-services.js +42 -10
- 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 +115 -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 +12 -4
- package/lib/testing/node/lsp-server-connection.d.ts.map +1 -1
- package/lib/testing/node/lsp-server-connection.js +45 -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 +35 -8
- package/lib/testing/playwright/server-log-capture.d.ts.map +1 -1
- package/lib/testing/playwright/server-log-capture.js +39 -6
- 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 +10 -1
- package/lib/testing/playwright/server-log-rename-reporter.js.map +1 -1
- package/lib/testing/run-update-pipeline.d.ts +6 -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 +24 -65
- 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 +115 -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 +19 -6
- package/lib/util/connection-liveness.d.ts.map +1 -1
- package/lib/util/connection-liveness.js +61 -15
- package/lib/util/connection-liveness.js.map +1 -1
- package/lib/util/environment.d.ts.map +1 -1
- package/lib/util/environment.js.map +1 -1
- package/lib/util/registry.d.ts.map +1 -1
- package/package.json +29 -53
- package/src/documents/ast-document-manager.ts +383 -231
- 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 +140 -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 +68 -0
- package/src/documents/hydranium-text-documents.ts +944 -595
- package/src/documents/index.ts +10 -2
- package/src/documents/language-client-shadow.ts +452 -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 +8 -0
- package/src/langium/ast-extension/ast-extension-service.ts +3 -0
- package/src/langium/ast-extension/ast-node-builder.ts +66 -22
- package/src/langium/bootstrap.ts +77 -37
- package/src/langium/build-phase-pass/build-phase-pass-service.ts +1 -1
- package/src/langium/build-phase-pass/build-phase-pass.ts +1 -1
- 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/hydranium-langium-profiler.ts +15 -39
- package/src/langium/diagnostics/log-preamble.ts +1 -1
- package/src/langium/diagnostics/logger.ts +12 -5
- package/src/langium/diagnostics/lsp-logger.ts +61 -16
- package/src/langium/document-builder/build-pipeline-integration.ts +50 -5
- package/src/langium/document-builder/build-session.ts +4 -3
- package/src/langium/document-builder/document-builder.ts +616 -73
- package/src/langium/integration-services.ts +83 -24
- package/src/langium/integrity/integrity-rule.ts +16 -8
- package/src/langium/integrity/integrity-service.ts +296 -69
- package/src/langium/keys/containment.ts +87 -0
- package/src/langium/keys/index.ts +1 -0
- package/src/langium/keys/name-based-key-provider.ts +4 -0
- package/src/langium/language-module.ts +49 -8
- package/src/langium/model-service/client-session.ts +661 -0
- package/src/langium/model-service/index.ts +2 -0
- package/src/langium/model-service/model-events.ts +75 -0
- package/src/langium/model-service/model-service.ts +824 -471
- package/src/langium/module.ts +201 -66
- package/src/langium/naming/name-provider.ts +29 -7
- package/src/langium/naming/name-separator-validation.ts +25 -3
- 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 +50 -16
- 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 +89 -38
- 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 +13 -32
- package/src/langium/serialization/serializer.ts +1 -1
- package/src/langium/service-registry.ts +41 -2
- package/src/langium/shared-services.ts +26 -6
- package/src/langium/single-langium-copy.ts +42 -0
- package/src/langium/transfer/transfer-encoder.ts +115 -47
- package/src/langium/trivia/comment-preserver.ts +1100 -0
- package/src/langium/trivia/document-ending-preserver.ts +55 -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 +54 -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 +528 -13
- package/src/langium/validation/validation-contribution-collector.ts +10 -1
- package/src/langium/workspace/document-uri-policy.ts +15 -10
- package/src/langium/workspace/file-not-found.ts +35 -0
- package/src/langium/workspace/file-system-provider.ts +221 -17
- package/src/langium/workspace/hydranium-langium-document-factory.ts +117 -0
- package/src/langium/workspace/hydranium-workspace-lock.ts +86 -2
- package/src/langium/workspace/hydranium-workspace-manager.ts +155 -16
- package/src/langium/workspace/in-memory-file-system-provider.ts +41 -20
- package/src/langium/workspace/index.ts +1 -0
- package/src/langium/workspace/initialize-workspace.ts +43 -5
- package/src/langium/workspace/langium-documents.ts +63 -5
- package/src/langium/workspace/persistent-file-system-provider.ts +3 -9
- package/src/langium/workspace/self-save-registry.ts +118 -0
- package/src/langium/workspace/virtual-document.ts +96 -19
- package/src/langium/workspace/write-lock-scope.ts +24 -11
- package/src/launcher/integrated-server.ts +3 -1
- package/src/locale/index.ts +10 -0
- package/src/locale/server-locale.ts +86 -0
- 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 +197 -110
- package/src/lsp/index.ts +3 -1
- package/src/lsp/lsp-latency.ts +62 -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 +13 -7
- package/src/messages/carriers.ts +23 -15
- package/src/messages/index.ts +13 -1
- package/src/messages/renderer.ts +212 -0
- package/src/node/event-loop-monitor.ts +2 -1
- package/src/node/heap-ceiling.ts +108 -0
- package/src/node/index.ts +1 -1
- package/src/node/latency-from-env.ts +1 -1
- 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 +157 -56
- 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 +27 -11
- package/src/node/stdio-launcher.ts +18 -9
- package/src/testing/document-uri-policy-conformance.ts +1 -1
- package/src/testing/fake-document.ts +24 -5
- package/src/testing/index.ts +2 -1
- package/src/testing/langium-test-helpers.ts +1 -0
- package/src/testing/make-noop-shared-services.ts +50 -2
- package/src/testing/make-test-services.ts +125 -31
- package/src/testing/make-test-tracer.ts +26 -0
- package/src/testing/node/applied-edit-capture.ts +139 -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 +74 -117
- 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 +63 -11
- 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 +12 -1
- package/src/testing/run-update-pipeline.ts +6 -5
- package/src/testing/stub-ast-document-manager.ts +36 -138
- package/src/testing/stub-document-builder.ts +133 -18
- package/src/testing/stub-hydranium-text-documents.ts +165 -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 +67 -15
- package/src/util/environment.ts +9 -1
- 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
|
@@ -8,10 +8,12 @@
|
|
|
8
8
|
********************************************************************************/
|
|
9
9
|
|
|
10
10
|
import {
|
|
11
|
+
asModelVersion,
|
|
12
|
+
hasMessageIdentity,
|
|
13
|
+
type TransferModelSnapshot,
|
|
11
14
|
type Tracer,
|
|
12
15
|
type TransferDiagnostic,
|
|
13
16
|
type TransferElement,
|
|
14
|
-
type TransferDocument,
|
|
15
17
|
type TransferTypeFor
|
|
16
18
|
} from '@hydranium/protocol';
|
|
17
19
|
import { AstUtils, type AstNode, DocumentCache, DocumentState, isAstNode, isReference, type LangiumDocument } from '@hydranium/langium';
|
|
@@ -19,7 +21,7 @@ import { Diagnostic, DiagnosticSeverity } from 'vscode-languageserver-protocol';
|
|
|
19
21
|
import { type AstDocument } from '../../documents/ast-document-manager.js';
|
|
20
22
|
import { type LogNameOptions } from '../diagnostics/logger.js';
|
|
21
23
|
import { type ServerSharedServicesMinimal } from '../shared-services.js';
|
|
22
|
-
import { type
|
|
24
|
+
import { type AstDiagnostic } from '../validation/document-validator.js';
|
|
23
25
|
|
|
24
26
|
/**
|
|
25
27
|
* Which set of properties {@link TransferEncoder.toTransfer} emits.
|
|
@@ -28,26 +30,29 @@ import { type TransferLspDiagnostic } from '../validation/document-validator.js'
|
|
|
28
30
|
* including AST-extension-derived computed scalars and synthetic child
|
|
29
31
|
* mirrors. This is the wire shape clients consume, and the default.
|
|
30
32
|
* - `'grammar'` — only the grammar-declared properties, per
|
|
31
|
-
* `AstReflection.getTypeMetaData($type).properties
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
33
|
+
* `AstReflection.getTypeMetaData($type).properties`, each carrying the
|
|
34
|
+
* node's own authored value. Excludes every computed / synthetic property
|
|
35
|
+
* by construction (no naming convention, no registration) and bypasses the
|
|
36
|
+
* `resolvePropertyValue` substitution hook, so neither a computed KEY nor a
|
|
37
|
+
* computed VALUE can reach this shape. Yields the authored state a
|
|
38
|
+
* serializer round-trips — a diffable, acyclic baseline for field-level
|
|
39
|
+
* recording / forward-write reconcile.
|
|
36
40
|
*/
|
|
37
41
|
export type TransferMode = 'full' | 'grammar';
|
|
38
42
|
|
|
39
43
|
/**
|
|
40
44
|
* Per-encode inputs threaded through the {@link TransferEncoder} walk and its
|
|
41
45
|
* hooks. Created once per encode entry (see
|
|
42
|
-
* {@link
|
|
43
|
-
* the recursion, so every hook invocation of one encode observes the
|
|
44
|
-
* inputs — unlike instance state, which two interleaving encodes would
|
|
46
|
+
* {@link DefaultTransferEncoder.createEncodeContext}) and passed unchanged
|
|
47
|
+
* through the recursion, so every hook invocation of one encode observes the
|
|
48
|
+
* same inputs — unlike instance state, which two interleaving encodes would
|
|
45
49
|
* clobber.
|
|
46
50
|
*
|
|
47
51
|
* Adopters widen the context by overriding `createEncodeContext` with a
|
|
48
52
|
* covariant return type and narrowing the hook parameter types accordingly
|
|
49
53
|
* (TypeScript method bivariance admits the narrowing). An input that changes
|
|
50
|
-
* the encoded output must also be folded into
|
|
54
|
+
* the encoded output must also be folded into
|
|
55
|
+
* {@link DefaultTransferEncoder.rootCacheKey}.
|
|
51
56
|
*/
|
|
52
57
|
export interface EncodeContext {
|
|
53
58
|
/** Property-set selection for this encode — see {@link TransferMode}. */
|
|
@@ -62,21 +67,62 @@ export interface EncodeContext {
|
|
|
62
67
|
}
|
|
63
68
|
|
|
64
69
|
/**
|
|
65
|
-
* The non-root inputs {@link
|
|
66
|
-
* build a wire envelope. Both of the encoder's document paths narrow
|
|
67
|
-
* before assembling — a built `LangiumDocument` (whose `uri` /
|
|
68
|
-
* its `textDocument`) and a server-internal `AstDocument`
|
|
69
|
-
* satisfies the shape structurally — so the assembly seam has
|
|
70
|
-
* implementation to override.
|
|
70
|
+
* The non-root inputs {@link DefaultTransferEncoder.assembleTransferDocument}
|
|
71
|
+
* needs to build a wire envelope. Both of the encoder's document paths narrow
|
|
72
|
+
* to this before assembling — a built `LangiumDocument` (whose `uri` /
|
|
73
|
+
* `version` live on its `textDocument`) and a server-internal `AstDocument`
|
|
74
|
+
* snapshot, which satisfies the shape structurally — so the assembly seam has
|
|
75
|
+
* exactly one implementation to override.
|
|
71
76
|
*
|
|
72
77
|
* `diagnostics` accepts either the wire shape (an already-projected
|
|
73
78
|
* `TDiagnostic`, as a snapshot may carry) or a raw LSP {@link Diagnostic}; the
|
|
74
79
|
* assembly projects each through {@link TransferEncoder.toTransferDiagnostic}.
|
|
80
|
+
* Absent for a document not validated yet, and left absent on the wire.
|
|
75
81
|
*/
|
|
76
82
|
export interface TransferEnvelopeSource<TDiagnostic> {
|
|
77
83
|
readonly uri: string;
|
|
78
84
|
readonly version: number;
|
|
79
|
-
readonly diagnostics
|
|
85
|
+
readonly diagnostics?: readonly (TDiagnostic | Diagnostic)[];
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* A `TransferDocument` as the encoder produces it: the model block without
|
|
90
|
+
* its `hash`, which the data server computes from the encoded model.
|
|
91
|
+
*/
|
|
92
|
+
export interface EncodedTransferDocument<TTransfer extends TransferElement, TDiagnostic = TransferDiagnostic> {
|
|
93
|
+
uri: string;
|
|
94
|
+
model: Omit<TransferModelSnapshot<TTransfer, TDiagnostic>, 'hash'>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* The AST→transfer contract a DI slot holds, implemented by
|
|
99
|
+
* {@link DefaultTransferEncoder}.
|
|
100
|
+
*
|
|
101
|
+
* **This is an interface and not the class, and that is load-bearing.** A class
|
|
102
|
+
* in a slot drags its `protected` members into every assignability check, which
|
|
103
|
+
* TypeScript compares NOMINALLY — so the slot type could not be satisfied by a
|
|
104
|
+
* subclass declared against a second physical copy of this package, and an
|
|
105
|
+
* adopter narrowing the slot had to intersect with the framework's declaration
|
|
106
|
+
* rather than replace it, leaving method resolution dependent on declaration
|
|
107
|
+
* order. An interface has no protected members and is compared structurally, so
|
|
108
|
+
* neither applies.
|
|
109
|
+
*
|
|
110
|
+
* **The transfer returns are the structural base ({@link TransferElement}), not
|
|
111
|
+
* the per-grammar overlay.** The overlay cannot parameterise this contract:
|
|
112
|
+
* `TransferTypeFor` reaches `keyof TTransferMap`, which makes that parameter
|
|
113
|
+
* measured-INVARIANT, and invariant parameters relate only when their arguments
|
|
114
|
+
* are mutually assignable — so a map-parameterised contract admits no adopter
|
|
115
|
+
* instantiation at all. Heads read this contract and do not know adopter maps;
|
|
116
|
+
* an adopter recovers the precise type by declaring its own slot, which it can
|
|
117
|
+
* now do by replacement.
|
|
118
|
+
*/
|
|
119
|
+
export interface TransferEncoder<TDiagnostic extends TransferDiagnostic = TransferDiagnostic> {
|
|
120
|
+
toTransfer<T extends AstNode>(ast: T, mode?: TransferMode): TransferElement;
|
|
121
|
+
toTransferDocument(langiumDocument: LangiumDocument): EncodedTransferDocument<TransferElement, TDiagnostic>;
|
|
122
|
+
astDocumentToTransferDocument<TAst extends AstNode>(
|
|
123
|
+
document: AstDocument<TAst, AstDiagnostic>
|
|
124
|
+
): EncodedTransferDocument<TransferElement, TDiagnostic>;
|
|
125
|
+
toTransferDiagnostic(diagnostic: AstDiagnostic): TDiagnostic;
|
|
80
126
|
}
|
|
81
127
|
|
|
82
128
|
/**
|
|
@@ -112,18 +158,19 @@ export interface TransferEnvelopeSource<TDiagnostic> {
|
|
|
112
158
|
* - {@link propertyKeys} — which property names the walk visits.
|
|
113
159
|
* - {@link shouldEmitProperty} — per-key filter on top of the default
|
|
114
160
|
* `$`-internals strip.
|
|
115
|
-
* - {@link resolvePropertyValue} — value substitution per property
|
|
161
|
+
* - {@link resolvePropertyValue} — value substitution per property, `'full'`
|
|
162
|
+
* mode only (see there for why `'grammar'` bypasses it).
|
|
116
163
|
* - {@link finalizeTransferNode} — post-decoration per encoded node.
|
|
117
164
|
* - {@link toTransferValue} — recursion seam per property value. Override
|
|
118
165
|
* to special-case reference encoding or to drop specific value shapes.
|
|
119
166
|
* Envelope-level seams:
|
|
120
167
|
* - {@link toTransferDocument} — bundle root + diagnostics into the wire
|
|
121
|
-
* {@link
|
|
168
|
+
* {@link EncodedTransferDocument} envelope. Override to filter / merge
|
|
122
169
|
* diagnostics from auxiliary sources or to project a synthesised root.
|
|
123
|
-
* - {@link toTransferDiagnostic} — project a {@link
|
|
170
|
+
* - {@link toTransferDiagnostic} — project a {@link AstDiagnostic}
|
|
124
171
|
* (the framework validator's output) to {@link TDiagnostic}.
|
|
125
172
|
*/
|
|
126
|
-
export class
|
|
173
|
+
export class DefaultTransferEncoder<
|
|
127
174
|
// The map is intentionally unconstrained — adopters supply typed
|
|
128
175
|
// overlays whose specific-key shapes don't structurally satisfy a
|
|
129
176
|
// `Record<string, TransferElement>` index signature. `TransferTypeFor`
|
|
@@ -226,7 +273,14 @@ export class TransferEncoder<
|
|
|
226
273
|
if (!this.shouldEmitProperty(ast, key, context)) {
|
|
227
274
|
continue;
|
|
228
275
|
}
|
|
229
|
-
|
|
276
|
+
// `'grammar'` reads the authored value straight off the node rather than
|
|
277
|
+
// through `resolvePropertyValue`. The mode promises a shape the serializer
|
|
278
|
+
// round-trips, and a value-substitution hook cannot honour that: what it
|
|
279
|
+
// returns is by construction not what the document declared. Scoping the
|
|
280
|
+
// hook to `'full'` is what makes that guarantee structural instead of a
|
|
281
|
+
// rule every override has to remember.
|
|
282
|
+
const value =
|
|
283
|
+
context.mode === 'grammar' ? (ast as unknown as Record<string, unknown>)[key] : this.resolvePropertyValue(ast, key, context);
|
|
230
284
|
// `'grammar'` lists every declared property, including those absent on
|
|
231
285
|
// this node; skip the absent ones. (`'full'` enumerates only own
|
|
232
286
|
// properties, so absent properties never surface there.) Part of the
|
|
@@ -267,8 +321,17 @@ export class TransferEncoder<
|
|
|
267
321
|
}
|
|
268
322
|
|
|
269
323
|
/**
|
|
270
|
-
* Which value the walk emits under `key
|
|
271
|
-
*
|
|
324
|
+
* Which value the walk emits under `key`, in `'full'` mode ONLY. Default:
|
|
325
|
+
* the node's own value.
|
|
326
|
+
*
|
|
327
|
+
* Override to substitute a derived value under a grammar property name — an
|
|
328
|
+
* inheritance-resolved field, a preference-dependent label. `'grammar'`
|
|
329
|
+
* bypasses this hook and reads the node directly: that mode's contract is
|
|
330
|
+
* the authored state a serializer round-trips, and a substituted value is by
|
|
331
|
+
* construction not the one the document declared. An override that applied
|
|
332
|
+
* in both modes would leave the grammar shape carrying derived values under
|
|
333
|
+
* declared property names — diffable and acyclic still, but no longer
|
|
334
|
+
* authored, which is the property every consumer of that mode relies on.
|
|
272
335
|
*/
|
|
273
336
|
protected resolvePropertyValue(ast: AstNode, key: string, _context: EncodeContext): unknown {
|
|
274
337
|
return (ast as unknown as Record<string, unknown>)[key];
|
|
@@ -285,7 +348,7 @@ export class TransferEncoder<
|
|
|
285
348
|
}
|
|
286
349
|
|
|
287
350
|
/**
|
|
288
|
-
* Build a wire {@link
|
|
351
|
+
* Build a wire {@link EncodedTransferDocument} envelope from a built
|
|
289
352
|
* {@link LangiumDocument}. The `'full'` root is served from the internal
|
|
290
353
|
* {@link rootCache} (memoised per document until it next rebuilds), under
|
|
291
354
|
* {@link rootCacheKey} — so the data-server's fingerprint and emitted
|
|
@@ -309,7 +372,7 @@ export class TransferEncoder<
|
|
|
309
372
|
*/
|
|
310
373
|
toTransferDocument<TAst extends AstNode>(
|
|
311
374
|
langiumDocument: LangiumDocument
|
|
312
|
-
):
|
|
375
|
+
): EncodedTransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic> {
|
|
313
376
|
const context = this.createEncodeContext('full', langiumDocument.uri.toString());
|
|
314
377
|
const root = this.rootCache.get(langiumDocument.uri, this.rootCacheKey(context), () =>
|
|
315
378
|
this.encodeNode(langiumDocument.parseResult.value, context)
|
|
@@ -317,8 +380,8 @@ export class TransferEncoder<
|
|
|
317
380
|
return this.assembleTransferDocument<TAst>(
|
|
318
381
|
{
|
|
319
382
|
uri: langiumDocument.textDocument.uri,
|
|
320
|
-
version: langiumDocument.
|
|
321
|
-
diagnostics: langiumDocument.diagnostics
|
|
383
|
+
version: this.services.workspace.ModelLedger.versionOf(langiumDocument.parseResult.value),
|
|
384
|
+
diagnostics: langiumDocument.diagnostics
|
|
322
385
|
},
|
|
323
386
|
root
|
|
324
387
|
);
|
|
@@ -339,27 +402,22 @@ export class TransferEncoder<
|
|
|
339
402
|
protected assembleTransferDocument<TAst extends AstNode>(
|
|
340
403
|
source: TransferEnvelopeSource<TDiagnostic>,
|
|
341
404
|
root: TransferTypeFor<TAst, TTransferMap>
|
|
342
|
-
):
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
version: source.version,
|
|
346
|
-
root,
|
|
347
|
-
diagnostics: source.diagnostics.map(diagnostic => this.toTransferDiagnostic(diagnostic as TransferLspDiagnostic))
|
|
348
|
-
};
|
|
405
|
+
): EncodedTransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic> {
|
|
406
|
+
const diagnostics = source.diagnostics?.map(diagnostic => this.toTransferDiagnostic(diagnostic as AstDiagnostic));
|
|
407
|
+
return { uri: source.uri, model: { root, version: asModelVersion(source.version), ...(diagnostics ? { diagnostics } : {}) } };
|
|
349
408
|
}
|
|
350
409
|
|
|
351
410
|
/**
|
|
352
|
-
* Build a wire {@link
|
|
353
|
-
* {@link AstDocument} snapshot (the AST-typed envelope
|
|
354
|
-
*
|
|
355
|
-
* `ModelService.request` / `update` / `save`). Distinct from
|
|
411
|
+
* Build a wire {@link EncodedTransferDocument} envelope from a server-internal
|
|
412
|
+
* {@link AstDocument} snapshot (the AST-typed envelope `ModelService`'s
|
|
413
|
+
* events carry and its reads and session writes return). Distinct from
|
|
356
414
|
* {@link toTransferDocument}(`LangiumDocument`) which encodes against
|
|
357
415
|
* the live build artifact — adopter facade returns hold the snapshot
|
|
358
416
|
* directly, and this helper bridges that to the wire shape without a
|
|
359
417
|
* second `LangiumDocuments.getDocument` lookup.
|
|
360
418
|
*
|
|
361
419
|
* The `diagnostic` projection assumes the snapshot's diagnostics carry
|
|
362
|
-
* the `
|
|
420
|
+
* the `AstDiagnostic` shape ({@link Diagnostic} plus the
|
|
363
421
|
* framework validator's `element` / `property` decoration). Snapshots
|
|
364
422
|
* built from raw Langium diagnostics structurally satisfy this — the
|
|
365
423
|
* extra fields are optional in the projection.
|
|
@@ -370,15 +428,15 @@ export class TransferEncoder<
|
|
|
370
428
|
* assembly seam rather than duplicating it.
|
|
371
429
|
*/
|
|
372
430
|
astDocumentToTransferDocument<TAst extends AstNode>(
|
|
373
|
-
document: AstDocument<TAst,
|
|
374
|
-
):
|
|
431
|
+
document: AstDocument<TAst, AstDiagnostic>
|
|
432
|
+
): EncodedTransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic> {
|
|
375
433
|
const root = this.encodeNode(document.root, this.createEncodeContext('full', document.uri)) as TransferTypeFor<TAst, TTransferMap>;
|
|
376
434
|
return this.assembleTransferDocument<TAst>(document, root);
|
|
377
435
|
}
|
|
378
436
|
|
|
379
437
|
/**
|
|
380
438
|
* Project an LSP-shaped diagnostic (typically a
|
|
381
|
-
* {@link
|
|
439
|
+
* {@link AstDiagnostic} produced by
|
|
382
440
|
* `HydraniumDocumentValidator` — adds `element` + optional `property`
|
|
383
441
|
* to the standard {@link Diagnostic} shape) to the wire-diagnostic
|
|
384
442
|
* shape.
|
|
@@ -387,15 +445,24 @@ export class TransferEncoder<
|
|
|
387
445
|
* LSP severity enum to the wire string union, discriminates the
|
|
388
446
|
* diagnostic type from Langium's `data.code` (`'lexing-error'` /
|
|
389
447
|
* `'parsing-error'` else `'validation-error'`), passes through
|
|
390
|
-
* message / element / property / code
|
|
448
|
+
* message / element / property / code, and lifts the framework message
|
|
449
|
+
* params out of `data` so a translating surface can render a
|
|
450
|
+
* parameterised diagnostic rather than a template with its placeholders
|
|
451
|
+
* left standing. Adopters whose validator
|
|
391
452
|
* doesn't decorate diagnostics with `element` still get a valid
|
|
392
453
|
* `TransferDiagnostic` — the field falls back to `''`.
|
|
393
454
|
*
|
|
394
455
|
* Override only if the wire-diagnostic shape needs fields beyond
|
|
395
456
|
* what {@link TransferDiagnostic} carries.
|
|
396
457
|
*/
|
|
397
|
-
toTransferDiagnostic(diagnostic:
|
|
458
|
+
toTransferDiagnostic(diagnostic: AstDiagnostic): TDiagnostic {
|
|
398
459
|
const langiumCode = (diagnostic.data as { code?: string } | undefined)?.code;
|
|
460
|
+
// The same `data` the Langium code comes out of also carries the framework
|
|
461
|
+
// message identity, under its own key so the two conventions co-exist.
|
|
462
|
+
// Taking the params from there rather than from `code` is what lets a
|
|
463
|
+
// translating surface render a PARAMETERISED diagnostic: `code` survives on
|
|
464
|
+
// its own and yields a template with its placeholders left standing.
|
|
465
|
+
const identity = hasMessageIdentity(diagnostic.data) ? diagnostic.data.hydranium : undefined;
|
|
399
466
|
const result: TransferDiagnostic = {
|
|
400
467
|
type: langiumCode === 'lexing-error' ? 'lexing-error' : langiumCode === 'parsing-error' ? 'parsing-error' : 'validation-error',
|
|
401
468
|
element: diagnostic.element ?? '',
|
|
@@ -408,7 +475,8 @@ export class TransferEncoder<
|
|
|
408
475
|
: diagnostic.severity === DiagnosticSeverity.Warning
|
|
409
476
|
? 'warning'
|
|
410
477
|
: 'info',
|
|
411
|
-
code: typeof diagnostic.code === 'number' || typeof diagnostic.code === 'string' ? diagnostic.code : langiumCode
|
|
478
|
+
code: typeof diagnostic.code === 'number' || typeof diagnostic.code === 'string' ? diagnostic.code : langiumCode,
|
|
479
|
+
params: identity?.params
|
|
412
480
|
};
|
|
413
481
|
return result as TDiagnostic;
|
|
414
482
|
}
|