@cratis/screenplay-language 4.49.0 → 4.51.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 (94) hide show
  1. package/DestinationHint.ts +8 -0
  2. package/ProductionSymbol.ts +11 -0
  3. package/completion-items.ts +14 -0
  4. package/completion-planner.ts +6 -0
  5. package/completions.ts +4 -2
  6. package/diagnostic-codes.ts +10 -0
  7. package/diagnostics.ts +3 -1
  8. package/dist/DestinationHint.d.ts +6 -0
  9. package/dist/DestinationHint.d.ts.map +1 -0
  10. package/dist/DestinationHint.js +4 -0
  11. package/dist/DestinationHint.js.map +1 -0
  12. package/dist/ProductionSymbol.d.ts +13 -0
  13. package/dist/ProductionSymbol.d.ts.map +1 -0
  14. package/dist/ProductionSymbol.js +4 -0
  15. package/dist/ProductionSymbol.js.map +1 -0
  16. package/dist/completion-items.d.ts +2 -0
  17. package/dist/completion-items.d.ts.map +1 -1
  18. package/dist/completion-items.js +12 -0
  19. package/dist/completion-items.js.map +1 -1
  20. package/dist/completion-planner.d.ts.map +1 -1
  21. package/dist/completion-planner.js +7 -0
  22. package/dist/completion-planner.js.map +1 -1
  23. package/dist/completions.d.ts.map +1 -1
  24. package/dist/completions.js +4 -1
  25. package/dist/completions.js.map +1 -1
  26. package/dist/diagnostic-codes.d.ts +10 -0
  27. package/dist/diagnostic-codes.d.ts.map +1 -1
  28. package/dist/diagnostic-codes.js +10 -0
  29. package/dist/diagnostic-codes.js.map +1 -1
  30. package/dist/diagnostics.d.ts.map +1 -1
  31. package/dist/diagnostics.js +3 -1
  32. package/dist/diagnostics.js.map +1 -1
  33. package/dist/document-context.d.ts +1 -0
  34. package/dist/document-context.d.ts.map +1 -1
  35. package/dist/document-context.js +24 -2
  36. package/dist/document-context.js.map +1 -1
  37. package/dist/event-analysis-source.d.ts +2 -0
  38. package/dist/event-analysis-source.d.ts.map +1 -0
  39. package/dist/event-analysis-source.js +19 -0
  40. package/dist/event-analysis-source.js.map +1 -0
  41. package/dist/hover-content.d.ts.map +1 -1
  42. package/dist/hover-content.js +9 -1
  43. package/dist/hover-content.js.map +1 -1
  44. package/dist/index.d.ts +3 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +3 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/inlay-hints.d.ts +3 -0
  49. package/dist/inlay-hints.d.ts.map +1 -0
  50. package/dist/inlay-hints.js +15 -0
  51. package/dist/inlay-hints.js.map +1 -0
  52. package/dist/inline-event-validation.d.ts +4 -0
  53. package/dist/inline-event-validation.d.ts.map +1 -0
  54. package/dist/inline-event-validation.js +131 -0
  55. package/dist/inline-event-validation.js.map +1 -0
  56. package/dist/keyword-docs.d.ts.map +1 -1
  57. package/dist/keyword-docs.js +5 -3
  58. package/dist/keyword-docs.js.map +1 -1
  59. package/dist/production-destinations.d.ts +8 -0
  60. package/dist/production-destinations.d.ts.map +1 -0
  61. package/dist/production-destinations.js +32 -0
  62. package/dist/production-destinations.js.map +1 -0
  63. package/dist/symbols.d.ts +5 -0
  64. package/dist/symbols.d.ts.map +1 -1
  65. package/dist/symbols.js +73 -15
  66. package/dist/symbols.js.map +1 -1
  67. package/dist/tokens.d.ts.map +1 -1
  68. package/dist/tokens.js +13 -4
  69. package/dist/tokens.js.map +1 -1
  70. package/dist/validation.d.ts +1 -1
  71. package/dist/validation.d.ts.map +1 -1
  72. package/dist/validation.js +21 -0
  73. package/dist/validation.js.map +1 -1
  74. package/document-context.ts +22 -2
  75. package/event-analysis-source.ts +18 -0
  76. package/for_documentContext/when_stripping_comments.ts +32 -0
  77. package/for_inlineEvents/when_analyzing_many_inline_events.ts +59 -0
  78. package/for_inlineEvents/when_authoring_inline_events.ts +149 -0
  79. package/for_inlineEvents/when_completing_many_events.ts +49 -0
  80. package/for_inlineEvents/when_indexing_command_production_ownership.ts +79 -0
  81. package/for_scanDocument/when_scanning_many_commands.ts +47 -0
  82. package/for_tokens/when_highlighting_event_metadata.ts +63 -0
  83. package/for_validateLines/when_validating_a_document/with_a_problem_of_every_coded_kind.ts +17 -0
  84. package/for_validateLines/when_validating_production_destinations/with_an_available_identifier.ts +120 -0
  85. package/hover-content.ts +9 -1
  86. package/index.ts +5 -0
  87. package/inlay-hints.ts +17 -0
  88. package/inline-event-validation.ts +115 -0
  89. package/keyword-docs.ts +5 -3
  90. package/package.json +1 -1
  91. package/production-destinations.ts +32 -0
  92. package/symbols.ts +75 -15
  93. package/tokens.ts +14 -4
  94. package/validation.ts +23 -1
