@domainlang/language 0.5.2 → 0.7.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/README.md +1 -1
  2. package/out/domain-lang-module.js +5 -1
  3. package/out/domain-lang-module.js.map +1 -1
  4. package/out/generated/ast.d.ts +24 -0
  5. package/out/generated/ast.js.map +1 -1
  6. package/out/generated/grammar.js +22 -32
  7. package/out/generated/grammar.js.map +1 -1
  8. package/out/index.d.ts +2 -5
  9. package/out/index.js +10 -6
  10. package/out/index.js.map +1 -1
  11. package/out/lsp/domain-lang-code-actions.js +14 -8
  12. package/out/lsp/domain-lang-code-actions.js.map +1 -1
  13. package/out/lsp/domain-lang-completion.d.ts +3 -0
  14. package/out/lsp/domain-lang-completion.js +41 -13
  15. package/out/lsp/domain-lang-completion.js.map +1 -1
  16. package/out/lsp/domain-lang-formatter.js +24 -18
  17. package/out/lsp/domain-lang-formatter.js.map +1 -1
  18. package/out/lsp/domain-lang-index-manager.d.ts +170 -0
  19. package/out/lsp/domain-lang-index-manager.js +389 -0
  20. package/out/lsp/domain-lang-index-manager.js.map +1 -0
  21. package/out/lsp/domain-lang-scope-provider.d.ts +67 -0
  22. package/out/lsp/domain-lang-scope-provider.js +95 -0
  23. package/out/lsp/domain-lang-scope-provider.js.map +1 -0
  24. package/out/lsp/domain-lang-scope.js +31 -17
  25. package/out/lsp/domain-lang-scope.js.map +1 -1
  26. package/out/lsp/domain-lang-workspace-manager.d.ts +76 -9
  27. package/out/lsp/domain-lang-workspace-manager.js +176 -54
  28. package/out/lsp/domain-lang-workspace-manager.js.map +1 -1
  29. package/out/lsp/hover/domain-lang-hover.d.ts +45 -1
  30. package/out/lsp/hover/domain-lang-hover.js +308 -232
  31. package/out/lsp/hover/domain-lang-hover.js.map +1 -1
  32. package/out/lsp/hover/domain-lang-keywords.d.ts +3 -7
  33. package/out/lsp/hover/domain-lang-keywords.js +115 -38
  34. package/out/lsp/hover/domain-lang-keywords.js.map +1 -1
  35. package/out/lsp/manifest-diagnostics.js +95 -50
  36. package/out/lsp/manifest-diagnostics.js.map +1 -1
  37. package/out/main.js +204 -17
  38. package/out/main.js.map +1 -1
  39. package/out/services/import-resolver.d.ts +39 -2
  40. package/out/services/import-resolver.js +77 -12
  41. package/out/services/import-resolver.js.map +1 -1
  42. package/out/services/types.d.ts +2 -2
  43. package/out/services/workspace-manager.d.ts +33 -31
  44. package/out/services/workspace-manager.js +92 -148
  45. package/out/services/workspace-manager.js.map +1 -1
  46. package/out/utils/document-utils.d.ts +41 -0
  47. package/out/utils/document-utils.js +64 -0
  48. package/out/utils/document-utils.js.map +1 -0
  49. package/out/utils/import-utils.d.ts +0 -17
  50. package/out/utils/import-utils.js +2 -32
  51. package/out/utils/import-utils.js.map +1 -1
  52. package/out/utils/manifest-utils.d.ts +56 -0
  53. package/out/utils/manifest-utils.js +119 -0
  54. package/out/utils/manifest-utils.js.map +1 -0
  55. package/out/validation/constants.d.ts +13 -0
  56. package/out/validation/constants.js +18 -0
  57. package/out/validation/constants.js.map +1 -1
  58. package/out/validation/import.d.ts +12 -2
  59. package/out/validation/import.js +95 -22
  60. package/out/validation/import.js.map +1 -1
  61. package/out/validation/maps.js +51 -2
  62. package/out/validation/maps.js.map +1 -1
  63. package/package.json +1 -1
  64. package/src/domain-lang-module.ts +6 -1
  65. package/src/domain-lang.langium +37 -13
  66. package/src/generated/ast.ts +24 -0
  67. package/src/generated/grammar.ts +22 -32
  68. package/src/index.ts +12 -6
  69. package/src/lsp/domain-lang-code-actions.ts +13 -8
  70. package/src/lsp/domain-lang-completion.ts +61 -13
  71. package/src/lsp/domain-lang-formatter.ts +28 -23
  72. package/src/lsp/domain-lang-index-manager.ts +447 -0
  73. package/src/lsp/domain-lang-scope-provider.ts +134 -0
  74. package/src/lsp/domain-lang-scope.ts +29 -17
  75. package/src/lsp/domain-lang-workspace-manager.ts +201 -53
  76. package/src/lsp/hover/domain-lang-hover.ts +332 -226
  77. package/src/lsp/hover/domain-lang-keywords.ts +129 -43
  78. package/src/lsp/manifest-diagnostics.ts +100 -59
  79. package/src/main.ts +258 -16
  80. package/src/services/import-resolver.ts +91 -12
  81. package/src/services/types.ts +2 -2
  82. package/src/services/workspace-manager.ts +101 -175
  83. package/src/utils/document-utils.ts +80 -0
  84. package/src/utils/import-utils.ts +2 -40
  85. package/src/utils/manifest-utils.ts +132 -0
  86. package/src/validation/constants.ts +24 -0
  87. package/src/validation/import.ts +107 -24
  88. package/src/validation/maps.ts +59 -2
  89. package/out/lsp/hover/ddd-pattern-explanations.d.ts +0 -50
  90. package/out/lsp/hover/ddd-pattern-explanations.js +0 -196
  91. package/out/lsp/hover/ddd-pattern-explanations.js.map +0 -1
  92. package/out/services/dependency-analyzer.d.ts +0 -58
  93. package/out/services/dependency-analyzer.js +0 -254
  94. package/out/services/dependency-analyzer.js.map +0 -1
  95. package/out/services/dependency-resolver.d.ts +0 -146
  96. package/out/services/dependency-resolver.js +0 -452
  97. package/out/services/dependency-resolver.js.map +0 -1
  98. package/out/services/git-url-resolver.browser.d.ts +0 -10
  99. package/out/services/git-url-resolver.browser.js +0 -19
  100. package/out/services/git-url-resolver.browser.js.map +0 -1
  101. package/out/services/git-url-resolver.d.ts +0 -158
  102. package/out/services/git-url-resolver.js +0 -416
  103. package/out/services/git-url-resolver.js.map +0 -1
  104. package/out/services/governance-validator.d.ts +0 -44
  105. package/out/services/governance-validator.js +0 -153
  106. package/out/services/governance-validator.js.map +0 -1
  107. package/out/services/semver.d.ts +0 -98
  108. package/out/services/semver.js +0 -195
  109. package/out/services/semver.js.map +0 -1
  110. package/src/lsp/hover/ddd-pattern-explanations.ts +0 -237
  111. package/src/services/dependency-analyzer.ts +0 -321
  112. package/src/services/dependency-resolver.ts +0 -551
  113. package/src/services/git-url-resolver.browser.ts +0 -26
  114. package/src/services/git-url-resolver.ts +0 -517
  115. package/src/services/governance-validator.ts +0 -177
  116. package/src/services/semver.ts +0 -213
