@hydranium/core 1.0.0-next.10
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/LICENSE +21 -0
- package/README.md +100 -0
- package/lib/documents/ast-document-manager.d.ts +243 -0
- package/lib/documents/ast-document-manager.d.ts.map +1 -0
- package/lib/documents/ast-document-manager.js +302 -0
- package/lib/documents/ast-document-manager.js.map +1 -0
- package/lib/documents/client-ids.d.ts +30 -0
- package/lib/documents/client-ids.d.ts.map +1 -0
- package/lib/documents/client-ids.js +30 -0
- package/lib/documents/client-ids.js.map +1 -0
- package/lib/documents/hydranium-text-documents.d.ts +490 -0
- package/lib/documents/hydranium-text-documents.d.ts.map +1 -0
- package/lib/documents/hydranium-text-documents.js +893 -0
- package/lib/documents/hydranium-text-documents.js.map +1 -0
- package/lib/documents/index.d.ts +14 -0
- package/lib/documents/index.d.ts.map +1 -0
- package/lib/documents/index.js +14 -0
- package/lib/documents/index.js.map +1 -0
- package/lib/documents/language-client-text-shadow.d.ts +101 -0
- package/lib/documents/language-client-text-shadow.d.ts.map +1 -0
- package/lib/documents/language-client-text-shadow.js +156 -0
- package/lib/documents/language-client-text-shadow.js.map +1 -0
- package/lib/documents/self-save-registry.d.ts +55 -0
- package/lib/documents/self-save-registry.d.ts.map +1 -0
- package/lib/documents/self-save-registry.js +68 -0
- package/lib/documents/self-save-registry.js.map +1 -0
- package/lib/index.d.ts +38 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +39 -0
- package/lib/index.js.map +1 -0
- package/lib/langium/ast-extension/ast-extension-contribution.d.ts +33 -0
- package/lib/langium/ast-extension/ast-extension-contribution.d.ts.map +1 -0
- package/lib/langium/ast-extension/ast-extension-contribution.js +10 -0
- package/lib/langium/ast-extension/ast-extension-contribution.js.map +1 -0
- package/lib/langium/ast-extension/ast-extension-service.d.ts +212 -0
- package/lib/langium/ast-extension/ast-extension-service.d.ts.map +1 -0
- package/lib/langium/ast-extension/ast-extension-service.js +181 -0
- package/lib/langium/ast-extension/ast-extension-service.js.map +1 -0
- package/lib/langium/ast-extension/ast-node-builder.d.ts +90 -0
- package/lib/langium/ast-extension/ast-node-builder.d.ts.map +1 -0
- package/lib/langium/ast-extension/ast-node-builder.js +61 -0
- package/lib/langium/ast-extension/ast-node-builder.js.map +1 -0
- package/lib/langium/ast-extension/index.d.ts +12 -0
- package/lib/langium/ast-extension/index.d.ts.map +1 -0
- package/lib/langium/ast-extension/index.js +12 -0
- package/lib/langium/ast-extension/index.js.map +1 -0
- package/lib/langium/bootstrap.d.ts +224 -0
- package/lib/langium/bootstrap.d.ts.map +1 -0
- package/lib/langium/bootstrap.js +512 -0
- package/lib/langium/bootstrap.js.map +1 -0
- package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts +77 -0
- package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts.map +1 -0
- package/lib/langium/build-phase-pass/build-phase-pass-service.js +102 -0
- package/lib/langium/build-phase-pass/build-phase-pass-service.js.map +1 -0
- package/lib/langium/build-phase-pass/build-phase-pass.d.ts +106 -0
- package/lib/langium/build-phase-pass/build-phase-pass.d.ts.map +1 -0
- package/lib/langium/build-phase-pass/build-phase-pass.js +43 -0
- package/lib/langium/build-phase-pass/build-phase-pass.js.map +1 -0
- package/lib/langium/build-phase-pass/index.d.ts +11 -0
- package/lib/langium/build-phase-pass/index.d.ts.map +1 -0
- package/lib/langium/build-phase-pass/index.js +11 -0
- package/lib/langium/build-phase-pass/index.js.map +1 -0
- package/lib/langium/config/index.d.ts +10 -0
- package/lib/langium/config/index.d.ts.map +1 -0
- package/lib/langium/config/index.js +10 -0
- package/lib/langium/config/index.js.map +1 -0
- package/lib/langium/config/settings.d.ts +173 -0
- package/lib/langium/config/settings.d.ts.map +1 -0
- package/lib/langium/config/settings.js +196 -0
- package/lib/langium/config/settings.js.map +1 -0
- package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts +109 -0
- package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts.map +1 -0
- package/lib/langium/diagnostics/hydranium-langium-profiler.js +153 -0
- package/lib/langium/diagnostics/hydranium-langium-profiler.js.map +1 -0
- package/lib/langium/diagnostics/index.d.ts +14 -0
- package/lib/langium/diagnostics/index.d.ts.map +1 -0
- package/lib/langium/diagnostics/index.js +19 -0
- package/lib/langium/diagnostics/index.js.map +1 -0
- package/lib/langium/diagnostics/log-file-token.d.ts +16 -0
- package/lib/langium/diagnostics/log-file-token.d.ts.map +1 -0
- package/lib/langium/diagnostics/log-file-token.js +25 -0
- package/lib/langium/diagnostics/log-file-token.js.map +1 -0
- package/lib/langium/diagnostics/log-preamble.d.ts +42 -0
- package/lib/langium/diagnostics/log-preamble.d.ts.map +1 -0
- package/lib/langium/diagnostics/log-preamble.js +57 -0
- package/lib/langium/diagnostics/log-preamble.js.map +1 -0
- package/lib/langium/diagnostics/logger.d.ts +104 -0
- package/lib/langium/diagnostics/logger.d.ts.map +1 -0
- package/lib/langium/diagnostics/logger.js +178 -0
- package/lib/langium/diagnostics/logger.js.map +1 -0
- package/lib/langium/diagnostics/lsp-logger.d.ts +76 -0
- package/lib/langium/diagnostics/lsp-logger.d.ts.map +1 -0
- package/lib/langium/diagnostics/lsp-logger.js +223 -0
- package/lib/langium/diagnostics/lsp-logger.js.map +1 -0
- package/lib/langium/diagnostics/server-tracer.d.ts +27 -0
- package/lib/langium/diagnostics/server-tracer.d.ts.map +1 -0
- package/lib/langium/diagnostics/server-tracer.js +66 -0
- package/lib/langium/diagnostics/server-tracer.js.map +1 -0
- package/lib/langium/document-builder/build-pipeline-integration.d.ts +88 -0
- package/lib/langium/document-builder/build-pipeline-integration.d.ts.map +1 -0
- package/lib/langium/document-builder/build-pipeline-integration.js +151 -0
- package/lib/langium/document-builder/build-pipeline-integration.js.map +1 -0
- package/lib/langium/document-builder/document-builder.d.ts +405 -0
- package/lib/langium/document-builder/document-builder.d.ts.map +1 -0
- package/lib/langium/document-builder/document-builder.js +729 -0
- package/lib/langium/document-builder/document-builder.js.map +1 -0
- package/lib/langium/document-builder/index.d.ts +12 -0
- package/lib/langium/document-builder/index.d.ts.map +1 -0
- package/lib/langium/document-builder/index.js +12 -0
- package/lib/langium/document-builder/index.js.map +1 -0
- package/lib/langium/document-builder/labeled-phase-listener.d.ts +21 -0
- package/lib/langium/document-builder/labeled-phase-listener.d.ts.map +1 -0
- package/lib/langium/document-builder/labeled-phase-listener.js +15 -0
- package/lib/langium/document-builder/labeled-phase-listener.js.map +1 -0
- package/lib/langium/documentation/comment-provider.d.ts +31 -0
- package/lib/langium/documentation/comment-provider.d.ts.map +1 -0
- package/lib/langium/documentation/comment-provider.js +36 -0
- package/lib/langium/documentation/comment-provider.js.map +1 -0
- package/lib/langium/documentation/index.d.ts +10 -0
- package/lib/langium/documentation/index.d.ts.map +1 -0
- package/lib/langium/documentation/index.js +10 -0
- package/lib/langium/documentation/index.js.map +1 -0
- package/lib/langium/integration-services.d.ts +200 -0
- package/lib/langium/integration-services.d.ts.map +1 -0
- package/lib/langium/integration-services.js +65 -0
- package/lib/langium/integration-services.js.map +1 -0
- package/lib/langium/integrity/index.d.ts +12 -0
- package/lib/langium/integrity/index.d.ts.map +1 -0
- package/lib/langium/integrity/index.js +12 -0
- package/lib/langium/integrity/index.js.map +1 -0
- package/lib/langium/integrity/integrity-contribution.d.ts +42 -0
- package/lib/langium/integrity/integrity-contribution.d.ts.map +1 -0
- package/lib/langium/integrity/integrity-contribution.js +10 -0
- package/lib/langium/integrity/integrity-contribution.js.map +1 -0
- package/lib/langium/integrity/integrity-rule.d.ts +82 -0
- package/lib/langium/integrity/integrity-rule.d.ts.map +1 -0
- package/lib/langium/integrity/integrity-rule.js +52 -0
- package/lib/langium/integrity/integrity-rule.js.map +1 -0
- package/lib/langium/integrity/integrity-service.d.ts +221 -0
- package/lib/langium/integrity/integrity-service.d.ts.map +1 -0
- package/lib/langium/integrity/integrity-service.js +328 -0
- package/lib/langium/integrity/integrity-service.js.map +1 -0
- package/lib/langium/keys/default-element-key-provider.d.ts +19 -0
- package/lib/langium/keys/default-element-key-provider.d.ts.map +1 -0
- package/lib/langium/keys/default-element-key-provider.js +18 -0
- package/lib/langium/keys/default-element-key-provider.js.map +1 -0
- package/lib/langium/keys/element-key-provider.d.ts +106 -0
- package/lib/langium/keys/element-key-provider.d.ts.map +1 -0
- package/lib/langium/keys/element-key-provider.js +25 -0
- package/lib/langium/keys/element-key-provider.js.map +1 -0
- package/lib/langium/keys/index.d.ts +13 -0
- package/lib/langium/keys/index.d.ts.map +1 -0
- package/lib/langium/keys/index.js +13 -0
- package/lib/langium/keys/index.js.map +1 -0
- package/lib/langium/keys/name-based-key-provider.d.ts +99 -0
- package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -0
- package/lib/langium/keys/name-based-key-provider.js +134 -0
- package/lib/langium/keys/name-based-key-provider.js.map +1 -0
- package/lib/langium/keys/positional-key-provider.d.ts +41 -0
- package/lib/langium/keys/positional-key-provider.d.ts.map +1 -0
- package/lib/langium/keys/positional-key-provider.js +48 -0
- package/lib/langium/keys/positional-key-provider.js.map +1 -0
- package/lib/langium/labeling/index.d.ts +10 -0
- package/lib/langium/labeling/index.d.ts.map +1 -0
- package/lib/langium/labeling/index.js +10 -0
- package/lib/langium/labeling/index.js.map +1 -0
- package/lib/langium/labeling/label-provider.d.ts +79 -0
- package/lib/langium/labeling/label-provider.d.ts.map +1 -0
- package/lib/langium/labeling/label-provider.js +44 -0
- package/lib/langium/labeling/label-provider.js.map +1 -0
- package/lib/langium/language-module.d.ts +281 -0
- package/lib/langium/language-module.d.ts.map +1 -0
- package/lib/langium/language-module.js +103 -0
- package/lib/langium/language-module.js.map +1 -0
- package/lib/langium/language-types.d.ts +85 -0
- package/lib/langium/language-types.d.ts.map +1 -0
- package/lib/langium/language-types.js +173 -0
- package/lib/langium/language-types.js.map +1 -0
- package/lib/langium/model-service/index.d.ts +10 -0
- package/lib/langium/model-service/index.d.ts.map +1 -0
- package/lib/langium/model-service/index.js +10 -0
- package/lib/langium/model-service/index.js.map +1 -0
- package/lib/langium/model-service/model-service.d.ts +598 -0
- package/lib/langium/model-service/model-service.d.ts.map +1 -0
- package/lib/langium/model-service/model-service.js +889 -0
- package/lib/langium/model-service/model-service.js.map +1 -0
- package/lib/langium/module.d.ts +308 -0
- package/lib/langium/module.d.ts.map +1 -0
- package/lib/langium/module.js +165 -0
- package/lib/langium/module.js.map +1 -0
- package/lib/langium/naming/index.d.ts +11 -0
- package/lib/langium/naming/index.d.ts.map +1 -0
- package/lib/langium/naming/index.js +11 -0
- package/lib/langium/naming/index.js.map +1 -0
- package/lib/langium/naming/name-provider.d.ts +360 -0
- package/lib/langium/naming/name-provider.d.ts.map +1 -0
- package/lib/langium/naming/name-provider.js +240 -0
- package/lib/langium/naming/name-provider.js.map +1 -0
- package/lib/langium/naming/name-separator-validation.d.ts +47 -0
- package/lib/langium/naming/name-separator-validation.d.ts.map +1 -0
- package/lib/langium/naming/name-separator-validation.js +61 -0
- package/lib/langium/naming/name-separator-validation.js.map +1 -0
- package/lib/langium/project/abstract-project-manager.d.ts +242 -0
- package/lib/langium/project/abstract-project-manager.d.ts.map +1 -0
- package/lib/langium/project/abstract-project-manager.js +545 -0
- package/lib/langium/project/abstract-project-manager.js.map +1 -0
- package/lib/langium/project/index.d.ts +13 -0
- package/lib/langium/project/index.d.ts.map +1 -0
- package/lib/langium/project/index.js +13 -0
- package/lib/langium/project/index.js.map +1 -0
- package/lib/langium/project/project-change-event.d.ts +64 -0
- package/lib/langium/project/project-change-event.d.ts.map +1 -0
- package/lib/langium/project/project-change-event.js +10 -0
- package/lib/langium/project/project-change-event.js.map +1 -0
- package/lib/langium/project/project-manager.d.ts +196 -0
- package/lib/langium/project/project-manager.d.ts.map +1 -0
- package/lib/langium/project/project-manager.js +10 -0
- package/lib/langium/project/project-manager.js.map +1 -0
- package/lib/langium/project/single-project-manager.d.ts +69 -0
- package/lib/langium/project/single-project-manager.d.ts.map +1 -0
- package/lib/langium/project/single-project-manager.js +104 -0
- package/lib/langium/project/single-project-manager.js.map +1 -0
- package/lib/langium/residency/cst-residency-service.d.ts +214 -0
- package/lib/langium/residency/cst-residency-service.d.ts.map +1 -0
- package/lib/langium/residency/cst-residency-service.js +349 -0
- package/lib/langium/residency/cst-residency-service.js.map +1 -0
- package/lib/langium/residency/index.d.ts +10 -0
- package/lib/langium/residency/index.d.ts.map +1 -0
- package/lib/langium/residency/index.js +10 -0
- package/lib/langium/residency/index.js.map +1 -0
- package/lib/langium/scope/ast-node-description-provider.d.ts +122 -0
- package/lib/langium/scope/ast-node-description-provider.d.ts.map +1 -0
- package/lib/langium/scope/ast-node-description-provider.js +115 -0
- package/lib/langium/scope/ast-node-description-provider.js.map +1 -0
- package/lib/langium/scope/hydranium-scope-computation.d.ts +163 -0
- package/lib/langium/scope/hydranium-scope-computation.d.ts.map +1 -0
- package/lib/langium/scope/hydranium-scope-computation.js +220 -0
- package/lib/langium/scope/hydranium-scope-computation.js.map +1 -0
- package/lib/langium/scope/hydranium-scope-provider.d.ts +411 -0
- package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -0
- package/lib/langium/scope/hydranium-scope-provider.js +543 -0
- package/lib/langium/scope/hydranium-scope-provider.js.map +1 -0
- package/lib/langium/scope/index.d.ts +18 -0
- package/lib/langium/scope/index.d.ts.map +1 -0
- package/lib/langium/scope/index.js +18 -0
- package/lib/langium/scope/index.js.map +1 -0
- package/lib/langium/scope/reference-builder.d.ts +125 -0
- package/lib/langium/scope/reference-builder.d.ts.map +1 -0
- package/lib/langium/scope/reference-builder.js +115 -0
- package/lib/langium/scope/reference-builder.js.map +1 -0
- package/lib/langium/scope/reference-candidate-provider.d.ts +228 -0
- package/lib/langium/scope/reference-candidate-provider.d.ts.map +1 -0
- package/lib/langium/scope/reference-candidate-provider.js +185 -0
- package/lib/langium/scope/reference-candidate-provider.js.map +1 -0
- package/lib/langium/scope/scope-extension-contribution.d.ts +32 -0
- package/lib/langium/scope/scope-extension-contribution.d.ts.map +1 -0
- package/lib/langium/scope/scope-extension-contribution.js +10 -0
- package/lib/langium/scope/scope-extension-contribution.js.map +1 -0
- package/lib/langium/scope/scope-extension-service.d.ts +149 -0
- package/lib/langium/scope/scope-extension-service.d.ts.map +1 -0
- package/lib/langium/scope/scope-extension-service.js +94 -0
- package/lib/langium/scope/scope-extension-service.js.map +1 -0
- package/lib/langium/scope/scoped-ast-node-description.d.ts +160 -0
- package/lib/langium/scope/scoped-ast-node-description.d.ts.map +1 -0
- package/lib/langium/scope/scoped-ast-node-description.js +98 -0
- package/lib/langium/scope/scoped-ast-node-description.js.map +1 -0
- package/lib/langium/scope/tier-specificity.d.ts +47 -0
- package/lib/langium/scope/tier-specificity.d.ts.map +1 -0
- package/lib/langium/scope/tier-specificity.js +83 -0
- package/lib/langium/scope/tier-specificity.js.map +1 -0
- package/lib/langium/serialization/abstract-serializer.d.ts +316 -0
- package/lib/langium/serialization/abstract-serializer.d.ts.map +1 -0
- package/lib/langium/serialization/abstract-serializer.js +351 -0
- package/lib/langium/serialization/abstract-serializer.js.map +1 -0
- package/lib/langium/serialization/index.d.ts +14 -0
- package/lib/langium/serialization/index.d.ts.map +1 -0
- package/lib/langium/serialization/index.js +14 -0
- package/lib/langium/serialization/index.js.map +1 -0
- package/lib/langium/serialization/json-serializer.d.ts +106 -0
- package/lib/langium/serialization/json-serializer.d.ts.map +1 -0
- package/lib/langium/serialization/json-serializer.js +198 -0
- package/lib/langium/serialization/json-serializer.js.map +1 -0
- package/lib/langium/serialization/serialization-util.d.ts +29 -0
- package/lib/langium/serialization/serialization-util.d.ts.map +1 -0
- package/lib/langium/serialization/serialization-util.js +37 -0
- package/lib/langium/serialization/serialization-util.js.map +1 -0
- package/lib/langium/serialization/serializer.d.ts +66 -0
- package/lib/langium/serialization/serializer.d.ts.map +1 -0
- package/lib/langium/serialization/serializer.js +10 -0
- package/lib/langium/serialization/serializer.js.map +1 -0
- package/lib/langium/serialization/yaml-serializer.d.ts +166 -0
- package/lib/langium/serialization/yaml-serializer.d.ts.map +1 -0
- package/lib/langium/serialization/yaml-serializer.js +228 -0
- package/lib/langium/serialization/yaml-serializer.js.map +1 -0
- package/lib/langium/service-registry.d.ts +220 -0
- package/lib/langium/service-registry.d.ts.map +1 -0
- package/lib/langium/service-registry.js +258 -0
- package/lib/langium/service-registry.js.map +1 -0
- package/lib/langium/shared-services.d.ts +98 -0
- package/lib/langium/shared-services.d.ts.map +1 -0
- package/lib/langium/shared-services.js +30 -0
- package/lib/langium/shared-services.js.map +1 -0
- package/lib/langium/transfer/index.d.ts +10 -0
- package/lib/langium/transfer/index.d.ts.map +1 -0
- package/lib/langium/transfer/index.js +10 -0
- package/lib/langium/transfer/index.js.map +1 -0
- package/lib/langium/transfer/transfer-encoder.d.ts +294 -0
- package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -0
- package/lib/langium/transfer/transfer-encoder.js +328 -0
- package/lib/langium/transfer/transfer-encoder.js.map +1 -0
- package/lib/langium/update-rewrite/index.d.ts +14 -0
- package/lib/langium/update-rewrite/index.d.ts.map +1 -0
- package/lib/langium/update-rewrite/index.js +14 -0
- package/lib/langium/update-rewrite/index.js.map +1 -0
- package/lib/langium/update-rewrite/normalize-empty-strings.d.ts +52 -0
- package/lib/langium/update-rewrite/normalize-empty-strings.d.ts.map +1 -0
- package/lib/langium/update-rewrite/normalize-empty-strings.js +83 -0
- package/lib/langium/update-rewrite/normalize-empty-strings.js.map +1 -0
- package/lib/langium/update-rewrite/semantic-root-rewrite.d.ts +37 -0
- package/lib/langium/update-rewrite/semantic-root-rewrite.d.ts.map +1 -0
- package/lib/langium/update-rewrite/semantic-root-rewrite.js +51 -0
- package/lib/langium/update-rewrite/semantic-root-rewrite.js.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite-contribution.d.ts +42 -0
- package/lib/langium/update-rewrite/update-rewrite-contribution.d.ts.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite-contribution.js +10 -0
- package/lib/langium/update-rewrite/update-rewrite-contribution.js.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite-service.d.ts +89 -0
- package/lib/langium/update-rewrite/update-rewrite-service.d.ts.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite-service.js +75 -0
- package/lib/langium/update-rewrite/update-rewrite-service.js.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite.d.ts +59 -0
- package/lib/langium/update-rewrite/update-rewrite.d.ts.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite.js +10 -0
- package/lib/langium/update-rewrite/update-rewrite.js.map +1 -0
- package/lib/langium/validation/document-validator.d.ts +106 -0
- package/lib/langium/validation/document-validator.d.ts.map +1 -0
- package/lib/langium/validation/document-validator.js +118 -0
- package/lib/langium/validation/document-validator.js.map +1 -0
- package/lib/langium/validation/index.d.ts +12 -0
- package/lib/langium/validation/index.d.ts.map +1 -0
- package/lib/langium/validation/index.js +12 -0
- package/lib/langium/validation/index.js.map +1 -0
- package/lib/langium/validation/validation-contribution-collector.d.ts +34 -0
- package/lib/langium/validation/validation-contribution-collector.d.ts.map +1 -0
- package/lib/langium/validation/validation-contribution-collector.js +51 -0
- package/lib/langium/validation/validation-contribution-collector.js.map +1 -0
- package/lib/langium/validation/validation-contribution.d.ts +36 -0
- package/lib/langium/validation/validation-contribution.d.ts.map +1 -0
- package/lib/langium/validation/validation-contribution.js +10 -0
- package/lib/langium/validation/validation-contribution.js.map +1 -0
- package/lib/langium/workspace/additional-document-contribution.d.ts +68 -0
- package/lib/langium/workspace/additional-document-contribution.d.ts.map +1 -0
- package/lib/langium/workspace/additional-document-contribution.js +23 -0
- package/lib/langium/workspace/additional-document-contribution.js.map +1 -0
- package/lib/langium/workspace/document-uri-policy.d.ts +151 -0
- package/lib/langium/workspace/document-uri-policy.d.ts.map +1 -0
- package/lib/langium/workspace/document-uri-policy.js +121 -0
- package/lib/langium/workspace/document-uri-policy.js.map +1 -0
- package/lib/langium/workspace/file-system-provider.d.ts +30 -0
- package/lib/langium/workspace/file-system-provider.d.ts.map +1 -0
- package/lib/langium/workspace/file-system-provider.js +41 -0
- package/lib/langium/workspace/file-system-provider.js.map +1 -0
- package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +45 -0
- package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -0
- package/lib/langium/workspace/hydranium-langium-document-factory.js +64 -0
- package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -0
- package/lib/langium/workspace/hydranium-workspace-lock.d.ts +31 -0
- package/lib/langium/workspace/hydranium-workspace-lock.d.ts.map +1 -0
- package/lib/langium/workspace/hydranium-workspace-lock.js +33 -0
- package/lib/langium/workspace/hydranium-workspace-lock.js.map +1 -0
- package/lib/langium/workspace/hydranium-workspace-manager.d.ts +232 -0
- package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -0
- package/lib/langium/workspace/hydranium-workspace-manager.js +368 -0
- package/lib/langium/workspace/hydranium-workspace-manager.js.map +1 -0
- package/lib/langium/workspace/in-memory-file-system-provider.d.ts +127 -0
- package/lib/langium/workspace/in-memory-file-system-provider.d.ts.map +1 -0
- package/lib/langium/workspace/in-memory-file-system-provider.js +195 -0
- package/lib/langium/workspace/in-memory-file-system-provider.js.map +1 -0
- package/lib/langium/workspace/index-manager.d.ts +142 -0
- package/lib/langium/workspace/index-manager.d.ts.map +1 -0
- package/lib/langium/workspace/index-manager.js +245 -0
- package/lib/langium/workspace/index-manager.js.map +1 -0
- package/lib/langium/workspace/index.d.ts +23 -0
- package/lib/langium/workspace/index.d.ts.map +1 -0
- package/lib/langium/workspace/index.js +23 -0
- package/lib/langium/workspace/index.js.map +1 -0
- package/lib/langium/workspace/initialize-workspace.d.ts +63 -0
- package/lib/langium/workspace/initialize-workspace.d.ts.map +1 -0
- package/lib/langium/workspace/initialize-workspace.js +88 -0
- package/lib/langium/workspace/initialize-workspace.js.map +1 -0
- package/lib/langium/workspace/langium-documents.d.ts +47 -0
- package/lib/langium/workspace/langium-documents.d.ts.map +1 -0
- package/lib/langium/workspace/langium-documents.js +85 -0
- package/lib/langium/workspace/langium-documents.js.map +1 -0
- package/lib/langium/workspace/persistent-file-system-provider.d.ts +207 -0
- package/lib/langium/workspace/persistent-file-system-provider.d.ts.map +1 -0
- package/lib/langium/workspace/persistent-file-system-provider.js +208 -0
- package/lib/langium/workspace/persistent-file-system-provider.js.map +1 -0
- package/lib/langium/workspace/synthetic.d.ts +38 -0
- package/lib/langium/workspace/synthetic.d.ts.map +1 -0
- package/lib/langium/workspace/synthetic.js +58 -0
- package/lib/langium/workspace/synthetic.js.map +1 -0
- package/lib/langium/workspace/virtual-document.d.ts +78 -0
- package/lib/langium/workspace/virtual-document.d.ts.map +1 -0
- package/lib/langium/workspace/virtual-document.js +89 -0
- package/lib/langium/workspace/virtual-document.js.map +1 -0
- package/lib/langium/workspace/write-lock-scope.d.ts +69 -0
- package/lib/langium/workspace/write-lock-scope.d.ts.map +1 -0
- package/lib/langium/workspace/write-lock-scope.js +54 -0
- package/lib/langium/workspace/write-lock-scope.js.map +1 -0
- package/lib/launcher/index.d.ts +10 -0
- package/lib/launcher/index.d.ts.map +1 -0
- package/lib/launcher/index.js +12 -0
- package/lib/launcher/index.js.map +1 -0
- package/lib/launcher/integrated-server.d.ts +28 -0
- package/lib/launcher/integrated-server.d.ts.map +1 -0
- package/lib/launcher/integrated-server.js +10 -0
- package/lib/launcher/integrated-server.js.map +1 -0
- package/lib/lsp/completion/hydranium-completion-provider.d.ts +89 -0
- package/lib/lsp/completion/hydranium-completion-provider.d.ts.map +1 -0
- package/lib/lsp/completion/hydranium-completion-provider.js +123 -0
- package/lib/lsp/completion/hydranium-completion-provider.js.map +1 -0
- package/lib/lsp/hydranium-document-update-handler.d.ts +204 -0
- package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -0
- package/lib/lsp/hydranium-document-update-handler.js +288 -0
- package/lib/lsp/hydranium-document-update-handler.js.map +1 -0
- package/lib/lsp/index.d.ts +23 -0
- package/lib/lsp/index.d.ts.map +1 -0
- package/lib/lsp/index.js +23 -0
- package/lib/lsp/index.js.map +1 -0
- package/lib/lsp/instrument-connection.d.ts +36 -0
- package/lib/lsp/instrument-connection.d.ts.map +1 -0
- package/lib/lsp/instrument-connection.js +62 -0
- package/lib/lsp/instrument-connection.js.map +1 -0
- package/lib/lsp/language-module.d.ts +53 -0
- package/lib/lsp/language-module.d.ts.map +1 -0
- package/lib/lsp/language-module.js +28 -0
- package/lib/lsp/language-module.js.map +1 -0
- package/lib/lsp/semantic-token-provider.d.ts +131 -0
- package/lib/lsp/semantic-token-provider.d.ts.map +1 -0
- package/lib/lsp/semantic-token-provider.js +148 -0
- package/lib/lsp/semantic-token-provider.js.map +1 -0
- package/lib/lsp/shared-module.d.ts +76 -0
- package/lib/lsp/shared-module.d.ts.map +1 -0
- package/lib/lsp/shared-module.js +33 -0
- package/lib/lsp/shared-module.js.map +1 -0
- package/lib/lsp/start-language-server.d.ts +43 -0
- package/lib/lsp/start-language-server.d.ts.map +1 -0
- package/lib/lsp/start-language-server.js +60 -0
- package/lib/lsp/start-language-server.js.map +1 -0
- package/lib/node/ast-ground-truth.d.ts +57 -0
- package/lib/node/ast-ground-truth.d.ts.map +1 -0
- package/lib/node/ast-ground-truth.js +46 -0
- package/lib/node/ast-ground-truth.js.map +1 -0
- package/lib/node/event-loop-monitor.d.ts +40 -0
- package/lib/node/event-loop-monitor.d.ts.map +1 -0
- package/lib/node/event-loop-monitor.js +62 -0
- package/lib/node/event-loop-monitor.js.map +1 -0
- package/lib/node/index.d.ts +29 -0
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +50 -0
- package/lib/node/index.js.map +1 -0
- package/lib/node/latency-from-env.d.ts +32 -0
- package/lib/node/latency-from-env.d.ts.map +1 -0
- package/lib/node/latency-from-env.js +36 -0
- package/lib/node/latency-from-env.js.map +1 -0
- package/lib/node/lint-grammar.d.ts +87 -0
- package/lib/node/lint-grammar.d.ts.map +1 -0
- package/lib/node/lint-grammar.js +124 -0
- package/lib/node/lint-grammar.js.map +1 -0
- package/lib/node/log-file-sink.d.ts +22 -0
- package/lib/node/log-file-sink.d.ts.map +1 -0
- package/lib/node/log-file-sink.js +43 -0
- package/lib/node/log-file-sink.js.map +1 -0
- package/lib/node/log-preamble-node.d.ts +28 -0
- package/lib/node/log-preamble-node.d.ts.map +1 -0
- package/lib/node/log-preamble-node.js +55 -0
- package/lib/node/log-preamble-node.js.map +1 -0
- package/lib/node/measure-memory.d.ts +86 -0
- package/lib/node/measure-memory.d.ts.map +1 -0
- package/lib/node/measure-memory.js +128 -0
- package/lib/node/measure-memory.js.map +1 -0
- package/lib/node/memory-monitor.d.ts +42 -0
- package/lib/node/memory-monitor.d.ts.map +1 -0
- package/lib/node/memory-monitor.js +83 -0
- package/lib/node/memory-monitor.js.map +1 -0
- package/lib/node/node-file-system-provider.d.ts +112 -0
- package/lib/node/node-file-system-provider.d.ts.map +1 -0
- package/lib/node/node-file-system-provider.js +230 -0
- package/lib/node/node-file-system-provider.js.map +1 -0
- package/lib/node/process-memory.d.ts +66 -0
- package/lib/node/process-memory.d.ts.map +1 -0
- package/lib/node/process-memory.js +252 -0
- package/lib/node/process-memory.js.map +1 -0
- package/lib/node/profile-capture.d.ts +118 -0
- package/lib/node/profile-capture.d.ts.map +1 -0
- package/lib/node/profile-capture.js +315 -0
- package/lib/node/profile-capture.js.map +1 -0
- package/lib/node/profile-digest.d.ts +49 -0
- package/lib/node/profile-digest.d.ts.map +1 -0
- package/lib/node/profile-digest.js +74 -0
- package/lib/node/profile-digest.js.map +1 -0
- package/lib/node/profiling-run.d.ts +80 -0
- package/lib/node/profiling-run.d.ts.map +1 -0
- package/lib/node/profiling-run.js +183 -0
- package/lib/node/profiling-run.js.map +1 -0
- package/lib/node/reflect-grammar.d.ts +109 -0
- package/lib/node/reflect-grammar.d.ts.map +1 -0
- package/lib/node/reflect-grammar.js +96 -0
- package/lib/node/reflect-grammar.js.map +1 -0
- package/lib/node/server-diagnostics.d.ts +43 -0
- package/lib/node/server-diagnostics.d.ts.map +1 -0
- package/lib/node/server-diagnostics.js +46 -0
- package/lib/node/server-diagnostics.js.map +1 -0
- package/lib/node/server-state-snapshot.d.ts +48 -0
- package/lib/node/server-state-snapshot.d.ts.map +1 -0
- package/lib/node/server-state-snapshot.js +139 -0
- package/lib/node/server-state-snapshot.js.map +1 -0
- package/lib/node/socket-launcher.d.ts +106 -0
- package/lib/node/socket-launcher.d.ts.map +1 -0
- package/lib/node/socket-launcher.js +138 -0
- package/lib/node/socket-launcher.js.map +1 -0
- package/lib/node/stdio-launcher.d.ts +88 -0
- package/lib/node/stdio-launcher.d.ts.map +1 -0
- package/lib/node/stdio-launcher.js +83 -0
- package/lib/node/stdio-launcher.js.map +1 -0
- package/lib/node/validate-workspace.d.ts +80 -0
- package/lib/node/validate-workspace.d.ts.map +1 -0
- package/lib/node/validate-workspace.js +72 -0
- package/lib/node/validate-workspace.js.map +1 -0
- package/lib/node/write-lock-scope-node.d.ts +27 -0
- package/lib/node/write-lock-scope-node.d.ts.map +1 -0
- package/lib/node/write-lock-scope-node.js +38 -0
- package/lib/node/write-lock-scope-node.js.map +1 -0
- package/lib/testing/ast-snapshot.d.ts +38 -0
- package/lib/testing/ast-snapshot.d.ts.map +1 -0
- package/lib/testing/ast-snapshot.js +78 -0
- package/lib/testing/ast-snapshot.js.map +1 -0
- package/lib/testing/document-uri-policy-conformance.d.ts +65 -0
- package/lib/testing/document-uri-policy-conformance.d.ts.map +1 -0
- package/lib/testing/document-uri-policy-conformance.js +69 -0
- package/lib/testing/document-uri-policy-conformance.js.map +1 -0
- package/lib/testing/fake-description.d.ts +35 -0
- package/lib/testing/fake-description.d.ts.map +1 -0
- package/lib/testing/fake-description.js +38 -0
- package/lib/testing/fake-description.js.map +1 -0
- package/lib/testing/fake-document.d.ts +71 -0
- package/lib/testing/fake-document.d.ts.map +1 -0
- package/lib/testing/fake-document.js +85 -0
- package/lib/testing/fake-document.js.map +1 -0
- package/lib/testing/fake-reflection.d.ts +29 -0
- package/lib/testing/fake-reflection.d.ts.map +1 -0
- package/lib/testing/fake-reflection.js +30 -0
- package/lib/testing/fake-reflection.js.map +1 -0
- package/lib/testing/index.d.ts +44 -0
- package/lib/testing/index.d.ts.map +1 -0
- package/lib/testing/index.js +44 -0
- package/lib/testing/index.js.map +1 -0
- package/lib/testing/langium-test-helpers.d.ts +26 -0
- package/lib/testing/langium-test-helpers.d.ts.map +1 -0
- package/lib/testing/langium-test-helpers.js +26 -0
- package/lib/testing/langium-test-helpers.js.map +1 -0
- package/lib/testing/make-noop-language-services.d.ts +39 -0
- package/lib/testing/make-noop-language-services.d.ts.map +1 -0
- package/lib/testing/make-noop-language-services.js +30 -0
- package/lib/testing/make-noop-language-services.js.map +1 -0
- package/lib/testing/make-noop-shared-services.d.ts +61 -0
- package/lib/testing/make-noop-shared-services.d.ts.map +1 -0
- package/lib/testing/make-noop-shared-services.js +49 -0
- package/lib/testing/make-noop-shared-services.js.map +1 -0
- package/lib/testing/make-test-services.d.ts +217 -0
- package/lib/testing/make-test-services.d.ts.map +1 -0
- package/lib/testing/make-test-services.js +128 -0
- package/lib/testing/make-test-services.js.map +1 -0
- package/lib/testing/make-test-tracer.d.ts +67 -0
- package/lib/testing/make-test-tracer.d.ts.map +1 -0
- package/lib/testing/make-test-tracer.js +68 -0
- package/lib/testing/make-test-tracer.js.map +1 -0
- package/lib/testing/node/generated-workspace.d.ts +95 -0
- package/lib/testing/node/generated-workspace.d.ts.map +1 -0
- package/lib/testing/node/generated-workspace.js +134 -0
- package/lib/testing/node/generated-workspace.js.map +1 -0
- package/lib/testing/node/golden-corpus.d.ts +50 -0
- package/lib/testing/node/golden-corpus.d.ts.map +1 -0
- package/lib/testing/node/golden-corpus.js +80 -0
- package/lib/testing/node/golden-corpus.js.map +1 -0
- package/lib/testing/node/index.d.ts +28 -0
- package/lib/testing/node/index.d.ts.map +1 -0
- package/lib/testing/node/index.js +28 -0
- package/lib/testing/node/index.js.map +1 -0
- package/lib/testing/node/lsp-harness.d.ts +139 -0
- package/lib/testing/node/lsp-harness.d.ts.map +1 -0
- package/lib/testing/node/lsp-harness.js +119 -0
- package/lib/testing/node/lsp-harness.js.map +1 -0
- package/lib/testing/node/lsp-server-connection.d.ts +232 -0
- package/lib/testing/node/lsp-server-connection.d.ts.map +1 -0
- package/lib/testing/node/lsp-server-connection.js +304 -0
- package/lib/testing/node/lsp-server-connection.js.map +1 -0
- package/lib/testing/node/scratch-workspace.d.ts +60 -0
- package/lib/testing/node/scratch-workspace.d.ts.map +1 -0
- package/lib/testing/node/scratch-workspace.js +87 -0
- package/lib/testing/node/scratch-workspace.js.map +1 -0
- package/lib/testing/node/spawned-server.d.ts +170 -0
- package/lib/testing/node/spawned-server.d.ts.map +1 -0
- package/lib/testing/node/spawned-server.js +265 -0
- package/lib/testing/node/spawned-server.js.map +1 -0
- package/lib/testing/parse-semantic-root.d.ts +83 -0
- package/lib/testing/parse-semantic-root.d.ts.map +1 -0
- package/lib/testing/parse-semantic-root.js +119 -0
- package/lib/testing/parse-semantic-root.js.map +1 -0
- package/lib/testing/playwright/browser-capture-bridge.d.ts +80 -0
- package/lib/testing/playwright/browser-capture-bridge.d.ts.map +1 -0
- package/lib/testing/playwright/browser-capture-bridge.js +161 -0
- package/lib/testing/playwright/browser-capture-bridge.js.map +1 -0
- package/lib/testing/playwright/e2e-profiling.d.ts +132 -0
- package/lib/testing/playwright/e2e-profiling.d.ts.map +1 -0
- package/lib/testing/playwright/e2e-profiling.js +270 -0
- package/lib/testing/playwright/e2e-profiling.js.map +1 -0
- package/lib/testing/playwright/index.d.ts +13 -0
- package/lib/testing/playwright/index.d.ts.map +1 -0
- package/lib/testing/playwright/index.js +16 -0
- package/lib/testing/playwright/index.js.map +1 -0
- package/lib/testing/playwright/server-log-capture.d.ts +230 -0
- package/lib/testing/playwright/server-log-capture.d.ts.map +1 -0
- package/lib/testing/playwright/server-log-capture.js +336 -0
- package/lib/testing/playwright/server-log-capture.js.map +1 -0
- package/lib/testing/playwright/server-log-fixture.d.ts +36 -0
- package/lib/testing/playwright/server-log-fixture.d.ts.map +1 -0
- package/lib/testing/playwright/server-log-fixture.js +38 -0
- package/lib/testing/playwright/server-log-fixture.js.map +1 -0
- package/lib/testing/playwright/server-log-rename-reporter.d.ts +22 -0
- package/lib/testing/playwright/server-log-rename-reporter.d.ts.map +1 -0
- package/lib/testing/playwright/server-log-rename-reporter.js +26 -0
- package/lib/testing/playwright/server-log-rename-reporter.js.map +1 -0
- package/lib/testing/run-update-pipeline.d.ts +99 -0
- package/lib/testing/run-update-pipeline.d.ts.map +1 -0
- package/lib/testing/run-update-pipeline.js +24 -0
- package/lib/testing/run-update-pipeline.js.map +1 -0
- package/lib/testing/stub-ast-document-manager.d.ts +82 -0
- package/lib/testing/stub-ast-document-manager.d.ts.map +1 -0
- package/lib/testing/stub-ast-document-manager.js +125 -0
- package/lib/testing/stub-ast-document-manager.js.map +1 -0
- package/lib/testing/stub-document-builder.d.ts +99 -0
- package/lib/testing/stub-document-builder.d.ts.map +1 -0
- package/lib/testing/stub-document-builder.js +142 -0
- package/lib/testing/stub-document-builder.js.map +1 -0
- package/lib/testing/stub-hydranium-text-documents.d.ts +125 -0
- package/lib/testing/stub-hydranium-text-documents.d.ts.map +1 -0
- package/lib/testing/stub-hydranium-text-documents.js +164 -0
- package/lib/testing/stub-hydranium-text-documents.js.map +1 -0
- package/lib/testing/stub-index-manager.d.ts +40 -0
- package/lib/testing/stub-index-manager.d.ts.map +1 -0
- package/lib/testing/stub-index-manager.js +38 -0
- package/lib/testing/stub-index-manager.js.map +1 -0
- package/lib/testing/stub-langium-documents.d.ts +53 -0
- package/lib/testing/stub-langium-documents.d.ts.map +1 -0
- package/lib/testing/stub-langium-documents.js +62 -0
- package/lib/testing/stub-langium-documents.js.map +1 -0
- package/lib/testing/stub-model-service.d.ts +31 -0
- package/lib/testing/stub-model-service.d.ts.map +1 -0
- package/lib/testing/stub-model-service.js +45 -0
- package/lib/testing/stub-model-service.js.map +1 -0
- package/lib/testing/stub-project-manager.d.ts +43 -0
- package/lib/testing/stub-project-manager.d.ts.map +1 -0
- package/lib/testing/stub-project-manager.js +125 -0
- package/lib/testing/stub-project-manager.js.map +1 -0
- package/lib/testing/stub-self-save-registry.d.ts +31 -0
- package/lib/testing/stub-self-save-registry.d.ts.map +1 -0
- package/lib/testing/stub-self-save-registry.js +23 -0
- package/lib/testing/stub-self-save-registry.js.map +1 -0
- package/lib/testing/stub-service-registry.d.ts +95 -0
- package/lib/testing/stub-service-registry.d.ts.map +1 -0
- package/lib/testing/stub-service-registry.js +108 -0
- package/lib/testing/stub-service-registry.js.map +1 -0
- package/lib/testing/stub-writable-file-system.d.ts +42 -0
- package/lib/testing/stub-writable-file-system.d.ts.map +1 -0
- package/lib/testing/stub-writable-file-system.js +26 -0
- package/lib/testing/stub-writable-file-system.js.map +1 -0
- package/lib/util/connection-liveness.d.ts +25 -0
- package/lib/util/connection-liveness.d.ts.map +1 -0
- package/lib/util/connection-liveness.js +46 -0
- package/lib/util/connection-liveness.js.map +1 -0
- package/lib/util/environment.d.ts +53 -0
- package/lib/util/environment.d.ts.map +1 -0
- package/lib/util/environment.js +78 -0
- package/lib/util/environment.js.map +1 -0
- package/lib/util/index.d.ts +13 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/index.js +18 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/registry.d.ts +88 -0
- package/lib/util/registry.d.ts.map +1 -0
- package/lib/util/registry.js +105 -0
- package/lib/util/registry.js.map +1 -0
- package/package.json +134 -0
- package/src/documents/ast-document-manager.ts +455 -0
- package/src/documents/client-ids.ts +33 -0
- package/src/documents/hydranium-text-documents.ts +1142 -0
- package/src/documents/index.ts +14 -0
- package/src/documents/language-client-text-shadow.ts +175 -0
- package/src/documents/self-save-registry.ts +81 -0
- package/src/index.ts +39 -0
- package/src/langium/ast-extension/ast-extension-contribution.ts +35 -0
- package/src/langium/ast-extension/ast-extension-service.ts +311 -0
- package/src/langium/ast-extension/ast-node-builder.ts +125 -0
- package/src/langium/ast-extension/index.ts +12 -0
- package/src/langium/bootstrap.ts +600 -0
- package/src/langium/build-phase-pass/build-phase-pass-service.ts +141 -0
- package/src/langium/build-phase-pass/build-phase-pass.ts +123 -0
- package/src/langium/build-phase-pass/index.ts +11 -0
- package/src/langium/config/index.ts +10 -0
- package/src/langium/config/settings.ts +353 -0
- package/src/langium/diagnostics/hydranium-langium-profiler.ts +187 -0
- package/src/langium/diagnostics/index.ts +19 -0
- package/src/langium/diagnostics/log-file-token.ts +26 -0
- package/src/langium/diagnostics/log-preamble.ts +87 -0
- package/src/langium/diagnostics/logger.ts +246 -0
- package/src/langium/diagnostics/lsp-logger.ts +277 -0
- package/src/langium/diagnostics/server-tracer.ts +73 -0
- package/src/langium/document-builder/build-pipeline-integration.ts +193 -0
- package/src/langium/document-builder/document-builder.ts +839 -0
- package/src/langium/document-builder/index.ts +12 -0
- package/src/langium/document-builder/labeled-phase-listener.ts +26 -0
- package/src/langium/documentation/comment-provider.ts +37 -0
- package/src/langium/documentation/index.ts +10 -0
- package/src/langium/integration-services.ts +281 -0
- package/src/langium/integrity/index.ts +12 -0
- package/src/langium/integrity/integrity-contribution.ts +44 -0
- package/src/langium/integrity/integrity-rule.ts +100 -0
- package/src/langium/integrity/integrity-service.ts +423 -0
- package/src/langium/keys/default-element-key-provider.ts +20 -0
- package/src/langium/keys/element-key-provider.ts +114 -0
- package/src/langium/keys/index.ts +13 -0
- package/src/langium/keys/name-based-key-provider.ts +146 -0
- package/src/langium/keys/positional-key-provider.ts +57 -0
- package/src/langium/labeling/index.ts +10 -0
- package/src/langium/labeling/label-provider.ts +110 -0
- package/src/langium/language-module.ts +367 -0
- package/src/langium/language-types.ts +214 -0
- package/src/langium/model-service/index.ts +10 -0
- package/src/langium/model-service/model-service.ts +1051 -0
- package/src/langium/module.ts +446 -0
- package/src/langium/naming/index.ts +11 -0
- package/src/langium/naming/name-provider.ts +533 -0
- package/src/langium/naming/name-separator-validation.ts +73 -0
- package/src/langium/project/abstract-project-manager.ts +630 -0
- package/src/langium/project/index.ts +13 -0
- package/src/langium/project/project-change-event.ts +66 -0
- package/src/langium/project/project-manager.ts +221 -0
- package/src/langium/project/single-project-manager.ts +126 -0
- package/src/langium/residency/cst-residency-service.ts +412 -0
- package/src/langium/residency/index.ts +10 -0
- package/src/langium/scope/ast-node-description-provider.ts +141 -0
- package/src/langium/scope/hydranium-scope-computation.ts +246 -0
- package/src/langium/scope/hydranium-scope-provider.ts +659 -0
- package/src/langium/scope/index.ts +18 -0
- package/src/langium/scope/reference-builder.ts +194 -0
- package/src/langium/scope/reference-candidate-provider.ts +314 -0
- package/src/langium/scope/scope-extension-contribution.ts +34 -0
- package/src/langium/scope/scope-extension-service.ts +207 -0
- package/src/langium/scope/scoped-ast-node-description.ts +174 -0
- package/src/langium/scope/tier-specificity.ts +89 -0
- package/src/langium/serialization/abstract-serializer.ts +474 -0
- package/src/langium/serialization/index.ts +14 -0
- package/src/langium/serialization/json-serializer.ts +264 -0
- package/src/langium/serialization/serialization-util.ts +40 -0
- package/src/langium/serialization/serializer.ts +68 -0
- package/src/langium/serialization/yaml-serializer.ts +348 -0
- package/src/langium/service-registry.ts +323 -0
- package/src/langium/shared-services.ts +107 -0
- package/src/langium/transfer/index.ts +10 -0
- package/src/langium/transfer/transfer-encoder.ts +434 -0
- package/src/langium/update-rewrite/index.ts +14 -0
- package/src/langium/update-rewrite/normalize-empty-strings.ts +86 -0
- package/src/langium/update-rewrite/semantic-root-rewrite.ts +57 -0
- package/src/langium/update-rewrite/update-rewrite-contribution.ts +44 -0
- package/src/langium/update-rewrite/update-rewrite-service.ts +129 -0
- package/src/langium/update-rewrite/update-rewrite.ts +60 -0
- package/src/langium/validation/document-validator.ts +188 -0
- package/src/langium/validation/index.ts +12 -0
- package/src/langium/validation/validation-contribution-collector.ts +61 -0
- package/src/langium/validation/validation-contribution.ts +38 -0
- package/src/langium/workspace/additional-document-contribution.ts +80 -0
- package/src/langium/workspace/document-uri-policy.ts +187 -0
- package/src/langium/workspace/file-system-provider.ts +52 -0
- package/src/langium/workspace/hydranium-langium-document-factory.ts +78 -0
- package/src/langium/workspace/hydranium-workspace-lock.ts +35 -0
- package/src/langium/workspace/hydranium-workspace-manager.ts +412 -0
- package/src/langium/workspace/in-memory-file-system-provider.ts +241 -0
- package/src/langium/workspace/index-manager.ts +266 -0
- package/src/langium/workspace/index.ts +23 -0
- package/src/langium/workspace/initialize-workspace.ts +102 -0
- package/src/langium/workspace/langium-documents.ts +94 -0
- package/src/langium/workspace/persistent-file-system-provider.ts +287 -0
- package/src/langium/workspace/synthetic.ts +63 -0
- package/src/langium/workspace/virtual-document.ts +94 -0
- package/src/langium/workspace/write-lock-scope.ts +88 -0
- package/src/launcher/index.ts +12 -0
- package/src/launcher/integrated-server.ts +28 -0
- package/src/lsp/completion/hydranium-completion-provider.ts +132 -0
- package/src/lsp/hydranium-document-update-handler.ts +345 -0
- package/src/lsp/index.ts +24 -0
- package/src/lsp/instrument-connection.ts +66 -0
- package/src/lsp/language-module.ts +64 -0
- package/src/lsp/semantic-token-provider.ts +215 -0
- package/src/lsp/shared-module.ts +88 -0
- package/src/lsp/start-language-server.ts +68 -0
- package/src/node/ast-ground-truth.ts +76 -0
- package/src/node/event-loop-monitor.ts +89 -0
- package/src/node/index.ts +53 -0
- package/src/node/latency-from-env.ts +39 -0
- package/src/node/lint-grammar.ts +189 -0
- package/src/node/log-file-sink.ts +43 -0
- package/src/node/log-preamble-node.ts +63 -0
- package/src/node/measure-memory.ts +196 -0
- package/src/node/memory-monitor.ts +103 -0
- package/src/node/node-file-system-provider.ts +252 -0
- package/src/node/process-memory.ts +299 -0
- package/src/node/profile-capture.ts +377 -0
- package/src/node/profile-digest.ts +112 -0
- package/src/node/profiling-run.ts +236 -0
- package/src/node/reflect-grammar.ts +182 -0
- package/src/node/server-diagnostics.ts +63 -0
- package/src/node/server-state-snapshot.ts +192 -0
- package/src/node/socket-launcher.ts +210 -0
- package/src/node/stdio-launcher.ts +150 -0
- package/src/node/validate-workspace.ts +133 -0
- package/src/node/write-lock-scope-node.ts +41 -0
- package/src/testing/ast-snapshot.ts +88 -0
- package/src/testing/document-uri-policy-conformance.ts +104 -0
- package/src/testing/fake-description.ts +52 -0
- package/src/testing/fake-document.ts +120 -0
- package/src/testing/fake-reflection.ts +39 -0
- package/src/testing/index.ts +45 -0
- package/src/testing/langium-test-helpers.ts +26 -0
- package/src/testing/make-noop-language-services.ts +47 -0
- package/src/testing/make-noop-shared-services.ts +78 -0
- package/src/testing/make-test-services.ts +356 -0
- package/src/testing/make-test-tracer.ts +92 -0
- package/src/testing/node/generated-workspace.ts +222 -0
- package/src/testing/node/golden-corpus.ts +114 -0
- package/src/testing/node/index.ts +29 -0
- package/src/testing/node/lsp-harness.ts +230 -0
- package/src/testing/node/lsp-server-connection.ts +575 -0
- package/src/testing/node/scratch-workspace.ts +137 -0
- package/src/testing/node/spawned-server.ts +447 -0
- package/src/testing/parse-semantic-root.ts +150 -0
- package/src/testing/playwright/browser-capture-bridge.ts +258 -0
- package/src/testing/playwright/e2e-profiling.ts +362 -0
- package/src/testing/playwright/index.ts +16 -0
- package/src/testing/playwright/server-log-capture.ts +433 -0
- package/src/testing/playwright/server-log-fixture.ts +57 -0
- package/src/testing/playwright/server-log-rename-reporter.ts +29 -0
- package/src/testing/run-update-pipeline.ts +113 -0
- package/src/testing/stub-ast-document-manager.ts +224 -0
- package/src/testing/stub-document-builder.ts +242 -0
- package/src/testing/stub-hydranium-text-documents.ts +270 -0
- package/src/testing/stub-index-manager.ts +79 -0
- package/src/testing/stub-langium-documents.ts +104 -0
- package/src/testing/stub-model-service.ts +72 -0
- package/src/testing/stub-project-manager.ts +161 -0
- package/src/testing/stub-self-save-registry.ts +43 -0
- package/src/testing/stub-service-registry.ts +192 -0
- package/src/testing/stub-writable-file-system.ts +58 -0
- package/src/util/connection-liveness.ts +47 -0
- package/src/util/environment.ts +88 -0
- package/src/util/index.ts +18 -0
- package/src/util/registry.ts +129 -0
|
@@ -0,0 +1,12 @@
|
|
|
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
|
+
|
|
10
|
+
export * from './build-pipeline-integration.js';
|
|
11
|
+
export * from './document-builder.js';
|
|
12
|
+
export * from './labeled-phase-listener.js';
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A document-builder phase listener that carries a `displayName` so per-listener
|
|
12
|
+
* timing can attribute slow-listener breakdowns to the right caller. The
|
|
13
|
+
* framework's enhanced document-builder reads `displayName` when emitting
|
|
14
|
+
* per-listener phase logs; listeners without a
|
|
15
|
+
* label fall back to `Function.name`.
|
|
16
|
+
*/
|
|
17
|
+
export interface LabeledPhaseListener {
|
|
18
|
+
displayName: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** Attach a `displayName` to a phase listener so it shows up in slow-listener breakdowns. */
|
|
22
|
+
export function labelPhaseListener<T extends (...args: never[]) => unknown>(listener: T, displayName: string): T & LabeledPhaseListener {
|
|
23
|
+
const labeled = listener as T & LabeledPhaseListener;
|
|
24
|
+
labeled.displayName = displayName;
|
|
25
|
+
return labeled;
|
|
26
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
|
|
10
|
+
import { type AstNode, DefaultCommentProvider } from '@hydranium/langium';
|
|
11
|
+
import type { HydraniumLanguageServices } from '../language-module.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Comment provider that survives CST residency shedding.
|
|
15
|
+
*
|
|
16
|
+
* Hover and completion documentation read the TARGET node's preceding comment
|
|
17
|
+
* through Langium's `DefaultCommentProvider.getComment`, which resolves it from
|
|
18
|
+
* the node's live `$cstNode` — exactly what a residency policy sheds for a
|
|
19
|
+
* closed, idle document. Those are read-only LSP requests that never run a
|
|
20
|
+
* build, so nothing would restore the CST and a shed target's documentation
|
|
21
|
+
* would silently come back empty.
|
|
22
|
+
*
|
|
23
|
+
* Read-side CST rehydration, the documentation sibling of
|
|
24
|
+
* `DefaultNameProvider.getNameNode`: restore the CST on demand before reading.
|
|
25
|
+
* A no-op while the CST is resident (every parsed node has a `$cstNode`), so
|
|
26
|
+
* behaviour is unchanged unless a residency policy has shed the document.
|
|
27
|
+
*/
|
|
28
|
+
export class HydraniumCommentProvider extends DefaultCommentProvider {
|
|
29
|
+
constructor(protected readonly languageServices: HydraniumLanguageServices) {
|
|
30
|
+
super(languageServices);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
override getComment(node: AstNode): string | undefined {
|
|
34
|
+
this.languageServices.shared.workspace.CstResidencyService.rehydrateNode(node);
|
|
35
|
+
return super.getComment(node);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
+
|
|
10
|
+
export * from './comment-provider.js';
|
|
@@ -0,0 +1,281 @@
|
|
|
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
|
+
|
|
10
|
+
import { inject, type Module } from '@hydranium/langium';
|
|
11
|
+
import {
|
|
12
|
+
createDefaultModule,
|
|
13
|
+
createDefaultSharedModule,
|
|
14
|
+
type LangiumServices,
|
|
15
|
+
type LangiumSharedServices,
|
|
16
|
+
type PartialLangiumServices,
|
|
17
|
+
type PartialLangiumSharedServices
|
|
18
|
+
} from '@hydranium/langium/lsp';
|
|
19
|
+
import { DEFAULT_EAGER_SERVICES, bootstrapLangiumLanguages } from './bootstrap.js';
|
|
20
|
+
import { createServerLanguageModule } from './language-module.js';
|
|
21
|
+
import { createServerSharedModule, type ServerModuleContext } from './module.js';
|
|
22
|
+
import type { ServerSharedServicesMinimal } from './shared-services.js';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Options accepted by {@link createIntegrationServices}. Wraps the
|
|
26
|
+
* canonical Langium module-composition chain that every hydranium
|
|
27
|
+
* adopter writes verbatim — `createDefaultSharedModule` →
|
|
28
|
+
* grammar-generated shared module → `createServerSharedModule` →
|
|
29
|
+
* optional protocol-head shared modules → adopter shared overrides;
|
|
30
|
+
* symmetric on the language side. Both tiers take head modules in the
|
|
31
|
+
* same `extra` position, because a head contributes to whichever tier
|
|
32
|
+
* Langium declares the slot on.
|
|
33
|
+
*
|
|
34
|
+
* Slots that are adopter-specific and don't fit cleanly into the helper
|
|
35
|
+
* — typed-`ServiceRegistry` assignments, Langium validation-check
|
|
36
|
+
* registration, and any other post-bootstrap side effects — stay in the
|
|
37
|
+
* adopter's `createXxxServices` function around the helper call. The
|
|
38
|
+
* helper covers the *composition* boilerplate, not adopter-specific
|
|
39
|
+
* lifecycle.
|
|
40
|
+
*/
|
|
41
|
+
export interface IntegrationServicesOptions<
|
|
42
|
+
TContext extends ServerModuleContext,
|
|
43
|
+
TShared extends LangiumSharedServices & ServerSharedServicesMinimal,
|
|
44
|
+
TLanguage extends LangiumServices
|
|
45
|
+
> {
|
|
46
|
+
/**
|
|
47
|
+
* Shared module-construction context. Flows into the framework's
|
|
48
|
+
* default factories (`createDefaultSharedModule`,
|
|
49
|
+
* `createServerSharedModule`, `createServerLanguageModule`) and into
|
|
50
|
+
* any head-language modules the adopter contributes via `extra`.
|
|
51
|
+
* Adopters with custom context fields (parser worker path, integrity
|
|
52
|
+
* sync mode, custom file-system providers) extend
|
|
53
|
+
* {@link ServerModuleContext} and pass the wider context — the
|
|
54
|
+
* framework factories ignore unknown fields.
|
|
55
|
+
*/
|
|
56
|
+
context: TContext;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Shared-services module pair: the grammar's generated module and the
|
|
60
|
+
* adopter's override module. Spread into the shared `inject(...)` in
|
|
61
|
+
* the order:
|
|
62
|
+
* - `createDefaultSharedModule(context)` (Langium baseline)
|
|
63
|
+
* - `generated` (grammar metadata, AST reflection)
|
|
64
|
+
* - `createServerSharedModule(context)` (framework defaults)
|
|
65
|
+
* - ...`extra` (protocol heads — `createLspServerSharedModule(context)`)
|
|
66
|
+
* - `adopter` (adopter overrides — later-wins)
|
|
67
|
+
*/
|
|
68
|
+
sharedModules: {
|
|
69
|
+
/**
|
|
70
|
+
* Module emitted by `langium-cli` (grammar metadata, AST reflection).
|
|
71
|
+
*
|
|
72
|
+
* `AstReflection` is a SINGLE shared slot, so in a multi-grammar
|
|
73
|
+
* composition this must be the *combined* generated shared module of
|
|
74
|
+
* ONE `langium-cli` run over all grammars (one `langium-config.json`
|
|
75
|
+
* with several entry grammars). Two independently generated language
|
|
76
|
+
* packages each bind this one slot and the last one wins, leaving the
|
|
77
|
+
* other grammar's types unknown to reflection — `isSubtype` answers
|
|
78
|
+
* false, `getTypeMetaData` is empty, and indexing, reference routing
|
|
79
|
+
* and the transfer encoder all silently miss those types.
|
|
80
|
+
* {@link bootstrapLangiumLanguages} throws when a language's types are
|
|
81
|
+
* wholly absent and warns on a partial gap, because the types cannot
|
|
82
|
+
* express "these modules came from one generator run".
|
|
83
|
+
*/
|
|
84
|
+
generated: Module<TShared, PartialLangiumSharedServices>;
|
|
85
|
+
/** Adopter's override module (workspace manager, file-system provider, integrity rules, etc.). */
|
|
86
|
+
adopter: Module<TShared, PartialLangiumSharedServices>;
|
|
87
|
+
/**
|
|
88
|
+
* Additional SHARED modules contributed by protocol heads —
|
|
89
|
+
* `createLspServerSharedModule(context)` from `@hydranium/core/lsp`,
|
|
90
|
+
* future heads' shared modules. Composed *after*
|
|
91
|
+
* `createServerSharedModule` and *before* `adopter`, mirroring
|
|
92
|
+
* `languageModules.extra`.
|
|
93
|
+
*
|
|
94
|
+
* A head needs this tier whenever the slot it binds is shared in
|
|
95
|
+
* Langium rather than per-language — `lsp.DocumentUpdateHandler` is
|
|
96
|
+
* the case that forced this option to exist: it is read off the
|
|
97
|
+
* shared tree by `startLanguageServer`, so a per-language binding of
|
|
98
|
+
* it is silently inert.
|
|
99
|
+
*/
|
|
100
|
+
extra?: ReadonlyArray<Module<TShared, PartialLangiumSharedServices>>;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Language-services module trio: generated, adopter, and optional
|
|
105
|
+
* extra protocol-head modules. Spread into the language `inject(...)`
|
|
106
|
+
* in the order:
|
|
107
|
+
* - `createDefaultModule({ shared })` (Langium baseline)
|
|
108
|
+
* - `generated` (grammar tokens, parser, etc.)
|
|
109
|
+
* - `createServerLanguageModule(context)` (framework defaults)
|
|
110
|
+
* - ...`extra` (protocol heads — `createLspServerLanguageModule(context)`, future heads)
|
|
111
|
+
* - `adopter`(shared) (adopter overrides — later-wins)
|
|
112
|
+
*
|
|
113
|
+
* The adopter slot is a factory rather than a plain module so it
|
|
114
|
+
* receives the already-injected `shared` services. Adopters with
|
|
115
|
+
* context-dependent slot bindings (e.g. a parser-worker path
|
|
116
|
+
* conditional) close over the wider context in the factory.
|
|
117
|
+
*/
|
|
118
|
+
languageModules: {
|
|
119
|
+
/** Module emitted by `langium-cli` (parser, tokens, grammar access). */
|
|
120
|
+
generated: Module<TLanguage, PartialLangiumServices>;
|
|
121
|
+
/**
|
|
122
|
+
* Adopter's override module, constructed against the resolved
|
|
123
|
+
* shared services. Plain-module adopters with no shared-services
|
|
124
|
+
* dependency at construction time write `() => MyLanguageModule`.
|
|
125
|
+
*/
|
|
126
|
+
adopter: (shared: TShared) => Module<TLanguage, PartialLangiumServices>;
|
|
127
|
+
/**
|
|
128
|
+
* Additional language modules contributed by protocol heads —
|
|
129
|
+
* `createLspServerLanguageModule(context)` from
|
|
130
|
+
* `@hydranium/core/lsp`, future `createGlspServerLanguageModule`
|
|
131
|
+
* from `@hydranium/glsp-server`, etc. Composed *after*
|
|
132
|
+
* `createServerLanguageModule` and *before* `adopter` so
|
|
133
|
+
* head defaults win over framework defaults but adopter overrides
|
|
134
|
+
* still win over heads.
|
|
135
|
+
*/
|
|
136
|
+
extra?: ReadonlyArray<Module<TLanguage, PartialLangiumServices>>;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Additional languages composed over the SAME shared tier — the
|
|
141
|
+
* multi-grammar case. Each entry gets its own `createDefaultModule({ shared })`
|
|
142
|
+
* → generated → framework-defaults → extra → adopter chain, exactly
|
|
143
|
+
* like {@link languageModules}, and all of them are registered before
|
|
144
|
+
* any slot validation or eager construction runs (see
|
|
145
|
+
* {@link bootstrapLangiumLanguages}).
|
|
146
|
+
*
|
|
147
|
+
* Because the shared tier is common, the `AstDocumentManager`,
|
|
148
|
+
* `IndexManager` and `DocumentBuilder` are shared across languages —
|
|
149
|
+
* which is what lets cross-grammar references resolve through one
|
|
150
|
+
* global index.
|
|
151
|
+
*
|
|
152
|
+
* {@link AdditionalLanguageModules.adopter} and
|
|
153
|
+
* {@link AdditionalLanguageModules.extra} default to the primary
|
|
154
|
+
* language's, so a second grammar that reuses the same service
|
|
155
|
+
* overrides only supplies its own `generated` module.
|
|
156
|
+
*
|
|
157
|
+
* Every grammar composed here must come from ONE `langium-cli` run —
|
|
158
|
+
* see the `generated` note on {@link IntegrationServicesOptions.sharedModules}.
|
|
159
|
+
* The shared `AstReflection` slot cannot hold two independently
|
|
160
|
+
* generated reflections, so separately generated language packages are
|
|
161
|
+
* detected at bootstrap rather than supported.
|
|
162
|
+
*
|
|
163
|
+
* Multi-grammar adopters should also rebind `lsp.configurationRoot`
|
|
164
|
+
* (it defaults to the first registered language's id) and, if they
|
|
165
|
+
* pass non-URI reference sources, override
|
|
166
|
+
* `DataServer.resolveReferenceServices`.
|
|
167
|
+
*/
|
|
168
|
+
additionalLanguages?: ReadonlyArray<AdditionalLanguageModules<TShared, TLanguage>>;
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Forwarded to {@link bootstrapLangiumLanguages}. Defaults to
|
|
172
|
+
* {@link DEFAULT_EAGER_SERVICES}, which already covers every framework
|
|
173
|
+
* service that must be constructed before the first build; adopters
|
|
174
|
+
* with their own eager targets spread the default into their list.
|
|
175
|
+
*/
|
|
176
|
+
eagerlyConstructedServices?: ReadonlyArray<(services: TShared) => unknown>;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* One additional language in a multi-grammar composition. Only
|
|
181
|
+
* {@link generated} is required; the service-override slots fall back to
|
|
182
|
+
* the primary language's, since a second grammar in the same adopter
|
|
183
|
+
* usually reuses the same scope provider, serializer and lexer and
|
|
184
|
+
* differs only in its grammar-generated module.
|
|
185
|
+
*/
|
|
186
|
+
export interface AdditionalLanguageModules<
|
|
187
|
+
TShared extends LangiumSharedServices & ServerSharedServicesMinimal,
|
|
188
|
+
TLanguage extends LangiumServices
|
|
189
|
+
> {
|
|
190
|
+
/**
|
|
191
|
+
* Module emitted by `langium-cli` for this grammar — from the SAME run
|
|
192
|
+
* that produced the primary language's modules and the shared
|
|
193
|
+
* `generated` module, not a separately generated language package.
|
|
194
|
+
*/
|
|
195
|
+
generated: Module<TLanguage, PartialLangiumServices>;
|
|
196
|
+
/** Adopter overrides for this language. Defaults to the primary language's. */
|
|
197
|
+
adopter?: (shared: TShared) => Module<TLanguage, PartialLangiumServices>;
|
|
198
|
+
/** Protocol-head modules for this language. Defaults to the primary language's. */
|
|
199
|
+
extra?: ReadonlyArray<Module<TLanguage, PartialLangiumServices>>;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Compose the standard hydranium Langium DI tree from an adopter's
|
|
204
|
+
* generated + override modules: one shared `inject(...)`, one language
|
|
205
|
+
* `inject(...)` per grammar, then {@link bootstrapLangiumLanguages} — the
|
|
206
|
+
* chain every adopter and every protocol head otherwise writes verbatim.
|
|
207
|
+
* The value is the composition ORDER, which is later-wins throughout:
|
|
208
|
+
* Langium baseline, then generated, then framework defaults, then
|
|
209
|
+
* protocol heads, then adopter overrides, on both tiers.
|
|
210
|
+
*
|
|
211
|
+
* Returns `{ shared, language, languages }`, where `language` is the
|
|
212
|
+
* primary one and `languages` also carries any
|
|
213
|
+
* {@link IntegrationServicesOptions.additionalLanguages}.
|
|
214
|
+
* Adopter-specific post-bootstrap hooks (typed `ServiceRegistry`
|
|
215
|
+
* assignments, `registerValidationChecks(...)`, etc.) stay in the
|
|
216
|
+
* adopter's wrapping `createXxxServices(context)` function around this
|
|
217
|
+
* call — the helper covers composition, not bespoke lifecycle.
|
|
218
|
+
*/
|
|
219
|
+
export function createIntegrationServices<
|
|
220
|
+
TContext extends ServerModuleContext,
|
|
221
|
+
TShared extends LangiumSharedServices & ServerSharedServicesMinimal,
|
|
222
|
+
TLanguage extends LangiumServices
|
|
223
|
+
>(
|
|
224
|
+
options: IntegrationServicesOptions<TContext, TShared, TLanguage>
|
|
225
|
+
): { shared: TShared; language: TLanguage; languages: ReadonlyArray<TLanguage> } {
|
|
226
|
+
const {
|
|
227
|
+
context,
|
|
228
|
+
sharedModules,
|
|
229
|
+
languageModules,
|
|
230
|
+
additionalLanguages = [],
|
|
231
|
+
eagerlyConstructedServices = DEFAULT_EAGER_SERVICES
|
|
232
|
+
} = options;
|
|
233
|
+
|
|
234
|
+
// Casts on the framework-side modules unify their `Module<T, …>` type
|
|
235
|
+
// parameter with the adopter-supplied `TShared` / `TLanguage`. Langium's
|
|
236
|
+
// `inject(...)` requires every input module to share the same `TServices`;
|
|
237
|
+
// without the casts the compiler refuses to combine
|
|
238
|
+
// `Module<LangiumSharedServices, …>` (from `createDefaultSharedModule`) with
|
|
239
|
+
// `Module<TShared, …>` (the adopter's generated and override modules).
|
|
240
|
+
// Concrete-typed adopter factories (e.g. `createMyLangServices`) sidestep this
|
|
241
|
+
// by casting the `inject(...)` result; here the helper shoulders the cast so
|
|
242
|
+
// every adopter doesn't repeat it.
|
|
243
|
+
const sharedModule = createServerSharedModule(context) as unknown as Module<TShared, PartialLangiumSharedServices>;
|
|
244
|
+
const defaultSharedModule = createDefaultSharedModule(context) as unknown as Module<TShared, PartialLangiumSharedServices>;
|
|
245
|
+
const shared = inject(
|
|
246
|
+
defaultSharedModule,
|
|
247
|
+
sharedModules.generated,
|
|
248
|
+
sharedModule,
|
|
249
|
+
...(sharedModules.extra ?? []),
|
|
250
|
+
sharedModules.adopter
|
|
251
|
+
) as unknown as TShared;
|
|
252
|
+
|
|
253
|
+
// Each language gets its OWN `createDefaultModule({ shared })` — the
|
|
254
|
+
// baseline module is per-language state (parser, lexer, linker), so it
|
|
255
|
+
// cannot be shared between the grammars even though `shared` is.
|
|
256
|
+
const composeLanguage = (
|
|
257
|
+
generated: Module<TLanguage, PartialLangiumServices>,
|
|
258
|
+
adopter: (shared: TShared) => Module<TLanguage, PartialLangiumServices>,
|
|
259
|
+
extra: ReadonlyArray<Module<TLanguage, PartialLangiumServices>>
|
|
260
|
+
): TLanguage => {
|
|
261
|
+
const defaultLanguageModule = createDefaultModule({ shared }) as unknown as Module<TLanguage, PartialLangiumServices>;
|
|
262
|
+
const serverLanguageModule = createServerLanguageModule(context) as unknown as Module<TLanguage, PartialLangiumServices>;
|
|
263
|
+
return inject(defaultLanguageModule, generated, serverLanguageModule, ...extra, adopter(shared)) as unknown as TLanguage;
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
const primaryExtra = (languageModules.extra ?? []) as ReadonlyArray<Module<TLanguage, PartialLangiumServices>>;
|
|
267
|
+
const language = composeLanguage(languageModules.generated, languageModules.adopter, primaryExtra);
|
|
268
|
+
const languages = [
|
|
269
|
+
language,
|
|
270
|
+
...additionalLanguages.map(additional =>
|
|
271
|
+
composeLanguage(additional.generated, additional.adopter ?? languageModules.adopter, additional.extra ?? primaryExtra)
|
|
272
|
+
)
|
|
273
|
+
];
|
|
274
|
+
|
|
275
|
+
// Registers every language before validating slots or building the
|
|
276
|
+
// eager set, so a shared service that reads the registry during
|
|
277
|
+
// construction sees all languages.
|
|
278
|
+
bootstrapLangiumLanguages(shared, languages, eagerlyConstructedServices);
|
|
279
|
+
|
|
280
|
+
return { shared, language, languages };
|
|
281
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
+
|
|
10
|
+
export * from './integrity-contribution.js';
|
|
11
|
+
export * from './integrity-rule.js';
|
|
12
|
+
export * from './integrity-service.js';
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
+
|
|
10
|
+
import { type AstNode } from '@hydranium/langium';
|
|
11
|
+
import { type Disposable } from 'vscode-languageserver';
|
|
12
|
+
import { type IntegrityRule } from './integrity-rule.js';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Registry handed to an {@link IntegrityRuleContribution}. Implemented by the
|
|
16
|
+
* integrity service; a contribution receives it and registers one or many
|
|
17
|
+
* rules. Doubles as the low-level imperative API for the rare runtime-dynamic
|
|
18
|
+
* registration case.
|
|
19
|
+
*
|
|
20
|
+
* `register` is generic PER CALL, matching `AstExtensionRegistry` and
|
|
21
|
+
* `ValidationCheckRegistry`: a rule declares the node type it enforces against
|
|
22
|
+
* (`IntegrityRule<TypeOne>`), and pinning the parameter to the `AstNode`
|
|
23
|
+
* default would widen every rule at the door. That widening is accepted by
|
|
24
|
+
* method-parameter bivariance rather than rejected, so it costs no cast and
|
|
25
|
+
* reads as fine — which is exactly why it is worth stating: the rule's own
|
|
26
|
+
* node type stays visible at the registration site instead of being erased.
|
|
27
|
+
*/
|
|
28
|
+
export interface IntegrityRuleRegistry {
|
|
29
|
+
register<T extends AstNode>(rule: IntegrityRule<T>): Disposable;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Declarative registration of integrity rules. Bound under the module's
|
|
34
|
+
* `integrity.rules` contribution group; the integrity service reads its own
|
|
35
|
+
* group at construction and calls this method, handing itself in as the
|
|
36
|
+
* registry.
|
|
37
|
+
*
|
|
38
|
+
* The domain-qualified method name lets a single cross-cutting class implement
|
|
39
|
+
* several contribution interfaces (e.g. also `ValidationCheckContribution`)
|
|
40
|
+
* without method collision — bind it once and reference it from each group.
|
|
41
|
+
*/
|
|
42
|
+
export interface IntegrityRuleContribution {
|
|
43
|
+
registerIntegrityRules(registry: IntegrityRuleRegistry): void;
|
|
44
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
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
|
+
|
|
10
|
+
import { type Logger, type MaybePromise } from '@hydranium/protocol';
|
|
11
|
+
import { type AstNode, DocumentState, type LangiumDocument } from '@hydranium/langium';
|
|
12
|
+
import { type RegistryItem } from '../../util/registry.js';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Integrity rules run during a build phase and may mutate the AST. Allowed
|
|
16
|
+
* phases are `Parsed` (before linking — a rule that touches only the parsed
|
|
17
|
+
* shape) and `Linked` (after cross-references are resolved — a rule that
|
|
18
|
+
* needs reference targets to exist).
|
|
19
|
+
*/
|
|
20
|
+
export type IntegrityPhase = DocumentState.Parsed | DocumentState.Linked;
|
|
21
|
+
|
|
22
|
+
export namespace IntegrityPhase {
|
|
23
|
+
export const Parsed: IntegrityPhase = DocumentState.Parsed;
|
|
24
|
+
export const Linked: IntegrityPhase = DocumentState.Linked;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The canonical set of phases at which integrity rules may run, in build
|
|
28
|
+
* order. Single source of truth: `IntegrityService.register` validates
|
|
29
|
+
* against it, and the framework's `BuildPipelineIntegration` registers one
|
|
30
|
+
* integrity pass per entry. A function (not a const) so it reads as an
|
|
31
|
+
* operation, distinct in kind from the `Parsed` / `Linked` phase-value
|
|
32
|
+
* constants — `IntegrityPhase.all` would look like a third phase. Returns a
|
|
33
|
+
* fresh array so callers cannot mutate the canonical set.
|
|
34
|
+
*/
|
|
35
|
+
export function all(): readonly IntegrityPhase[] {
|
|
36
|
+
return [Parsed, Linked];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function toString(phase: DocumentState): string {
|
|
40
|
+
switch (phase) {
|
|
41
|
+
case DocumentState.Parsed:
|
|
42
|
+
return 'Parsed';
|
|
43
|
+
case DocumentState.Linked:
|
|
44
|
+
return 'Linked';
|
|
45
|
+
default:
|
|
46
|
+
return `Unknown(${phase})`;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Controls how integrity corrections are persisted for *closed* files. The
|
|
53
|
+
* mode does not reach open files: their corrected text is delivered by the
|
|
54
|
+
* model service's settled-state sync, whatever the mode says.
|
|
55
|
+
*
|
|
56
|
+
* - `silent`: write to disk immediately; no editor involvement.
|
|
57
|
+
* - `editor`: open the file dirty via `applyEdit`. If the user closes without
|
|
58
|
+
* saving, the correction is suppressed until the file changes or the
|
|
59
|
+
* workspace reloads.
|
|
60
|
+
*/
|
|
61
|
+
export type IntegritySyncMode = 'silent' | 'editor';
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* A single integrity rule that enforces a constraint on AST nodes of a given type
|
|
65
|
+
* at a specific build phase.
|
|
66
|
+
*
|
|
67
|
+
* Extends {@link RegistryItem}: {@link RegistryItem.priority} orders rules
|
|
68
|
+
* WITHIN one phase, never across phases, because each phase has its own
|
|
69
|
+
* bucket. Lower runs first; ties break by registration order.
|
|
70
|
+
*/
|
|
71
|
+
export interface IntegrityRule<T extends AstNode = AstNode> extends RegistryItem {
|
|
72
|
+
/** Which AST node type this rule applies to. */
|
|
73
|
+
readonly nodeType: string;
|
|
74
|
+
/** At which document state this rule should run. Be aware that extension properties may not be available in all phases. */
|
|
75
|
+
readonly phase: IntegrityPhase;
|
|
76
|
+
/**
|
|
77
|
+
* Apply the rule. Returns `true` if the AST was mutated.
|
|
78
|
+
*
|
|
79
|
+
* Mirrors Langium's `ValidationCheck` shape (`MaybePromise<void>`) so a
|
|
80
|
+
* rule that must consult an external system can return a promise without
|
|
81
|
+
* forcing every sync rule to pay a microtask tick per node. The
|
|
82
|
+
* framework's per-node dispatch uses `isPromiseLike` to keep sync
|
|
83
|
+
* rules on the synchronous fast path; async rules are awaited normally.
|
|
84
|
+
*/
|
|
85
|
+
enforce(node: T, document: LangiumDocument, logger: Logger): MaybePromise<boolean>;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* The author id an integrity correction would carry if integrity tagged
|
|
90
|
+
* authorship. **It does not.** A correction is an internal build step riding a
|
|
91
|
+
* user's own build, so tagging it would overwrite the last human author in the
|
|
92
|
+
* version history with a synthetic one; `getAuthor` reports `undefined` for an
|
|
93
|
+
* integrity-only mutation instead, which is the honest answer. None of the
|
|
94
|
+
* three delivery paths — settled-state sync for open files, the disk write in
|
|
95
|
+
* `silent` mode, staged pending content in `editor` mode — sets an author.
|
|
96
|
+
*
|
|
97
|
+
* Exported so a consumer can assert that a correction is NOT attributed to it,
|
|
98
|
+
* which is what catches a regression that starts tagging authorship again.
|
|
99
|
+
*/
|
|
100
|
+
export const INTEGRITY_CLIENT_ID = 'integrity';
|