@domainlang/language 0.11.0 → 0.13.0

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.
Files changed (116) hide show
  1. package/out/ast-augmentation.d.ts +7 -2
  2. package/out/diagram/context-map-diagram-generator.d.ts +72 -0
  3. package/out/diagram/context-map-diagram-generator.js +405 -0
  4. package/out/diagram/context-map-diagram-generator.js.map +1 -0
  5. package/out/diagram/context-map-layout-configurator.d.ts +15 -0
  6. package/out/diagram/context-map-layout-configurator.js +39 -0
  7. package/out/diagram/context-map-layout-configurator.js.map +1 -0
  8. package/out/diagram/elk-layout-factory.d.ts +43 -0
  9. package/out/diagram/elk-layout-factory.js +64 -0
  10. package/out/diagram/elk-layout-factory.js.map +1 -0
  11. package/out/domain-lang-module.d.ts +7 -0
  12. package/out/domain-lang-module.js +11 -2
  13. package/out/domain-lang-module.js.map +1 -1
  14. package/out/generated/ast.d.ts +323 -51
  15. package/out/generated/ast.js +194 -33
  16. package/out/generated/ast.js.map +1 -1
  17. package/out/generated/grammar.js +418 -172
  18. package/out/generated/grammar.js.map +1 -1
  19. package/out/index.d.ts +3 -0
  20. package/out/index.js +4 -0
  21. package/out/index.js.map +1 -1
  22. package/out/lsp/domain-lang-code-lens-provider.d.ts +8 -0
  23. package/out/lsp/domain-lang-code-lens-provider.js +48 -0
  24. package/out/lsp/domain-lang-code-lens-provider.js.map +1 -0
  25. package/out/lsp/domain-lang-completion.js +39 -15
  26. package/out/lsp/domain-lang-completion.js.map +1 -1
  27. package/out/lsp/domain-lang-document-symbol-provider.js +5 -5
  28. package/out/lsp/domain-lang-document-symbol-provider.js.map +1 -1
  29. package/out/lsp/domain-lang-formatter.js +32 -0
  30. package/out/lsp/domain-lang-formatter.js.map +1 -1
  31. package/out/lsp/domain-lang-index-manager.d.ts +2 -3
  32. package/out/lsp/domain-lang-index-manager.js +5 -8
  33. package/out/lsp/domain-lang-index-manager.js.map +1 -1
  34. package/out/lsp/domain-lang-workspace-manager.d.ts +1 -1
  35. package/out/lsp/domain-lang-workspace-manager.js +2 -26
  36. package/out/lsp/domain-lang-workspace-manager.js.map +1 -1
  37. package/out/lsp/explain.js +9 -3
  38. package/out/lsp/explain.js.map +1 -1
  39. package/out/lsp/hover/domain-lang-hover.js +13 -11
  40. package/out/lsp/hover/domain-lang-hover.js.map +1 -1
  41. package/out/lsp/hover/domain-lang-keywords.js +29 -26
  42. package/out/lsp/hover/domain-lang-keywords.js.map +1 -1
  43. package/out/lsp/tool-handlers.js +63 -57
  44. package/out/lsp/tool-handlers.js.map +1 -1
  45. package/out/sdk/ast-augmentation.d.ts +29 -21
  46. package/out/sdk/ast-augmentation.js +11 -7
  47. package/out/sdk/ast-augmentation.js.map +1 -1
  48. package/out/sdk/index.d.ts +2 -2
  49. package/out/sdk/index.js +1 -1
  50. package/out/sdk/index.js.map +1 -1
  51. package/out/sdk/loader-node.js +2 -2
  52. package/out/sdk/loader-node.js.map +1 -1
  53. package/out/sdk/patterns.d.ts +50 -61
  54. package/out/sdk/patterns.js +92 -62
  55. package/out/sdk/patterns.js.map +1 -1
  56. package/out/sdk/query.js +54 -43
  57. package/out/sdk/query.js.map +1 -1
  58. package/out/sdk/serializers.js +20 -7
  59. package/out/sdk/serializers.js.map +1 -1
  60. package/out/sdk/types.d.ts +87 -18
  61. package/out/sdk/types.js.map +1 -1
  62. package/out/sdk/validator.js +48 -64
  63. package/out/sdk/validator.js.map +1 -1
  64. package/out/services/performance-optimizer.d.ts +3 -3
  65. package/out/services/performance-optimizer.js +1 -3
  66. package/out/services/performance-optimizer.js.map +1 -1
  67. package/out/services/relationship-inference.d.ts +4 -4
  68. package/out/services/relationship-inference.js +34 -46
  69. package/out/services/relationship-inference.js.map +1 -1
  70. package/out/syntaxes/domain-lang.monarch.js +1 -1
  71. package/out/syntaxes/domain-lang.monarch.js.map +1 -1
  72. package/out/utils/import-utils.d.ts +6 -20
  73. package/out/utils/import-utils.js +3 -63
  74. package/out/utils/import-utils.js.map +1 -1
  75. package/out/validation/constants.d.ts +23 -6
  76. package/out/validation/constants.js +24 -7
  77. package/out/validation/constants.js.map +1 -1
  78. package/out/validation/maps.js +10 -4
  79. package/out/validation/maps.js.map +1 -1
  80. package/out/validation/relationships.d.ts +4 -8
  81. package/out/validation/relationships.js +96 -48
  82. package/out/validation/relationships.js.map +1 -1
  83. package/package.json +5 -2
  84. package/src/ast-augmentation.ts +7 -2
  85. package/src/diagram/context-map-diagram-generator.ts +513 -0
  86. package/src/diagram/context-map-layout-configurator.ts +43 -0
  87. package/src/diagram/elk-layout-factory.ts +83 -0
  88. package/src/domain-lang-module.ts +19 -2
  89. package/src/domain-lang.langium +62 -26
  90. package/src/generated/ast.ts +413 -63
  91. package/src/generated/grammar.ts +418 -172
  92. package/src/index.ts +5 -0
  93. package/src/lsp/domain-lang-code-lens-provider.ts +54 -0
  94. package/src/lsp/domain-lang-completion.ts +42 -15
  95. package/src/lsp/domain-lang-document-symbol-provider.ts +5 -5
  96. package/src/lsp/domain-lang-formatter.ts +34 -0
  97. package/src/lsp/domain-lang-index-manager.ts +6 -9
  98. package/src/lsp/domain-lang-workspace-manager.ts +3 -29
  99. package/src/lsp/explain.ts +10 -2
  100. package/src/lsp/hover/domain-lang-hover.ts +10 -8
  101. package/src/lsp/hover/domain-lang-keywords.ts +27 -24
  102. package/src/lsp/tool-handlers.ts +61 -47
  103. package/src/sdk/ast-augmentation.ts +30 -21
  104. package/src/sdk/index.ts +11 -1
  105. package/src/sdk/loader-node.ts +2 -2
  106. package/src/sdk/patterns.ts +114 -76
  107. package/src/sdk/query.ts +57 -48
  108. package/src/sdk/serializers.ts +20 -7
  109. package/src/sdk/types.ts +92 -17
  110. package/src/sdk/validator.ts +52 -69
  111. package/src/services/performance-optimizer.ts +4 -6
  112. package/src/services/relationship-inference.ts +43 -54
  113. package/src/utils/import-utils.ts +9 -74
  114. package/src/validation/constants.ts +32 -9
  115. package/src/validation/maps.ts +12 -4
  116. package/src/validation/relationships.ts +150 -71
