@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,196 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
import { Emitter } from 'vscode-languageserver';
|
|
10
|
+
/**
|
|
11
|
+
* Walk a (possibly nested) key path inside the `configuration` subtree
|
|
12
|
+
* returned by `getConfiguration(root, configuration)`. Returns `undefined`
|
|
13
|
+
* for any intermediate non-object or missing key — the caller's coercion +
|
|
14
|
+
* validation then surfaces that as the default.
|
|
15
|
+
*/
|
|
16
|
+
function readKey(subtree, key) {
|
|
17
|
+
const segments = typeof key === 'string' ? [key] : key;
|
|
18
|
+
let current = subtree;
|
|
19
|
+
for (const segment of segments) {
|
|
20
|
+
if (current === null || typeof current !== 'object') {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
current = current[segment];
|
|
24
|
+
}
|
|
25
|
+
return current;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Producers that bind a user-configurable editor setting (an LSP
|
|
29
|
+
* `workspace/configuration` section) to an {@link ObservableValue} — the
|
|
30
|
+
* snapshot updates on the initial fetch and on every `didChangeConfiguration`
|
|
31
|
+
* push for the section. `Settings` is reserved for this user-config source;
|
|
32
|
+
* the {@link ObservableValue} the producers yield is itself source-agnostic.
|
|
33
|
+
*/
|
|
34
|
+
export var Settings;
|
|
35
|
+
(function (Settings) {
|
|
36
|
+
/**
|
|
37
|
+
* Bind a {@link ObservableValue} to a Langium configuration section. The
|
|
38
|
+
* snapshot starts at `default` and updates when (a) the initial
|
|
39
|
+
* `provider.getConfiguration` resolves and (b) every `didChangeConfiguration`
|
|
40
|
+
* push affecting the same `root`. `onChange` is dedup'd by snapshot identity
|
|
41
|
+
* (`Object.is`). Errors thrown by `select` fall back to `default`.
|
|
42
|
+
*/
|
|
43
|
+
function value(options) {
|
|
44
|
+
const root = options.root ?? options.services.lsp.configurationRoot;
|
|
45
|
+
const provider = options.services.workspace.ConfigurationProvider;
|
|
46
|
+
const emitter = new Emitter();
|
|
47
|
+
let current = options.default;
|
|
48
|
+
const apply = (subtree) => {
|
|
49
|
+
let candidate;
|
|
50
|
+
try {
|
|
51
|
+
candidate = options.select(subtree);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
candidate = options.default;
|
|
55
|
+
}
|
|
56
|
+
const next = candidate === undefined || candidate === null ? options.default : candidate;
|
|
57
|
+
if (!Object.is(next, current)) {
|
|
58
|
+
current = next;
|
|
59
|
+
emitter.fire(next);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
// Initial fetch — `provider.ready` resolves after the client's
|
|
63
|
+
// `initialized` notification. Failures leave the snapshot at `default`;
|
|
64
|
+
// it still updates via `onConfigurationSectionUpdate` if pushed later.
|
|
65
|
+
void provider.ready
|
|
66
|
+
.then(async () => {
|
|
67
|
+
const subtree = await provider.getConfiguration(root, options.configuration);
|
|
68
|
+
apply(subtree);
|
|
69
|
+
})
|
|
70
|
+
.catch(() => {
|
|
71
|
+
// On the CHAIN, not inside the callback: a `ready` rejection is a
|
|
72
|
+
// failure mode of its own, and a handler that only wraps
|
|
73
|
+
// `getConfiguration` leaves it as an anonymous unhandled rejection.
|
|
74
|
+
});
|
|
75
|
+
provider.onConfigurationSectionUpdate(({ section, configuration }) => {
|
|
76
|
+
if (section !== root) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const subtree = configuration === null || typeof configuration !== 'object'
|
|
80
|
+
? undefined
|
|
81
|
+
: configuration[options.configuration];
|
|
82
|
+
apply(subtree);
|
|
83
|
+
});
|
|
84
|
+
return {
|
|
85
|
+
get value() {
|
|
86
|
+
return current;
|
|
87
|
+
},
|
|
88
|
+
onChange: emitter.event
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
Settings.value = value;
|
|
92
|
+
/**
|
|
93
|
+
* Bind a numeric setting with optional string-coercion + range / integer
|
|
94
|
+
* validation. Any rejection falls back to `default`.
|
|
95
|
+
*/
|
|
96
|
+
function number(options) {
|
|
97
|
+
const coerceString = options.coerceString ?? true;
|
|
98
|
+
return value({
|
|
99
|
+
services: options.services,
|
|
100
|
+
root: options.root,
|
|
101
|
+
configuration: options.configuration,
|
|
102
|
+
default: options.default,
|
|
103
|
+
select: subtree => {
|
|
104
|
+
const raw = readKey(subtree, options.key);
|
|
105
|
+
let result;
|
|
106
|
+
if (typeof raw === 'number') {
|
|
107
|
+
result = raw;
|
|
108
|
+
}
|
|
109
|
+
else if (typeof raw === 'string' && coerceString) {
|
|
110
|
+
result = Number.parseFloat(raw);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
if (!Number.isFinite(result)) {
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
if (options.nonNegative && result < 0) {
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
if (options.min !== undefined && result < options.min) {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
if (options.max !== undefined && result > options.max) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
return options.integer ? Math.round(result) : result;
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
Settings.number = number;
|
|
132
|
+
/**
|
|
133
|
+
* Bind a boolean setting with optional string-coercion (`'true'`/`'false'`/
|
|
134
|
+
* `'1'`/`'0'`, case-insensitive). Any other shape falls back to `default`.
|
|
135
|
+
*/
|
|
136
|
+
function boolean(options) {
|
|
137
|
+
const coerceString = options.coerceString ?? true;
|
|
138
|
+
return value({
|
|
139
|
+
services: options.services,
|
|
140
|
+
root: options.root,
|
|
141
|
+
configuration: options.configuration,
|
|
142
|
+
default: options.default,
|
|
143
|
+
select: subtree => {
|
|
144
|
+
const raw = readKey(subtree, options.key);
|
|
145
|
+
if (typeof raw === 'boolean') {
|
|
146
|
+
return raw;
|
|
147
|
+
}
|
|
148
|
+
if (typeof raw === 'string' && coerceString) {
|
|
149
|
+
const normalised = raw.trim().toLowerCase();
|
|
150
|
+
if (normalised === 'true' || normalised === '1') {
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
if (normalised === 'false' || normalised === '0') {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
Settings.boolean = boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Bind a string setting with optional non-string coercion + allowed-list
|
|
164
|
+
* validation. Type-parameterise `T` to a literal-string union to correlate
|
|
165
|
+
* the snapshot type with the `allowed` set at compile time.
|
|
166
|
+
*/
|
|
167
|
+
function string(options) {
|
|
168
|
+
const coerceToString = options.coerceToString ?? false;
|
|
169
|
+
const allowed = options.allowed;
|
|
170
|
+
return value({
|
|
171
|
+
services: options.services,
|
|
172
|
+
root: options.root,
|
|
173
|
+
configuration: options.configuration,
|
|
174
|
+
default: options.default,
|
|
175
|
+
select: subtree => {
|
|
176
|
+
const raw = readKey(subtree, options.key);
|
|
177
|
+
let result;
|
|
178
|
+
if (typeof raw === 'string') {
|
|
179
|
+
result = raw;
|
|
180
|
+
}
|
|
181
|
+
else if (coerceToString && raw !== undefined && raw !== null) {
|
|
182
|
+
result = String(raw);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
return undefined;
|
|
186
|
+
}
|
|
187
|
+
if (allowed && !allowed.includes(result)) {
|
|
188
|
+
return undefined;
|
|
189
|
+
}
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
Settings.string = string;
|
|
195
|
+
})(Settings || (Settings = {}));
|
|
196
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/langium/config/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
import { type Tracer } from '@hydranium/protocol';
|
|
10
|
+
import { DefaultLangiumProfiler, type ProfilingCategory, type ProfilingRecord, ProfilingTask } from '@hydranium/langium';
|
|
11
|
+
import { type LogNameOptions } from './logger.js';
|
|
12
|
+
import { type ServerSharedServicesMinimal } from '../shared-services.js';
|
|
13
|
+
/** Construction options for {@link HydraniumLangiumProfiler}. */
|
|
14
|
+
export interface LangiumProfilerOptions extends LogNameOptions {
|
|
15
|
+
/**
|
|
16
|
+
* Categories profiled while active. Defaults (via the base
|
|
17
|
+
* {@link DefaultLangiumProfiler}) to Langium's full set when omitted.
|
|
18
|
+
*/
|
|
19
|
+
readonly activeCategories?: Set<ProfilingCategory>;
|
|
20
|
+
/**
|
|
21
|
+
* Priority of the per-build flush pass at the `Validated` phase. The flush is
|
|
22
|
+
* normally the only pass at `Validated`, so order is immaterial; the option
|
|
23
|
+
* exists for symmetry with the other framework passes. Default
|
|
24
|
+
* {@link PROFILER_FLUSH_PASS_PRIORITY}.
|
|
25
|
+
*/
|
|
26
|
+
readonly flushPriority?: number;
|
|
27
|
+
}
|
|
28
|
+
/** Default priority of the profiler's per-build flush pass (see {@link LangiumProfilerOptions.flushPriority}). */
|
|
29
|
+
export declare const PROFILER_FLUSH_PASS_PRIORITY = 0;
|
|
30
|
+
/**
|
|
31
|
+
* Framework adapter over Langium's {@link DefaultLangiumProfiler} that is
|
|
32
|
+
* **trace-gated** and emits a single **aggregated** per-category breakdown
|
|
33
|
+
* once per build through the framework {@link Tracer}, instead of one
|
|
34
|
+
* `console.table` dump per document.
|
|
35
|
+
*
|
|
36
|
+
* - **Aggregate, not per-document.** Langium creates one profiling task per
|
|
37
|
+
* document (`createTask('validating', languageId)`) and the stock
|
|
38
|
+
* {@link DefaultLangiumProfiler.dumpRecord} prints each as it completes —
|
|
39
|
+
* dozens of near-identical blocks, all labelled with the language id (the
|
|
40
|
+
* task identifier), so the per-document records carry no distinguishing
|
|
41
|
+
* information anyway. We instead accumulate records in {@link records} and
|
|
42
|
+
* {@link flush} one breakdown per category — self-time and invocation counts
|
|
43
|
+
* summed per `$type` across the whole build — on the terminal `Validated`
|
|
44
|
+
* build phase (self-registered in the constructor). One report per build, not
|
|
45
|
+
* one per file.
|
|
46
|
+
* - **Transport safety.** The stock per-record dump uses `console.table`, which
|
|
47
|
+
* is NOT in the set `patchConsole` reroutes; under `vscode-languageserver`'s
|
|
48
|
+
* `--stdio` transport `process.stdout` *is* the JSON-RPC channel, so the
|
|
49
|
+
* native ASCII grid corrupts the protocol stream. {@link createTask} bypasses
|
|
50
|
+
* `dumpRecord` entirely (records are stored, never grid-printed); {@link flush}
|
|
51
|
+
* emits one {@link Tracer} line per row.
|
|
52
|
+
* - **Opt-in / no production cost.** {@link isActive} is gated on the global
|
|
53
|
+
* `trace` threshold, so at the default `info` level (and even at `debug`)
|
|
54
|
+
* every Langium parse/link/validate guard (`profiler?.isActive(category)`)
|
|
55
|
+
* short-circuits to `false` and no task is ever created. The per-`$type`
|
|
56
|
+
* self-time is high-volume diagnostic detail, so it sits at the `trace` tier
|
|
57
|
+
* deliberately — `debug` keeps the readable one-line-per-phase
|
|
58
|
+
* `DocumentBuilder` overview without this spam. The gate is evaluated per
|
|
59
|
+
* call, so flipping the level at runtime turns profiling on/off without a
|
|
60
|
+
* restart. Langium's own `start`/`stop` category selection still applies *on
|
|
61
|
+
* top of* the trace gate.
|
|
62
|
+
*
|
|
63
|
+
* Registered eagerly (see `DEFAULT_EAGER_SERVICES`) so its `Validated`-phase
|
|
64
|
+
* flush pass is registered before the first build. Gives the per-grammar-rule /
|
|
65
|
+
* per-`$type` parse/link/validate self-time the framework's own
|
|
66
|
+
* `ServerTracer` / `ProfileSession` passes
|
|
67
|
+
* cannot produce (those cover the framework's passes *outside* Langium's
|
|
68
|
+
* parse/link/validate categories).
|
|
69
|
+
*/
|
|
70
|
+
export declare class HydraniumLangiumProfiler extends DefaultLangiumProfiler {
|
|
71
|
+
/** Component-tagged tracer (`LangiumProfiler`); the per-category tag is added per flush. */
|
|
72
|
+
protected readonly tracer: Tracer;
|
|
73
|
+
constructor(services: ServerSharedServicesMinimal, options?: LangiumProfilerOptions);
|
|
74
|
+
/**
|
|
75
|
+
* A category profiles only while the global threshold admits `trace` *and*
|
|
76
|
+
* Langium's category selection has it active. The trace gate is the master
|
|
77
|
+
* switch (zero cost at `info`/`debug`); the category set is the sub-selection.
|
|
78
|
+
*/
|
|
79
|
+
isActive(category: ProfilingCategory): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Accumulate each completed task's record in {@link records} for the
|
|
82
|
+
* end-of-build {@link flush}. Bypasses the base's `console.table`
|
|
83
|
+
* {@link DefaultLangiumProfiler.dumpRecord} (the `--stdio` hazard) — records
|
|
84
|
+
* are stored, never grid-printed.
|
|
85
|
+
*/
|
|
86
|
+
createTask(category: ProfilingCategory, taskId: string): ProfilingTask;
|
|
87
|
+
/**
|
|
88
|
+
* Snapshot a completed record's `entries` into an independent {@link MultiMap}.
|
|
89
|
+
* {@link ProfilingTask.stop} clears its `entries` immediately after invoking
|
|
90
|
+
* this callback, and the record holds that map by reference — so the read
|
|
91
|
+
* MUST happen now (the stock `dumpRecord` reads synchronously here too).
|
|
92
|
+
* Deferring to {@link flush} without this copy would see emptied entries.
|
|
93
|
+
*/
|
|
94
|
+
protected captureRecord(record: ProfilingRecord): ProfilingRecord;
|
|
95
|
+
/**
|
|
96
|
+
* Emit one aggregated breakdown per category — self-time and invocation
|
|
97
|
+
* counts summed per `<languageId>.<$type>` across every record collected
|
|
98
|
+
* this build — then clear the window. Self-registered as a `Validated`-phase
|
|
99
|
+
* build pass, so it fires once per build, not per document. Pass explicit
|
|
100
|
+
* categories to flush a subset; defaults to all.
|
|
101
|
+
*
|
|
102
|
+
* `flush` is the sole reset point: because it clears each flushed category,
|
|
103
|
+
* memory is bounded per completed build. A build cancelled before `Validated`
|
|
104
|
+
* leaves its partial records to roll into the next build's flush (slightly
|
|
105
|
+
* inflated counts, self-correcting) rather than accumulating without bound.
|
|
106
|
+
*/
|
|
107
|
+
flush(...categories: ProfilingCategory[]): void;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=hydranium-langium-profiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydranium-langium-profiler.d.ts","sourceRoot":"","sources":["../../../src/langium/diagnostics/hydranium-langium-profiler.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACJ,sBAAsB,EAGtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,aAAa,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAKzE,iEAAiE;AACjE,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC3D;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnD;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,kHAAkH;AAClH,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,wBAAyB,SAAQ,sBAAsB;IACjE,4FAA4F;IAC5F,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEtB,QAAQ,EAAE,2BAA2B,EAAE,OAAO,GAAE,sBAA2B;IAevF;;;;OAIG;IACM,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO;IAIvD;;;;;OAKG;IACM,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IAO/E;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe;IAUjE;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,GAAG,UAAU,EAAE,iBAAiB,EAAE,GAAG,IAAI;CAiCjD"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
import { Format, Logger } from '@hydranium/protocol';
|
|
10
|
+
import { DefaultLangiumProfiler, DocumentState, MultiMap, ProfilingTask } from '@hydranium/langium';
|
|
11
|
+
/** Langium's full profiling-category set — the default window {@link HydraniumLangiumProfiler.flush} aggregates. */
|
|
12
|
+
const ALL_CATEGORIES = ['parsing', 'linking', 'validating'];
|
|
13
|
+
/** Default priority of the profiler's per-build flush pass (see {@link LangiumProfilerOptions.flushPriority}). */
|
|
14
|
+
export const PROFILER_FLUSH_PASS_PRIORITY = 0;
|
|
15
|
+
/**
|
|
16
|
+
* Framework adapter over Langium's {@link DefaultLangiumProfiler} that is
|
|
17
|
+
* **trace-gated** and emits a single **aggregated** per-category breakdown
|
|
18
|
+
* once per build through the framework {@link Tracer}, instead of one
|
|
19
|
+
* `console.table` dump per document.
|
|
20
|
+
*
|
|
21
|
+
* - **Aggregate, not per-document.** Langium creates one profiling task per
|
|
22
|
+
* document (`createTask('validating', languageId)`) and the stock
|
|
23
|
+
* {@link DefaultLangiumProfiler.dumpRecord} prints each as it completes —
|
|
24
|
+
* dozens of near-identical blocks, all labelled with the language id (the
|
|
25
|
+
* task identifier), so the per-document records carry no distinguishing
|
|
26
|
+
* information anyway. We instead accumulate records in {@link records} and
|
|
27
|
+
* {@link flush} one breakdown per category — self-time and invocation counts
|
|
28
|
+
* summed per `$type` across the whole build — on the terminal `Validated`
|
|
29
|
+
* build phase (self-registered in the constructor). One report per build, not
|
|
30
|
+
* one per file.
|
|
31
|
+
* - **Transport safety.** The stock per-record dump uses `console.table`, which
|
|
32
|
+
* is NOT in the set `patchConsole` reroutes; under `vscode-languageserver`'s
|
|
33
|
+
* `--stdio` transport `process.stdout` *is* the JSON-RPC channel, so the
|
|
34
|
+
* native ASCII grid corrupts the protocol stream. {@link createTask} bypasses
|
|
35
|
+
* `dumpRecord` entirely (records are stored, never grid-printed); {@link flush}
|
|
36
|
+
* emits one {@link Tracer} line per row.
|
|
37
|
+
* - **Opt-in / no production cost.** {@link isActive} is gated on the global
|
|
38
|
+
* `trace` threshold, so at the default `info` level (and even at `debug`)
|
|
39
|
+
* every Langium parse/link/validate guard (`profiler?.isActive(category)`)
|
|
40
|
+
* short-circuits to `false` and no task is ever created. The per-`$type`
|
|
41
|
+
* self-time is high-volume diagnostic detail, so it sits at the `trace` tier
|
|
42
|
+
* deliberately — `debug` keeps the readable one-line-per-phase
|
|
43
|
+
* `DocumentBuilder` overview without this spam. The gate is evaluated per
|
|
44
|
+
* call, so flipping the level at runtime turns profiling on/off without a
|
|
45
|
+
* restart. Langium's own `start`/`stop` category selection still applies *on
|
|
46
|
+
* top of* the trace gate.
|
|
47
|
+
*
|
|
48
|
+
* Registered eagerly (see `DEFAULT_EAGER_SERVICES`) so its `Validated`-phase
|
|
49
|
+
* flush pass is registered before the first build. Gives the per-grammar-rule /
|
|
50
|
+
* per-`$type` parse/link/validate self-time the framework's own
|
|
51
|
+
* `ServerTracer` / `ProfileSession` passes
|
|
52
|
+
* cannot produce (those cover the framework's passes *outside* Langium's
|
|
53
|
+
* parse/link/validate categories).
|
|
54
|
+
*/
|
|
55
|
+
export class HydraniumLangiumProfiler extends DefaultLangiumProfiler {
|
|
56
|
+
/** Component-tagged tracer (`LangiumProfiler`); the per-category tag is added per flush. */
|
|
57
|
+
tracer;
|
|
58
|
+
constructor(services, options = {}) {
|
|
59
|
+
super(options.activeCategories);
|
|
60
|
+
this.tracer = services.Tracer.for(options.logName ?? 'LangiumProfiler').trace('instantiated');
|
|
61
|
+
// Flush once per build on the terminal phase rather than once per document.
|
|
62
|
+
// By `Validated`, every parse/link/validate record for the batch is in.
|
|
63
|
+
// Registered as a build-phase pass (not a direct onBuildPhase listener) so
|
|
64
|
+
// every framework + adopter build-phase reaction shares one dispatcher.
|
|
65
|
+
services.workspace.BuildPhasePassService.register({
|
|
66
|
+
id: 'framework:langium-profiler:flush',
|
|
67
|
+
state: DocumentState.Validated,
|
|
68
|
+
priority: options.flushPriority ?? PROFILER_FLUSH_PASS_PRIORITY,
|
|
69
|
+
run: () => this.flush()
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* A category profiles only while the global threshold admits `trace` *and*
|
|
74
|
+
* Langium's category selection has it active. The trace gate is the master
|
|
75
|
+
* switch (zero cost at `info`/`debug`); the category set is the sub-selection.
|
|
76
|
+
*/
|
|
77
|
+
isActive(category) {
|
|
78
|
+
return Logger.isLevelEnabled('trace') && super.isActive(category);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Accumulate each completed task's record in {@link records} for the
|
|
82
|
+
* end-of-build {@link flush}. Bypasses the base's `console.table`
|
|
83
|
+
* {@link DefaultLangiumProfiler.dumpRecord} (the `--stdio` hazard) — records
|
|
84
|
+
* are stored, never grid-printed.
|
|
85
|
+
*/
|
|
86
|
+
createTask(category, taskId) {
|
|
87
|
+
if (!this.isActive(category)) {
|
|
88
|
+
throw new Error(`Category "${category}" is not active.`);
|
|
89
|
+
}
|
|
90
|
+
return new ProfilingTask(record => this.records.add(category, this.captureRecord(record)), taskId);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Snapshot a completed record's `entries` into an independent {@link MultiMap}.
|
|
94
|
+
* {@link ProfilingTask.stop} clears its `entries` immediately after invoking
|
|
95
|
+
* this callback, and the record holds that map by reference — so the read
|
|
96
|
+
* MUST happen now (the stock `dumpRecord` reads synchronously here too).
|
|
97
|
+
* Deferring to {@link flush} without this copy would see emptied entries.
|
|
98
|
+
*/
|
|
99
|
+
captureRecord(record) {
|
|
100
|
+
const entries = new MultiMap();
|
|
101
|
+
for (const key of record.entries.keys()) {
|
|
102
|
+
for (const value of record.entries.get(key)) {
|
|
103
|
+
entries.add(key, value);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return { ...record, entries };
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Emit one aggregated breakdown per category — self-time and invocation
|
|
110
|
+
* counts summed per `<languageId>.<$type>` across every record collected
|
|
111
|
+
* this build — then clear the window. Self-registered as a `Validated`-phase
|
|
112
|
+
* build pass, so it fires once per build, not per document. Pass explicit
|
|
113
|
+
* categories to flush a subset; defaults to all.
|
|
114
|
+
*
|
|
115
|
+
* `flush` is the sole reset point: because it clears each flushed category,
|
|
116
|
+
* memory is bounded per completed build. A build cancelled before `Validated`
|
|
117
|
+
* leaves its partial records to roll into the next build's flush (slightly
|
|
118
|
+
* inflated counts, self-correcting) rather than accumulating without bound.
|
|
119
|
+
*/
|
|
120
|
+
flush(...categories) {
|
|
121
|
+
const toFlush = categories.length > 0 ? categories : ALL_CATEGORIES;
|
|
122
|
+
for (const category of toFlush) {
|
|
123
|
+
const records = this.getRecords(category).toArray();
|
|
124
|
+
if (records.length === 0) {
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
const totals = new Map();
|
|
128
|
+
let totalMs = 0;
|
|
129
|
+
for (const record of records) {
|
|
130
|
+
totalMs += record.duration;
|
|
131
|
+
for (const key of record.entries.keys()) {
|
|
132
|
+
const name = `${record.identifier}.${key}`;
|
|
133
|
+
const values = record.entries.get(key);
|
|
134
|
+
const aggregate = totals.get(name) ?? { count: 0, selfMs: 0 };
|
|
135
|
+
aggregate.count += values.length;
|
|
136
|
+
aggregate.selfMs += values.reduce((sum, value) => sum + value, 0);
|
|
137
|
+
totals.set(name, aggregate);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const rows = [...totals.entries()]
|
|
141
|
+
.map(([name, aggregate]) => ({ name, ...aggregate }))
|
|
142
|
+
.sort((left, right) => right.selfMs - left.selfMs);
|
|
143
|
+
const log = this.tracer.sub(category);
|
|
144
|
+
log.trace(`${category}: ${records.length} docs, ${Format.elapsed(totalMs)} total`);
|
|
145
|
+
for (const row of rows) {
|
|
146
|
+
const pct = totalMs > 0 ? Math.round((100 * row.selfMs) / totalMs) : 0;
|
|
147
|
+
log.trace(`${row.name} ×${row.count} ${pct}% ${Format.elapsed(row.selfMs)}`);
|
|
148
|
+
}
|
|
149
|
+
this.records.delete(category);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=hydranium-langium-profiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydranium-langium-profiler.js","sourceRoot":"","sources":["../../../src/langium/diagnostics/hydranium-langium-profiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
export * from './hydranium-langium-profiler.js';
|
|
10
|
+
export * from './log-preamble.js';
|
|
11
|
+
export * from './logger.js';
|
|
12
|
+
export * from './lsp-logger.js';
|
|
13
|
+
export * from './server-tracer.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/langium/diagnostics/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAOlF,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
// Node-only diagnostics (`event-loop-monitor`, `memory-monitor`,
|
|
10
|
+
// `server-state-snapshot`) live in `@hydranium/core/node` — they pull
|
|
11
|
+
// `node:perf_hooks` / `node:v8`. `logger`/`lsp-logger`/`log-preamble` stay
|
|
12
|
+
// portable here (the file-tee + Node runtime details are injected, so the
|
|
13
|
+
// barrel stays browser-executable).
|
|
14
|
+
export * from './hydranium-langium-profiler.js';
|
|
15
|
+
export * from './log-preamble.js';
|
|
16
|
+
export * from './logger.js';
|
|
17
|
+
export * from './lsp-logger.js';
|
|
18
|
+
export * from './server-tracer.js';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/langium/diagnostics/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,iEAAiE;AACjE,sEAAsE;AACtE,2EAA2E;AAC3E,0EAA0E;AAC1E,oCAAoC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
* Derive the `{workspace}` placeholder token from a workspace folder URI or
|
|
11
|
+
* filesystem path: its basename, with filename-unsafe characters replaced by
|
|
12
|
+
* `_`. The server (file-tee) and a log-correlating test harness call this on
|
|
13
|
+
* the same workspace path so they agree on the file name.
|
|
14
|
+
*/
|
|
15
|
+
export declare function toLogFileWorkspaceToken(uriOrPath: string): string;
|
|
16
|
+
//# sourceMappingURL=log-file-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-file-token.d.ts","sourceRoot":"","sources":["../../../src/langium/diagnostics/log-file-token.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAOlF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKjE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
// Dependency-light on purpose: no Langium / vscode-* imports, so a Playwright
|
|
10
|
+
// test helper (which correlates server logs to a workspace) can reuse the exact
|
|
11
|
+
// same token derivation without pulling the language-server module graph. The
|
|
12
|
+
// env-var-name conventions it pairs with live in `@hydranium/protocol`.
|
|
13
|
+
/**
|
|
14
|
+
* Derive the `{workspace}` placeholder token from a workspace folder URI or
|
|
15
|
+
* filesystem path: its basename, with filename-unsafe characters replaced by
|
|
16
|
+
* `_`. The server (file-tee) and a log-correlating test harness call this on
|
|
17
|
+
* the same workspace path so they agree on the file name.
|
|
18
|
+
*/
|
|
19
|
+
export function toLogFileWorkspaceToken(uriOrPath) {
|
|
20
|
+
const trimmed = uriOrPath.replace(/[/\\]+$/, '');
|
|
21
|
+
const lastSep = Math.max(trimmed.lastIndexOf('/'), trimmed.lastIndexOf('\\'));
|
|
22
|
+
const base = trimmed.slice(lastSep + 1);
|
|
23
|
+
return base.replace(/[^A-Za-z0-9._-]/g, '_') || 'workspace';
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=log-file-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-file-token.js","sourceRoot":"","sources":["../../../src/langium/diagnostics/log-file-token.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,wEAAwE;AAExE;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAiB;IACtD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2023-2026 CrossBreeze, EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
import { type Logger } from '@hydranium/protocol';
|
|
10
|
+
export interface LogPreambleOptions {
|
|
11
|
+
/** Product name shown in the session header. */
|
|
12
|
+
productName: string;
|
|
13
|
+
/** Resolved product version. */
|
|
14
|
+
version: string;
|
|
15
|
+
/**
|
|
16
|
+
* Threshold (ms) above which the framework emits per-phase rebuild detail in
|
|
17
|
+
* its document builder. Used in the format-conventions section so log readers
|
|
18
|
+
* know which timings expand into sub-phases. Defaults to 50.
|
|
19
|
+
*/
|
|
20
|
+
phaseDetailThresholdMs?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Extra session-info lines appended to the header block (e.g. Node
|
|
23
|
+
* runtime / platform / pid / heap-limit / host). Empty on portable hosts;
|
|
24
|
+
* `@hydranium/core/node`'s `nodeSystemInfoLines()` supplies them on Node.
|
|
25
|
+
*/
|
|
26
|
+
systemInfoLines?: readonly string[];
|
|
27
|
+
/**
|
|
28
|
+
* Extra format-convention lines appended to the conventions block (e.g. the
|
|
29
|
+
* Node-only `[EventLoop]` / `[Memory]` monitor + memory-suffix behaviour).
|
|
30
|
+
* Empty on portable hosts; `@hydranium/core/node`'s `nodeConventionLines()`
|
|
31
|
+
* supplies them on Node.
|
|
32
|
+
*/
|
|
33
|
+
conventionLines?: readonly string[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Emits session info and log format conventions. The body is portable
|
|
37
|
+
* (browser-safe); Node-specific runtime details and monitor conventions are
|
|
38
|
+
* injected via {@link LogPreambleOptions.systemInfoLines} /
|
|
39
|
+
* {@link LogPreambleOptions.conventionLines} (see `@hydranium/core/node`).
|
|
40
|
+
*/
|
|
41
|
+
export declare function logPreamble(logger: Logger, options: LogPreambleOptions): void;
|
|
42
|
+
//# sourceMappingURL=log-preamble.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-preamble.d.ts","sourceRoot":"","sources":["../../../src/langium/diagnostics/log-preamble.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlE,MAAM,WAAW,kBAAkB;IAChC,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;OAIG;IACH,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAG7E"}
|