@hydranium/core 1.0.0-next.34 → 1.0.0-next.340
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 +445 -282
- package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
- package/lib/documents/hydranium-text-documents.js +903 -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 +25 -0
- package/lib/langium/diagnostics/lsp-logger.d.ts.map +1 -1
- package/lib/langium/diagnostics/lsp-logger.js +81 -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 +449 -79
- 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 +66 -26
- package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
- package/lib/langium/scope/hydranium-scope-provider.js +114 -33
- 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 +543 -0
- package/lib/langium/trivia/comment-preserver.d.ts.map +1 -0
- package/lib/langium/trivia/comment-preserver.js +1164 -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 +264 -26
- 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/edit-requests-guard.d.ts +31 -0
- package/lib/lsp/edit-requests-guard.d.ts.map +1 -0
- package/lib/lsp/edit-requests-guard.js +125 -0
- package/lib/lsp/edit-requests-guard.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 +6 -2
- package/lib/lsp/index.d.ts.map +1 -1
- package/lib/lsp/index.js +6 -2
- 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 +58 -2
- package/lib/lsp/semantic-token-provider.d.ts.map +1 -1
- package/lib/lsp/semantic-token-provider.js +98 -9
- 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 +12 -7
- package/lib/lsp/start-language-server.d.ts.map +1 -1
- package/lib/lsp/start-language-server.js +21 -7
- package/lib/lsp/start-language-server.js.map +1 -1
- package/lib/messages/carriers.d.ts +4 -6
- package/lib/messages/carriers.d.ts.map +1 -1
- package/lib/messages/carriers.js +4 -6
- 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/node/validate-workspace.d.ts +1 -1
- package/lib/node/validate-workspace.d.ts.map +1 -1
- package/lib/node/validate-workspace.js +5 -1
- package/lib/node/validate-workspace.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 +41 -60
- 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 +1029 -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 +83 -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 +554 -79
- 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 +132 -33
- 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 +1409 -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 +312 -31
- 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/edit-requests-guard.ts +152 -0
- package/src/lsp/hydranium-document-update-handler.ts +285 -111
- package/src/lsp/index.ts +6 -2
- package/src/lsp/lsp-latency.ts +62 -0
- package/src/lsp/save-text-document.ts +63 -0
- package/src/lsp/semantic-token-provider.ts +146 -8
- package/src/lsp/shared-module.ts +4 -8
- package/src/lsp/start-language-server.ts +21 -7
- package/src/messages/carriers.ts +4 -6
- 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/node/validate-workspace.ts +8 -2
- 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":"fake-document.js","sourceRoot":"","sources":["../../src/testing/fake-document.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,aAAa,EAA0D,QAAQ,EAAY,MAAM,oBAAoB,CAAC;AAC/H,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"fake-document.js","sourceRoot":"","sources":["../../src/testing/fake-document.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,aAAa,EAA0D,QAAQ,EAAY,MAAM,oBAAoB,CAAC;AAC/H,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAG5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,eAAe,CAC5B,IAAiD,EACjD,UAA0B;IAE1B,IAAI,CAAC,UAAU,EAAE,CAAC;QACf,OAAO,IAAuB,CAAC;IAClC,CAAC;IACD,OAAO,YAAY,CAAO,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AA+BD;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,IAAa;IACrC,IAAI,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,IAAwC,EAAE,KAAK,EAAE,CAAC,CAAC;IACtF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC7B,GAAiB,EACjB,IAAU,EACV,OAAO,GAA2C,EAAE;IAEpD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG;QACd,GAAG,EAAE,MAAM;QACX,WAAW,EAAE;YACV,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,EAAE;YACf,GAAG,OAAO,CAAC,WAAW;SACxB;QACD,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI;YACnC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE;YACtB,OAAO;YACP,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;SACrB;QACD,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAU;QACjD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,SAAS;KACb,CAAC;IACtC,0EAA0E;IAC1E,qEAAqE;IACrE,sEAAsE;IACtE,iCAAiC;IAChC,IAA8C,CAAC,SAAS,GAAG,QAAQ,CAAC;IACrE,OAAO,QAAQ,CAAC;AACnB,CAAC"}
|
package/lib/testing/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* builders, the snapshot and URI-policy conformance primitives, the
|
|
14
14
|
* structured-write pipeline driver, and a re-export of `langium/test`.
|
|
15
15
|
*
|
|
16
|
-
* Neutrality is gated (`scripts/check-neutral-bundles.
|
|
16
|
+
* Neutrality is gated (`scripts/check-neutral-bundles.mts`). The test support
|
|
17
17
|
* that needs a real filesystem or a Node stream transport — the scratch
|
|
18
18
|
* workspace, the golden corpus, the LSP transport and its harness — lives at
|
|
19
19
|
* `@hydranium/core/testing/node`, on the same rule the package surface uses:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,sCAAsC,CAAC;AACrD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,sCAAsC,CAAC;AACrD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC"}
|
package/lib/testing/index.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* builders, the snapshot and URI-policy conformance primitives, the
|
|
14
14
|
* structured-write pipeline driver, and a re-export of `langium/test`.
|
|
15
15
|
*
|
|
16
|
-
* Neutrality is gated (`scripts/check-neutral-bundles.
|
|
16
|
+
* Neutrality is gated (`scripts/check-neutral-bundles.mts`). The test support
|
|
17
17
|
* that needs a real filesystem or a Node stream transport — the scratch
|
|
18
18
|
* workspace, the golden corpus, the LSP transport and its harness — lives at
|
|
19
19
|
* `@hydranium/core/testing/node`, on the same rule the package surface uses:
|
|
@@ -24,6 +24,7 @@ export * from './document-uri-policy-conformance.js';
|
|
|
24
24
|
export * from './fake-description.js';
|
|
25
25
|
export * from './fake-document.js';
|
|
26
26
|
export * from './fake-reflection.js';
|
|
27
|
+
// oxlint-disable-next-line import/export -- misreads export * from an npm package: https://github.com/oxc-project/oxc/pull/26872
|
|
27
28
|
export * from './langium-test-helpers.js';
|
|
28
29
|
export * from './make-noop-language-services.js';
|
|
29
30
|
export * from './make-noop-shared-services.js';
|
package/lib/testing/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,sCAAsC,CAAC;AACrD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,sCAAsC,CAAC;AACrD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,iIAAiI;AACjI,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langium-test-helpers.d.ts","sourceRoot":"","sources":["../../src/testing/langium-test-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"langium-test-helpers.d.ts","sourceRoot":"","sources":["../../src/testing/langium-test-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,yBAAyB,CAAC"}
|
|
@@ -22,5 +22,6 @@
|
|
|
22
22
|
* contracts stays Langium upstream, so a rename there surfaces here rather than
|
|
23
23
|
* being absorbed by a hand-maintained list.
|
|
24
24
|
*/
|
|
25
|
+
// oxlint-disable-next-line import/export -- misreads export * from an npm package: https://github.com/oxc-project/oxc/pull/26872
|
|
25
26
|
export * from '@hydranium/langium/test';
|
|
26
27
|
//# sourceMappingURL=langium-test-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langium-test-helpers.js","sourceRoot":"","sources":["../../src/testing/langium-test-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;;GAeG;AACH,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"langium-test-helpers.js","sourceRoot":"","sources":["../../src/testing/langium-test-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;;GAeG;AACH,iIAAiI;AACjI,cAAc,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-noop-language-services.js","sourceRoot":"","sources":["../../src/testing/make-noop-language-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAGlF,OAAO,EAAE,sBAAsB,EAAoC,MAAM,gCAAgC,CAAC;AAiB1G;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"make-noop-language-services.js","sourceRoot":"","sources":["../../src/testing/make-noop-language-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAGlF,OAAO,EAAE,sBAAsB,EAAoC,MAAM,gCAAgC,CAAC;AAiB1G;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAS,GAAkC,EAAE;IACnF,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC;IACtC,OAAO;QACJ,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC;QACtC,GAAG,IAAI;KAC4B,CAAC;AAC1C,CAAC"}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
********************************************************************************/
|
|
9
9
|
import { type Clock, type Logger, type Tracer } from '@hydranium/protocol';
|
|
10
10
|
import type { ServerSharedServicesMinimal } from '../langium/shared-services.js';
|
|
11
|
-
import { ServerLocale } from '../locale/server-locale.js';
|
|
12
|
-
import {
|
|
11
|
+
import { type ServerLocale } from '../locale/server-locale.js';
|
|
12
|
+
import { type MessageRenderer } from '../messages/renderer.js';
|
|
13
13
|
/**
|
|
14
14
|
* Overrides for {@link makeNoopSharedServices}. The three observability slots
|
|
15
15
|
* are typed (they are the boilerplate this helper exists to default);
|
|
@@ -33,14 +33,14 @@ export interface NoopSharedServicesOverrides {
|
|
|
33
33
|
ServerLocale?: (services: ServerSharedServicesMinimal) => ServerLocale;
|
|
34
34
|
/**
|
|
35
35
|
* Factory for the `MessageRenderer` slot. Default: the real
|
|
36
|
-
* {@link
|
|
36
|
+
* {@link DefaultMessageRenderer}, whose no-catalogue behaviour is a
|
|
37
37
|
* pass-through — so the default is the framework's own behaviour, not a stub.
|
|
38
38
|
*
|
|
39
39
|
* A factory rather than an instance, because a renderer reads the tree it is
|
|
40
40
|
* bound into. Both slots are resolved lazily, so an override is honoured
|
|
41
41
|
* however late the caller reads them.
|
|
42
42
|
*/
|
|
43
|
-
MessageRenderer?: (services: ServerSharedServicesMinimal) =>
|
|
43
|
+
MessageRenderer?: (services: ServerSharedServicesMinimal) => MessageRenderer;
|
|
44
44
|
/** Per-slot `workspace` overrides. Slots left out resolve to `undefined`. */
|
|
45
45
|
workspace?: Record<string, unknown>;
|
|
46
46
|
/** Any other minimal slot (`ServiceRegistry`, `AstReflection`, `additionalDocuments`, …). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-noop-shared-services.d.ts","sourceRoot":"","sources":["../../src/testing/make-noop-shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,KAAK,EAAiB,KAAK,MAAM,EAA2B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"make-noop-shared-services.d.ts","sourceRoot":"","sources":["../../src/testing/make-noop-shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,KAAK,EAAiB,KAAK,MAAM,EAA2B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvF;;;;;;;GAOG;AACH,MAAM,WAAW,2BAA2B;IACzC,yEAAyE;IACzE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,2BAA2B,KAAK,YAAY,CAAC;IACvE;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,2BAA2B,KAAK,eAAe,CAAC;IAC7E,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,6FAA6F;IAC7F,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,2BAA2B,GAAG,2BAA2B,EACvG,SAAS,GAAE,2BAAgC,GAC3C,CAAC,CA8BH"}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
9
|
import { DefaultTracer, NoopLogger, SystemClock } from '@hydranium/protocol';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { DefaultServerLocale } from '../locale/server-locale.js';
|
|
11
|
+
import { DefaultMessageRenderer } from '../messages/renderer.js';
|
|
12
12
|
/**
|
|
13
13
|
* Build a {@link ServerSharedServicesMinimal} tree backed by no-op defaults for
|
|
14
14
|
* the observability slots every framework component reads (`Clock` / `Logger` /
|
|
@@ -52,8 +52,8 @@ export function makeNoopSharedServices(overrides = {}) {
|
|
|
52
52
|
// both services emit an `instantiated` trace, so building them eagerly puts
|
|
53
53
|
// two lines into the capture of every test that passes a capturing logger
|
|
54
54
|
// and asserts on emptiness.
|
|
55
|
-
defineLazySlot(services, 'ServerLocale', () => serverLocale?.(services) ?? new
|
|
56
|
-
defineLazySlot(services, 'MessageRenderer', () => messageRenderer?.(services) ?? new
|
|
55
|
+
defineLazySlot(services, 'ServerLocale', () => serverLocale?.(services) ?? new DefaultServerLocale(services));
|
|
56
|
+
defineLazySlot(services, 'MessageRenderer', () => messageRenderer?.(services) ?? new DefaultMessageRenderer(services));
|
|
57
57
|
return services;
|
|
58
58
|
}
|
|
59
59
|
/** Install `name` as a memoized getter, so nothing is constructed until it is read. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-noop-shared-services.js","sourceRoot":"","sources":["../../src/testing/make-noop-shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAc,aAAa,EAAe,UAAU,EAAE,WAAW,EAAe,MAAM,qBAAqB,CAAC;AAEnH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"make-noop-shared-services.js","sourceRoot":"","sources":["../../src/testing/make-noop-shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAc,aAAa,EAAe,UAAU,EAAE,WAAW,EAAe,MAAM,qBAAqB,CAAC;AAEnH,OAAO,EAAE,mBAAmB,EAAqB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAwB,MAAM,yBAAyB,CAAC;AAuCvF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,sBAAsB,CACnC,SAAS,GAAgC,EAAE;IAE3C,MAAM,EACH,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,SAAS,EACT,mBAAmB,EACnB,GAAG,OAAO,EACZ,GAAG,SAAS,CAAC;IACd,MAAM,aAAa,GAAG,KAAK,IAAI,IAAI,WAAW,EAAE,CAAC;IACjD,MAAM,cAAc,GAAG,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;IAClD,MAAM,cAAc,GAAG,MAAM,IAAI,IAAI,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAClF,8EAA8E;IAC9E,MAAM,QAAQ,GAAG;QACd,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,cAAc;QACtB,mBAAmB,EAAE,mBAAmB,IAAI,EAAE;QAC9C,GAAG,OAAO;QACV,SAAS,EAAE,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;KACrB,CAAC;IAClB,0EAA0E;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,4BAA4B;IAC5B,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9G,cAAc,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvH,OAAO,QAAQ,CAAC;AACnB,CAAC;AAED,uFAAuF;AACvF,SAAS,cAAc,CAAC,MAAc,EAAE,IAAY,EAAE,MAAqB;IACxE,IAAI,QAAiB,CAAC;IACtB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE;QACjC,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,GAAG,EAAE;YACP,IAAI,CAAC,KAAK,EAAE,CAAC;gBACV,QAAQ,GAAG,MAAM,EAAE,CAAC;gBACpB,KAAK,GAAG,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,QAAQ,CAAC;QACnB,CAAC;KACH,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -6,15 +6,21 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import { type Clock, type Logger, type Project, type Tracer, type TransferDiagnostic, type TransferElement } from '@hydranium/protocol';
|
|
10
|
-
import { ServerLocale } from '../locale/server-locale.js';
|
|
11
|
-
import {
|
|
9
|
+
import { type Clock, type Locale, type Logger, type Project, type Tracer, type TransferDiagnostic, type TransferElement } from '@hydranium/protocol';
|
|
10
|
+
import { type ServerLocale } from '../locale/server-locale.js';
|
|
11
|
+
import { type MessageRenderer } from '../messages/renderer.js';
|
|
12
12
|
import type { Harness } from '@hydranium/protocol/testing';
|
|
13
13
|
import { type AstNode, type AstNodeDescription, type WorkspaceLock } from '@hydranium/langium';
|
|
14
|
+
import { type ClientSessionFactory, type ClientSessionFactoryOptions } from '../langium/model-service/client-session.js';
|
|
14
15
|
import type { ModelService, ModelServiceOptions } from '../langium/model-service/model-service.js';
|
|
15
16
|
import type { ServerSharedServices } from '../langium/module.js';
|
|
16
|
-
import {
|
|
17
|
+
import type { AstDiagnostic } from '../langium/validation/document-validator.js';
|
|
18
|
+
import { type TransferEncoder } from '../langium/transfer/transfer-encoder.js';
|
|
17
19
|
import { type DocumentUriPolicy } from '../langium/workspace/document-uri-policy.js';
|
|
20
|
+
import { type FileSystemTaskQueue } from '../documents/file-system-task-queue.js';
|
|
21
|
+
import { type ModelLedger } from '../documents/model-ledger.js';
|
|
22
|
+
import { type DocumentReleaseHandler } from '../documents/document-release-handler.js';
|
|
23
|
+
import { type VersionSyncService } from '../documents/version-sync-service.js';
|
|
18
24
|
import type { FakeDocumentOptions } from './fake-document.js';
|
|
19
25
|
import { type StubDocumentBuilder } from './stub-document-builder.js';
|
|
20
26
|
import { type StubIndexManager } from './stub-index-manager.js';
|
|
@@ -34,8 +40,16 @@ import { type StubWritableFileSystem } from './stub-writable-file-system.js';
|
|
|
34
40
|
* to `ServerSharedServices` in {@link makeTestServices} is therefore the
|
|
35
41
|
* single named place where the "stub stands in for the full service tree"
|
|
36
42
|
* assertion happens.
|
|
43
|
+
*
|
|
44
|
+
* **`TDiagnostic` and `TTransferDiagnostic` are the two ends of a conversion
|
|
45
|
+
* and must stay separate.** The first is what the build left on
|
|
46
|
+
* `LangiumDocument.diagnostics` and what `ModelService` hands back on an
|
|
47
|
+
* `AstDocument`; the second is what `TransferEncoder.toTransferDiagnostic`
|
|
48
|
+
* produces for the wire. One parameter serving both makes the tree
|
|
49
|
+
* unbindable for an adopter who extends either shape, since extending one
|
|
50
|
+
* says nothing about the other.
|
|
37
51
|
*/
|
|
38
|
-
export interface TestSharedServices<TAst extends AstNode = AstNode, TDiagnostic extends
|
|
52
|
+
export interface TestSharedServices<TAst extends AstNode = AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project, TTransferDiagnostic extends TransferDiagnostic = TransferDiagnostic> {
|
|
39
53
|
readonly Clock: Clock;
|
|
40
54
|
readonly Logger: Logger;
|
|
41
55
|
readonly Tracer: Tracer;
|
|
@@ -55,6 +69,8 @@ export interface TestSharedServices<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
55
69
|
SelfSaveRegistry: StubSelfSaveRegistry;
|
|
56
70
|
ProjectManager: StubProjectManager<TProject>;
|
|
57
71
|
DocumentUriPolicy: DocumentUriPolicy;
|
|
72
|
+
/** The REAL queue: a stub that runs each task at once hides the save interleaving the queue exists to prevent. */
|
|
73
|
+
FileSystemTaskQueue: FileSystemTaskQueue;
|
|
58
74
|
/**
|
|
59
75
|
* Present only when {@link MakeTestServicesOptions.seedIndex} was passed.
|
|
60
76
|
* Omitted otherwise for the same reason as `ServiceRegistry` — see that
|
|
@@ -71,10 +87,17 @@ export interface TestSharedServices<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
71
87
|
* through this tree and let a reentrant write pass unnoticed.
|
|
72
88
|
*/
|
|
73
89
|
WorkspaceLock: WorkspaceLock;
|
|
90
|
+
/** The REAL ledger: it is a weak map with no dependencies. */
|
|
91
|
+
ModelLedger: ModelLedger;
|
|
92
|
+
/** The REAL service, over this tree's stubs; it reconciles nothing against the stub store. */
|
|
93
|
+
VersionSyncService: VersionSyncService;
|
|
94
|
+
/** The REAL handler, over this tree's stubs; the stub store releases nothing to it. */
|
|
95
|
+
DocumentReleaseHandler: DocumentReleaseHandler;
|
|
74
96
|
};
|
|
75
97
|
readonly model: {
|
|
76
|
-
TransferEncoder: TransferEncoder<
|
|
98
|
+
TransferEncoder: TransferEncoder<TTransferDiagnostic>;
|
|
77
99
|
ModelService: ModelService<TAst, TDiagnostic, TTransfer>;
|
|
100
|
+
ClientSessionFactory: ClientSessionFactory;
|
|
78
101
|
};
|
|
79
102
|
/**
|
|
80
103
|
* The REAL services, not stubs — the framework renderer's no-catalogue
|
|
@@ -84,10 +107,10 @@ export interface TestSharedServices<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
84
107
|
* `Validated` phase, where an omitted slot is a `TypeError`.
|
|
85
108
|
*/
|
|
86
109
|
readonly ServerLocale: ServerLocale;
|
|
87
|
-
readonly MessageRenderer:
|
|
110
|
+
readonly MessageRenderer: MessageRenderer;
|
|
88
111
|
}
|
|
89
112
|
/** Optional configuration for {@link makeTestServices}. */
|
|
90
|
-
export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagnostic extends
|
|
113
|
+
export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project, TTransferDiagnostic extends TransferDiagnostic = TransferDiagnostic> {
|
|
91
114
|
/**
|
|
92
115
|
* Serialiser used by the bundled `StubModelService`. The stub tree
|
|
93
116
|
* routes no per-language `Serializer` (the stub languages bind no-op slots),
|
|
@@ -103,9 +126,9 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
|
|
|
103
126
|
* passes every sentence through unchanged. Supply one to install a catalogue
|
|
104
127
|
* or to drive the throwing path.
|
|
105
128
|
*/
|
|
106
|
-
messageRenderer?: (services: ServerSharedServices<TProject>) =>
|
|
129
|
+
messageRenderer?: (services: ServerSharedServices<TProject>) => MessageRenderer;
|
|
107
130
|
/** Locale handed to the bundle's {@link ServerLocale}. Default: none, i.e. the framework's English. */
|
|
108
|
-
locale?:
|
|
131
|
+
locale?: Locale;
|
|
109
132
|
/**
|
|
110
133
|
* Languages to register on a {@link StubServiceRegistry} bound on the
|
|
111
134
|
* `ServiceRegistry` slot. This is how a test gets multi-language routing:
|
|
@@ -114,7 +137,7 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
|
|
|
114
137
|
*
|
|
115
138
|
* **Default: no `ServiceRegistry` slot at all.** Binding an empty registry
|
|
116
139
|
* by default would silently change behaviour for the tests that rely on the
|
|
117
|
-
* slot being absent — `
|
|
140
|
+
* slot being absent — `DefaultModelService.rewriteModel` optional-chains it
|
|
118
141
|
* precisely for those bundles — so a registry appears only when a test asks
|
|
119
142
|
* for one.
|
|
120
143
|
*/
|
|
@@ -172,16 +195,23 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
|
|
|
172
195
|
modelService?: (services: ServerSharedServices<TProject>) => ModelService<TAst, TDiagnostic, TTransfer>;
|
|
173
196
|
/**
|
|
174
197
|
* Framework {@link ModelServiceOptions} for the DEFAULT stub service, so a
|
|
175
|
-
* test can reach an option-gated path (`
|
|
176
|
-
*
|
|
177
|
-
*
|
|
198
|
+
* test can reach an option-gated path (`allowReentrantBuilds`) without supplying
|
|
199
|
+
* a whole {@link modelService} factory. Ignored when `modelService` is
|
|
200
|
+
* given — that factory owns its own construction.
|
|
178
201
|
*/
|
|
179
202
|
modelServiceOptions?: ModelServiceOptions;
|
|
203
|
+
/**
|
|
204
|
+
* Options of the {@link DefaultClientSessionFactory} bound on
|
|
205
|
+
* `model.ClientSessionFactory`, so a test can reach the slow-update warn.
|
|
206
|
+
* Its sessions serialise and rebuild through the `model.ModelService` slot,
|
|
207
|
+
* so a test of a model service subclass passes it as {@link modelService}.
|
|
208
|
+
*/
|
|
209
|
+
clientSessionFactoryOptions?: ClientSessionFactoryOptions;
|
|
180
210
|
/**
|
|
181
211
|
* Override the {@link TransferEncoder} factory. Default: framework
|
|
182
212
|
* {@link TransferEncoder} with no overrides.
|
|
183
213
|
*/
|
|
184
|
-
transferEncoder?: (services: ServerSharedServices<TProject>) => TransferEncoder<
|
|
214
|
+
transferEncoder?: (services: ServerSharedServices<TProject, TTransferDiagnostic>) => TransferEncoder<TTransferDiagnostic>;
|
|
185
215
|
}
|
|
186
216
|
/**
|
|
187
217
|
* Bundle returned by {@link makeTestServices}. Exposes the assembled
|
|
@@ -196,8 +226,8 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
|
|
|
196
226
|
* uniform teardown hook (a no-op: the stubs hold only in-memory state,
|
|
197
227
|
* released with the bundle when it goes out of scope).
|
|
198
228
|
*/
|
|
199
|
-
export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic extends
|
|
200
|
-
readonly services: ServerSharedServices<TProject>;
|
|
229
|
+
export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project, TTransferDiagnostic extends TransferDiagnostic = TransferDiagnostic> extends Harness {
|
|
230
|
+
readonly services: ServerSharedServices<TProject, TTransferDiagnostic>;
|
|
201
231
|
readonly documents: StubLangiumDocuments<TAst, TDiagnostic>;
|
|
202
232
|
readonly textDocuments: StubHydraniumTextDocuments;
|
|
203
233
|
readonly astDocumentManager: StubAstDocumentManager<TAst, TDiagnostic>;
|
|
@@ -206,6 +236,7 @@ export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
206
236
|
readonly selfSaveRegistry: StubSelfSaveRegistry;
|
|
207
237
|
readonly projectManager: StubProjectManager<TProject>;
|
|
208
238
|
readonly documentUriPolicy: DocumentUriPolicy;
|
|
239
|
+
readonly modelLedger: ModelLedger;
|
|
209
240
|
/**
|
|
210
241
|
* The registry bound on the `ServiceRegistry` slot, or `undefined` when no
|
|
211
242
|
* {@link MakeTestServicesOptions.languages} were declared.
|
|
@@ -217,7 +248,7 @@ export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
217
248
|
*/
|
|
218
249
|
readonly indexManager: StubIndexManager | undefined;
|
|
219
250
|
readonly modelService: ModelService<TAst, TDiagnostic, TTransfer>;
|
|
220
|
-
readonly transferEncoder: TransferEncoder<
|
|
251
|
+
readonly transferEncoder: TransferEncoder<TTransferDiagnostic>;
|
|
221
252
|
readonly logger: Logger;
|
|
222
253
|
/** The clock bound on the `Clock` slot — a `makeFakeClock()` if one was passed. */
|
|
223
254
|
readonly clock: Clock;
|
|
@@ -228,7 +259,7 @@ export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
228
259
|
*/
|
|
229
260
|
readonly serverLocale: ServerLocale;
|
|
230
261
|
/** The renderer bound on `MessageRenderer` — the framework's own unless one was supplied. */
|
|
231
|
-
readonly messageRenderer:
|
|
262
|
+
readonly messageRenderer: MessageRenderer;
|
|
232
263
|
}
|
|
233
264
|
/**
|
|
234
265
|
* Build a {@link ServerSharedServices} tree backed by the framework's
|
|
@@ -240,5 +271,5 @@ export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
240
271
|
* computation, etc.) should keep using `bootstrapLangium(...)` rather than
|
|
241
272
|
* this bundle.
|
|
242
273
|
*/
|
|
243
|
-
export declare function makeTestServices<TAst extends AstNode = AstNode, TDiagnostic extends
|
|
274
|
+
export declare function makeTestServices<TAst extends AstNode = AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project, TTransferDiagnostic extends TransferDiagnostic = TransferDiagnostic>(options?: MakeTestServicesOptions<TAst, TDiagnostic, TTransfer, TProject, TTransferDiagnostic>): TestServicesBundle<TAst, TDiagnostic, TTransfer, TProject, TTransferDiagnostic>;
|
|
244
275
|
//# sourceMappingURL=make-test-services.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-test-services.d.ts","sourceRoot":"","sources":["../../src/testing/make-test-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,KAAK,EAEV,KAAK,MAAM,EAEX,KAAK,OAAO,EAEZ,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"make-test-services.d.ts","sourceRoot":"","sources":["../../src/testing/make-test-services.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,16 @@
|
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
9
|
import { DefaultTracer, NoopLogger, SystemClock } from '@hydranium/protocol';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
10
|
+
import { DefaultServerLocale } from '../locale/server-locale.js';
|
|
11
|
+
import { DefaultMessageRenderer } from '../messages/renderer.js';
|
|
12
|
+
import { DefaultClientSessionFactory } from '../langium/model-service/client-session.js';
|
|
13
|
+
import { DefaultTransferEncoder } from '../langium/transfer/transfer-encoder.js';
|
|
13
14
|
import { DefaultDocumentUriPolicy } from '../langium/workspace/document-uri-policy.js';
|
|
14
15
|
import { HydraniumWorkspaceLock } from '../langium/workspace/hydranium-workspace-lock.js';
|
|
16
|
+
import { DefaultFileSystemTaskQueue } from '../documents/file-system-task-queue.js';
|
|
17
|
+
import { DefaultModelLedger } from '../documents/model-ledger.js';
|
|
18
|
+
import { DefaultDocumentReleaseHandler } from '../documents/document-release-handler.js';
|
|
19
|
+
import { DefaultVersionSyncService } from '../documents/version-sync-service.js';
|
|
15
20
|
import { makeStubDocumentBuilder } from './stub-document-builder.js';
|
|
16
21
|
import { makeStubIndexManager } from './stub-index-manager.js';
|
|
17
22
|
import { makeStubLangiumDocuments } from './stub-langium-documents.js';
|
|
@@ -35,14 +40,16 @@ import { makeStubWritableFileSystem } from './stub-writable-file-system.js';
|
|
|
35
40
|
export function makeTestServices(options = {}) {
|
|
36
41
|
const documents = makeStubLangiumDocuments(options.seedDocuments);
|
|
37
42
|
const textDocuments = makeStubHydraniumTextDocuments();
|
|
38
|
-
const documentBuilder = makeStubDocumentBuilder();
|
|
39
|
-
const selfSaveRegistry = makeStubSelfSaveRegistry();
|
|
40
|
-
const fileSystem = makeStubWritableFileSystem(selfSaveRegistry);
|
|
41
|
-
const projectManager = makeStubProjectManager(options.seedProjects);
|
|
42
|
-
const astDocumentManager = makeStubAstDocumentManager(textDocuments, fileSystem, documents);
|
|
43
43
|
const logger = options.logger ?? new NoopLogger();
|
|
44
44
|
const clock = options.clock ?? new SystemClock();
|
|
45
45
|
const tracer = new DefaultTracer(logger, clock);
|
|
46
|
+
const workspaceLock = new HydraniumWorkspaceLock({ Clock: clock, Tracer: tracer });
|
|
47
|
+
const documentBuilder = makeStubDocumentBuilder(workspaceLock);
|
|
48
|
+
const selfSaveRegistry = makeStubSelfSaveRegistry();
|
|
49
|
+
const fileSystem = makeStubWritableFileSystem(selfSaveRegistry);
|
|
50
|
+
const projectManager = makeStubProjectManager(options.seedProjects);
|
|
51
|
+
const modelLedger = new DefaultModelLedger();
|
|
52
|
+
const astDocumentManager = makeStubAstDocumentManager(textDocuments, fileSystem, documents, modelLedger);
|
|
46
53
|
const documentUriPolicy = options.documentUriPolicy ?? new DefaultDocumentUriPolicy();
|
|
47
54
|
const serviceRegistry = options.languages
|
|
48
55
|
? makeStubServiceRegistry(options.languages, { openLanguageIds: options.openLanguageIds })
|
|
@@ -64,7 +71,7 @@ export function makeTestServices(options = {}) {
|
|
|
64
71
|
// is dependency-free (as `HydraniumWorkspaceLock` is) — a no-op stub of a
|
|
65
72
|
// synchronisation primitive hides the very interleaving it exists to prevent.
|
|
66
73
|
//
|
|
67
|
-
// `model
|
|
74
|
+
// The `model` slots are populated below
|
|
68
75
|
// (after the factories run); the literal uses unsafe casts to
|
|
69
76
|
// partially-built objects to satisfy TestSharedServices, then patches
|
|
70
77
|
// them in.
|
|
@@ -88,7 +95,12 @@ export function makeTestServices(options = {}) {
|
|
|
88
95
|
// Spread for the same reason as `ServiceRegistry` above — the slot must
|
|
89
96
|
// be genuinely ABSENT, not present-and-undefined, when no index was seeded.
|
|
90
97
|
...(indexManager ? { IndexManager: indexManager } : {}),
|
|
91
|
-
WorkspaceLock:
|
|
98
|
+
WorkspaceLock: workspaceLock,
|
|
99
|
+
FileSystemTaskQueue: new DefaultFileSystemTaskQueue({ workspace: { DocumentUriPolicy: documentUriPolicy } }),
|
|
100
|
+
ModelLedger: modelLedger,
|
|
101
|
+
// Patched in below, as both read the tree they belong to.
|
|
102
|
+
VersionSyncService: {},
|
|
103
|
+
DocumentReleaseHandler: {}
|
|
92
104
|
},
|
|
93
105
|
model: {},
|
|
94
106
|
ServerLocale: {},
|
|
@@ -97,24 +109,27 @@ export function makeTestServices(options = {}) {
|
|
|
97
109
|
const sharedServices = services;
|
|
98
110
|
// Patched in after the literal, like `model` below: both read the tree they
|
|
99
111
|
// belong to, and the renderer reads the locale service.
|
|
112
|
+
services.workspace.VersionSyncService = new DefaultVersionSyncService(sharedServices);
|
|
113
|
+
services.workspace.DocumentReleaseHandler = new DefaultDocumentReleaseHandler(sharedServices);
|
|
100
114
|
const mutableMessages = services;
|
|
101
|
-
const serverLocale = new
|
|
115
|
+
const serverLocale = new DefaultServerLocale(sharedServices);
|
|
102
116
|
if (options.locale) {
|
|
103
117
|
serverLocale.accept(options.locale);
|
|
104
118
|
}
|
|
105
119
|
mutableMessages.ServerLocale = serverLocale;
|
|
106
|
-
const messageRenderer = options.messageRenderer?.(sharedServices) ?? new
|
|
120
|
+
const messageRenderer = options.messageRenderer?.(sharedServices) ?? new DefaultMessageRenderer(sharedServices);
|
|
107
121
|
mutableMessages.MessageRenderer = messageRenderer;
|
|
108
122
|
const serialize = options.serialize ?? ((_uri, root) => JSON.stringify(root));
|
|
109
123
|
const transferEncoder = options.transferEncoder
|
|
110
124
|
? options.transferEncoder(sharedServices)
|
|
111
|
-
: new
|
|
125
|
+
: new DefaultTransferEncoder(sharedServices);
|
|
112
126
|
const modelService = options.modelService
|
|
113
127
|
? options.modelService(sharedServices)
|
|
114
128
|
: makeStubModelService(sharedServices, serialize, options.modelServiceOptions);
|
|
115
129
|
const mutableModel = services.model;
|
|
116
130
|
mutableModel.TransferEncoder = transferEncoder;
|
|
117
131
|
mutableModel.ModelService = modelService;
|
|
132
|
+
mutableModel.ClientSessionFactory = new DefaultClientSessionFactory(sharedServices, options.clientSessionFactoryOptions);
|
|
118
133
|
return {
|
|
119
134
|
services: sharedServices,
|
|
120
135
|
documents,
|
|
@@ -125,6 +140,7 @@ export function makeTestServices(options = {}) {
|
|
|
125
140
|
selfSaveRegistry,
|
|
126
141
|
projectManager,
|
|
127
142
|
documentUriPolicy,
|
|
143
|
+
modelLedger,
|
|
128
144
|
serviceRegistry,
|
|
129
145
|
indexManager,
|
|
130
146
|
modelService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-test-services.js","sourceRoot":"","sources":["../../src/testing/make-test-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAEJ,aAAa,
|
|
1
|
+
{"version":3,"file":"make-test-services.js","sourceRoot":"","sources":["../../src/testing/make-test-services.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,18 @@ export interface CapturingLogger {
|
|
|
49
49
|
* hand-rolling a capturing `{ info, warn, ... } as unknown as Logger` stub.
|
|
50
50
|
*/
|
|
51
51
|
export declare function makeCapturingLogger(): CapturingLogger;
|
|
52
|
+
/** A captured line with the logger component it was emitted under. */
|
|
53
|
+
export interface AttributedLine extends CapturedLine {
|
|
54
|
+
readonly component: string | undefined;
|
|
55
|
+
}
|
|
56
|
+
/** A {@link Logger} whose emitted lines are captured with their component. */
|
|
57
|
+
export interface AttributingLogger {
|
|
58
|
+
readonly logger: Logger;
|
|
59
|
+
/** Every line emitted through the logger (and its derived children), in order. */
|
|
60
|
+
readonly lines: AttributedLine[];
|
|
61
|
+
}
|
|
62
|
+
/** A capturing logger that also records each line's component, which {@link makeCapturingLogger} drops. */
|
|
63
|
+
export declare function makeAttributingLogger(): AttributingLogger;
|
|
52
64
|
/** A {@link Tracer} whose emitted lines are captured for assertions. */
|
|
53
65
|
export interface CapturingTracer {
|
|
54
66
|
readonly tracer: Tracer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-test-tracer.d.ts","sourceRoot":"","sources":["../../src/testing/make-test-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,KAAK,EAAiB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAA2B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElI;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC1B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC3B;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,CAWrD;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,GAAE,KAAyB,GAAG,eAAe,CAGrF"}
|
|
1
|
+
{"version":3,"file":"make-test-tracer.d.ts","sourceRoot":"","sources":["../../src/testing/make-test-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,KAAK,EAAiB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAA2B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElI;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC1B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC3B;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,CAWrD;AAED,sEAAsE;AACtE,MAAM,WAAW,cAAe,SAAQ,YAAY;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,2GAA2G;AAC3G,wBAAgB,qBAAqB,IAAI,iBAAiB,CAWzD;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,GAAE,KAAyB,GAAG,eAAe,CAGrF"}
|
|
@@ -53,6 +53,19 @@ export function makeCapturingLogger() {
|
|
|
53
53
|
}
|
|
54
54
|
return { logger: new Capturing(), lines };
|
|
55
55
|
}
|
|
56
|
+
/** A capturing logger that also records each line's component, which {@link makeCapturingLogger} drops. */
|
|
57
|
+
export function makeAttributingLogger() {
|
|
58
|
+
const lines = [];
|
|
59
|
+
class Attributing extends NoopLogger {
|
|
60
|
+
emit(level, _label, message) {
|
|
61
|
+
lines.push({ level, message, component: this.component });
|
|
62
|
+
}
|
|
63
|
+
derive(component) {
|
|
64
|
+
return new Attributing(component);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { logger: new Attributing(), lines };
|
|
68
|
+
}
|
|
56
69
|
/**
|
|
57
70
|
* Capturing {@link Tracer} for tests that assert on emitted output. Wraps a
|
|
58
71
|
* {@link makeCapturingLogger} in a {@link DefaultTracer} so timing/profiling
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-test-tracer.js","sourceRoot":"","sources":["../../src/testing/make-test-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAc,aAAa,EAA8B,UAAU,EAAE,WAAW,EAAe,MAAM,qBAAqB,CAAC;AAElI;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc;IAC3B,OAAO,IAAI,aAAa,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc;IAC3B,OAAO,IAAI,UAAU,EAAE,CAAC;AAC3B,CAAC;AAeD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB;IAChC,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,SAAU,SAAQ,UAAU;QACZ,IAAI,CAAC,KAAe,EAAE,MAAc,EAAE,OAAe;YACrE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC;QACkB,MAAM,CAAC,SAAiB;YACxC,OAAO,IAAI,SAAS,CAAC,SAAS,CAAS,CAAC;QAC3C,CAAC;KACH;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"make-test-tracer.js","sourceRoot":"","sources":["../../src/testing/make-test-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAc,aAAa,EAA8B,UAAU,EAAE,WAAW,EAAe,MAAM,qBAAqB,CAAC;AAElI;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc;IAC3B,OAAO,IAAI,aAAa,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc;IAC3B,OAAO,IAAI,UAAU,EAAE,CAAC;AAC3B,CAAC;AAeD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB;IAChC,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,SAAU,SAAQ,UAAU;QACZ,IAAI,CAAC,KAAe,EAAE,MAAc,EAAE,OAAe;YACrE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC;QACkB,MAAM,CAAC,SAAiB;YACxC,OAAO,IAAI,SAAS,CAAC,SAAS,CAAS,CAAC;QAC3C,CAAC;KACH;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC;AAcD,2GAA2G;AAC3G,MAAM,UAAU,qBAAqB;IAClC,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,MAAM,WAAY,SAAQ,UAAU;QACd,IAAI,CAAC,KAAe,EAAE,MAAc,EAAE,OAAe;YACrE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7D,CAAC;QACkB,MAAM,CAAC,SAAiB;YACxC,OAAO,IAAI,WAAW,CAAC,SAAS,CAAS,CAAC;QAC7C,CAAC;KACH;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAK,GAAU,IAAI,WAAW,EAAE;IACjE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAChD,OAAO,EAAE,MAAM,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
import { type ApplyWorkspaceEditParams, type ApplyWorkspaceEditResult, type ProtocolConnection } from 'vscode-languageserver-protocol/node';
|
|
10
|
+
import type { AppliedEdit, NextAppliedEditOptions } from './lsp-server-connection.js';
|
|
11
|
+
/**
|
|
12
|
+
* The client side of `workspace/applyEdit` on one LSP connection, shared by the
|
|
13
|
+
* in-process and the spawned tiers so their capture and wait cannot drift.
|
|
14
|
+
*/
|
|
15
|
+
export interface AppliedEditCapture {
|
|
16
|
+
readonly appliedEdits: ReadonlyArray<AppliedEdit>;
|
|
17
|
+
nextAppliedEdit(uri: string, timeoutMsOrOptions?: number | NextAppliedEditOptions): Promise<AppliedEdit>;
|
|
18
|
+
setApplyEditHandler(handler: (params: ApplyWorkspaceEditParams) => ApplyWorkspaceEditResult | Promise<ApplyWorkspaceEditResult>): void;
|
|
19
|
+
dispose(): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Answer and record every `workspace/applyEdit` arriving on `client`.
|
|
23
|
+
*
|
|
24
|
+
* Register before the connection can receive one: `vscode-jsonrpc` keeps a
|
|
25
|
+
* single handler per request type, so this must be the only `applyEdit`
|
|
26
|
+
* handler on `client`, and a second registration displaces the capture.
|
|
27
|
+
*/
|
|
28
|
+
export declare function captureAppliedEdits(client: ProtocolConnection, defaultTimeoutMs: number): AppliedEditCapture;
|
|
29
|
+
//# sourceMappingURL=applied-edit-capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applied-edit-capture.d.ts","sourceRoot":"","sources":["../../../src/testing/node/applied-edit-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAEJ,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEtF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAChC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzG,mBAAmB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC;IACvI,OAAO,IAAI,IAAI,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,GAAG,kBAAkB,CAoE5G"}
|