@hydranium/core 1.0.0-next.30 → 1.0.0-next.300
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 +72 -82
- package/lib/browser/host-heads-in-worker.d.ts +58 -0
- package/lib/browser/host-heads-in-worker.d.ts.map +1 -0
- package/lib/browser/host-heads-in-worker.js +113 -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 +29 -0
- package/lib/browser/start-language-server-in-worker.d.ts.map +1 -0
- package/lib/browser/start-language-server-in-worker.js +35 -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 +419 -282
- package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
- package/lib/documents/hydranium-text-documents.js +856 -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 +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 +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 +49 -36
- package/lib/langium/bootstrap.d.ts.map +1 -1
- package/lib/langium/bootstrap.js +91 -45
- 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/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 +19 -4
- package/lib/langium/diagnostics/logger.d.ts.map +1 -1
- package/lib/langium/diagnostics/logger.js +36 -11
- 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 +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 +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 +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 +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 +374 -0
- package/lib/langium/model-service/client-session.d.ts.map +1 -0
- package/lib/langium/model-service/client-session.js +446 -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 +480 -289
- package/lib/langium/model-service/model-service.d.ts.map +1 -1
- package/lib/langium/model-service/model-service.js +597 -456
- package/lib/langium/model-service/model-service.js.map +1 -1
- package/lib/langium/module.d.ts +158 -37
- package/lib/langium/module.d.ts.map +1 -1
- package/lib/langium/module.js +52 -36
- package/lib/langium/module.js.map +1 -1
- package/lib/langium/naming/name-provider.d.ts +42 -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 +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 +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 +39 -17
- package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
- package/lib/langium/scope/hydranium-scope-provider.js +52 -26
- 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 +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 +84 -35
- package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
- package/lib/langium/transfer/transfer-encoder.js +34 -23
- 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 +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 +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 +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 +165 -8
- package/lib/langium/workspace/file-system-provider.d.ts.map +1 -1
- package/lib/langium/workspace/file-system-provider.js +111 -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 +124 -22
- package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -1
- package/lib/langium/workspace/hydranium-workspace-manager.js +212 -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 +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 +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 +15 -9
- 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/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 +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 +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 +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-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 +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/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 +10 -10
- package/lib/node/stdio-launcher.d.ts.map +1 -1
- package/lib/node/stdio-launcher.js +17 -9
- 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 +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 +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 +38 -57
- package/src/browser/host-heads-in-worker.ts +142 -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 +51 -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 +976 -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 +77 -41
- package/src/langium/ast-extension/ast-node-builder.ts +66 -22
- package/src/langium/bootstrap.ts +95 -52
- 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/hydranium-langium-profiler.ts +15 -39
- package/src/langium/diagnostics/log-preamble.ts +1 -1
- package/src/langium/diagnostics/logger.ts +38 -11
- package/src/langium/diagnostics/lsp-logger.ts +61 -16
- 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 +616 -73
- package/src/langium/integration-services.ts +59 -28
- 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 +704 -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 +908 -485
- package/src/langium/module.ts +212 -67
- package/src/langium/naming/name-provider.ts +44 -8
- 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 +51 -17
- 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 +64 -27
- 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 +26 -6
- package/src/langium/single-langium-copy.ts +42 -0
- package/src/langium/transfer/transfer-encoder.ts +102 -45
- package/src/langium/trivia/comment-preserver.ts +1100 -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 +528 -13
- 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 +253 -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 +241 -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 +43 -5
- package/src/langium/workspace/langium-documents.ts +19 -1
- package/src/langium/workspace/persistent-file-system-provider.ts +26 -14
- 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/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 +285 -111
- 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 +5 -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 +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 +27 -11
- package/src/node/startup-cpu-profile.ts +94 -0
- package/src/node/stdio-launcher.ts +22 -14
- 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 +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 +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
|
@@ -6,13 +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';
|
|
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';
|
|
10
12
|
import type { Harness } from '@hydranium/protocol/testing';
|
|
11
13
|
import { type AstNode, type AstNodeDescription, type WorkspaceLock } from '@hydranium/langium';
|
|
14
|
+
import { type ClientSessionFactory, type ClientSessionFactoryOptions } from '../langium/model-service/client-session.js';
|
|
12
15
|
import type { ModelService, ModelServiceOptions } from '../langium/model-service/model-service.js';
|
|
13
16
|
import type { ServerSharedServices } from '../langium/module.js';
|
|
14
|
-
import {
|
|
17
|
+
import type { AstDiagnostic } from '../langium/validation/document-validator.js';
|
|
18
|
+
import { type TransferEncoder } from '../langium/transfer/transfer-encoder.js';
|
|
15
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';
|
|
16
24
|
import type { FakeDocumentOptions } from './fake-document.js';
|
|
17
25
|
import { type StubDocumentBuilder } from './stub-document-builder.js';
|
|
18
26
|
import { type StubIndexManager } from './stub-index-manager.js';
|
|
@@ -32,8 +40,16 @@ import { type StubWritableFileSystem } from './stub-writable-file-system.js';
|
|
|
32
40
|
* to `ServerSharedServices` in {@link makeTestServices} is therefore the
|
|
33
41
|
* single named place where the "stub stands in for the full service tree"
|
|
34
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.
|
|
35
51
|
*/
|
|
36
|
-
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> {
|
|
37
53
|
readonly Clock: Clock;
|
|
38
54
|
readonly Logger: Logger;
|
|
39
55
|
readonly Tracer: Tracer;
|
|
@@ -53,6 +69,8 @@ export interface TestSharedServices<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
53
69
|
SelfSaveRegistry: StubSelfSaveRegistry;
|
|
54
70
|
ProjectManager: StubProjectManager<TProject>;
|
|
55
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;
|
|
56
74
|
/**
|
|
57
75
|
* Present only when {@link MakeTestServicesOptions.seedIndex} was passed.
|
|
58
76
|
* Omitted otherwise for the same reason as `ServiceRegistry` — see that
|
|
@@ -69,14 +87,30 @@ export interface TestSharedServices<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
69
87
|
* through this tree and let a reentrant write pass unnoticed.
|
|
70
88
|
*/
|
|
71
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;
|
|
72
96
|
};
|
|
73
97
|
readonly model: {
|
|
74
|
-
TransferEncoder: TransferEncoder<
|
|
98
|
+
TransferEncoder: TransferEncoder<TTransferDiagnostic>;
|
|
75
99
|
ModelService: ModelService<TAst, TDiagnostic, TTransfer>;
|
|
100
|
+
ClientSessionFactory: ClientSessionFactory;
|
|
76
101
|
};
|
|
102
|
+
/**
|
|
103
|
+
* The REAL services, not stubs — the framework renderer's no-catalogue
|
|
104
|
+
* behaviour is a pass-through, so the stub tree agrees with a production one
|
|
105
|
+
* unless a test installs a catalogue. Bound rather than omitted because
|
|
106
|
+
* `HydraniumDocumentBuilder` renders through the renderer on every
|
|
107
|
+
* `Validated` phase, where an omitted slot is a `TypeError`.
|
|
108
|
+
*/
|
|
109
|
+
readonly ServerLocale: ServerLocale;
|
|
110
|
+
readonly MessageRenderer: MessageRenderer;
|
|
77
111
|
}
|
|
78
112
|
/** Optional configuration for {@link makeTestServices}. */
|
|
79
|
-
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> {
|
|
80
114
|
/**
|
|
81
115
|
* Serialiser used by the bundled `StubModelService`. The stub tree
|
|
82
116
|
* routes no per-language `Serializer` (the stub languages bind no-op slots),
|
|
@@ -87,6 +121,14 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
|
|
|
87
121
|
* for tests that don't assert on the produced text.
|
|
88
122
|
*/
|
|
89
123
|
serialize?: (uri: string, root: TTransfer) => string;
|
|
124
|
+
/**
|
|
125
|
+
* Renderer bound on `MessageRenderer`. Default: the framework's own, which
|
|
126
|
+
* passes every sentence through unchanged. Supply one to install a catalogue
|
|
127
|
+
* or to drive the throwing path.
|
|
128
|
+
*/
|
|
129
|
+
messageRenderer?: (services: ServerSharedServices<TProject>) => MessageRenderer;
|
|
130
|
+
/** Locale handed to the bundle's {@link ServerLocale}. Default: none, i.e. the framework's English. */
|
|
131
|
+
locale?: Locale;
|
|
90
132
|
/**
|
|
91
133
|
* Languages to register on a {@link StubServiceRegistry} bound on the
|
|
92
134
|
* `ServiceRegistry` slot. This is how a test gets multi-language routing:
|
|
@@ -95,7 +137,7 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
|
|
|
95
137
|
*
|
|
96
138
|
* **Default: no `ServiceRegistry` slot at all.** Binding an empty registry
|
|
97
139
|
* by default would silently change behaviour for the tests that rely on the
|
|
98
|
-
* slot being absent — `
|
|
140
|
+
* slot being absent — `DefaultModelService.rewriteModel` optional-chains it
|
|
99
141
|
* precisely for those bundles — so a registry appears only when a test asks
|
|
100
142
|
* for one.
|
|
101
143
|
*/
|
|
@@ -153,16 +195,23 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
|
|
|
153
195
|
modelService?: (services: ServerSharedServices<TProject>) => ModelService<TAst, TDiagnostic, TTransfer>;
|
|
154
196
|
/**
|
|
155
197
|
* Framework {@link ModelServiceOptions} for the DEFAULT stub service, so a
|
|
156
|
-
* test can reach an option-gated path (`
|
|
157
|
-
*
|
|
158
|
-
*
|
|
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.
|
|
159
201
|
*/
|
|
160
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;
|
|
161
210
|
/**
|
|
162
211
|
* Override the {@link TransferEncoder} factory. Default: framework
|
|
163
212
|
* {@link TransferEncoder} with no overrides.
|
|
164
213
|
*/
|
|
165
|
-
transferEncoder?: (services: ServerSharedServices<TProject>) => TransferEncoder<
|
|
214
|
+
transferEncoder?: (services: ServerSharedServices<TProject, TTransferDiagnostic>) => TransferEncoder<TTransferDiagnostic>;
|
|
166
215
|
}
|
|
167
216
|
/**
|
|
168
217
|
* Bundle returned by {@link makeTestServices}. Exposes the assembled
|
|
@@ -177,8 +226,8 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
|
|
|
177
226
|
* uniform teardown hook (a no-op: the stubs hold only in-memory state,
|
|
178
227
|
* released with the bundle when it goes out of scope).
|
|
179
228
|
*/
|
|
180
|
-
export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic extends
|
|
181
|
-
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>;
|
|
182
231
|
readonly documents: StubLangiumDocuments<TAst, TDiagnostic>;
|
|
183
232
|
readonly textDocuments: StubHydraniumTextDocuments;
|
|
184
233
|
readonly astDocumentManager: StubAstDocumentManager<TAst, TDiagnostic>;
|
|
@@ -187,6 +236,7 @@ export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
187
236
|
readonly selfSaveRegistry: StubSelfSaveRegistry;
|
|
188
237
|
readonly projectManager: StubProjectManager<TProject>;
|
|
189
238
|
readonly documentUriPolicy: DocumentUriPolicy;
|
|
239
|
+
readonly modelLedger: ModelLedger;
|
|
190
240
|
/**
|
|
191
241
|
* The registry bound on the `ServiceRegistry` slot, or `undefined` when no
|
|
192
242
|
* {@link MakeTestServicesOptions.languages} were declared.
|
|
@@ -198,10 +248,18 @@ export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
198
248
|
*/
|
|
199
249
|
readonly indexManager: StubIndexManager | undefined;
|
|
200
250
|
readonly modelService: ModelService<TAst, TDiagnostic, TTransfer>;
|
|
201
|
-
readonly transferEncoder: TransferEncoder<
|
|
251
|
+
readonly transferEncoder: TransferEncoder<TTransferDiagnostic>;
|
|
202
252
|
readonly logger: Logger;
|
|
203
253
|
/** The clock bound on the `Clock` slot — a `makeFakeClock()` if one was passed. */
|
|
204
254
|
readonly clock: Clock;
|
|
255
|
+
/**
|
|
256
|
+
* The service bound on `ServerLocale`, so a test can hand over a locale
|
|
257
|
+
* mid-run — which is also how it verifies the renderer reads the locale per
|
|
258
|
+
* render rather than caching it at construction.
|
|
259
|
+
*/
|
|
260
|
+
readonly serverLocale: ServerLocale;
|
|
261
|
+
/** The renderer bound on `MessageRenderer` — the framework's own unless one was supplied. */
|
|
262
|
+
readonly messageRenderer: MessageRenderer;
|
|
205
263
|
}
|
|
206
264
|
/**
|
|
207
265
|
* Build a {@link ServerSharedServices} tree backed by the framework's
|
|
@@ -213,5 +271,5 @@ export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic
|
|
|
213
271
|
* computation, etc.) should keep using `bootstrapLangium(...)` rather than
|
|
214
272
|
* this bundle.
|
|
215
273
|
*/
|
|
216
|
-
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>;
|
|
217
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,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACnG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;
|
|
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,EACX,KAAK,MAAM,EAEX,KAAK,OAAO,EAEZ,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EACJ,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAElC,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACnG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,yCAAyC,CAAC;AACvG,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAE/G,OAAO,EAA8B,KAAK,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC9G,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAiC,KAAK,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACtH,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAElG,OAAO,EAA8B,KAAK,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACzG,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,EAAkC,KAAK,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AACrH,OAAO,EAA2B,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5H,OAAO,EAA8B,KAAK,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAEzG;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,kBAAkB,CAChC,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,WAAW,SAAS,aAAa,GAAG,aAAa,EACjD,SAAS,SAAS,eAAe,GAAG,eAAe,EACnD,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,mBAAmB,SAAS,kBAAkB,GAAG,kBAAkB;IAEnE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE;QACjB,gBAAgB,EAAE,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC1D,eAAe,EAAE,mBAAmB,CAAC;QACrC,aAAa,EAAE,0BAA0B,CAAC;QAC1C,kBAAkB,EAAE,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9D,kBAAkB,EAAE,sBAAsB,CAAC;QAC3C,gBAAgB,EAAE,oBAAoB,CAAC;QACvC,cAAc,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7C,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,kHAAkH;QAClH,mBAAmB,EAAE,mBAAmB,CAAC;QACzC;;;;WAIG;QACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;QAChC;;;;;;;;WAQG;QACH,aAAa,EAAE,aAAa,CAAC;QAC7B,8DAA8D;QAC9D,WAAW,EAAE,WAAW,CAAC;QACzB,8FAA8F;QAC9F,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,uFAAuF;QACvF,sBAAsB,EAAE,sBAAsB,CAAC;KACjD,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE;QACb,eAAe,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACtD,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACzD,oBAAoB,EAAE,oBAAoB,CAAC;KAC7C,CAAC;IACF;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC5C;AAED,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB,CACrC,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,WAAW,SAAS,aAAa,GAAG,aAAa,EACjD,SAAS,SAAS,eAAe,GAAG,eAAe,EACnD,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,mBAAmB,SAAS,kBAAkB,GAAG,kBAAkB;IAEnE;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;IACrD;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,KAAK,eAAe,CAAC;IAChF,uGAAuG;IACvG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC9C;;;;OAIG;IACH,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,aAAa,CAAC,EAAE,aAAa,CAAC;QAC3B,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,IAAI,CAAC;QACX,OAAO,CAAC,EAAE,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;KACnD,CAAC,CAAC;IACH,oEAAoE;IACpE,YAAY,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACnC;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC1C;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,KAAK,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACxG;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,eAAe,CAAC,mBAAmB,CAAC,CAAC;CAC5H;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB,CAChC,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,WAAW,SAAS,aAAa,GAAG,aAAa,EACjD,SAAS,SAAS,eAAe,GAAG,eAAe,EACnD,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,mBAAmB,SAAS,kBAAkB,GAAG,kBAAkB,CACpE,SAAQ,OAAO;IACd,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IACvE,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5D,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;IACnD,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACvE,QAAQ,CAAC,eAAe,EAAE,mBAAmB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAClE,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,6FAA6F;IAC7F,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC5C;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,WAAW,SAAS,aAAa,GAAG,aAAa,EACjD,SAAS,SAAS,eAAe,GAAG,eAAe,EACnD,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,mBAAmB,SAAS,kBAAkB,GAAG,kBAAkB,EAEnE,OAAO,GAAE,uBAAuB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,CAAM,GAClG,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAgIjF"}
|
|
@@ -7,9 +7,16 @@
|
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
9
|
import { DefaultTracer, NoopLogger, SystemClock } from '@hydranium/protocol';
|
|
10
|
-
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';
|
|
11
14
|
import { DefaultDocumentUriPolicy } from '../langium/workspace/document-uri-policy.js';
|
|
12
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';
|
|
13
20
|
import { makeStubDocumentBuilder } from './stub-document-builder.js';
|
|
14
21
|
import { makeStubIndexManager } from './stub-index-manager.js';
|
|
15
22
|
import { makeStubLangiumDocuments } from './stub-langium-documents.js';
|
|
@@ -33,14 +40,16 @@ import { makeStubWritableFileSystem } from './stub-writable-file-system.js';
|
|
|
33
40
|
export function makeTestServices(options = {}) {
|
|
34
41
|
const documents = makeStubLangiumDocuments(options.seedDocuments);
|
|
35
42
|
const textDocuments = makeStubHydraniumTextDocuments();
|
|
36
|
-
const documentBuilder = makeStubDocumentBuilder();
|
|
37
|
-
const selfSaveRegistry = makeStubSelfSaveRegistry();
|
|
38
|
-
const fileSystem = makeStubWritableFileSystem(selfSaveRegistry);
|
|
39
|
-
const projectManager = makeStubProjectManager(options.seedProjects);
|
|
40
|
-
const astDocumentManager = makeStubAstDocumentManager(textDocuments, fileSystem, documents);
|
|
41
43
|
const logger = options.logger ?? new NoopLogger();
|
|
42
44
|
const clock = options.clock ?? new SystemClock();
|
|
43
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);
|
|
44
53
|
const documentUriPolicy = options.documentUriPolicy ?? new DefaultDocumentUriPolicy();
|
|
45
54
|
const serviceRegistry = options.languages
|
|
46
55
|
? makeStubServiceRegistry(options.languages, { openLanguageIds: options.openLanguageIds })
|
|
@@ -62,7 +71,7 @@ export function makeTestServices(options = {}) {
|
|
|
62
71
|
// is dependency-free (as `HydraniumWorkspaceLock` is) — a no-op stub of a
|
|
63
72
|
// synchronisation primitive hides the very interleaving it exists to prevent.
|
|
64
73
|
//
|
|
65
|
-
// `model
|
|
74
|
+
// The `model` slots are populated below
|
|
66
75
|
// (after the factories run); the literal uses unsafe casts to
|
|
67
76
|
// partially-built objects to satisfy TestSharedServices, then patches
|
|
68
77
|
// them in.
|
|
@@ -86,21 +95,41 @@ export function makeTestServices(options = {}) {
|
|
|
86
95
|
// Spread for the same reason as `ServiceRegistry` above — the slot must
|
|
87
96
|
// be genuinely ABSENT, not present-and-undefined, when no index was seeded.
|
|
88
97
|
...(indexManager ? { IndexManager: indexManager } : {}),
|
|
89
|
-
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: {}
|
|
90
104
|
},
|
|
91
|
-
model: {}
|
|
105
|
+
model: {},
|
|
106
|
+
ServerLocale: {},
|
|
107
|
+
MessageRenderer: {}
|
|
92
108
|
};
|
|
93
109
|
const sharedServices = services;
|
|
110
|
+
// Patched in after the literal, like `model` below: both read the tree they
|
|
111
|
+
// belong to, and the renderer reads the locale service.
|
|
112
|
+
services.workspace.VersionSyncService = new DefaultVersionSyncService(sharedServices);
|
|
113
|
+
services.workspace.DocumentReleaseHandler = new DefaultDocumentReleaseHandler(sharedServices);
|
|
114
|
+
const mutableMessages = services;
|
|
115
|
+
const serverLocale = new DefaultServerLocale(sharedServices);
|
|
116
|
+
if (options.locale) {
|
|
117
|
+
serverLocale.accept(options.locale);
|
|
118
|
+
}
|
|
119
|
+
mutableMessages.ServerLocale = serverLocale;
|
|
120
|
+
const messageRenderer = options.messageRenderer?.(sharedServices) ?? new DefaultMessageRenderer(sharedServices);
|
|
121
|
+
mutableMessages.MessageRenderer = messageRenderer;
|
|
94
122
|
const serialize = options.serialize ?? ((_uri, root) => JSON.stringify(root));
|
|
95
123
|
const transferEncoder = options.transferEncoder
|
|
96
124
|
? options.transferEncoder(sharedServices)
|
|
97
|
-
: new
|
|
125
|
+
: new DefaultTransferEncoder(sharedServices);
|
|
98
126
|
const modelService = options.modelService
|
|
99
127
|
? options.modelService(sharedServices)
|
|
100
128
|
: makeStubModelService(sharedServices, serialize, options.modelServiceOptions);
|
|
101
129
|
const mutableModel = services.model;
|
|
102
130
|
mutableModel.TransferEncoder = transferEncoder;
|
|
103
131
|
mutableModel.ModelService = modelService;
|
|
132
|
+
mutableModel.ClientSessionFactory = new DefaultClientSessionFactory(sharedServices, options.clientSessionFactoryOptions);
|
|
104
133
|
return {
|
|
105
134
|
services: sharedServices,
|
|
106
135
|
documents,
|
|
@@ -111,12 +140,15 @@ export function makeTestServices(options = {}) {
|
|
|
111
140
|
selfSaveRegistry,
|
|
112
141
|
projectManager,
|
|
113
142
|
documentUriPolicy,
|
|
143
|
+
modelLedger,
|
|
114
144
|
serviceRegistry,
|
|
115
145
|
indexManager,
|
|
116
146
|
modelService,
|
|
117
147
|
transferEncoder,
|
|
118
148
|
logger,
|
|
119
149
|
clock,
|
|
150
|
+
serverLocale,
|
|
151
|
+
messageRenderer,
|
|
120
152
|
dispose: () => {
|
|
121
153
|
// No-op: the bundled stubs hold only in-memory state (maps, arrays),
|
|
122
154
|
// released with the bundle when it goes out of scope. The hook exists
|
|
@@ -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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
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 { ApplyWorkspaceEditRequest } from 'vscode-languageserver-protocol/node';
|
|
10
|
+
/**
|
|
11
|
+
* Answer and record every `workspace/applyEdit` arriving on `client`.
|
|
12
|
+
*
|
|
13
|
+
* Register before the connection can receive one: `vscode-jsonrpc` keeps a
|
|
14
|
+
* single handler per request type, so this must be the only `applyEdit`
|
|
15
|
+
* handler on `client`, and a second registration displaces the capture.
|
|
16
|
+
*/
|
|
17
|
+
export function captureAppliedEdits(client, defaultTimeoutMs) {
|
|
18
|
+
const appliedEdits = [];
|
|
19
|
+
const waiters = [];
|
|
20
|
+
let handler = () => ({
|
|
21
|
+
applied: true
|
|
22
|
+
});
|
|
23
|
+
const subscription = client.onRequest(ApplyWorkspaceEditRequest.type, (params) => {
|
|
24
|
+
const edit = { params, uris: editedUris(params.edit), text: insertedText(params.edit) };
|
|
25
|
+
// Record before the handler runs, so a handler that rejects the edit or
|
|
26
|
+
// throws still leaves the push observable — the send is what the egress
|
|
27
|
+
// assertion is about.
|
|
28
|
+
appliedEdits.push(edit);
|
|
29
|
+
for (const waiter of [...waiters]) {
|
|
30
|
+
if (waiter(edit)) {
|
|
31
|
+
const at = waiters.indexOf(waiter);
|
|
32
|
+
if (at >= 0) {
|
|
33
|
+
waiters.splice(at, 1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return handler(params);
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
appliedEdits,
|
|
41
|
+
nextAppliedEdit(uri, timeoutMsOrOptions) {
|
|
42
|
+
const options = typeof timeoutMsOrOptions === 'number' ? { timeoutMs: timeoutMsOrOptions } : (timeoutMsOrOptions ?? {});
|
|
43
|
+
const timeoutMs = options.timeoutMs ?? defaultTimeoutMs;
|
|
44
|
+
const { fromIndex, match } = options;
|
|
45
|
+
const matches = (edit) => edit.uris.includes(uri) && (match?.(edit) ?? true);
|
|
46
|
+
if (fromIndex !== undefined) {
|
|
47
|
+
// Replay from the capture first: the push may already have arrived,
|
|
48
|
+
// and a waiter only ever sees later ones.
|
|
49
|
+
const captured = appliedEdits.slice(Math.max(0, fromIndex)).find(matches);
|
|
50
|
+
if (captured) {
|
|
51
|
+
return Promise.resolve(captured);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return new Promise((resolve, reject) => {
|
|
55
|
+
const waiter = (edit) => {
|
|
56
|
+
if (!matches(edit)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
clearTimeout(timer);
|
|
60
|
+
resolve(edit);
|
|
61
|
+
return true;
|
|
62
|
+
};
|
|
63
|
+
const timer = setTimeout(() => {
|
|
64
|
+
const at = waiters.indexOf(waiter);
|
|
65
|
+
if (at >= 0) {
|
|
66
|
+
waiters.splice(at, 1);
|
|
67
|
+
}
|
|
68
|
+
reject(new Error(`Timed out waiting for a workspace/applyEdit addressing ${uri}`));
|
|
69
|
+
}, timeoutMs);
|
|
70
|
+
waiters.push(waiter);
|
|
71
|
+
});
|
|
72
|
+
},
|
|
73
|
+
setApplyEditHandler(next) {
|
|
74
|
+
handler = next;
|
|
75
|
+
},
|
|
76
|
+
dispose() {
|
|
77
|
+
subscription.dispose();
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/** Every URI a {@link WorkspaceEdit} addresses, in `documentChanges` then `changes` order. */
|
|
82
|
+
function editedUris(edit) {
|
|
83
|
+
const uris = [];
|
|
84
|
+
for (const change of edit.documentChanges ?? []) {
|
|
85
|
+
if ('textDocument' in change) {
|
|
86
|
+
uris.push(change.textDocument.uri);
|
|
87
|
+
}
|
|
88
|
+
else if ('oldUri' in change) {
|
|
89
|
+
uris.push(change.oldUri, change.newUri);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
uris.push(change.uri);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
uris.push(...Object.keys(edit.changes ?? {}));
|
|
96
|
+
return uris;
|
|
97
|
+
}
|
|
98
|
+
/** Every text edit's `newText` in a {@link WorkspaceEdit}, concatenated in edit order. */
|
|
99
|
+
function insertedText(edit) {
|
|
100
|
+
const parts = [];
|
|
101
|
+
for (const change of edit.documentChanges ?? []) {
|
|
102
|
+
if ('edits' in change) {
|
|
103
|
+
for (const textEdit of change.edits) {
|
|
104
|
+
if ('newText' in textEdit) {
|
|
105
|
+
parts.push(textEdit.newText);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
for (const textEdits of Object.values(edit.changes ?? {})) {
|
|
111
|
+
for (const textEdit of textEdits) {
|
|
112
|
+
parts.push(textEdit.newText);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return parts.join('');
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=applied-edit-capture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applied-edit-capture.js","sourceRoot":"","sources":["../../../src/testing/node/applied-edit-capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"golden-corpus.js","sourceRoot":"","sources":["../../../src/testing/node/golden-corpus.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAgC3C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"golden-corpus.js","sourceRoot":"","sources":["../../../src/testing/node/golden-corpus.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAgC3C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,OAAO,GAA4B,EAAE;IACtF,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SAC5D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAC/B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC1E,GAAG,CAAC,KAAK,CAAC,EAAE;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO;YACJ,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;YAC5E,QAAQ,EAAE,KAAK,CAAC,IAAI;YACpB,IAAI;YACJ,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;SAClC,CAAC;IACL,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,cAAc,SAAS,GAAG,CAAC;QAC5F,MAAM,IAAI,KAAK,CACZ,oBAAoB,SAAS,YAAY,QAAQ,CAAC,MAAM,oBAAoB,MAAM,uBAAuB,OAAO,IAAI;YACjH,gHAAgH,CACrH,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-harness.d.ts","sourceRoot":"","sources":["../../../src/testing/node/lsp-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAAkC,KAAK,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAC5H,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE/F;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,GAAG,qBAAqB,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,qBAAqB,GAAG,+BAA+B,GAAG,uBAAuB,CAAC;AAE9F,wEAAwE;AACxE,MAAM,WAAW,+BAA+B;IAC7C;;;;OAIG;IACH,cAAc,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,wBAAwB,CAAC;CACvE;AAED,0FAA0F;AAC1F,MAAM,WAAW,uBAAuB;IACrC;;;;OAIG;IACH,UAAU,EAAE,mBAAmB,CAAC;IAChC;;;;OAIG;IACH,QAAQ,EAAE,wBAAwB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,GAAG;IACtE,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrG,CAAC;AA8BF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"lsp-harness.d.ts","sourceRoot":"","sources":["../../../src/testing/node/lsp-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAAkC,KAAK,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAC5H,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE/F;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,GAAG,qBAAqB,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,qBAAqB,GAAG,+BAA+B,GAAG,uBAAuB,CAAC;AAE9F,wEAAwE;AACxE,MAAM,WAAW,+BAA+B;IAC7C;;;;OAIG;IACH,cAAc,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,wBAAwB,CAAC;CACvE;AAED,0FAA0F;AAC1F,MAAM,WAAW,uBAAuB;IACrC;;;;OAIG;IACH,UAAU,EAAE,mBAAmB,CAAC;IAChC;;;;OAIG;IACH,QAAQ,EAAE,wBAAwB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,GAAG;IACtE,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrG,CAAC;AA8BF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,UAAU,CAyDzE"}
|
|
@@ -104,12 +104,14 @@ export function makeLspHarness(options) {
|
|
|
104
104
|
},
|
|
105
105
|
shutdown: transport.shutdown,
|
|
106
106
|
openDocument: transport.openDocument,
|
|
107
|
+
closeDocument: transport.closeDocument,
|
|
107
108
|
changeDocument: transport.changeDocument,
|
|
108
109
|
completion: transport.completion,
|
|
109
110
|
hover: transport.hover,
|
|
110
111
|
semanticTokens: transport.semanticTokens,
|
|
111
112
|
nextDiagnostics: transport.nextDiagnostics,
|
|
112
113
|
appliedEdits: transport.appliedEdits,
|
|
114
|
+
wireBytes: transport.wireBytes,
|
|
113
115
|
nextAppliedEdit: transport.nextAppliedEdit,
|
|
114
116
|
setApplyEditHandler: transport.setApplyEditHandler,
|
|
115
117
|
buildWorkspace: folders => buildWorkspaceProgrammatically(services, folders),
|