@@ -0,0 +1,64 @@
1
+ /**
2
+ * ELK layout engine factory for DomainLang diagrams.
3
+ *
4
+ * Encapsulates the ELK construction, factory wiring, and Sprotty-ELK layout
5
+ * engine instantiation so that both the VS Code extension (via the LSP server
6
+ * DI module) and the CLI (for standalone diagram export) can reuse the same
7
+ * layout logic without embedding the setup inline.
8
+ *
9
+ * @module diagram/elk-layout-factory
10
+ */
11
+ import * as ElkBundled from 'elkjs/lib/elk.bundled.js';
12
+ import { DefaultElementFilter, ElkLayoutEngine, } from 'sprotty-elk/lib/elk-layout.js';
13
+ import { ContextMapLayoutConfigurator } from './context-map-layout-configurator.js';
14
+ const _elkConstructor = (ElkBundled.default
15
+ ?? ElkBundled);
16
+ /**
17
+ * Creates an {@link ElkFactory} that produces a new bundled ELK instance
18
+ * pre-configured for the `layered` algorithm.
19
+ *
20
+ * Use this in Langium's DI module (`layout.ElkFactory`) or directly in the
21
+ * CLI when running the layout engine standalone.
22
+ */
23
+ export function createElkFactory() {
24
+ return () => new _elkConstructor({ algorithms: ['layered'] });
25
+ }
26
+ /**
27
+ * Creates the full set of objects required to run the ELK layout engine for
28
+ * DomainLang context-map diagrams.
29
+ *
30
+ * Returns the three collaborators that together constitute a complete
31
+ * `IModelLayoutEngine`:
32
+ * - `elkFactory` — produces the ELK worker instance
33
+ * - `elementFilter` — controls which model elements are laid out
34
+ * - `layoutConfigurator` — supplies algorithm-specific ELK options
35
+ *
36
+ * Callers that use Langium DI should register these individually via the
37
+ * `layout` service group. Callers that operate outside of DI (e.g. the CLI)
38
+ * can call {@link createElkLayoutEngine} for a fully assembled engine.
39
+ */
40
+ export function createElkLayoutComponents() {
41
+ return {
42
+ elkFactory: createElkFactory(),
43
+ elementFilter: new DefaultElementFilter(),
44
+ layoutConfigurator: new ContextMapLayoutConfigurator(),
45
+ };
46
+ }
47
+ /**
48
+ * Creates a fully assembled {@link IModelLayoutEngine} for DomainLang
49
+ * context-map diagrams using the bundled ELK engine.
50
+ *
51
+ * Intended for use outside of Langium's DI container — for example, in the
52
+ * CLI when generating standalone SVG or image exports.
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const layoutEngine = createElkLayoutEngine();
57
+ * const laidOutModel = await layoutEngine.layout(rootModel);
58
+ * ```
59
+ */
60
+ export function createElkLayoutEngine() {
61
+ const { elkFactory, elementFilter, layoutConfigurator } = createElkLayoutComponents();
62
+ return new ElkLayoutEngine(elkFactory, elementFilter, layoutConfigurator);
63
+ }
64
+ //# sourceMappingURL=elk-layout-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elk-layout-factory.js","sourceRoot":"","sources":["../../src/diagram/elk-layout-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EACH,oBAAoB,EACpB,eAAe,GAIlB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAIpF,MAAM,eAAe,GAAmB,CACnC,UAAsD,CAAC,OAAO;OAC3D,UAAwC,CAC/C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB;IAC5B,OAAO,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,yBAAyB;IAKrC,OAAO;QACH,UAAU,EAAE,gBAAgB,EAAE;QAC9B,aAAa,EAAE,IAAI,oBAAoB,EAAE;QACzC,kBAAkB,EAAE,IAAI,4BAA4B,EAAE;KACzD,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB;IACjC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAAG,yBAAyB,EAAE,CAAC;IACtF,OAAO,IAAI,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,kBAAkB,CAAuB,CAAC;AACpG,CAAC"}
@@ -5,6 +5,8 @@ import { DomainLangFormatter } from './lsp/domain-lang-formatter.js';
5
5
  import { DomainLangHoverProvider } from './lsp/hover/domain-lang-hover.js';