@@ -1,13 +1,9 @@
1
1
  /**
2
2
  * Keyword explanations for DomainLang hover documentation.
3
3
  *
4
- * This dictionary provides fallback hover content for keywords that don't have
5
- * JSDoc comments in the grammar file, or for providing richer DDD pattern explanations.
4
+ * This dictionary provides concise hover content for all DomainLang keywords,
5
+ * DDD patterns, and special symbols. Uses exact casing from grammar.
6
6
  *
7
- * Basic keyword documentation (domain, boundedcontext, etc.) is now in the grammar file
8
- * as JSDoc comments. This dictionary focuses on DDD integration patterns and advanced concepts.
9
- *
10
- * @see src/language/domain-lang.langium for basic keyword JSDoc
11
- * @see ddd-pattern-explanations.ts for role patterns and relationship types
7
+ * @see https://domainlang.net/reference/language for full documentation
12
8
  */
13
9
  export declare const keywordExplanations: Record<string, string>;
@@ -1,47 +1,124 @@
1
1
  /**
2
2
  * Keyword explanations for DomainLang hover documentation.
3
3
  *
4
- * This dictionary provides fallback hover content for keywords that don't have
5
- * JSDoc comments in the grammar file, or for providing richer DDD pattern explanations.
4
+ * This dictionary provides concise hover content for all DomainLang keywords,
5
+ * DDD patterns, and special symbols. Uses exact casing from grammar.
6
6
  *
7
- * Basic keyword documentation (domain, boundedcontext, etc.) is now in the grammar file
8
- * as JSDoc comments. This dictionary focuses on DDD integration patterns and advanced concepts.
9
- *
10
- * @see src/language/domain-lang.langium for basic keyword JSDoc
11
- * @see ddd-pattern-explanations.ts for role patterns and relationship types
7
+ * @see https://domainlang.net/reference/language for full documentation
12
8
  */