package/dist/symbols.js CHANGED
@@ -1,22 +1,25 @@
1
1
  // Copyright (c) Cratis. All rights reserved.
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  import { fenceMap, indentOf } from './document-context';
4
+ import { eventAnalysisSource } from './event-analysis-source';
4
5
  import { clauseKeywords } from './language';
5
6
  const conceptPattern = /^concept\s+(\w+)\s*:\s*(\w+)((?:\s+@\w+)*)\s*$/;
6
7
  const propertyPattern = /^\s*(@?[a-z_]\w*)\s+([\w.]+(?:\[\])?\??)(\s+identifier)?\s*$/;
7
8
  const attributeReasonPattern = /^([a-z_]\w*)\s+reason\s+"((?:[^"\\]|\\.)*)"\s*$/;
8
9
  const readPattern = /^\s*reads\s+([A-Z]\w*)(?:\s+as\s+([a-z_]\w*))?(?:\s+by\s+([a-z_]\w*))?\s*$/;
10
+ const commandReserved = ['authorize', 'produces', 'reads'];
11
+ // AuthorizeParser's continuation pattern, including the compiler's Unicode word characters.
12
+ const authorizationContinuation = /^(?:(?:or|and)\s+)?[A-Za-z_(][\p{L}\p{Mn}\p{Nd}\p{Pc}\s()]*$/u;
13
+ const eventReserved = clauseKeywords.filter(keyword => !['id', 'description', 'documentation'].includes(keyword));
9
14
  const queryParameterPattern = /^\s*(?:by|filter)\s+([a-z_]\w*)\s+([\w.]+(?:\[\])?\??)(?:\s+from\s+.+)?\s*$/;
10
- // A body line can only be a genuine PropertyLine when its name is not itself a reserved clause
11
- // keyword - 'authorize CanManageInvoice', 'produces InvoiceRegistered', 'tag audit', 'validate'
12
- // and every 'concurrency' dimension ('sourceType Invoice', 'streamType Invoicing', ...) all have the
13
- // same two-token shape a property line does. The grammar's own keyword escape ('@authorize ...') is
14
- // the one way a real property may share a name with one of these, so only that form survives here.
15
- function propertiesIn(lines, body) {
15
+ // Property-shaped clauses depend on their owner. Commands reserve only authorize,
16
+ // produces and reads; bare directives such as description and handler can be properties.
17
+ // The @ escape always denotes a property, and 'as' keeps its established property meaning.
18
+ function propertiesIn(lines, body, reserved) {
16
19
  return body
17
20
  .map((index) => ({ index, match: lines[index].match(propertyPattern) }))
18
21
  .filter((entry) => entry.match !== null)
19
- .filter(({ match }) => match[1].startsWith('@') || match[1] === 'as' || !clauseKeywords.includes(match[1]))
22
+ .filter(({ match }) => match[1].startsWith('@') || match[1] === 'as' || !reserved.includes(match[1]))
20
23
  .map(({ index, match }) => ({
21
24
  name: match[1].replace(/^@/, ''),
22
25
  type: match[2],
@@ -28,7 +31,6 @@ function collectBody(lines, fences, start, indent) {
28
31
  const body = [];
29
32
  for (let index = start + 1; index < lines.length; index++) {
30
33
  if (fences[index]) {
31
- body.push(index);
32
34
  continue;
33
35
  }
34
36
  const line = lines[index];
@@ -40,6 +42,30 @@ function collectBody(lines, fences, start, indent) {
40
42
  }
41
43
  return body;
42
44
  }
45
+ // Event/production parsers accept every greater indent, not just the smallest child indent.
46
+ // Command block directives own their nested lines; properties do not. Fenced prose is never syntax.
47
+ export function directBody(lines, fences, start, indent) {
48
+ const body = collectBody(lines, fences, start, indent).filter(index => !fences[index] && !/^\s*(?:\/\/|#)/.test(lines[index]));
49
+ if (!/^\s*command\b/.test(lines[start]))
50
+ return body;
51
+ let blockIndent;
52
+ let authorization = false;
53
+ return body.filter(index => {
54
+ const childIndent = indentOf(lines[index]);
55
+ const text = lines[index].trim();
56
+ // AuthorizeParser owns only consecutive deeper lines with requirement shape.
57
+ // Unlike opaque blocks, a nonmatching line returns control to CommandParser.
58
+ if (blockIndent !== undefined && childIndent > blockIndent &&
59
+ (!authorization || authorizationContinuation.test(text)))
60
+ return false;
61
+ const property = text !== 'validate csharp' && propertiesIn(lines, [index], commandReserved).length > 0;
62
+ // Description consumes only a quoted value or a fence (already excluded above).
63
+ const leaf = property || /^description(?:\s|$)/.test(text);
64
+ blockIndent = leaf ? undefined : childIndent;
65
+ authorization = /^authorize(?:\s|$)/.test(text);
66
+ return true;
67
+ });
68
+ }
43
69
  export function scanDocument(lines) {
44
70
  const symbols = {
45
71
  imports: [],
@@ -52,14 +78,21 @@ export function scanDocument(lines) {
52
78
  screens: [],
53
79
  triggers: [],
54
80
  };
81
+ // One normalization pass for every declaration, including comments on fence openers.
82
+ lines = eventAnalysisSource(lines);
55
83
  const fences = fenceMap(lines);
84
+ const eventLines = lines;
85
+ const eventFences = fences;
86
+ // Typed inline mappings share property syntax once their source expression is removed.
87
+ // Do this once, never once per inline event.
88
+ const eventPropertyLines = lines.map(line => line.replace(/\s*=(?!=|>).*/, ''));
56
89
  for (let index = 0; index < lines.length; index++) {
57
90
  if (fences[index])
58
91
  continue;
59
92
  const line = lines[index];
60
93
  const trimmed = line.trim();
61
94
  const indent = indentOf(line);
62
- const importMatch = trimmed.match(/^import\s+([\w.]+)\s*$/);
95
+ const importMatch = eventLines[index].trim().match(/^import\s+([\w.]+)\s*$/);
63
96
  if (importMatch && indent === 0) {
64
97
  const qualifiedName = importMatch[1];
65
98
  const shortName = qualifiedName.split('.').pop() ?? qualifiedName;
@@ -93,7 +126,7 @@ export function scanDocument(lines) {
93
126
  if (typeMatch) {
94
127
  symbols.types.push({
95
128
  name: typeMatch[1],
96
- properties: propertiesIn(lines, collectBody(lines, fences, index, indent)),
129
+ properties: propertiesIn(lines, collectBody(lines, fences, index, indent), clauseKeywords),
97
130
  line: index,
98
131
  });
99
132
  continue;
@@ -106,22 +139,47 @@ export function scanDocument(lines) {
106
139
  symbols.policies.push({ name: policyMatch[1], requires, line: index });
107
140
  continue;
108
141
  }
109
- const eventMatch = trimmed.match(/^event\s+(\w+)(?:\s+generation\s+(\d+))?\s*$/);
142
+ const eventMatch = eventLines[index].trim().match(/^(?:produces\s+)?event\s+(\w+)(?:\s+generation\s+(\d+))?\s*$/);
110
143
  if (eventMatch) {
111
144
  symbols.events.push({
112
145
  name: eventMatch[1],
113
146
  ...(eventMatch[2] ? { generation: Number(eventMatch[2]) } : {}),
114
- properties: propertiesIn(lines, collectBody(lines, fences, index, indent)),
147
+ inline: trimmed.startsWith('produces '),
148
+ properties: propertiesIn(trimmed.startsWith('produces ') ? eventPropertyLines : eventLines, directBody(eventLines, eventFences, index, indent), eventReserved),
115
149
  line: index,
116
150
  });
117
151
  continue;
118
152
  }
119
- const commandMatch = trimmed.match(/^command\s+(\w+)\s*$/);
153
+ const commandMatch = eventLines[index].trim().match(/^command\s+(\w+)\s*$/);
120
154
  if (commandMatch) {
121
- const body = collectBody(lines, fences, index, indent);
155
+ // A command property is a leaf, not an indentation owner. Share the parser-shaped
156
+ // body with properties, productions, advice and destination hints.
157
+ const body = directBody(lines, fences, index, indent);
158
+ const productionHeaders = body.filter(line => /^\s*produces\b/.test(lines[line]));
122
159
  symbols.commands.push({
123
160
  name: commandMatch[1],
124
- properties: propertiesIn(lines, body),
161
+ properties: propertiesIn(lines, body.filter(line => lines[line].trim() !== 'validate csharp'), commandReserved),
162
+ productionHeaders,
163
+ produces: productionHeaders.flatMap(line => {
164
+ const header = eventLines[line].trim();
165
+ const inline = /^produces\s+event\b/.test(header);
166
+ const conditional = /^produces\s+when\b/.test(header);
167
+ const eventLine = conditional ? directBody(eventLines, eventFences, line, indentOf(eventLines[line]))[0] : line;
168
+ if (eventLine === undefined)
169
+ return [];
170
+ const name = conditional ? eventLines[eventLine].trim() : header.match(inline ? /^produces\s+event\s+([A-Za-z_]\w*)(?:\s+generation\s+\d+)?\s*$/ : /^produces\s+([A-Z]\w*)\s*$/)?.[1];
171
+ if (name === undefined || !/^[A-Za-z_]\w*$/.test(name))
172
+ return [];
173
+ const children = directBody(eventLines, eventFences, eventLine, indentOf(eventLines[eventLine]));
174
+ const targets = children.map(index => eventLines[index].trim().match(/^for(?:\s+(.*))?$/)).filter(match => match !== null);
175
+ // Empty or repeated targets are uncertain, not implicit destinations.
176
+ const target = targets.length === 0 ? undefined : targets.length === 1 ? targets[0][1] ?? '' : '';
177
+ const mappings = children.flatMap(index => {
178
+ const match = eventLines[index].trim().match(inline ? /^(@?[a-z_]\w*)\s+[\w.[\]?]+\s*=(?!=|>)\s*(.+)$/ : /^(@?[\w.]+)\s*=(?!=|>)\s*(.+)$/);
179
+ return match === null ? [] : [{ name: match[1].replace(/^@/, ''), source: match[2], line: index }];
180
+ });
181
+ return [{ name, inline, conditional, line, target, mappings }];
182
+ }),
125
183
  reads: body.filter((line) => !fences[line])
126
184
  .map((line) => ({ line, match: lines[line].match(readPattern) }))
127
185
  .filter((entry) => entry.match !== null)
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../symbols.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../symbols.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../tokens.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAQ/C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA0BzE,eAAO,MAAM,gBAAgB,EAAE,iBAa9B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,gBAAgB,CA+G5F"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../tokens.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAQ/C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA0BzE,eAAO,MAAM,gBAAgB,EAAE,iBAa9B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,gBAAgB,CAyH5F"}
package/dist/tokens.js CHANGED
@@ -45,9 +45,11 @@ export function createTokensProvider(subLanguages) {
45
45
  [/^(\s*)(then)(\s+)(result|no\s+result)\b/, ['white', 'keyword', 'white', 'keyword']],
46
46
  // A quoted import names .play files rather than a qualified name - the path reads as a link.
47
47
  [/^(\s*)(import)(\s+)("[^"\\]*")/, ['white', 'keyword', 'white', 'string.link']],
48
- // Only an event header reserves 'generation'; properties and context paths do not.
49
- [/^(\s*)(event)(\s+)([A-Za-z_]\w*)(\s+)(generation)(?=\s+\d+\s*$)/,
50
- ['white', 'keyword', 'white', 'type.identifier', 'white', 'keyword']],
48
+ // Retain the header indent so event metadata stops at the enclosing block boundary.
49
+ [/^(\s*)((?:produces\s+)?event)(\s+)([A-Za-z_]\w*)(\s+)(generation)(\s+)(\d+)(?=\s*(?:\/\/.*)?$)/,
50
+ ['white', 'keyword', 'white', 'type.identifier', 'white', 'keyword', 'white', { token: 'number', next: '@eventBody.$1' }]],
51
+ [/^(\s*)((?:produces\s+)?event)(\s+)([A-Za-z_]\w*)(?=\s*(?:\/\/.*)?$)/,
52
+ ['white', 'keyword', 'white', { token: 'type.identifier', next: '@eventBody.$1' }]],
51
53
  // A tagged opening fence carries the embedded language; legacy tag lines still highlight.
52
54
  ...codeBlockTags.map((tag) => [
53
55
  new RegExp(`^\\s*\\x60\\x60\\x60${tag}\\s*$`),
@@ -90,6 +92,12 @@ export function createTokensProvider(subLanguages) {
90
92
  ],
91
93
  { include: '@common' },
92
94
  ],
95
+ eventBody: [
96
+ [/^(?!$S2[ \t]+|\s*$)/, { token: '@rematch', next: '@pop' }],
97
+ [/^(\s*)(id)(?=\s+")/, ['white', 'keyword']],
98
+ [/^(\s*)(documentation)(?=\s*(?:\/\/.*)?$)/, ['white', { token: 'keyword', next: '@descriptionBlockPending' }]],
99
+ { include: '@root' },
100
+ ],
93
101
  common: commonTokenRules,
94
102
  // After a code tag, the only thing allowed before the opening fence is whitespace.
95
103
  codeBlockPending: [
@@ -107,7 +115,8 @@ export function createTokensProvider(subLanguages) {
107
115
  ],
108
116
  // After a bare description, the only thing allowed before the opening fence is whitespace.
109
117
  descriptionBlockPending: [
110
- [/^\s*```(?:text)?\s*$/, { token: 'string.quote', switchTo: '@descriptionBlock' }],
118
+ [/\/\/.*$/, 'comment'],
119
+ [/^\s*```(?:text|markdown)?\s*$/, { token: 'string.quote', switchTo: '@descriptionBlock' }],
111
120
  [/^\s*[^\s`].*$/, { token: '@rematch', next: '@pop' }],
112
121
  [/\s+/, 'white'],
113
122
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../tokens.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { DiagnosticCode } from './diagnostic-codes';
2
2
  import { DocumentSymbols } from './symbols';
3
- export type ValidationSeverity = 'error' | 'warning';
3
+ export type ValidationSeverity = 'error' | 'warning' | 'information';
4
4
  export interface ValidationIssue {
5
5
  line: number;
6
6
  startColumn: number;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../validation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAmB,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EACH,eAAe,EAMlB,MAAM,WAAW,CAAC;AAGnB,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,kBAAkB,CAAC;IAI7B,IAAI,CAAC,EAAE,cAAc,CAAC;CACzB;AAGD,MAAM,WAAW,iBAAiB;IAI9B,WAAW,CAAC,EAAE,eAAe,CAAC;CACjC;AAiGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,iBAAsB,GAAG,eAAe,EAAE,CAoNjG;AAyBD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAiD/F"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../validation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAmB,MAAM,oBAAoB,CAAC;AAIrE,OAAO,EACH,eAAe,EAMlB,MAAM,WAAW,CAAC;AAGnB,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAErE,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,kBAAkB,CAAC;IAI7B,IAAI,CAAC,EAAE,cAAc,CAAC;CACzB;AAGD,MAAM,WAAW,iBAAiB;IAI9B,WAAW,CAAC,EAAE,eAAe,CAAC;CACjC;AAiGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,iBAAsB,GAAG,eAAe,EAAE,CAsNjG;AA2CD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAiD/F"}
@@ -1,8 +1,10 @@
1
1
  // Copyright (c) Cratis. All rights reserved.
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ import { validateInlineEvents } from './inline-event-validation';
3
4
  import { causedByProperties, contextRoots, identityProperties, primitiveTypes, sliceTypes } from './language';
4
5
  import { diagnosticCodes } from './diagnostic-codes';
5
6
  import { enclosingChain, fenceMap, indentOf } from './document-context';
7
+ import { eventAnalysisSource } from './event-analysis-source';
6
8
  import { resolveEventContextPath } from './event-context';
7
9
  import { knownEventNames, knownTypeNames, mergeSymbols, scanDocument, } from './symbols';
8
10
  import { fileImportOn, isFileImportLine } from './file-imports';
@@ -61,6 +63,7 @@ export function validateLines(lines, context = {}) {
61
63
  const events = new Set([...knownEventNames(symbols), ...knownEventNames(application)]);
62
64
  const policies = new Set([...symbols.policies, ...application.policies].map((policy) => policy.name));
63
65
  const issues = validateDeclarations(lines, symbols, application);
66
+ issues.push(...validateProductionDestinations(lines, symbols));
64
67
  const checkEvent = (line, text, name) => {
65
68
  if (!events.has(name)) {
66
69
  issues.push(tokenIssue('warning', line, text, name, `Unknown event type '${name}' — declare it in a slice or import it.`, diagnosticCodes.unknownEvent));
@@ -153,6 +156,7 @@ export function validateLines(lines, context = {}) {
153
156
  }
154
157
  }
155
158
  issues.push(...validateEventContextPaths(lines, fences));
159
+ issues.push(...validateInlineEvents(lines, symbols, application));
156
160
  const fenceLines = lines
157
161
  .map((line, index) => ({ line, index }))
158
162
  .filter(({ line }) => /^\s*```(?:[a-z]+)?\s*$/.test(line));
@@ -162,6 +166,23 @@ export function validateLines(lines, context = {}) {
162
166
  }
163
167
  return issues;
164
168
  }
169
+ // This is advice, not a semantic default: accepting the typed workspace repair changes routing.
170
+ function validateProductionDestinations(lines, symbols) {
171
+ const issues = [];
172
+ lines = eventAnalysisSource(lines);
173
+ for (const command of symbols.commands) {
174
+ const identifiers = command.properties.filter(property => property.isIdentifier && !property.type.endsWith('?') && !property.type.endsWith('[]'));
175
+ if (identifiers.length !== 1)
176
+ continue;
177
+ for (const production of command.produces ?? []) {
178
+ if (production.inline || production.conditional || production.target !== undefined)
179
+ continue;
180
+ const line = production.line;
181
+ issues.push(issue('information', line, indentOf(lines[line]) + 1, lines[line].trim().length, `Plain 'produces ${production.name}' omits its destination — use 'for ${identifiers[0].name}' to explicitly select the command's identifier.`, diagnosticCodes.omittedProductionDestination));
182
+ }
183
+ }
184
+ return issues;
185
+ }
165
186
  // Inside a module or feature an import names files, and a quoted import anywhere has the compiler's shape.
166
187
  function validateImport(lines, fences, index) {
167
188
  const line = lines[index];
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../validation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,26 @@
1
1
  // Copyright (c) Cratis. All rights reserved.
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
 
4
+ // Matches SourceLineSplitter.CommentStart: // inside a double-quoted string or a
5
+ // backtick template is content; a backslash escapes the next character only in a string.
6
+ export function withoutComment(line: string): string {
7
+ let inString = false;
8
+ let inTemplate = false;
9
+ for (let index = 0; index < line.length; index++) {
10
+ const character = line[index];
11
+ if (character === '\\' && inString && index + 1 < line.length) {
12
+ index++;
13
+ } else if (character === '"' && !inTemplate) {
14
+ inString = !inString;
15
+ } else if (character === '`' && !inString) {
16
+ inTemplate = !inTemplate;
17
+ } else if (!inString && !inTemplate && character === '/' && line[index + 1] === '/') {
18
+ return line.slice(0, index);
19
+ }
20
+ }
21
+ return line;
22
+ }
23
+
4
24
  export function indentOf(line: string): number {
5
25
  return line.length - line.trimStart().length;
6
26
  }
@@ -39,7 +59,7 @@ export function enclosingChain(
39
59
  let currentIndent = indent;
40
60
  for (let index = lineIndex - 1; index >= 0 && currentIndent > 0; index--) {
41
61
  if (fences[index]) continue;
42
- const line = lines[index];
62
+ const line = withoutComment(lines[index]);
43
63
  if (line.trim().length === 0) continue;
44
64
  const lineIndent = indentOf(line);
45
65
  if (lineIndent < currentIndent) {
@@ -63,7 +83,7 @@ export function nearestEnclosingLine(
63
83
  ): string | undefined {
64
84
  for (let index = lineIndex - 1; index >= 0 && indent > 0; index--) {
65
85
  if (fences[index]) continue;
66
- const line = lines[index];
86
+ const line = withoutComment(lines[index]);
67
87
  if (line.trim().length === 0) continue;
68
88
  if (indentOf(line) < indent) {
69
89
  return line.trim();
@@ -0,0 +1,18 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ import { withoutComment } from './document-context';
5
+
6
+ // Match SourceLineSplitter: comments begin outside strings/templates; fenced bodies remain opaque.
7
+ export function eventAnalysisSource(lines: string[]): string[] {
8
+ let fenced = false;
9
+ return lines.map(line => {
10
+ if (fenced) {
11
+ if (line.trim() === '```') fenced = false;
12
+ return line;
13
+ }
14
+ const text = withoutComment(line);
15
+ if (/^\s*```(?:[a-z]+)?\s*$/.test(text)) fenced = true;
16
+ return text.trimEnd();
17
+ });
18
+ }
@@ -0,0 +1,32 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ import { describe, expect, it } from 'vitest';
5
+ import { enclosingChain, fenceMap, nearestEnclosingLine, withoutComment } from '../document-context';
6
+
7
+ // The same cases are asserted against C# SourceLineSplitter in when_stripping_comments.cs.
8
+ const cases = [
9
+ ['value = path // comment', 'value = path'],
10
+ ['value = "https://example" // comment', 'value = "https://example"'],
11
+ [String.raw`value = "escaped \" // retained" // comment`, String.raw`value = "escaped \" // retained"`],
12
+ [String.raw`value = "ending \\" // comment`, String.raw`value = "ending \\"`],
13
+ ['value = `https://example` // comment', 'value = `https://example`'],
14
+ ['value = `a " // retained` // comment', 'value = `a " // retained`'],
15
+ ['value = "a ` // retained" // comment', 'value = "a ` // retained"'],
16
+ ['value = "unclosed // retained', 'value = "unclosed // retained'],
17
+ ['value = `unclosed // retained', 'value = `unclosed // retained'],
18
+ ['value = path # not a comment', 'value = path # not a comment'],
19
+ ["value = 'single // comment", "value = 'single"],
20
+ ];
21
+
22
+ describe('when stripping structural comments', () => {
23
+ it.each(cases)('should match SourceLineSplitter for %s', (line, expected) => {
24
+ withoutComment(line).trimEnd().should.equal(expected);
25
+ });
26
+
27
+ it('should skip comment-only lines when finding an enclosing block', () => {
28
+ const lines = ['command Register // explanation', ' // comment', ' produces Registered'];
29
+ enclosingChain(lines, fenceMap(lines), 2, 4).should.deep.equal(['command']);
30
+ expect(nearestEnclosingLine(lines, fenceMap(lines), 2, 4)).toBe('command Register');
31
+ });
32
+ });
@@ -0,0 +1,59 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ import { describe, expect, it, vi } from 'vitest';
5
+ import * as context from '../document-context';
6
+ import { destinationHints } from '../production-destinations';
7
+ import { scanDocument } from '../symbols';
8
+ import { validateLines } from '../validation';
9
+
10
+ function document(count: number, malformedDocumentation = false): string[] {
11
+ return ['module Projects', ' feature Naming', ...Array.from({ length: count }, (_, index) => [
12
+ ` slice StateChange Rename${index}`,
13
+ ` command Rename${index}`,
14
+ ' projectId Uuid identifier',
15
+ ' name String',
16
+ ` produces event Renamed${index}`,
17
+ ' name String = name',
18
+ malformedDocumentation ? ' documentation "details"' : ' // mapping complete',
19
+ ]).flat()];
20
+ }
21
+
22
+ // Count actual work, not elapsed time: indentation visits catch ancestry walks,
23
+ // replacements catch whole-document normalization per event, and filter input
24
+ // sizes catch rebuilding/scanning the event catalog for every declaration.
25
+ function work(action: () => void): number {
26
+ const indentation = vi.spyOn(context, 'indentOf');
27
+ const replacements = vi.spyOn(String.prototype, 'replace');
28
+ const trims = vi.spyOn(String.prototype, 'trim');
29
+ const filters = vi.spyOn(Array.prototype, 'filter');
30
+ try {
31
+ action();
32
+ return indentation.mock.calls.length + replacements.mock.calls.length + trims.mock.calls.length +
33
+ filters.mock.contexts.reduce<number>((sum, receiver) => sum + (receiver as unknown[]).length, 0);
34
+ } finally {
35
+ indentation.mockRestore();
36
+ replacements.mockRestore();
37
+ trims.mockRestore();
38
+ filters.mockRestore();
39
+ }
40
+ }
41
+
42
+ describe('when analyzing many inline events', () => {
43
+ it.each(['validation', 'destination hints', 'malformed documentation'])('should keep %s work linear', path => {
44
+ const measure = (count: number) => {
45
+ const lines = document(count, path === 'malformed documentation');
46
+ const application = scanDocument(Array.from({ length: count }, (_, index) => `import Other.Imported${index}`));
47
+ let results = 0;
48
+ const units = work(() => {
49
+ results = path === 'destination hints' ? destinationHints(lines).length : validateLines(lines, { application }).length;
50
+ });
51
+ expect(results).toBe(path === 'validation' ? 0 : count);
52
+ return units;
53
+ };
54
+ const small = measure(100);
55
+ const large = measure(200);
56
+ expect(small).toBeGreaterThan(0);
57
+ expect(large).toBeLessThan(small * 2.2);
58
+ });
59
+ });