6
6
  import { DomainLangCompletionProvider } from './lsp/domain-lang-completion.js';
7
7
  import { DomainLangCodeActionProvider } from './lsp/domain-lang-code-actions.js';
8
+ import { DomainLangCodeLensProvider } from './lsp/domain-lang-code-lens-provider.js';
9
+ import type { IDiagramGenerator, IModelLayoutEngine } from 'sprotty-protocol';
8
10
  import { ImportResolver } from './services/import-resolver.js';
9
11
  import { ManifestManager } from './services/workspace-manager.js';
10
12
  import { PackageBoundaryDetector } from './services/package-boundary-detector.js';
@@ -24,8 +26,13 @@ export type DomainLangAddedServices = {
24
26
  Formatter: DomainLangFormatter;
25
27
  HoverProvider: DomainLangHoverProvider;
26
28
  CompletionProvider: DomainLangCompletionProvider;
29
+ CodeLensProvider: DomainLangCodeLensProvider;
27
30
  CodeActionProvider: DomainLangCodeActionProvider;
28
31
  };
32
+ diagram: {
33
+ DiagramGenerator: IDiagramGenerator;
34
+ ModelLayoutEngine: IModelLayoutEngine;
35
+ };
29
36
  };
30
37
  /**
31
38
  * Union of Langium default services and your custom services - use this as constructor parameter
@@ -9,13 +9,17 @@ import { DomainLangFormatter } from './lsp/domain-lang-formatter.js';
9
9
  import { DomainLangHoverProvider } from './lsp/hover/domain-lang-hover.js';
10
10
  import { DomainLangCompletionProvider } from './lsp/domain-lang-completion.js';
11
11
  import { DomainLangCodeActionProvider } from './lsp/domain-lang-code-actions.js';
12
+ import { DomainLangCodeLensProvider } from './lsp/domain-lang-code-lens-provider.js';
12
13
  import { DomainLangNodeKindProvider } from './lsp/domain-lang-node-kind-provider.js';
13
14
  import { DomainLangDocumentSymbolProvider } from './lsp/domain-lang-document-symbol-provider.js';
15
+ import { SprottyDefaultModule, SprottySharedModule } from 'langium-sprotty';
14
16
  import { ImportResolver } from './services/import-resolver.js';
15
17
  import { ManifestManager } from './services/workspace-manager.js';
16
18
  import { PackageBoundaryDetector } from './services/package-boundary-detector.js';
17
19
  import { DomainLangWorkspaceManager } from './lsp/domain-lang-workspace-manager.js';
18
20
  import { DomainLangIndexManager } from './lsp/domain-lang-index-manager.js';
21
+ import { DomainLangContextMapDiagramGenerator } from './diagram/context-map-diagram-generator.js';
22
+ import { createElkLayoutEngine } from './diagram/elk-layout-factory.js';
19
23
  const DomainLangSharedModule = {
20
24
  lsp: {
21
25
  NodeKindProvider: () => new DomainLangNodeKindProvider()
@@ -45,9 +49,14 @@ export const DomainLangModule = {
45
49
  Formatter: () => new DomainLangFormatter(),
46
50
  HoverProvider: (services) => new DomainLangHoverProvider(services),
47
51
  CompletionProvider: (services) => new DomainLangCompletionProvider(services),
52
+ CodeLensProvider: () => new DomainLangCodeLensProvider(),
48
53
  CodeActionProvider: () => new DomainLangCodeActionProvider(),
49
54
  DocumentSymbolProvider: (services) => new DomainLangDocumentSymbolProvider(services)
50
55
  },
56
+ diagram: {
57
+ DiagramGenerator: (services) => new DomainLangContextMapDiagramGenerator(services),
58
+ ModelLayoutEngine: () => createElkLayoutEngine(),
59
+ },
51
60
  };
52
61
  /**
53
62
  * Create the full set of services required by Langium.
@@ -65,8 +74,8 @@ export const DomainLangModule = {
65
74
  * @returns An object wrapping the shared services and the language-specific services
66
75
  */
67
76
  export function createDomainLangServices(context) {
68
- const shared = inject(createDefaultSharedModule(context), DomainLangGeneratedSharedModule, DomainLangSharedModule);
69
- const DomainLang = inject(createDefaultModule({ shared }), DomainLangGeneratedModule, DomainLangModule);
77
+ const shared = inject(createDefaultSharedModule(context), DomainLangGeneratedSharedModule, DomainLangSharedModule, SprottySharedModule);
78
+ const DomainLang = inject(createDefaultModule({ shared }), DomainLangGeneratedModule, SprottyDefaultModule, DomainLangModule);
70
79
  shared.ServiceRegistry.register(DomainLang);
71
80
  registerValidationChecks(DomainLang);
72
81
  // Late-bind language services into shared module services.
@@ -1 +1 @@
1
- {"version":3,"file":"domain-lang-module.js","sourceRoot":"","sources":["../src/domain-lang-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain-lang-module.js","sourceRoot":"","sources":["../src/domain-lang-module.ts"],"names":[],"mappings":"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"}