9
+ // Documentation links
10
+ const DOMAIN_LINK = '\n\n[Read more](https://domainlang.net/guide/domains)';
11
+ const BC_LINK = '\n\n[Read more](https://domainlang.net/guide/bounded-contexts)';
12
+ const TEAM_LINK = '\n\n[Read more](https://domainlang.net/guide/teams-classifications)';
13
+ const MAP_LINK = '\n\n[Read more](https://domainlang.net/guide/context-maps)';
14
+ const REL_LINK = '\n\n[Read more](https://domainlang.net/guide/context-maps#relationships)';
15
+ const IMPORT_LINK = '\n\n[Read more](https://domainlang.net/guide/imports)';
16
+ const NS_LINK = '\n\n[Read more](https://domainlang.net/guide/namespaces)';
17
+ const TERM_LINK = '\n\n[Read more](https://domainlang.net/reference/language#terminology)';
18
+ const DECISION_LINK = '\n\n[Read more](https://domainlang.net/reference/language#decisions-policies-rules)';
19
+ const METADATA_LINK = '\n\n[Read more](https://domainlang.net/reference/language#metadata)';
20
+ const SYNTAX_LINK = '\n\n[Read more](https://domainlang.net/reference/language)';
13
21
  export const keywordExplanations = {
14
- // Advanced syntax keywords
15
- implements: "**implements** - Declares that a Bounded Context or type implements a Domain or interface.",
16
- as: "**as** - Used for aliasing or renaming imports or types.",
17
- from: "**from** - Specifies the source module or file for an import statement.",
18
- type: "**type** - Declares a new type or alias in the model.",
19
- map: "**map** - Defines a mapping or transformation between elements.",
20
- this: "**this** - Refers to the current context or object.",
21
- // DDD Classifiers
22
- entity: "**Entity** - Domain object with distinct identity that runs through time.",
23
- valueobject: "**Value Object** - Immutable object that describes a characteristic.",
24
- aggregate: "**Aggregate** - Cluster of domain objects with a root and boundary.",
25
- service: "**Service** - Stateless domain operation.",
26
- event: "**Event** - Significant domain occurrence or state change.",
27
- businessrule: "**Business Rule** - Rule that constrains business behavior.",
22
+ // ========================================================================
23
+ // Primary Constructs
24
+ // ========================================================================
25
+ domain: `**Domain** - A sphere of knowledge or activity. Can be nested to show subdomain hierarchy.${DOMAIN_LINK}`,
26
+ dom: `**Domain** - A sphere of knowledge or activity. Can be nested to show subdomain hierarchy.${DOMAIN_LINK}`,
27
+ boundedcontext: `**BoundedContext** - A boundary where a domain model is defined. Central DDD pattern for managing complexity.${BC_LINK}`,
28
+ bc: `**BoundedContext** - A boundary where a domain model is defined. Central DDD pattern for managing complexity.${BC_LINK}`,
29
+ team: `**Team** - A group responsible for one or more bounded contexts.${TEAM_LINK}`,
30
+ classification: `**Classification** - Reusable label for categorizing elements (e.g., Core, Supporting, Generic).${TEAM_LINK}`,
31
+ metadata: `**Metadata** - Defines a key that can be used in metadata blocks.${METADATA_LINK}`,
32
+ meta: `**Metadata** - Defines a key that can be used in metadata blocks.${METADATA_LINK}`,
33
+ // ========================================================================
34
+ // Maps
35
+ // ========================================================================
36
+ contextmap: `**ContextMap** - Shows relationships between bounded contexts.${MAP_LINK}`,
37
+ cmap: `**ContextMap** - Shows relationships between bounded contexts.${MAP_LINK}`,
38
+ domainmap: `**DomainMap** - Visualizes domains and their subdomain structure.${MAP_LINK}`,
39
+ dmap: `**DomainMap** - Visualizes domains and their subdomain structure.${MAP_LINK}`,
40
+ contains: `**contains** - Specifies which elements are part of a map.${MAP_LINK}`,
41
+ // ========================================================================
42
+ // Bounded Context & Domain Properties
43
+ // ========================================================================
44
+ for: `**for** - Associates a bounded context with its parent domain.${BC_LINK}`,
45
+ as: `**as** - Assigns a classification to an element.${BC_LINK}`,
46
+ by: `**by** - Assigns a team responsible for an element.${BC_LINK}`,
47
+ in: `**in** - Specifies parent domain for subdomain nesting.${DOMAIN_LINK}`,
48
+ description: `**description** - Human-readable explanation of the element's purpose.${SYNTAX_LINK}`,
49
+ vision: `**vision** - Strategic vision statement for a domain.${DOMAIN_LINK}`,
50
+ type: `**type** - Assigns a classification type to a domain or relationship.${DOMAIN_LINK}`,
51
+ businessmodel: `**businessModel** - Revenue or engagement model for a context.${BC_LINK}`,
52
+ evolution: `**evolution** - Maturity stage (Genesis, Custom, Product, Commodity).${BC_LINK}`,
53
+ archetype: `**archetype** - Behavioral role (Gateway, Execution, etc.).${BC_LINK}`,
54
+ relationships: `**relationships** - Block defining integration patterns with other contexts.${REL_LINK}`,
55
+ integrations: `**integrations** - Block defining integration patterns with other contexts.${REL_LINK}`,
56
+ // ========================================================================
57
+ // Terminology & Glossary
58
+ // ========================================================================
59
+ terminology: `**terminology** - Block defining domain-specific terms and definitions.${TERM_LINK}`,
60
+ glossary: `**glossary** - Block defining domain-specific terms and definitions.${TERM_LINK}`,
61
+ term: `**Term** - Defines a domain term with its meaning.${TERM_LINK}`,
62
+ aka: `**aka** - Alternative names (also known as) for a term.${TERM_LINK}`,
63
+ synonyms: `**synonyms** - Alternative names (also known as) for a term.${TERM_LINK}`,
64
+ examples: `**examples** - Example usage of a term.${TERM_LINK}`,
65
+ meaning: `**meaning** - The definition or explanation of a term.${TERM_LINK}`,
66
+ // ========================================================================
67
+ // Decisions, Policies & Rules
68
+ // ========================================================================
69
+ decisions: `**decisions** - Block containing architectural decisions or business rules.${DECISION_LINK}`,
70
+ rules: `**rules** - Block containing architectural decisions or business rules.${DECISION_LINK}`,
71
+ decision: `**Decision** - An architectural or domain decision.${DECISION_LINK}`,
72
+ policy: `**Policy** - A business policy or organizational rule.${DECISION_LINK}`,
73
+ rule: `**Rule** - A business rule or constraint (also BusinessRule).${DECISION_LINK}`,
74
+ // ========================================================================
75
+ // Import System
76
+ // ========================================================================
77
+ import: `**Import** - Imports definitions from an external model or file.${IMPORT_LINK}`,
78
+ // ========================================================================
79
+ // Namespaces
80
+ // ========================================================================
81
+ namespace: `**Namespace** - Groups elements under a qualified name.${NS_LINK}`,
82
+ ns: `**Namespace** - Groups elements under a qualified name.${NS_LINK}`,
83
+ // ========================================================================
84
+ // Assignment Operators
85
+ // ========================================================================
86
+ ':': `**:** - Assignment operator (property: value).${SYNTAX_LINK}`,
87
+ is: `**is** - Assignment operator (property is value).${SYNTAX_LINK}`,
88
+ '=': `**=** - Assignment operator (property = value).${SYNTAX_LINK}`,
89
+ // ========================================================================
90
+ // Context Reference
91
+ // ========================================================================
92
+ this: `**this** - References the current bounded context in relationships.${REL_LINK}`,
93
+ // ========================================================================
28
94
  // DDD Integration Patterns
29
- acl: "**ACL (Anti-Corruption Layer)** - Translation layer protecting downstream context from upstream changes.",
30
- ohs: "**OHS (Open Host Service)** - Well-defined protocol providing access to a subsystem.",
31
- pl: "**PL (Published Language)** - Documented shared language for context communication.",
32
- cf: "**CF (Conformist)** - Downstream adopts upstream model without translation.",
33
- bbom: "**BBoM (Big Ball of Mud)** - System with tangled architecture and no clear boundaries.",
34
- sk: "**SK (Shared Kernel)** - Shared domain model subset requiring coordination.",
35
- p: "**P (Partnership)** - Teams collaborate closely with shared success/failure.",
36
- // DDD Relationship Types
37
- separateways: "**Separate Ways** - No connection between contexts, each solves problems independently.",
38
- partnership: "**Partnership** - Teams share risks and rewards with close collaboration.",
39
- sharedkernel: "**Shared Kernel** - Shared domain model subset requiring coordination.",
40
- customersupplier: "**Customer-Supplier** - Upstream prioritizes downstream needs.",
41
- upstreamdownstream: "**Upstream-Downstream** - Upstream changes affect downstream.",
42
- // Relationship arrows
43
- '<->': "**Bidirectional** - Two contexts connected in both directions.",
44
- '->': "**Upstream → Downstream** - Left depends on right.",
45
- '<-': "**Downstream ← Upstream** - Right depends on left.",
95
+ // ========================================================================
96
+ acl: `**ACL** - Anti-Corruption Layer. Protects from external models by translating between domains.${REL_LINK}`,
97
+ anticorruptionlayer: `**AntiCorruptionLayer** - Protects from external models by translating between domains.${REL_LINK}`,
98
+ ohs: `**OHS** - Open Host Service. Provides a well-documented API for integration.${REL_LINK}`,
99
+ openhostservice: `**OpenHostService** - Provides a well-documented API for integration.${REL_LINK}`,
100
+ pl: `**PL** - Published Language. Documented language for inter-context communication.${REL_LINK}`,
101
+ publishedlanguage: `**PublishedLanguage** - Documented language for inter-context communication.${REL_LINK}`,
102
+ cf: `**CF** - Conformist. Adopts upstream model without translation.${REL_LINK}`,
103
+ conformist: `**Conformist** - Adopts upstream model without translation.${REL_LINK}`,
104
+ p: `**P** - Partnership. Two teams with mutual dependency and shared goals.${REL_LINK}`,
105
+ partnership: `**Partnership** - Two teams with mutual dependency and shared goals.${REL_LINK}`,
106
+ sk: `**SK** - Shared Kernel. Shared code/data requiring careful coordination.${REL_LINK}`,
107
+ sharedkernel: `**SharedKernel** - Shared code/data requiring careful coordination.${REL_LINK}`,
108
+ bbom: `**BBoM** - Big Ball of Mud. Legacy area without clear boundaries.${REL_LINK}`,
109
+ bigballofmud: `**BigBallOfMud** - Legacy area without clear boundaries.${REL_LINK}`,
110
+ // ========================================================================
111
+ // Relationship Types
112
+ // ========================================================================
113
+ customersupplier: `**CustomerSupplier** - Downstream depends on upstream with influence over priorities.${REL_LINK}`,
114
+ upstreamdownstream: `**UpstreamDownstream** - One context depends on another's model.${REL_LINK}`,
115
+ separateways: `**SeparateWays** - Contexts with no integration, solving problems independently.${REL_LINK}`,
116
+ // ========================================================================
117
+ // Relationship Arrows
118
+ // ========================================================================
119
+ '->': `**->** - Unidirectional dependency (upstream to downstream).${REL_LINK}`,
120
+ '<->': `**<->** - Bidirectional dependency (mutual).${REL_LINK}`,
121
+ '<-': `**<-** - Reverse unidirectional dependency (downstream to upstream).${REL_LINK}`,
122
+ '><': `**><** - Separate Ways (no integration).${REL_LINK}`,
46
123
  };
