@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,490 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
+
* Copyright (c) Microsoft Corporation and EclipseSource. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This program and the accompanying materials are made available under the
|
|
6
|
+
* terms of the MIT License which is available in the project root.
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: MIT
|
|
9
|
+
********************************************************************************/
|
|
10
|
+
import { NormalizedTextDocuments } from '@hydranium/langium/lsp';
|
|
11
|
+
import { type ServerSharedServices } from '../langium/module.js';
|
|
12
|
+
import { type ApplyWorkspaceEditResult, type CancellationToken, type Connection, type DidChangeTextDocumentParams, type DidCloseTextDocumentParams, type DidOpenTextDocumentParams, type DidSaveTextDocumentParams, type Disposable, type Emitter, type Event, type HandlerResult, type RequestHandler, type TextDocumentChangeEvent, type TextDocumentWillSaveEvent, type TextDocumentsConfiguration, type TextEdit, type WillSaveTextDocumentParams } from 'vscode-languageserver';
|
|
13
|
+
import { type DocumentUri, TextDocument, type TextDocumentContentChangeEvent } from 'vscode-languageserver-textdocument';
|
|
14
|
+
import { type CanonicalUri, type LanguageClientUri, type Tracer } from '@hydranium/protocol';
|
|
15
|
+
import { type LogNameOptions } from '../langium/diagnostics/logger.js';
|
|
16
|
+
import { LanguageClientTextShadow } from './language-client-text-shadow.js';
|
|
17
|
+
export interface ClientTextDocumentChangeEvent<T> extends TextDocumentChangeEvent<T> {
|
|
18
|
+
clientId: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Construction options for {@link HydraniumTextDocuments}. All fields optional —
|
|
22
|
+
* defaults reproduce the framework's behaviour exactly.
|
|
23
|
+
*/
|
|
24
|
+
export interface HydraniumTextDocumentsOptions<T extends TextDocument = TextDocument> extends LogNameOptions {
|
|
25
|
+
/**
|
|
26
|
+
* Factory for the text-document type `T` (provides `create` / `update`).
|
|
27
|
+
* Defaults to `TextDocument` from `vscode-languageserver-textdocument`.
|
|
28
|
+
* Adopters with a custom text-document type (rare) pass their factory.
|
|
29
|
+
*/
|
|
30
|
+
readonly configuration?: TextDocumentsConfiguration<T>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* All per-URI client-facing tracking the manager keys by normalized URI,
|
|
34
|
+
* collapsed into one record so a URI's full state lives in one place and the
|
|
35
|
+
* last-client close clears every axis in a single delete. (Parallel per-axis
|
|
36
|
+
* maps are the substrate of a close-on-stale-state desync — one map can be
|
|
37
|
+
* cleared while another lingers.)
|
|
38
|
+
*
|
|
39
|
+
* Two neighbours deliberately stay separate:
|
|
40
|
+
* - The inherited `__syncedDocuments` (Langium's parsed `TextDocument` store).
|
|
41
|
+
* - {@link LanguageClientTextShadow} (`__shadow`), a self-contained,
|
|
42
|
+
* separately-tested diff/apply-verify abstraction that owns its own baseline
|
|
43
|
+
* text; folding its storage here would couple a clean utility to this record
|
|
44
|
+
* for no real gain.
|
|
45
|
+
*/
|
|
46
|
+
interface DocumentTracking {
|
|
47
|
+
/** Client ids currently holding this document open (multi-client membership). */
|
|
48
|
+
readonly clients: Set<string>;
|
|
49
|
+
/** Author of each version, sparse-indexed by the SHARED (server-assigned) version number. */
|
|
50
|
+
readonly versionAuthors: string[];
|
|
51
|
+
/**
|
|
52
|
+
* Last version id each client declared for this document (didOpen baseline,
|
|
53
|
+
* advanced by every accepted didChange). Client version ids are CLIENT-owned
|
|
54
|
+
* per LSP (Monaco numbers its own buffer) and are used ONLY for this
|
|
55
|
+
* per-client staleness guard — they never leak into the shared version
|
|
56
|
+
* sequence, which the server assigns (see {@link HydraniumTextDocuments.__versionSequences}).
|
|
57
|
+
*/
|
|
58
|
+
readonly clientVersions: Map<string, number>;
|
|
59
|
+
/** Content staged by integrity rules for a closed document. Consumed on next open. */
|
|
60
|
+
pendingContent?: string;
|
|
61
|
+
/**
|
|
62
|
+
* The URI(s) the LSP textual language client opened this (canonically-keyed)
|
|
63
|
+
* document under. Usually one; a set because the same physical file can be
|
|
64
|
+
* opened under more than one URI (a symlink path and its real path). This is
|
|
65
|
+
* the egress address: `applyEditToLanguageClient`
|
|
66
|
+
* targets these, since the document is *keyed* by its canonical identity but
|
|
67
|
+
* Monaco holds it under the URI it opened. Lifecycle-bound — cleared with the
|
|
68
|
+
* record on last close.
|
|
69
|
+
*/
|
|
70
|
+
languageClientUris?: Set<LanguageClientUri>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* A document held open by at least one client, with the client ids holding it —
|
|
74
|
+
* one entry of {@link HydraniumTextDocuments.openDocuments}.
|
|
75
|
+
*/
|
|
76
|
+
export interface OpenDocument {
|
|
77
|
+
/** Canonical identity the store keys the document by. */
|
|
78
|
+
readonly uri: CanonicalUri;
|
|
79
|
+
/** Client ids currently holding the document open (never empty). */
|
|
80
|
+
readonly clients: readonly string[];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Where a URI's shared version sequence left off — written once at last-client
|
|
84
|
+
* close, consulted at the next open so the sequence CONTINUES instead of
|
|
85
|
+
* restarting at whatever version id the reopening client declares. One entry
|
|
86
|
+
* of {@link HydraniumTextDocuments.__versionSequences}.
|
|
87
|
+
*/
|
|
88
|
+
interface VersionSequence {
|
|
89
|
+
/** The shared version at last-client close. */
|
|
90
|
+
readonly version: number;
|
|
91
|
+
/** {@link contentHash} of the synced text at last-client close. */
|
|
92
|
+
readonly contentHash: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* One text pushed to the LSP textual language client by
|
|
96
|
+
* {@link HydraniumTextDocuments.applyEditToLanguageClient} whose echo has not
|
|
97
|
+
* come back yet. One entry of {@link HydraniumTextDocuments.__pendingPushes}.
|
|
98
|
+
*/
|
|
99
|
+
interface PendingPush {
|
|
100
|
+
/**
|
|
101
|
+
* The text the client held BEFORE this push — the shadow baseline the
|
|
102
|
+
* push's edits were diffed against, and therefore the text the client's
|
|
103
|
+
* echo addresses with its ranges.
|
|
104
|
+
*
|
|
105
|
+
* `undefined` when the push was a full replace sent with no baseline (a
|
|
106
|
+
* first sync, or the recovery push after a rejection). There is then no
|
|
107
|
+
* knowing what the client held, so the echo is reconstructed against the
|
|
108
|
+
* synced text instead — which is sound for a full replace, whose
|
|
109
|
+
* application is position-independent.
|
|
110
|
+
*/
|
|
111
|
+
readonly before: string | undefined;
|
|
112
|
+
/** {@link contentHash} of the text this push moves the client to. */
|
|
113
|
+
readonly afterHash: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* What an incoming language-client change turns out to be once reconstructed
|
|
117
|
+
* against the pushes still in flight — the return of
|
|
118
|
+
* {@link HydraniumTextDocuments.classifyLanguageClientChange}.
|
|
119
|
+
*/
|
|
120
|
+
type LanguageClientChangeOrigin =
|
|
121
|
+
/** The client is reporting a text we pushed it. The synced document is already there. */
|
|
122
|
+
{
|
|
123
|
+
readonly kind: 'echo';
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* The client's buffer has moved somewhere we did not push it — it coalesced
|
|
127
|
+
* a genuine keystroke into the echo, or typed before the push arrived. The
|
|
128
|
+
* reconstructed text is what it now holds, and is authoritative.
|
|
129
|
+
*/
|
|
130
|
+
| {
|
|
131
|
+
readonly kind: 'divergent';
|
|
132
|
+
readonly text: string;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Multi-client text-document tracking on top of Langium's `NormalizedTextDocuments`.
|
|
136
|
+
*
|
|
137
|
+
* Adds the framework features used by the integrity, model-server, and GLSP layers:
|
|
138
|
+
* - Per-document client membership (multiple clients can attach to the same URI).
|
|
139
|
+
* - A SERVER-OWNED shared version sequence: per-URI, monotonic across
|
|
140
|
+
* close/reopen cycles, advancing exactly when the synced content changes.
|
|
141
|
+
* Client-declared version ids (Monaco's buffer numbering) feed only a
|
|
142
|
+
* per-client staleness guard and never leak into the shared sequence —
|
|
143
|
+
* the two are different things (an editor's edit-operation counter vs the
|
|
144
|
+
* document's content-revision number), and splicing them lets versions drift
|
|
145
|
+
* silently past `baseVersion` gate holders.
|
|
146
|
+
* - Version-author history so each edit is attributable to its originating client.
|
|
147
|
+
* - Pending-content staging used by the integrity service to thread corrections
|
|
148
|
+
* through `workspace/applyEdit` cycles for currently-closed documents.
|
|
149
|
+
* - `didOpen` notifications arriving over the LSP connection wait on the
|
|
150
|
+
* workspace-ready promise, so a client's first open cannot race workspace
|
|
151
|
+
* discovery. Direct {@link notifyDidOpenTextDocument} calls (the non-LSP
|
|
152
|
+
* heads) do not pass that gate — their caller owns the ordering.
|
|
153
|
+
*/
|
|
154
|
+
export declare class HydraniumTextDocuments<T extends TextDocument = TextDocument> extends NormalizedTextDocuments<T> {
|
|
155
|
+
protected services: ServerSharedServices;
|
|
156
|
+
/**
|
|
157
|
+
* Per-URI client-facing tracking ({@link DocumentTracking}): client
|
|
158
|
+
* membership, version-author history, and integrity-staged pending content,
|
|
159
|
+
* keyed by normalized URI. One record per URI so the last-client close clears
|
|
160
|
+
* every axis atomically. The language-client diff baseline stays in
|
|
161
|
+
* {@link __shadow} (its own abstraction); the parsed-document store stays in
|
|
162
|
+
* the inherited `__syncedDocuments`.
|
|
163
|
+
*/
|
|
164
|
+
protected __documents: Map<CanonicalUri, DocumentTracking>;
|
|
165
|
+
/**
|
|
166
|
+
* Per-URI shared-version continuity across close/reopen cycles
|
|
167
|
+
* ({@link VersionSequence}), written at last-client close and consulted by
|
|
168
|
+
* the next first-client open. DELIBERATELY outside {@link DocumentTracking}:
|
|
169
|
+
* that record is deleted on last close, while the version sequence must
|
|
170
|
+
* survive it — the shared version is a server-owned, monotonic,
|
|
171
|
+
* advances-iff-content-changes counter that never resets while the server
|
|
172
|
+
* lives. That invariant is what makes an optimistic `baseVersion` gate
|
|
173
|
+
* sound: "version unchanged ⇔ content unchanged", with no false conflicts
|
|
174
|
+
* from close/reopen version resets and no false passes from a reopened
|
|
175
|
+
* sequence coincidentally landing on a stale writer's number.
|
|
176
|
+
*
|
|
177
|
+
* Never pruned: two small values per URI ever touched — bounded by
|
|
178
|
+
* workspace size, not by activity.
|
|
179
|
+
*/
|
|
180
|
+
protected readonly __versionSequences: Map<CanonicalUri, VersionSequence>;
|
|
181
|
+
/**
|
|
182
|
+
* Texts pushed to the LSP textual language client via
|
|
183
|
+
* {@link applyEditToLanguageClient} whose echoes have not come back yet
|
|
184
|
+
* ({@link PendingPush}), keyed like the shadow by language-client URI.
|
|
185
|
+
* Outbound pushes and inbound echoes are uncorrelated on the wire; this
|
|
186
|
+
* FIFO is the explicit correlation, and it is what
|
|
187
|
+
* {@link classifyLanguageClientChange} reconstructs against.
|
|
188
|
+
*
|
|
189
|
+
* **Each entry keeps the client's PRE-push text, not only a hash of the
|
|
190
|
+
* post-push one.** A hash alone can classify a full-text echo, whose
|
|
191
|
+
* application is a no-op either way — and that is all it ever classified,
|
|
192
|
+
* because a conforming client echoes INCREMENTAL ranges keyed to its
|
|
193
|
+
* previous buffer. Those ranges cannot be applied to the synced text (which
|
|
194
|
+
* the authored write already advanced) and cannot be reconstructed without
|
|
195
|
+
* the baseline: the line they insert lands twice, validates cleanly, and
|
|
196
|
+
* compounds on every later edit.
|
|
197
|
+
*
|
|
198
|
+
* Lifecycle: entries are consumed by the matching echo (together with any
|
|
199
|
+
* older entries it supersedes), and the whole queue drops when the client
|
|
200
|
+
* stops being a pure mirror — a divergent change, an `applyEdit`
|
|
201
|
+
* failure/rejection (shadow invalidation), a close, or an explicit
|
|
202
|
+
* shadow (re)baseline. {@link PENDING_ECHO_CAP} bounds the queue against
|
|
203
|
+
* a pathological echo that never arrives; the memory cost until then is
|
|
204
|
+
* one pre-push text per in-flight push, for milliseconds.
|
|
205
|
+
*/
|
|
206
|
+
protected readonly __pendingPushes: Map<LanguageClientUri, PendingPush[]>;
|
|
207
|
+
/**
|
|
208
|
+
* Tracked text content per URI for the LSP textual language client (Monaco / VS Code).
|
|
209
|
+
* Owned here so {@link applyEditToLanguageClient} can compute minimal `workspace/applyEdit`
|
|
210
|
+
* diffs instead of full-document replaces (5–20 s → <500 ms on 20-30 KB YAML diagrams).
|
|
211
|
+
*
|
|
212
|
+
* Auto-tracked from the multi-client text-document events: open / change / close of
|
|
213
|
+
* the language client (re)baseline or invalidate the shadow. Other client ids
|
|
214
|
+
* (form editor, GLSP, integrity) do NOT touch the shadow — only what Monaco believes
|
|
215
|
+
* it has matters for the diff.
|
|
216
|
+
*
|
|
217
|
+
* Apply-verify safety net is built in: if the diff doesn't reconstruct `newText`
|
|
218
|
+
* exactly, {@link LanguageClientTextShadow.computeEdits} falls back to a full-range
|
|
219
|
+
* replace and invokes the `onFallback` callback — a diff regression becomes log
|
|
220
|
+
* noise, not a 0-byte save.
|
|
221
|
+
*
|
|
222
|
+
* Assigned in the constructor body so the `onFallback` callback can capture
|
|
223
|
+
* `this.logger` after the parameter-property assignment has run (field
|
|
224
|
+
* initializers fire BEFORE parameter-property assignment in TS).
|
|
225
|
+
*/
|
|
226
|
+
protected readonly __shadow: LanguageClientTextShadow;
|
|
227
|
+
protected readonly tracer: Tracer;
|
|
228
|
+
protected readonly configuration: TextDocumentsConfiguration<T>;
|
|
229
|
+
constructor(services: ServerSharedServices, options?: HydraniumTextDocumentsOptions<T>);
|
|
230
|
+
create(uri: string, languageId: string, version: number, content: string): T;
|
|
231
|
+
update(document: T, changes: TextDocumentContentChangeEvent[], version: number): T;
|
|
232
|
+
protected get __syncedDocuments(): Map<string, T>;
|
|
233
|
+
protected get __onDidChangeContent(): Emitter<ClientTextDocumentChangeEvent<T>>;
|
|
234
|
+
get onDidChangeContent(): Event<ClientTextDocumentChangeEvent<T>>;
|
|
235
|
+
protected get __onDidOpen(): Emitter<ClientTextDocumentChangeEvent<T>>;
|
|
236
|
+
get onDidOpen(): Event<ClientTextDocumentChangeEvent<T>>;
|
|
237
|
+
protected get __onDidClose(): Emitter<ClientTextDocumentChangeEvent<T>>;
|
|
238
|
+
get onDidClose(): Event<ClientTextDocumentChangeEvent<T>>;
|
|
239
|
+
protected get __onDidSave(): Emitter<ClientTextDocumentChangeEvent<T>>;
|
|
240
|
+
get onDidSave(): Event<ClientTextDocumentChangeEvent<T>>;
|
|
241
|
+
protected get __onWillSave(): Emitter<TextDocumentWillSaveEvent<T>>;
|
|
242
|
+
protected get __willSaveWaitUntil(): RequestHandler<TextDocumentWillSaveEvent<T>, TextEdit[], void> | undefined;
|
|
243
|
+
listen(connection: Connection): Disposable;
|
|
244
|
+
notifyDidChangeTextDocument(event: DidChangeTextDocumentParams, clientId?: string): void;
|
|
245
|
+
/**
|
|
246
|
+
* Apply a full-text content change authored server-side (ModelService /
|
|
247
|
+
* GLSP / integrity — any writer that is not an LSP wire client). The store
|
|
248
|
+
* assigns the shared version itself: step iff `text` differs from the
|
|
249
|
+
* current synced content, keep otherwise. Contrast
|
|
250
|
+
* {@link notifyDidChangeTextDocument}, the LSP wire path, where the client
|
|
251
|
+
* declares ITS version id and that id feeds only the per-client staleness
|
|
252
|
+
* guard.
|
|
253
|
+
*
|
|
254
|
+
* A content-identical write still fires the change event (rebuild): the
|
|
255
|
+
* authored write's server-side rebuild is correctness-bearing, it just
|
|
256
|
+
* mints no new version — nothing observable changed, so watchers'
|
|
257
|
+
* `baseVersion` pointers stay valid.
|
|
258
|
+
*
|
|
259
|
+
* Returns the resulting shared version. Throws when the document is not
|
|
260
|
+
* open — callers (`AstDocumentManager.update`) open first.
|
|
261
|
+
*/
|
|
262
|
+
applyContentChange(uri: DocumentUri, text: string, clientId: string): number;
|
|
263
|
+
notifyDidCloseTextDocument(event: DidCloseTextDocumentParams, clientId?: string): void;
|
|
264
|
+
notifyWillSaveTextDocument(event: WillSaveTextDocumentParams): void;
|
|
265
|
+
notifyWillSaveTextDocumentWaitUntil(event: WillSaveTextDocumentParams, token: CancellationToken): HandlerResult<TextEdit[], void>;
|
|
266
|
+
notifyDidSaveTextDocument(event: DidSaveTextDocumentParams, clientId?: string): void;
|
|
267
|
+
notifyDidOpenTextDocument(event: DidOpenTextDocumentParams, clientId?: string): void;
|
|
268
|
+
refreshContent(uri: DocumentUri, clientId: string): void;
|
|
269
|
+
/**
|
|
270
|
+
* The canonical key a document is stored under — the single point this store
|
|
271
|
+
* turns an incoming URI into its identity, the store-side analogue of
|
|
272
|
+
* `DocumentUriPolicy.canonicalUri`. Keying by the CANONICAL identity collapses
|
|
273
|
+
* two URIs for one physical file (a symlink path and its real path) into a
|
|
274
|
+
* single registration — dedup at the editor layer, not just in
|
|
275
|
+
* `LangiumDocuments`. The URI the client opened under is preserved separately
|
|
276
|
+
* for egress addressing (see {@link DocumentTracking.languageClientUris}). The
|
|
277
|
+
* policy is always bound (the framework defaults it to
|
|
278
|
+
* `DefaultDocumentUriPolicy`, where canonical ≡ syntactic normalize).
|
|
279
|
+
*/
|
|
280
|
+
protected documentKey(uri: string): CanonicalUri;
|
|
281
|
+
/**
|
|
282
|
+
* The language-client URI for `uri` — syntactic `normalize` only, NOT
|
|
283
|
+
* canonicalized. This is the URI the LSP textual client (Monaco / VS Code)
|
|
284
|
+
* actually holds the document under (what `applyEditToLanguageClient` must address and
|
|
285
|
+
* what the shadow is keyed by), distinct from {@link documentKey} (the canonical
|
|
286
|
+
* identity the document is stored under). They coincide unless the path diverges
|
|
287
|
+
* from its real path (symlink / `..` / case).
|
|
288
|
+
*/
|
|
289
|
+
protected toLanguageClientUri(uri: string): LanguageClientUri;
|
|
290
|
+
/** Get-or-create the per-URI tracking record. `uri` must already be a {@link documentKey}. */
|
|
291
|
+
protected trackingFor(uri: CanonicalUri): DocumentTracking;
|
|
292
|
+
setAuthor(uri: DocumentUri, version: number, author: string): void;
|
|
293
|
+
/**
|
|
294
|
+
* Resolve the synced `TextDocument` for `uri`. The store keys documents by
|
|
295
|
+
* their canonical identity ({@link documentKey}), so a direct normalized hit
|
|
296
|
+
* wins the common case (the caller passes the canonical URI, or the opened URI
|
|
297
|
+
* coincides with it) with no canonicalization, and a miss falls back to the
|
|
298
|
+
* single canonical-key lookup — which is what bridges a client-space caller
|
|
299
|
+
* that addresses a symlinked path `S` to the document the build keys by its
|
|
300
|
+
* real path `R` (`documentKey(S) === R`).
|
|
301
|
+
*
|
|
302
|
+
* O(1): no scan. Because the interior is already canonically keyed, looking the
|
|
303
|
+
* canonical key up directly is equivalent to reverse-matching every entry, and
|
|
304
|
+
* the `super.get` fast path keeps the common case syscall-free (the
|
|
305
|
+
* canonical lookup, and its one `canonicalUri` realpath, runs only on a miss).
|
|
306
|
+
* Under the default policy `documentKey ≡ normalize`, so the fallback can never
|
|
307
|
+
* find a key the direct lookup didn't — `get` is then identical to the base.
|
|
308
|
+
*/
|
|
309
|
+
get(uri: DocumentUri): T | undefined;
|
|
310
|
+
/**
|
|
311
|
+
* Current SHARED version of the document at `uri`: the open document's
|
|
312
|
+
* version, else where the persisted sequence left off at last close, else
|
|
313
|
+
* `0` for a URI this store has never seen. The shared sequence is
|
|
314
|
+
* server-owned and monotonic across close/reopen cycles, and advances
|
|
315
|
+
* exactly when the synced content changes — which is what makes it a sound
|
|
316
|
+
* optimistic-concurrency token (`baseVersion` gates): version unchanged ⇔
|
|
317
|
+
* content unchanged.
|
|
318
|
+
*/
|
|
319
|
+
version(uri: DocumentUri): number;
|
|
320
|
+
/**
|
|
321
|
+
* Reconcile the persisted version sequence with content that reached the
|
|
322
|
+
* build OUTSIDE the store's write paths — a closed document rebuilt from
|
|
323
|
+
* disk (last-close revert) or replaced by a watched-file change. Steps the
|
|
324
|
+
* sequence iff `text` differs from the sequence's last-known content and
|
|
325
|
+
* returns the resulting sequence version so the caller can re-stamp the
|
|
326
|
+
* rebuilt document (see the `AstDocumentManager` Parsed-phase listener) —
|
|
327
|
+
* keeping the "version advances iff content changes" invariant for
|
|
328
|
+
* documents no client currently holds.
|
|
329
|
+
*
|
|
330
|
+
* Returns `undefined` — and does nothing — when the document is open (the
|
|
331
|
+
* store's own content is authoritative; external transitions never reach
|
|
332
|
+
* the Langium factory for open documents) or was never tracked (no gate
|
|
333
|
+
* holder can hold a version pointer for it, and the early exit keeps
|
|
334
|
+
* workspace-wide builds from hashing every untouched document).
|
|
335
|
+
*/
|
|
336
|
+
reconcileExternalContent(uri: DocumentUri, text: string): number | undefined;
|
|
337
|
+
getAuthor(uri: DocumentUri, version?: number): string | undefined;
|
|
338
|
+
isOpen(uri: DocumentUri): boolean;
|
|
339
|
+
/**
|
|
340
|
+
* True iff any client still holds `uri` open. Distinct from {@link isOpen},
|
|
341
|
+
* which reads `__syncedDocuments` — that map is cleared only AFTER the
|
|
342
|
+
* `onDidClose` event fires for the last client, so `isOpen` returns `true`
|
|
343
|
+
* during the close event itself. `isOpenInAnyClient` reads the tracking
|
|
344
|
+
* record's `clients` set, which is updated BEFORE the fire, so an `onDidClose`
|
|
345
|
+
* subscriber that finds this `false` knows the last client just closed and a
|
|
346
|
+
* disk re-read / rebuild can proceed.
|
|
347
|
+
*/
|
|
348
|
+
isOpenInAnyClient(uri: DocumentUri): boolean;
|
|
349
|
+
isOpenInClient(uri: DocumentUri, client: string): boolean;
|
|
350
|
+
isOpenInLanguageClient(uri: DocumentUri): boolean;
|
|
351
|
+
isOnlyOpenInClient(uri: DocumentUri, client: string): boolean;
|
|
352
|
+
/**
|
|
353
|
+
* Every document currently held open by at least one client, with the client
|
|
354
|
+
* ids holding it. Reads the same per-URI tracking records as
|
|
355
|
+
* {@link isOpenInAnyClient}, so it reflects a last-client close immediately.
|
|
356
|
+
*
|
|
357
|
+
* Diagnostics-oriented — the server-state snapshot lists these so an operator
|
|
358
|
+
* can see WHY a document is pinned: a document that lingers here after its
|
|
359
|
+
* editor closed points directly at the client that failed to close it (and,
|
|
360
|
+
* under a shedding policy, explains why its CST is never shed).
|
|
361
|
+
*/
|
|
362
|
+
openDocuments(): OpenDocument[];
|
|
363
|
+
/**
|
|
364
|
+
* Stages integrity-updated content for a closed document.
|
|
365
|
+
*
|
|
366
|
+
* When `workspace/applyEdit` targets a closed file, the client opens it from
|
|
367
|
+
* disk (stale) and sends `didOpen` before applying the edit. This staged
|
|
368
|
+
* content is consumed by {@link notifyDidOpenTextDocument} to replace the
|
|
369
|
+
* stale disk text, preventing a brief revert of the integrity update.
|
|
370
|
+
*
|
|
371
|
+
* Not cleared on close: pending content is only staged for already-closed
|
|
372
|
+
* documents (the integrity service checks `isOpenInLanguageClient` first), so
|
|
373
|
+
* a close → stage → open cycle cannot occur. The only scenario where an
|
|
374
|
+
* entry lingers is if `workspace/applyEdit` fails and the file is never
|
|
375
|
+
* opened — the memory cost is one serialised string per URI.
|
|
376
|
+
*/
|
|
377
|
+
stagePendingContent(uri: DocumentUri, text: string): void;
|
|
378
|
+
/**
|
|
379
|
+
* Send `newText` to the LSP textual language client (Monaco / VS Code) via
|
|
380
|
+
* `workspace/applyEdit`, using the tracked shadow to produce minimal
|
|
381
|
+
* `TextEdit`s instead of a full-document replace.
|
|
382
|
+
*
|
|
383
|
+
* Returns `undefined` when:
|
|
384
|
+
* - The shared services have no LSP {@link Connection} bound (non-LSP
|
|
385
|
+
* hosts like CLI / tests).
|
|
386
|
+
* - The shadow already matches `newText` (no edits needed; quiet skip).
|
|
387
|
+
*
|
|
388
|
+
* On `applyEdit` rejection (`result.applied === false`) or RPC failure the
|
|
389
|
+
* shadow is invalidated so the next call sends a full-replace baseline.
|
|
390
|
+
* Errors are re-thrown — callers wrap with their own retry / coalescing
|
|
391
|
+
* policy as needed.
|
|
392
|
+
*
|
|
393
|
+
* The diff path is apply-verify-safe: the shadow internally checks that
|
|
394
|
+
* `TextDocument.applyEdits(old, edits) === newText` and falls back to a
|
|
395
|
+
* full replace on mismatch (logged via the warn-callback wired in the
|
|
396
|
+
* constructor), so a diff regression becomes log noise, not data loss.
|
|
397
|
+
*
|
|
398
|
+
* That safety net verifies the diff against the SHADOW, which is what the
|
|
399
|
+
* client is *believed* to hold — so it cannot see the client's buffer moving
|
|
400
|
+
* underneath a push. A line-keyed edit is position-dependent: if a genuine
|
|
401
|
+
* client keystroke lands between {@link LanguageClientTextShadow.computeEdits}
|
|
402
|
+
* and the client applying, the ranges address the wrong lines and splice the
|
|
403
|
+
* buffer (observed as a duplicated declaration, which the integrity tier then
|
|
404
|
+
* "repairs" into a suffixed name and persists). The edit is therefore
|
|
405
|
+
* addressed at the language client's LAST DECLARED VERSION rather than at
|
|
406
|
+
* `null` ("version intentionally unknown"), which is what lets the client
|
|
407
|
+
* reject a push its buffer has outrun. On rejection the shadow is invalidated,
|
|
408
|
+
* so the caller's retry is a full-range replace — position-independent, and
|
|
409
|
+
* safe to apply to whatever the client now holds.
|
|
410
|
+
*/
|
|
411
|
+
applyEditToLanguageClient(uri: DocumentUri, newText: string, options?: {
|
|
412
|
+
label?: string;
|
|
413
|
+
}): Promise<ApplyWorkspaceEditResult | undefined>;
|
|
414
|
+
/**
|
|
415
|
+
* The version the LSP textual language client last declared for `uri`, for
|
|
416
|
+
* addressing an outgoing `workspace/applyEdit`.
|
|
417
|
+
*
|
|
418
|
+
* Client version ids are CLIENT-owned per LSP, so this is the id the client
|
|
419
|
+
* itself stamped on its last `didOpen` / `didChange` — never the shared
|
|
420
|
+
* server version, which advances on authored writes the client knows nothing
|
|
421
|
+
* about and would therefore reject every push.
|
|
422
|
+
*
|
|
423
|
+
* Falls back to {@link UNKNOWN_CLIENT_VERSION} when the client has never
|
|
424
|
+
* declared one, which is the honest answer for a document it has not opened.
|
|
425
|
+
* That is also the case in which there is no shadow, so the push is already a
|
|
426
|
+
* position-independent full replace and has nothing to gain from a gate.
|
|
427
|
+
*/
|
|
428
|
+
protected languageClientVersion(uri: DocumentUri): number;
|
|
429
|
+
/**
|
|
430
|
+
* Append a push to the in-flight queue for `targetUri`
|
|
431
|
+
* (see {@link __pendingPushes}). Bounded: beyond
|
|
432
|
+
* {@link PENDING_ECHO_CAP} the oldest entry drops with a debug log — an
|
|
433
|
+
* echo that far outstanding means the client is not echoing at all, and
|
|
434
|
+
* an unbounded queue must not become the leak.
|
|
435
|
+
*/
|
|
436
|
+
protected recordPendingPush(targetUri: LanguageClientUri, before: string | undefined, newText: string): void;
|
|
437
|
+
/**
|
|
438
|
+
* Decide what an incoming language-client change actually is, by
|
|
439
|
+
* reconstructing the client's resulting buffer against the OLDEST push still
|
|
440
|
+
* in flight for `clientFacing`.
|
|
441
|
+
*
|
|
442
|
+
* `undefined` when nothing of ours is in flight, which is the ordinary path:
|
|
443
|
+
* the client's ranges then address the synced text and the caller applies
|
|
444
|
+
* them to it directly.
|
|
445
|
+
*
|
|
446
|
+
* **Why the oldest, and why reconstruct at all.** The client applies our
|
|
447
|
+
* pushes in order and echoes each against the buffer it held before that
|
|
448
|
+
* push, so the first echo to arrive belongs to the oldest entry — a FIFO
|
|
449
|
+
* correspondence the queue preserves by consuming from the front. Comparing
|
|
450
|
+
* the reconstruction against every pending hash, not only the oldest, is
|
|
451
|
+
* what recognises an echo that a newer write already superseded: a rapid
|
|
452
|
+
* write sequence can deliver the echo of push N after the store applied
|
|
453
|
+
* push N+1, and everything older is then accounted for too.
|
|
454
|
+
*
|
|
455
|
+
* A reconstruction matching NO pending push means the client's buffer went
|
|
456
|
+
* somewhere we did not send it — it coalesced a keystroke into the echo, or
|
|
457
|
+
* typed before the push landed. That text is authoritative, and the queue
|
|
458
|
+
* drops: the client has stopped being a pure mirror, so no outstanding echo
|
|
459
|
+
* can match again. (A push still in flight at that point will be refused by
|
|
460
|
+
* the client's own version gate, which invalidates the shadow and makes the
|
|
461
|
+
* next sync a position-independent full replace.)
|
|
462
|
+
*
|
|
463
|
+
* Content equality is a sound echo proof because entries live only between a
|
|
464
|
+
* push and its echo — a milliseconds window, never history — and the
|
|
465
|
+
* client's `didChange` stream is ordered, so every buffer state arrives in
|
|
466
|
+
* mutation order. An UNDO returning the buffer to previously-pushed text is
|
|
467
|
+
* therefore never swallowed: the edit that preceded it already emptied the
|
|
468
|
+
* queue, so undo revisits PAST states while the queue holds IN-FLIGHT ones.
|
|
469
|
+
*/
|
|
470
|
+
protected classifyLanguageClientChange(clientFacing: LanguageClientUri, document: T, changes: TextDocumentContentChangeEvent[]): LanguageClientChangeOrigin | undefined;
|
|
471
|
+
/**
|
|
472
|
+
* Explicitly baseline the language-client text shadow for a URI. Useful in
|
|
473
|
+
* tests and for adopters that need to seed the shadow without going through
|
|
474
|
+
* a `didOpen` event (e.g. after a sideband save). Normal didOpen / didChange
|
|
475
|
+
* paths from the LSP language client already auto-track the shadow.
|
|
476
|
+
*/
|
|
477
|
+
setLanguageClientText(uri: DocumentUri, text: string): void;
|
|
478
|
+
/** Drop the shadow baseline for a URI; the next applyEditToLanguageClient sends a full replace. */
|
|
479
|
+
invalidateLanguageClientText(uri: DocumentUri): void;
|
|
480
|
+
protected consumePendingContent(uri: DocumentUri): string | undefined;
|
|
481
|
+
protected log(uri: DocumentUri, message: string): void;
|
|
482
|
+
/** Hook for subclasses that want to attach a workspace-relative path component. */
|
|
483
|
+
protected logUri(uri: DocumentUri, message: string, level?: 'info' | 'debug'): void;
|
|
484
|
+
/** Hook for subclasses that want a URI-tagged timer. */
|
|
485
|
+
protected startTimerForUri(uri: DocumentUri, message: string): {
|
|
486
|
+
dispose(): void;
|
|
487
|
+
};
|
|
488
|
+
}
|
|
489
|
+
export {};
|
|
490
|
+
//# sourceMappingURL=hydranium-text-documents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydranium-text-documents.d.ts","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
|