@hydranium/core 1.0.0-next.39 → 1.0.0-next.391
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 +254 -140
- package/lib/documents/ast-document-manager.d.ts.map +1 -1
- package/lib/documents/ast-document-manager.js +311 -128
- 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 +40 -0
- package/lib/documents/file-system-task-queue.js.map +1 -0
- package/lib/documents/hydranium-text-documents.d.ts +453 -282
- package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
- package/lib/documents/hydranium-text-documents.js +918 -504
- 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 +153 -0
- package/lib/documents/version-sync-service.d.ts.map +1 -0
- package/lib/documents/version-sync-service.js +186 -0
- package/lib/documents/version-sync-service.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -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 +75 -36
- 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 +141 -0
- package/lib/langium/diagnostics/console-tee.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 -46
- 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 +43 -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 +390 -40
- package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
- package/lib/langium/document-builder/document-builder.js +635 -102
- 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 +20 -23
- package/lib/langium/integration-services.d.ts.map +1 -1
- package/lib/langium/integration-services.js.map +1 -1
- package/lib/langium/integrity/integrity-rule.d.ts +22 -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 +217 -29
- package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
- package/lib/langium/integrity/integrity-service.js +588 -84
- package/lib/langium/integrity/integrity-service.js.map +1 -1
- package/lib/langium/keys/containment.d.ts +3 -2
- package/lib/langium/keys/containment.d.ts.map +1 -1
- package/lib/langium/keys/containment.js.map +1 -1
- package/lib/langium/keys/name-based-key-provider.d.ts +17 -10
- package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -1
- package/lib/langium/keys/name-based-key-provider.js +24 -12
- 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 +21 -5
- package/lib/langium/language-module.js.map +1 -1
- package/lib/langium/model-service/client-session.d.ts +405 -0
- package/lib/langium/model-service/client-session.d.ts.map +1 -0
- package/lib/langium/model-service/client-session.js +479 -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 +68 -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 +441 -323
- package/lib/langium/model-service/model-service.d.ts.map +1 -1
- package/lib/langium/model-service/model-service.js +602 -407
- package/lib/langium/model-service/model-service.js.map +1 -1
- package/lib/langium/module.d.ts +96 -37
- package/lib/langium/module.d.ts.map +1 -1
- package/lib/langium/module.js +41 -29
- 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 +184 -13
- package/lib/langium/project/abstract-project-manager.d.ts.map +1 -1
- package/lib/langium/project/abstract-project-manager.js +336 -16
- package/lib/langium/project/abstract-project-manager.js.map +1 -1
- package/lib/langium/project/project-change-event.d.ts +22 -3
- package/lib/langium/project/project-change-event.d.ts.map +1 -1
- package/lib/langium/project/project-manager.d.ts +28 -2
- package/lib/langium/project/project-manager.d.ts.map +1 -1
- package/lib/langium/project/single-project-manager.d.ts +7 -1
- package/lib/langium/project/single-project-manager.d.ts.map +1 -1
- package/lib/langium/project/single-project-manager.js +12 -0
- package/lib/langium/project/single-project-manager.js.map +1 -1
- package/lib/langium/residency/cst-residency-service.d.ts +92 -52
- package/lib/langium/residency/cst-residency-service.d.ts.map +1 -1
- package/lib/langium/residency/cst-residency-service.js +154 -58
- package/lib/langium/residency/cst-residency-service.js.map +1 -1
- package/lib/langium/scope/ast-node-description-provider.d.ts +46 -10
- package/lib/langium/scope/ast-node-description-provider.d.ts.map +1 -1
- package/lib/langium/scope/ast-node-description-provider.js +88 -15
- package/lib/langium/scope/ast-node-description-provider.js.map +1 -1
- package/lib/langium/scope/built-local-symbols.d.ts +12 -0
- package/lib/langium/scope/built-local-symbols.d.ts.map +1 -0
- package/lib/langium/scope/built-local-symbols.js +11 -0
- package/lib/langium/scope/built-local-symbols.js.map +1 -0
- 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 +122 -32
- package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
- package/lib/langium/scope/hydranium-scope-provider.js +217 -39
- 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 +69 -37
- package/lib/langium/scope/scope-extension-service.d.ts.map +1 -1
- package/lib/langium/scope/scope-extension-service.js +102 -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 +12 -0
- package/lib/langium/serialization/yaml-serializer.d.ts.map +1 -1
- package/lib/langium/serialization/yaml-serializer.js +24 -4
- 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 +10 -4
- 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 +60 -39
- package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
- package/lib/langium/transfer/transfer-encoder.js +35 -24
- 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 +1165 -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/ast-node-locator.d.ts +24 -0
- package/lib/langium/workspace/ast-node-locator.d.ts.map +1 -0
- package/lib/langium/workspace/ast-node-locator.js +32 -0
- package/lib/langium/workspace/ast-node-locator.js.map +1 -0
- 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 +78 -4
- package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -1
- package/lib/langium/workspace/hydranium-langium-document-factory.js +188 -5
- package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -1
- package/lib/langium/workspace/hydranium-workspace-lock.d.ts +50 -1
- package/lib/langium/workspace/hydranium-workspace-lock.d.ts.map +1 -1
- package/lib/langium/workspace/hydranium-workspace-lock.js +73 -1
- package/lib/langium/workspace/hydranium-workspace-lock.js.map +1 -1
- package/lib/langium/workspace/hydranium-workspace-manager.d.ts +105 -21
- package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -1
- package/lib/langium/workspace/hydranium-workspace-manager.js +186 -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 +3 -0
- package/lib/langium/workspace/index.d.ts.map +1 -1
- package/lib/langium/workspace/index.js +3 -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/{documents → langium/workspace}/self-save-registry.d.ts +7 -9
- package/lib/langium/workspace/self-save-registry.d.ts.map +1 -0
- package/lib/{documents → langium/workspace}/self-save-registry.js +9 -11
- package/lib/langium/workspace/self-save-registry.js.map +1 -0
- package/lib/langium/workspace/syntax-errors.d.ts +23 -0
- package/lib/langium/workspace/syntax-errors.d.ts.map +1 -0
- package/lib/langium/workspace/syntax-errors.js +29 -0
- package/lib/langium/workspace/syntax-errors.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 +6 -6
- package/lib/locale/server-locale.d.ts.map +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 +234 -101
- 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 +10 -4
- package/lib/messages/renderer.d.ts.map +1 -1
- package/lib/messages/renderer.js +6 -0
- 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 +3 -2
- 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.d.ts +6 -5
- package/lib/node/server-state-snapshot.d.ts.map +1 -1
- package/lib/node/server-state-snapshot.js +20 -17
- 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.js.map +1 -1
- package/lib/testing/make-test-services.d.ts +45 -14
- package/lib/testing/make-test-services.d.ts.map +1 -1
- package/lib/testing/make-test-services.js +23 -7
- 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 +4 -1
- package/lib/testing/node/index.d.ts.map +1 -1
- package/lib/testing/node/index.js +4 -1
- 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 +2 -1
- package/lib/testing/node/scratch-workspace.d.ts.map +1 -1
- package/lib/testing/node/scratch-workspace.js +12 -6
- package/lib/testing/node/scratch-workspace.js.map +1 -1
- package/lib/testing/node/settle-server.d.ts +33 -0
- package/lib/testing/node/settle-server.d.ts.map +1 -0
- package/lib/testing/node/settle-server.js +84 -0
- package/lib/testing/node/settle-server.js.map +1 -0
- 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/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 -51
- package/lib/testing/stub-ast-document-manager.d.ts.map +1 -1
- package/lib/testing/stub-ast-document-manager.js +31 -59
- package/lib/testing/stub-ast-document-manager.js.map +1 -1
- package/lib/testing/stub-document-builder.d.ts +25 -11
- package/lib/testing/stub-document-builder.d.ts.map +1 -1
- package/lib/testing/stub-document-builder.js +91 -2
- 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 +8 -7
- package/lib/testing/stub-model-service.d.ts.map +1 -1
- package/lib/testing/stub-model-service.js +4 -4
- package/lib/testing/stub-model-service.js.map +1 -1
- package/lib/testing/stub-project-manager.d.ts.map +1 -1
- package/lib/testing/stub-project-manager.js +10 -0
- 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 +75 -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 +477 -250
- package/src/documents/client-ids.ts +5 -22
- package/src/documents/client-session-errors.ts +26 -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 +77 -0
- package/src/documents/hydranium-text-documents.ts +1044 -615
- 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 +304 -0
- package/src/index.ts +3 -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 +79 -43
- 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 +150 -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 -45
- package/src/langium/document-builder/build-pipeline-integration.ts +57 -32
- package/src/langium/document-builder/build-session.ts +4 -3
- package/src/langium/document-builder/document-builder.ts +773 -106
- package/src/langium/integration-services.ts +20 -23
- package/src/langium/integrity/integrity-rule.ts +22 -8
- package/src/langium/integrity/integrity-service.ts +656 -90
- package/src/langium/keys/containment.ts +3 -2
- package/src/langium/keys/name-based-key-provider.ts +24 -12
- package/src/langium/language-module.ts +52 -9
- package/src/langium/model-service/client-session.ts +769 -0
- package/src/langium/model-service/index.ts +2 -0
- package/src/langium/model-service/model-events.ts +82 -0
- package/src/langium/model-service/model-service.ts +885 -532
- package/src/langium/module.ts +141 -65
- package/src/langium/naming/name-provider.ts +34 -8
- package/src/langium/project/abstract-project-manager.ts +409 -20
- package/src/langium/project/project-change-event.ts +25 -3
- package/src/langium/project/project-manager.ts +31 -2
- package/src/langium/project/single-project-manager.ts +16 -1
- package/src/langium/residency/cst-residency-service.ts +210 -87
- package/src/langium/scope/ast-node-description-provider.ts +111 -16
- package/src/langium/scope/built-local-symbols.ts +13 -0
- 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 +245 -41
- 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 +148 -56
- 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 +26 -4
- package/src/langium/service-registry.ts +41 -2
- package/src/langium/shared-services.ts +13 -4
- package/src/langium/single-langium-copy.ts +42 -0
- package/src/langium/transfer/transfer-encoder.ts +76 -50
- package/src/langium/trivia/comment-preserver.ts +1410 -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/ast-node-locator.ts +33 -0
- 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 +239 -4
- package/src/langium/workspace/hydranium-workspace-lock.ts +101 -2
- package/src/langium/workspace/hydranium-workspace-manager.ts +214 -35
- package/src/langium/workspace/in-memory-file-system-provider.ts +54 -23
- package/src/langium/workspace/index.ts +3 -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/{documents → langium/workspace}/self-save-registry.ts +12 -14
- package/src/langium/workspace/syntax-errors.ts +34 -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 +6 -6
- 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 +284 -110
- 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 +11 -3
- package/src/node/event-loop-monitor.ts +3 -4
- 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 +28 -20
- 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-test-services.ts +83 -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 +4 -1
- 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 +12 -6
- package/src/testing/node/settle-server.ts +89 -0
- package/src/testing/node/spawned-server.ts +57 -3
- 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 -123
- package/src/testing/stub-document-builder.ts +128 -15
- 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 +9 -8
- package/src/testing/stub-project-manager.ts +10 -0
- 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 +81 -15
- package/src/util/environment.ts +24 -2
- package/lib/documents/language-client-text-shadow.d.ts +0 -124
- package/lib/documents/language-client-text-shadow.d.ts.map +0 -1
- package/lib/documents/language-client-text-shadow.js +0 -190
- package/lib/documents/language-client-text-shadow.js.map +0 -1
- 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 -211
- package/src/lsp/instrument-connection.ts +0 -66
- package/src/node/process-memory.ts +0 -299
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import { DefaultAstNodeDescriptionProvider } from '@hydranium/langium';
|
|
9
|
+
import { AstUtils, CstUtils, DefaultAstNodeDescriptionProvider } from '@hydranium/langium';
|
|
10
10
|
/**
|
|
11
11
|
* Framework `AstNodeDescriptionProvider` extension. Adds four typed
|
|
12
12
|
* factory methods aligned with the {@link TieredAstNodeDescription} four-
|
|
@@ -26,8 +26,10 @@ import { DefaultAstNodeDescriptionProvider } from '@hydranium/langium';
|
|
|
26
26
|
*/
|
|
27
27
|
export class HydraniumAstNodeDescriptionProvider extends DefaultAstNodeDescriptionProvider {
|
|
28
28
|
tracer;
|
|
29
|
+
services;
|
|
29
30
|
constructor(services, options = {}) {
|
|
30
31
|
super(services);
|
|
32
|
+
this.services = services;
|
|
31
33
|
this.tracer = services.shared.Tracer.for(options.logName ?? 'AstNodeDescriptionProvider').trace('instantiated');
|
|
32
34
|
}
|
|
33
35
|
/**
|
|
@@ -36,12 +38,11 @@ export class HydraniumAstNodeDescriptionProvider extends DefaultAstNodeDescripti
|
|
|
36
38
|
* filter pipeline. Callers that need a different tier must use
|
|
37
39
|
* {@link createProject}, {@link createPublic}, or {@link createUniversal}.
|
|
38
40
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* correct tier — so there is no create-then-overwrite cost.
|
|
41
|
+
* Langium's own `createDescription` is not called: every factory builds
|
|
42
|
+
* through {@link createTiered}.
|
|
42
43
|
*/
|
|
43
44
|
createDescription(node, name, document) {
|
|
44
|
-
return this.
|
|
45
|
+
return this.createTiered(node, name, document, 'local');
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
47
48
|
* Build a {@link TieredAstNodeDescription} for a symbol visible only
|
|
@@ -53,7 +54,7 @@ export class HydraniumAstNodeDescriptionProvider extends DefaultAstNodeDescripti
|
|
|
53
54
|
* never sees them, so a project tag would be unused.
|
|
54
55
|
*/
|
|
55
56
|
createLocal(options) {
|
|
56
|
-
return this.
|
|
57
|
+
return this.createTiered(options.node, options.name, options.document, 'local');
|
|
57
58
|
}
|
|
58
59
|
/**
|
|
59
60
|
* Build a {@link TieredAstNodeDescription} for a symbol visible inside
|
|
@@ -69,7 +70,7 @@ export class HydraniumAstNodeDescriptionProvider extends DefaultAstNodeDescripti
|
|
|
69
70
|
* `ProjectManager.getProject(document.uri)?.id` once per document.
|
|
70
71
|
*/
|
|
71
72
|
createProject(options) {
|
|
72
|
-
return this.
|
|
73
|
+
return this.createTiered(options.node, options.name, options.document, 'project', options.projectId);
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
76
|
* Build a {@link TieredAstNodeDescription} at `tier: 'public'` — the
|
|
@@ -87,7 +88,7 @@ export class HydraniumAstNodeDescriptionProvider extends DefaultAstNodeDescripti
|
|
|
87
88
|
* one and a workspace-qualified one.
|
|
88
89
|
*/
|
|
89
90
|
createPublic(options) {
|
|
90
|
-
return this.
|
|
91
|
+
return this.createTiered(options.node, options.name, options.document, 'public', options.projectId);
|
|
91
92
|
}
|
|
92
93
|
/**
|
|
93
94
|
* Build a {@link TieredAstNodeDescription} at `tier: 'universal'` —
|
|
@@ -100,16 +101,88 @@ export class HydraniumAstNodeDescriptionProvider extends DefaultAstNodeDescripti
|
|
|
100
101
|
* {@link createPublic} instead.
|
|
101
102
|
*/
|
|
102
103
|
createUniversal(options) {
|
|
103
|
-
return this.
|
|
104
|
+
return this.createTiered(options.node, options.name, options.document, 'universal');
|
|
104
105
|
}
|
|
105
106
|
/**
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
* just-constructed and not aliased elsewhere.
|
|
107
|
+
* Resolve the fields of the description every factory returns and build it
|
|
108
|
+
* through {@link newDescription}. Mirrors Langium's `createDescription`:
|
|
109
|
+
* the name defaults to the name provider's, and a node without one throws.
|
|
110
110
|
*/
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
createTiered(node, name, document, tier, projectId) {
|
|
112
|
+
const path = this.astNodeLocator.getAstNodePath(node);
|
|
113
|
+
const resolvedName = name ?? this.nameProvider.getName(node);
|
|
114
|
+
if (!resolvedName) {
|
|
115
|
+
throw new Error(`Node at path ${path} has no name.`);
|
|
116
|
+
}
|
|
117
|
+
const documentUri = (document ?? AstUtils.getDocument(node)).uri;
|
|
118
|
+
return this.newDescription(node, resolvedName, documentUri, path, tier, projectId);
|
|
119
|
+
}
|
|
120
|
+
/** Construct the description from resolved fields; override to build a subclass of {@link DefaultTieredAstNodeDescription}. */
|
|
121
|
+
newDescription(node, name, documentUri, path, tier, projectId) {
|
|
122
|
+
return new DefaultTieredAstNodeDescription(this, node, name, documentUri, path, tier, projectId);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* The segment of `node`'s name, or of the whole node when the name
|
|
126
|
+
* provider finds no name node, restoring a shed CST first: a name provider
|
|
127
|
+
* need not restore it, and an absent segment is not computed again.
|
|
128
|
+
*/
|
|
129
|
+
nameSegmentOf(node) {
|
|
130
|
+
this.services.shared.workspace.CstResidencyService.rehydrateNode(node);
|
|
131
|
+
return CstUtils.toDocumentSegment(this.nameProvider.getNameNode(node) ?? node.$cstNode);
|
|
132
|
+
}
|
|
133
|
+
/** The segment of the whole node, restoring a shed CST first. */
|
|
134
|
+
selectionSegmentOf(node) {
|
|
135
|
+
this.services.shared.workspace.CstResidencyService.rehydrateNode(node);
|
|
136
|
+
return CstUtils.toDocumentSegment(node.$cstNode);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* The description {@link HydraniumAstNodeDescriptionProvider} builds. Every
|
|
141
|
+
* field is set in the constructor, so all descriptions share one V8 hidden
|
|
142
|
+
* class; Langium's object literal with a `nameSegment` accessor is kept in
|
|
143
|
+
* dictionary mode and carries two closures, several times the bytes.
|
|
144
|
+
*
|
|
145
|
+
* `nameSegment` and `selectionSegment` are prototype getters, not own
|
|
146
|
+
* properties: a spread, `Object.keys`, a JSON round trip or `structuredClone`
|
|
147
|
+
* of a description drops them. Each is computed on its first read, from the
|
|
148
|
+
* node the description was built for, restoring a shed CST first; an eager
|
|
149
|
+
* `selectionSegment` would keep a segment per description that nothing reads.
|
|
150
|
+
*/
|
|
151
|
+
export class DefaultTieredAstNodeDescription {
|
|
152
|
+
provider;
|
|
153
|
+
node;
|
|
154
|
+
name;
|
|
155
|
+
documentUri;
|
|
156
|
+
path;
|
|
157
|
+
tier;
|
|
158
|
+
projectId;
|
|
159
|
+
type;
|
|
160
|
+
// `null` records a segment computed while the node had no CST. It is
|
|
161
|
+
// recomputed only once the node has one again: retrying without one would
|
|
162
|
+
// attempt a restore, a re-parse, on every read.
|
|
163
|
+
nameSegmentCache;
|
|
164
|
+
selectionSegmentCache;
|
|
165
|
+
constructor(provider, node, name, documentUri, path, tier, projectId) {
|
|
166
|
+
this.provider = provider;
|
|
167
|
+
this.node = node;
|
|
168
|
+
this.name = name;
|
|
169
|
+
this.documentUri = documentUri;
|
|
170
|
+
this.path = path;
|
|
171
|
+
this.tier = tier;
|
|
172
|
+
this.projectId = projectId;
|
|
173
|
+
this.type = node.$type;
|
|
174
|
+
}
|
|
175
|
+
get nameSegment() {
|
|
176
|
+
if (this.nameSegmentCache === undefined || (this.nameSegmentCache === null && this.node.$cstNode !== undefined)) {
|
|
177
|
+
this.nameSegmentCache = this.provider.nameSegmentOf(this.node) ?? null;
|
|
178
|
+
}
|
|
179
|
+
return this.nameSegmentCache ?? undefined;
|
|
180
|
+
}
|
|
181
|
+
get selectionSegment() {
|
|
182
|
+
if (this.selectionSegmentCache === undefined || (this.selectionSegmentCache === null && this.node.$cstNode !== undefined)) {
|
|
183
|
+
this.selectionSegmentCache = this.provider.selectionSegmentOf(this.node) ?? null;
|
|
184
|
+
}
|
|
185
|
+
return this.selectionSegmentCache ?? undefined;
|
|
113
186
|
}
|
|
114
187
|
}
|
|
115
188
|
//# sourceMappingURL=ast-node-description-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast-node-description-provider.js","sourceRoot":"","sources":["../../../src/langium/scope/ast-node-description-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAGlF,OAAO,
|
|
1
|
+
{"version":3,"file":"ast-node-description-provider.js","sourceRoot":"","sources":["../../../src/langium/scope/ast-node-description-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAGlF,OAAO,EAEJ,QAAQ,EACR,QAAQ,EACR,iCAAiC,EAInC,MAAM,oBAAoB,CAAC;AAK5B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,mCAAoC,SAAQ,iCAAiC;IACpE,MAAM,CAAS;IACf,QAAQ,CAA4B;IAEvD,YAAY,QAAmC,EAAE,OAAO,GAAmB,EAAE;QAC1E,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,4BAA4B,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACnH,CAAC;IAED;;;;;;;;OAQG;IACM,iBAAiB,CAAC,IAAa,EAAE,IAAwB,EAAE,QAA0B;QAC3F,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,OAA8F;QACvG,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,OAKb;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxG,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,OAKZ;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACvG,CAAC;IAED;;;;;;;;;OASG;IACH,eAAe,CAAC,OAIf;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACvF,CAAC;IAED;;;;OAIG;IACO,YAAY,CACnB,IAAa,EACb,IAAwB,EACxB,QAAqC,EACrC,IAAqB,EACrB,SAAkB;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,eAAe,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACjE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IAED,+HAA+H;IACrH,cAAc,CACrB,IAAa,EACb,IAAY,EACZ,WAAgB,EAChB,IAAY,EACZ,IAAqB,EACrB,SAA6B;QAE7B,OAAO,IAAI,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACpG,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,IAAa;QACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3F,CAAC;IAED,iEAAiE;IACjE,kBAAkB,CAAC,IAAa;QAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;CACH;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,+BAA+B;IASnB,QAAQ;IAClB,IAAI;IACJ,IAAI;IACJ,WAAW;IACX,IAAI;IACJ,IAAI;IACJ,SAAS;IAdZ,IAAI,CAAS;IACtB,qEAAqE;IACrE,0EAA0E;IAC1E,gDAAgD;IACtC,gBAAgB,CAAqC;IACrD,qBAAqB,CAAqC;IAEpE,YACsB,QAA6C,EACvD,IAAa,EACb,IAAY,EACZ,WAAgB,EAChB,IAAY,EACZ,IAAqB,EACrB,SAA6B;wBANnB,QAAQ;oBAClB,IAAI;oBACJ,IAAI;2BACJ,WAAW;oBACX,IAAI;oBACJ,IAAI;yBACJ,SAAS;QAElB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,WAAW;QACZ,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;YAC/G,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC;IAC7C,CAAC;IAED,IAAI,gBAAgB;QACjB,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,qBAAqB,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;YACzH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,IAAI,SAAS,CAAC;IAClD,CAAC;CACH"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
import type { AstNode, LocalSymbols } from '@hydranium/langium';
|
|
10
|
+
/** The local symbols each build computed, by the root it computed them for. */
|
|
11
|
+
export declare const builtLocalSymbols: WeakMap<AstNode, LocalSymbols>;
|
|
12
|
+
//# sourceMappingURL=built-local-symbols.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"built-local-symbols.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/built-local-symbols.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhE,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,gCAAuC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
/** The local symbols each build computed, by the root it computed them for. */
|
|
10
|
+
export const builtLocalSymbols = new WeakMap();
|
|
11
|
+
//# sourceMappingURL=built-local-symbols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"built-local-symbols.js","sourceRoot":"","sources":["../../../src/langium/scope/built-local-symbols.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAyB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
import { type AstNodeDescription, type Scope, type Stream } from '@hydranium/langium';
|
|
10
|
+
/**
|
|
11
|
+
* A scope that answers from `primary`, and from `fallback` only for a name
|
|
12
|
+
* `primary` does not hold.
|
|
13
|
+
*
|
|
14
|
+
* Langium fixes a scope's outer scope when the scope is built, so a tier cannot
|
|
15
|
+
* be put below a scope that already exists, such as a cached one. Re-wrapping
|
|
16
|
+
* that scope's elements instead would turn its keyed lookup into a scan of
|
|
17
|
+
* every element; chaining keeps each scope's own lookup.
|
|
18
|
+
*/
|
|
19
|
+
export declare class FallbackScope implements Scope {
|
|
20
|
+
protected readonly primary: Scope;
|
|
21
|
+
protected readonly fallback: Scope;
|
|
22
|
+
constructor(primary: Scope, fallback: Scope);
|
|
23
|
+
getElement(name: string): AstNodeDescription | undefined;
|
|
24
|
+
getElements(name: string): Stream<AstNodeDescription>;
|
|
25
|
+
getAllElements(): Stream<AstNodeDescription>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=fallback-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallback-scope.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/fallback-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEtF;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,KAAK;IAErC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK;IACjC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK;IAFrC,YACsB,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,KAAK,EACjC;IAEJ,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEvD;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAEpD;IAED,cAAc,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAE3C;CACH"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
/**
|
|
10
|
+
* A scope that answers from `primary`, and from `fallback` only for a name
|
|
11
|
+
* `primary` does not hold.
|
|
12
|
+
*
|
|
13
|
+
* Langium fixes a scope's outer scope when the scope is built, so a tier cannot
|
|
14
|
+
* be put below a scope that already exists, such as a cached one. Re-wrapping
|
|
15
|
+
* that scope's elements instead would turn its keyed lookup into a scan of
|
|
16
|
+
* every element; chaining keeps each scope's own lookup.
|
|
17
|
+
*/
|
|
18
|
+
export class FallbackScope {
|
|
19
|
+
primary;
|
|
20
|
+
fallback;
|
|
21
|
+
constructor(primary, fallback) {
|
|
22
|
+
this.primary = primary;
|
|
23
|
+
this.fallback = fallback;
|
|
24
|
+
}
|
|
25
|
+
getElement(name) {
|
|
26
|
+
return this.primary.getElement(name) ?? this.fallback.getElement(name);
|
|
27
|
+
}
|
|
28
|
+
getElements(name) {
|
|
29
|
+
return this.primary.getElements(name).concat(this.fallback.getElements(name));
|
|
30
|
+
}
|
|
31
|
+
getAllElements() {
|
|
32
|
+
return this.primary.getAllElements().concat(this.fallback.getAllElements());
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=fallback-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallback-scope.js","sourceRoot":"","sources":["../../../src/langium/scope/fallback-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IAED,OAAO;IACP,QAAQ;IAF9B,YACsB,OAAc,EACd,QAAe;uBADf,OAAO;wBACP,QAAQ;IAC3B,CAAC;IAEJ,UAAU,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,cAAc;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/E,CAAC;CACH"}
|
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import { type AstNode, type AstNodeDescription, DefaultScopeComputation, type LangiumDocument, type LocalSymbols, MultiMap } from '@hydranium/langium';
|
|
10
|
-
import { type Tracer } from '@hydranium/protocol';
|
|
9
|
+
import { type AstNode, type AstNodeDescription, DefaultScopeComputation, type LangiumDocument, type LocalSymbols, type MultiMap } from '@hydranium/langium';
|
|
10
|
+
import { type ProfileSession, type Tracer } from '@hydranium/protocol';
|
|
11
11
|
import type { CancellationToken } from 'vscode-languageserver-protocol';
|
|
12
12
|
import type { LogNameOptions } from '../diagnostics/logger.js';
|
|
13
13
|
import type { HydraniumLanguageServices } from '../language-module.js';
|
|
14
|
+
import type { NameProvider } from '../naming/name-provider.js';
|
|
15
|
+
import { type HydraniumAstNodeDescriptionProvider } from './ast-node-description-provider.js';
|
|
14
16
|
/**
|
|
15
17
|
* Default scope computation for `@hydranium/core` consumers. Two
|
|
16
18
|
* framework behaviours layered on top of Langium's
|
|
@@ -21,8 +23,9 @@ import type { HydraniumLanguageServices } from '../language-module.js';
|
|
|
21
23
|
* `NameProvider.getName` defaults to the workspace-unique
|
|
22
24
|
* `getProjectQualifiedName`. Routing the local-symbols pass through
|
|
23
25
|
* `getName` would put qualified names in the per-document symbol map
|
|
24
|
-
* and break within-document bare-name references.
|
|
25
|
-
* bypasses the default and calls
|
|
26
|
+
* and break within-document bare-name references.
|
|
27
|
+
* {@link addLocalSymbolByOwnName} bypasses the default and calls
|
|
28
|
+
* {@link NameProvider.getOwnName}
|
|
26
29
|
* directly so local symbols stay keyed by bare names regardless of
|
|
27
30
|
* what `getName` returns.
|
|
28
31
|
*
|
|
@@ -41,27 +44,25 @@ import type { HydraniumLanguageServices } from '../language-module.js';
|
|
|
41
44
|
*
|
|
42
45
|
* Performance: piggybacks on the existing single AST walk Langium does
|
|
43
46
|
* for local-symbol collection — the AST-extension dispatch and the
|
|
44
|
-
* own-name read both happen in `
|
|
47
|
+
* own-name read both happen in `addLocalSymbolByOwnName`, no extra traversal.
|
|
45
48
|
* The exported-symbol pass reads both name tiers once per node, no
|
|
46
49
|
* duplicated walks.
|
|
47
50
|
*/
|
|
48
51
|
export declare class HydraniumScopeComputation extends DefaultScopeComputation {
|
|
49
52
|
protected readonly services: HydraniumLanguageServices;
|
|
53
|
+
/** The framework's name provider, which its language module binds to the slot. */
|
|
54
|
+
protected readonly nameProvider: NameProvider;
|
|
55
|
+
/** The framework's description provider, which its language module binds to the slot. */
|
|
56
|
+
protected readonly descriptions: HydraniumAstNodeDescriptionProvider;
|
|
50
57
|
protected readonly tracer: Tracer;
|
|
51
58
|
constructor(services: HydraniumLanguageServices, options?: LogNameOptions);
|
|
59
|
+
/** The session {@link addLocalSymbol} records into while a `debug`-level walk runs. */
|
|
60
|
+
protected localSymbolsProfile: ProfileSession | undefined;
|
|
52
61
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* cost). At `debug` it reproduces the same walk under a `ProfileSession`
|
|
58
|
-
* so each `$type`'s contribution to the heaviest scope-computation pass is
|
|
59
|
-
* aggregated and reported line-based — the walk is gated rather than the
|
|
60
|
-
* per-node `scope`, since `ProfileSession.scope` is not itself level-gated.
|
|
61
|
-
*
|
|
62
|
-
* The instance carries no profiling state: the session is local to the call,
|
|
63
|
-
* which is safe because Langium's document builder runs `collectLocalSymbols`
|
|
64
|
-
* strictly one document at a time (`runCancelable`'s sequential `for…await`).
|
|
62
|
+
* Langium's local-symbol walk, with per-`$type` self-time profiling at
|
|
63
|
+
* `debug`. The walk is Langium's at every level: a copy run only at `debug`
|
|
64
|
+
* would drift from the one every other level runs. Overlapping builds share
|
|
65
|
+
* the session and blur each other's report.
|
|
65
66
|
*/
|
|
66
67
|
collectLocalSymbols(document: LangiumDocument, cancelToken?: CancellationToken): Promise<LocalSymbols>;
|
|
67
68
|
/**
|
|
@@ -143,6 +144,8 @@ export declare class HydraniumScopeComputation extends DefaultScopeComputation {
|
|
|
143
144
|
* (e.g. a per-document descriptor service).
|
|
144
145
|
*/
|
|
145
146
|
protected getProjectIdForDocument(document: LangiumDocument): string | undefined;
|
|
147
|
+
/** {@link addLocalSymbolByOwnName}, timed per `$type` while {@link localSymbolsProfile} is set. */
|
|
148
|
+
protected addLocalSymbol(node: AstNode, document: LangiumDocument, symbols: MultiMap<AstNode, AstNodeDescription>): void;
|
|
146
149
|
/**
|
|
147
150
|
* Bypasses Langium's `super.addLocalSymbol` (which would key the
|
|
148
151
|
* local-symbols map by `nameProvider.getName(node)`, qualified by
|
|
@@ -158,6 +161,6 @@ export declare class HydraniumScopeComputation extends DefaultScopeComputation {
|
|
|
158
161
|
* extension `compute` callbacks fire after this `addLocalSymbol` pass
|
|
159
162
|
* completes for the whole document.
|
|
160
163
|
*/
|
|
161
|
-
protected
|
|
164
|
+
protected addLocalSymbolByOwnName(node: AstNode, document: LangiumDocument, symbols: MultiMap<AstNode, AstNodeDescription>): void;
|
|
162
165
|
}
|
|
163
166
|
//# sourceMappingURL=hydranium-scope-computation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydranium-scope-computation.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-computation.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,OAAO,EACZ,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"hydranium-scope-computation.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-computation.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,QAAQ,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAU,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,oCAAoC,CAAC;AAE9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,yBAA0B,SAAQ,uBAAuB;IAQhE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB;IAPzD,kFAAkF;IAClF,mBAA2B,YAAY,EAAE,YAAY,CAAC;IACtD,yFAAyF;IACzF,mBAA2B,YAAY,EAAE,mCAAmC,CAAC;IAC7E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,YACsB,QAAQ,EAAE,yBAAyB,EACtD,OAAO,GAAE,cAAmB,EAI9B;IAED,uFAAuF;IACvF,SAAS,CAAC,mBAAmB,EAAE,cAAc,GAAG,SAAS,CAAC;IAE1D;;;;;OAKG;IACY,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBpH;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,UAAmB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAGlH;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAWrG;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAUpG;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAE/E;IAED,mGAAmG;IACnG,UAAmB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAOhI;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAShI;CACH"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import {
|
|
9
|
+
import { DefaultScopeComputation, UriUtils } from '@hydranium/langium';
|
|
10
10
|
import { Logger } from '@hydranium/protocol';
|
|
11
11
|
/**
|
|
12
12
|
* Default scope computation for `@hydranium/core` consumers. Two
|
|
@@ -18,8 +18,9 @@ import { Logger } from '@hydranium/protocol';
|
|
|
18
18
|
* `NameProvider.getName` defaults to the workspace-unique
|
|
19
19
|
* `getProjectQualifiedName`. Routing the local-symbols pass through
|
|
20
20
|
* `getName` would put qualified names in the per-document symbol map
|
|
21
|
-
* and break within-document bare-name references.
|
|
22
|
-
* bypasses the default and calls
|
|
21
|
+
* and break within-document bare-name references.
|
|
22
|
+
* {@link addLocalSymbolByOwnName} bypasses the default and calls
|
|
23
|
+
* {@link NameProvider.getOwnName}
|
|
23
24
|
* directly so local symbols stay keyed by bare names regardless of
|
|
24
25
|
* what `getName` returns.
|
|
25
26
|
*
|
|
@@ -38,7 +39,7 @@ import { Logger } from '@hydranium/protocol';
|
|
|
38
39
|
*
|
|
39
40
|
* Performance: piggybacks on the existing single AST walk Langium does
|
|
40
41
|
* for local-symbol collection — the AST-extension dispatch and the
|
|
41
|
-
* own-name read both happen in `
|
|
42
|
+
* own-name read both happen in `addLocalSymbolByOwnName`, no extra traversal.
|
|
42
43
|
* The exported-symbol pass reads both name tiers once per node, no
|
|
43
44
|
* duplicated walks.
|
|
44
45
|
*/
|
|
@@ -50,38 +51,30 @@ export class HydraniumScopeComputation extends DefaultScopeComputation {
|
|
|
50
51
|
this.services = services;
|
|
51
52
|
this.tracer = services.shared.Tracer.for(options.logName ?? 'ScopeComputation').trace('instantiated');
|
|
52
53
|
}
|
|
54
|
+
/** The session {@link addLocalSymbol} records into while a `debug`-level walk runs. */
|
|
55
|
+
localSymbolsProfile;
|
|
53
56
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* cost). At `debug` it reproduces the same walk under a `ProfileSession`
|
|
59
|
-
* so each `$type`'s contribution to the heaviest scope-computation pass is
|
|
60
|
-
* aggregated and reported line-based — the walk is gated rather than the
|
|
61
|
-
* per-node `scope`, since `ProfileSession.scope` is not itself level-gated.
|
|
62
|
-
*
|
|
63
|
-
* The instance carries no profiling state: the session is local to the call,
|
|
64
|
-
* which is safe because Langium's document builder runs `collectLocalSymbols`
|
|
65
|
-
* strictly one document at a time (`runCancelable`'s sequential `for…await`).
|
|
57
|
+
* Langium's local-symbol walk, with per-`$type` self-time profiling at
|
|
58
|
+
* `debug`. The walk is Langium's at every level: a copy run only at `debug`
|
|
59
|
+
* would drift from the one every other level runs. Overlapping builds share
|
|
60
|
+
* the session and blur each other's report.
|
|
66
61
|
*/
|
|
67
62
|
async collectLocalSymbols(document, cancelToken) {
|
|
68
63
|
if (!Logger.isLevelEnabled('debug')) {
|
|
69
64
|
return super.collectLocalSymbols(document, cancelToken);
|
|
70
65
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
await interruptAndCheck(cancelToken);
|
|
66
|
+
const profile = this.tracer.profile(`scope-local ${UriUtils.basename(document.uri)}`);
|
|
67
|
+
this.localSymbolsProfile = profile;
|
|
68
|
+
let symbols;
|
|
69
|
+
try {
|
|
70
|
+
symbols = await super.collectLocalSymbols(document, cancelToken);
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
if (this.localSymbolsProfile === profile) {
|
|
74
|
+
this.localSymbolsProfile = undefined;
|
|
81
75
|
}
|
|
82
|
-
session.scope(node.$type, () => this.addLocalSymbol(node, document, symbols));
|
|
83
76
|
}
|
|
84
|
-
|
|
77
|
+
profile.report('debug');
|
|
85
78
|
return symbols;
|
|
86
79
|
}
|
|
87
80
|
/**
|
|
@@ -142,16 +135,14 @@ export class HydraniumScopeComputation extends DefaultScopeComputation {
|
|
|
142
135
|
* workspace-visible rather than being filtered out everywhere.
|
|
143
136
|
*/
|
|
144
137
|
exportProject(node, exports, document) {
|
|
145
|
-
const
|
|
146
|
-
const documentName = nameProvider.getDocumentQualifiedName(node);
|
|
138
|
+
const documentName = this.nameProvider.getDocumentQualifiedName(node);
|
|
147
139
|
if (!documentName) {
|
|
148
140
|
return;
|
|
149
141
|
}
|
|
150
142
|
const projectId = this.getProjectIdForDocument(document);
|
|
151
|
-
const descriptions = this.descriptions;
|
|
152
143
|
exports.push(projectId !== undefined
|
|
153
|
-
? descriptions.createProject({ node, name: documentName, document, projectId })
|
|
154
|
-
: descriptions.createUniversal({ node, name: documentName, document }));
|
|
144
|
+
? this.descriptions.createProject({ node, name: documentName, document, projectId })
|
|
145
|
+
: this.descriptions.createUniversal({ node, name: documentName, document }));
|
|
155
146
|
}
|
|
156
147
|
/**
|
|
157
148
|
* Conditional public-tier emit hook — `tier: 'public'` description keyed
|
|
@@ -166,16 +157,14 @@ export class HydraniumScopeComputation extends DefaultScopeComputation {
|
|
|
166
157
|
* document-qualified name.
|
|
167
158
|
*/
|
|
168
159
|
exportPublic(node, exports, document) {
|
|
169
|
-
const nameProvider = this.nameProvider;
|
|
170
160
|
const projectId = this.getProjectIdForDocument(document);
|
|
171
161
|
if (projectId === undefined) {
|
|
172
162
|
return;
|
|
173
163
|
}
|
|
174
|
-
const documentName = nameProvider.getDocumentQualifiedName(node);
|
|
175
|
-
const projectName = nameProvider.getProjectQualifiedName(node);
|
|
164
|
+
const documentName = this.nameProvider.getDocumentQualifiedName(node);
|
|
165
|
+
const projectName = this.nameProvider.getProjectQualifiedName(node);
|
|
176
166
|
if (projectName && projectName !== documentName) {
|
|
177
|
-
|
|
178
|
-
exports.push(descriptions.createPublic({ node, name: projectName, document, projectId }));
|
|
167
|
+
exports.push(this.descriptions.createPublic({ node, name: projectName, document, projectId }));
|
|
179
168
|
}
|
|
180
169
|
}
|
|
181
170
|
/**
|
|
@@ -191,6 +180,16 @@ export class HydraniumScopeComputation extends DefaultScopeComputation {
|
|
|
191
180
|
getProjectIdForDocument(document) {
|
|
192
181
|
return this.services.shared.workspace.ProjectManager.getProject(document.uri)?.id;
|
|
193
182
|
}
|
|
183
|
+
/** {@link addLocalSymbolByOwnName}, timed per `$type` while {@link localSymbolsProfile} is set. */
|
|
184
|
+
addLocalSymbol(node, document, symbols) {
|
|
185
|
+
const profile = this.localSymbolsProfile;
|
|
186
|
+
if (profile) {
|
|
187
|
+
profile.scope(node.$type, () => this.addLocalSymbolByOwnName(node, document, symbols));
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
this.addLocalSymbolByOwnName(node, document, symbols);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
194
193
|
/**
|
|
195
194
|
* Bypasses Langium's `super.addLocalSymbol` (which would key the
|
|
196
195
|
* local-symbols map by `nameProvider.getName(node)`, qualified by
|
|
@@ -206,7 +205,7 @@ export class HydraniumScopeComputation extends DefaultScopeComputation {
|
|
|
206
205
|
* extension `compute` callbacks fire after this `addLocalSymbol` pass
|
|
207
206
|
* completes for the whole document.
|
|
208
207
|
*/
|
|
209
|
-
|
|
208
|
+
addLocalSymbolByOwnName(node, document, symbols) {
|
|
210
209
|
const container = node.$container;
|
|
211
210
|
if (!container) {
|
|
212
211
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydranium-scope-computation.js","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-computation.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAGJ,
|
|
1
|
+
{"version":3,"file":"hydranium-scope-computation.js","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-computation.ts"],"names":[],"mappings":"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"}
|