47
124
  //# sourceMappingURL=domain-lang-keywords.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domain-lang-keywords.js","sourceRoot":"","sources":["../../../src/lsp/hover/domain-lang-keywords.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACvD,2BAA2B;IAC3B,UAAU,EAAE,4FAA4F;IACxG,EAAE,EAAE,0DAA0D;IAC9D,IAAI,EAAE,yEAAyE;IAC/E,IAAI,EAAE,uDAAuD;IAC7D,GAAG,EAAE,iEAAiE;IACtE,IAAI,EAAE,qDAAqD;IAE3D,kBAAkB;IAClB,MAAM,EAAE,2EAA2E;IACnF,WAAW,EAAE,sEAAsE;IACnF,SAAS,EAAE,qEAAqE;IAChF,OAAO,EAAE,2CAA2C;IACpD,KAAK,EAAE,4DAA4D;IACnE,YAAY,EAAE,6DAA6D;IAE3E,2BAA2B;IAC3B,GAAG,EAAE,0GAA0G;IAC/G,GAAG,EAAE,sFAAsF;IAC3F,EAAE,EAAE,qFAAqF;IACzF,EAAE,EAAE,6EAA6E;IACjF,IAAI,EAAE,wFAAwF;IAC9F,EAAE,EAAE,6EAA6E;IACjF,CAAC,EAAE,8EAA8E;IAEjF,yBAAyB;IACzB,YAAY,EAAE,yFAAyF;IACvG,WAAW,EAAE,2EAA2E;IACxF,YAAY,EAAE,wEAAwE;IACtF,gBAAgB,EAAE,gEAAgE;IAClF,kBAAkB,EAAE,+DAA+D;IAEnF,sBAAsB;IACtB,KAAK,EAAE,gEAAgE;IACvE,IAAI,EAAE,oDAAoD;IAC1D,IAAI,EAAE,oDAAoD;CAC7D,CAAC"}
1
+ {"version":3,"file":"domain-lang-keywords.js","sourceRoot":"","sources":["../../../src/lsp/hover/domain-lang-keywords.ts"],"names":[],"mappings":"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"}
@@ -36,14 +36,31 @@ export class ManifestDiagnosticsService {
36
36
  * @param options - Validation options
37
37
  */
38
38
  async validateAndSendDiagnostics(manifestUri, content, options) {
39
- if (!this.connection) {
40
- return; // No connection, skip diagnostics
39
+ try {
40
+ if (!this.connection) {
41
+ return; // No connection, skip diagnostics
42
+ }
43
+ const diagnostics = this.validate(content, options);
44
+ await this.connection.sendDiagnostics({
45
+ uri: manifestUri,
46
+ diagnostics
47
+ });
48
+ }
49
+ catch (error) {
50
+ console.error('Error in validateAndSendDiagnostics:', error);
51
+ // Send minimal error diagnostic instead of crashing
52
+ if (this.connection) {
53
+ await this.connection.sendDiagnostics({
54
+ uri: manifestUri,
55
+ diagnostics: [{
56
+ severity: DiagnosticSeverity.Error,
57
+ range: Range.create(Position.create(0, 0), Position.create(0, 1)),
58
+ message: 'Internal error validating manifest file',
59
+ source: 'domainlang'
60
+ }]
61
+ });
62
+ }
41
63
  }
42
- const diagnostics = this.validate(content, options);
43
- await this.connection.sendDiagnostics({
44
- uri: manifestUri,
45
- diagnostics
46
- });
47
64
  }
48
65
  /**
49
66
  * Validates manifest content and returns LSP diagnostics.
@@ -53,36 +70,48 @@ export class ManifestDiagnosticsService {
53
70
  * @returns Array of LSP diagnostics
54
71
  */
55
72
  validate(content, options) {
56
- // Parse YAML to get both the manifest object and source map
57
- let yamlDoc;
58
- let manifest;
59
73
  try {
60
- yamlDoc = YAML.parseDocument(content);
61
- // Check for YAML parse errors (they're in the errors array, not thrown)
62
- if (yamlDoc.errors && yamlDoc.errors.length > 0) {
63
- return yamlDoc.errors.map(err => ({
64
- severity: DiagnosticSeverity.Error,
65
- range: this.yamlErrorToRange(err, content),
66
- message: `YAML parse error: ${err.message}`,
67
- source: 'domainlang'
68
- }));
74
+ // Parse YAML to get both the manifest object and source map
75
+ let yamlDoc;
76
+ let manifest;
77
+ try {
78
+ yamlDoc = YAML.parseDocument(content);
79
+ // Check for YAML parse errors (they're in the errors array, not thrown)
80
+ if (yamlDoc.errors && yamlDoc.errors.length > 0) {
81
+ return yamlDoc.errors.map(err => ({
82
+ severity: DiagnosticSeverity.Error,
83
+ range: this.yamlErrorToRange(err, content),
84
+ message: `YAML parse error: ${err.message}`,
85
+ source: 'domainlang'
86
+ }));
87
+ }
88
+ manifest = (yamlDoc.toJSON() ?? {});
89
+ }
90
+ catch (error) {
91
+ // Fallback for unexpected errors
92
+ const message = error instanceof Error ? error.message : 'Invalid YAML syntax';
93
+ return [{
94
+ severity: DiagnosticSeverity.Error,
95
+ range: Range.create(Position.create(0, 0), Position.create(0, 1)),
96
+ message: `YAML parse error: ${message}`,
97
+ source: 'domainlang'
98
+ }];
69
99
  }
70
- manifest = (yamlDoc.toJSON() ?? {});
100
+ // Run manifest validation
101
+ const result = this.validator.validate(manifest, options);
102
+ // Convert to LSP diagnostics with source locations
103
+ return result.diagnostics.map(diag => this.toVSCodeDiagnostic(diag, yamlDoc));
71
104
  }
72
105
  catch (error) {
73
- // Fallback for unexpected errors
74
- const message = error instanceof Error ? error.message : 'Invalid YAML syntax';
106
+ console.error('Error in validate:', error);
107
+ // Return minimal error diagnostic
75
108
  return [{
76
109
  severity: DiagnosticSeverity.Error,
77
110
  range: Range.create(Position.create(0, 0), Position.create(0, 1)),
78
- message: `YAML parse error: ${message}`,
111
+ message: 'Internal error during validation',
79
112
  source: 'domainlang'
80
113
  }];
81
114
  }
82
- // Run manifest validation
83
- const result = this.validator.validate(manifest, options);
84
- // Convert to LSP diagnostics with source locations
85
- return result.diagnostics.map(diag => this.toVSCodeDiagnostic(diag, yamlDoc));
86
115
  }
87
116
  /**
88
117
  * Converts a YAML error to an LSP Range.
@@ -104,30 +133,49 @@ export class ManifestDiagnosticsService {
104
133
  * Call this when the file is closed or deleted.
105
134
  */
106
135
  async clearDiagnostics(manifestUri) {
107
- if (!this.connection) {
108
- return;
136
+ try {
137
+ if (!this.connection) {
138
+ return;
139
+ }
140
+ await this.connection.sendDiagnostics({
141
+ uri: manifestUri,
142
+ diagnostics: []
143
+ });
144
+ }
145
+ catch (error) {
146
+ console.error('Error in clearDiagnostics:', error);
147
+ // Ignore - don't crash on cleanup
109
148
  }
110
- await this.connection.sendDiagnostics({
111
- uri: manifestUri,
112
- diagnostics: []
113
- });
114
149
  }
115
150
  /**
116
151
  * Converts a ManifestDiagnostic to an LSP Diagnostic.
117
152
  */
118
153
  toVSCodeDiagnostic(diag, yamlDoc) {
119
- const range = this.findRangeForPath(diag.path, yamlDoc);
120
- let message = diag.message;
121
- if (diag.hint) {
122
- message += `\nHint: ${diag.hint}`;
154
+ try {
155
+ const range = this.findRangeForPath(diag.path, yamlDoc);
156
+ let message = diag.message;
157
+ if (diag.hint) {
158
+ message += `\nHint: ${diag.hint}`;
159
+ }
160
+ return {
161
+ severity: this.toVSCodeSeverity(diag.severity),
162
+ range,
163
+ message,
164
+ source: 'domainlang',
165
+ code: diag.code
166
+ };
167
+ }
168
+ catch (error) {
169
+ console.error('Error converting diagnostic:', error);
170
+ // Return minimal diagnostic at file start
171
+ return {
172
+ severity: DiagnosticSeverity.Error,
173
+ range: Range.create(Position.create(0, 0), Position.create(0, 1)),
174
+ message: diag.message,
175
+ source: 'domainlang',
176
+ code: diag.code
177
+ };
123
178
  }
124
- return {
125
- severity: this.toVSCodeSeverity(diag.severity),
126
- range,
127
- message,
128
- source: 'domainlang',
129
- code: diag.code
130
- };
131
179
  }
132
180
  /**
133
181
  * Converts ManifestSeverity to LSP DiagnosticSeverity.
@@ -159,13 +207,12 @@ export class ManifestDiagnosticsService {
159
207
  if (!isMap(currentNode)) {
160
208
  return fallback;
161
209
  }
162
- const mapNode = currentNode;
163
- const item = mapNode.items.find((pair) => isPair(pair) && isScalar(pair.key) && String(pair.key.value) === part);
210
+ const item = currentNode.items.find((pair) => isPair(pair) && isScalar(pair.key) && String(pair.key.value) === part);
164
211
  if (!item) {
165
212
  return fallback;
166
213
  }
167
214
  // If this is the last part, return the range of the key
168
- if (part === parts[parts.length - 1]) {
215
+ if (part === parts.at(-1)) {
169
216
  const keyNode = item.key;
170
217
  if (isScalar(keyNode) && keyNode.range) {
171
218
  const [start, end] = keyNode.range;
@@ -213,9 +260,7 @@ let manifestDiagnosticsService;
213
260
  * Gets or creates the manifest diagnostics service singleton.
214
261
  */
215
262
  export function getManifestDiagnosticsService() {
216
- if (!manifestDiagnosticsService) {
217
- manifestDiagnosticsService = new ManifestDiagnosticsService();
218
- }
263
+ manifestDiagnosticsService ?? (manifestDiagnosticsService = new ManifestDiagnosticsService());
219
264
  return manifestDiagnosticsService;
220
265
  }
221
266
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-diagnostics.js","sourceRoot":"","sources":["../../src/lsp/manifest-diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest-diagnostics.js","sourceRoot":"","sources":["../../src/lsp/manifest-diagnostics.ts"],"names":[],"mappings":"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"}