@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
@@ -1,7 +1,8 @@
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 { enclosingChain, fenceMap, indentOf } from './document-context';
4
- import { scanDocument } from './symbols';
4
+ import { directBody, scanDocument } from './symbols';
5
+ import { eventAnalysisSource } from './event-analysis-source';
5
6
  import { getSubLanguage } from './sub-language-registry';
6
7
  import { attributeDocs, contextVariableDocs, keywordDocs, specificationKeywordDocs } from './keyword-docs';
7
8
  // Produces the hover markdown for a word at a position, without any editor
@@ -82,6 +83,13 @@ export function hoverContent(lines, lineIndex, word, startColumn, endColumn) {
82
83
  if (step && step[2] === word && chain[0] === 'specification' && specificationKeywordDocs[word]) {
83
84
  return `**${word}** — ${specificationKeywordDocs[word]}`;
84
85
  }
86
+ if (word === 'id' || word === 'documentation') {
87
+ const source = eventAnalysisSource(lines);
88
+ const inEvent = symbols.events.some(event => directBody(source, fences, event.line, indentOf(source[event.line])).includes(lineIndex));
89
+ const directive = word === 'id' ? /^\s*id\s+"/.test(source[lineIndex]) : /^\s*documentation\s*$/.test(source[lineIndex]);
90
+ if (!inEvent || !directive || startColumn !== indentOf(line) + 1)
91
+ return null;
92
+ }
85
93
  const keywordDoc = keywordDocs[word];
86
94
  if (keywordDoc)
87
95
  return `**${word}** — ${keywordDoc}`;
@@ -1 +1 @@
1
- {"version":3,"file":"hover-content.js","sourceRoot":"","sources":["../hover-content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hover-content.js","sourceRoot":"","sources":["../hover-content.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -28,6 +28,9 @@ export { completionEntriesFor, planCompletions } from './completion-planner';
28
28
  export type { CompletionPlan } from './completion-planner';
29
29
  export { hoverContent } from './hover-content';
30
30
  export { validateLines } from './validation';
31
+ export { destinationHints, productionDestinations } from './production-destinations';
32
+ export type { DestinationHint } from './DestinationHint';
33
+ export type { ProductionSymbol } from './ProductionSymbol';
31
34
  export type { ValidationContext, ValidationIssue, ValidationSeverity } from './validation';
32
35
  export { diagnosticCodes } from './diagnostic-codes';
33
36
  export type { DiagnosticCode } from './diagnostic-codes';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,MAAM,EAIT,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAA4B,MAAM,eAAe,CAAC;AAyB5E,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD;AAGD,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAEvD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,IAAI,CAenF;AAED,OAAO,EACH,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,YAAY,EACR,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EACH,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,2BAA2B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAChI,YAAY,EACR,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,cAAc,EACd,UAAU,EACV,WAAW,EACX,UAAU,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC3G,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAClJ,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjG,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC7E,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import { languageConfiguration, languageExtensionPoint, languageId, } from './la
4
4
  import { createTokensProvider } from './tokens';
5
5
  import { createCompletionProvider } from './completions';
6
6
  import { createHoverProvider } from './hover';
7
+ import { createInlayHintsProvider } from './inlay-hints';
7
8
  import { attachDiagnostics } from './diagnostics';
8
9
  import { getSubLanguage, getSubLanguages, onSubLanguagesChanged, registerSubLanguage, } from './sub-language-registry';
9
10
  import { pdl } from './sub-languages/pdl';
@@ -34,6 +35,7 @@ export function register(monaco, options = {}) {
34
35
  applyTokensProvider(monaco);
35
36
  monaco.languages.registerCompletionItemProvider(languageId, createCompletionProvider(monaco, options));
36
37
  monaco.languages.registerHoverProvider(languageId, createHoverProvider());
38
+ monaco.languages.registerInlayHintsProvider(languageId, createInlayHintsProvider());
37
39
  monaco.editor.defineTheme(screenplayDarkThemeName, screenplayDark);
38
40
  monaco.editor.defineTheme(screenplayLightThemeName, screenplayLight);
39
41
  attachDiagnostics(monaco);
@@ -54,5 +56,6 @@ export { contextVariableItems, producesItems, specificationStepItems } from './c
54
56
  export { completionEntriesFor, planCompletions } from './completion-planner';
55
57
  export { hoverContent } from './hover-content';
56
58
  export { validateLines } from './validation';
59
+ export { destinationHints, productionDestinations } from './production-destinations';
57
60
  export { diagnosticCodes } from './diagnostic-codes';
58
61
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAEH,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAqB,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACH,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,mBAAmB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAEtF,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE9C,SAAS,mBAAmB,CAAC,MAAc;IACvC,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,UAAU,EAAE,oBAAoB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,gFAAgF;AAChF,qBAAqB,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAE9E,iFAAiF;AACjF,mFAAmF;AACnF,MAAM,UAAU,yBAAyB;IACrC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;QAAE,mBAAmB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAC1E,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;QAAE,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACxE,CAAC;AAKD,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,UAAkC,EAAE;IACzE,IAAI,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO;IAE5C,yBAAyB,EAAE,CAAC;IAE5B,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAClD,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IAC7E,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,CAAC,SAAS,CAAC,8BAA8B,CAAC,UAAU,EAAE,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvG,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,UAAU,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC1E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,wBAAwB,EAAE,eAAe,CAAC,CAAC;IACrE,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,OAAO,EACH,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAO/F,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EACH,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,2BAA2B,GAC9B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG9F,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAchI,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC3G,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAElJ,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjG,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { languages } from 'monaco-editor';
2
+ export declare function createInlayHintsProvider(): languages.InlayHintsProvider;
3
+ //# sourceMappingURL=inlay-hints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inlay-hints.d.ts","sourceRoot":"","sources":["../inlay-hints.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,wBAAgB,wBAAwB,IAAI,SAAS,CAAC,kBAAkB,CAUvE"}
@@ -0,0 +1,15 @@
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
+ import { destinationHints } from './production-destinations';
4
+ export function createInlayHintsProvider() {
5
+ return {
6
+ provideInlayHints(model, range) {
7
+ const hints = destinationHints(model.getLinesContent()).filter(hint => hint.line + 1 >= range.startLineNumber && hint.line + 1 <= range.endLineNumber);
8
+ return {
9
+ hints: hints.map(hint => ({ position: { lineNumber: hint.line + 1, column: hint.column }, label: hint.label, paddingLeft: true })),
10
+ dispose() { },
11
+ };
12
+ },
13
+ };
14
+ }
15
+ //# sourceMappingURL=inlay-hints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inlay-hints.js","sourceRoot":"","sources":["../inlay-hints.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAGrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,UAAU,wBAAwB;IACpC,OAAO;QACH,iBAAiB,CAAC,KAAK,EAAE,KAAK;YAC1B,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YACvJ,OAAO;gBACH,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClI,OAAO,KAAI,CAAC;aACf,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { DocumentSymbols } from './symbols';
2
+ import type { ValidationIssue } from './validation';
3
+ export declare function validateInlineEvents(lines: string[], symbols: DocumentSymbols, application: DocumentSymbols): ValidationIssue[];
4
+ //# sourceMappingURL=inline-event-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-event-validation.d.ts","sourceRoot":"","sources":["../inline-event-validation.ts"],"names":[],"mappings":"AAOA,OAAO,EAAc,eAAe,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,cAAc,CAAC;AAKxE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,GAAG,eAAe,EAAE,CA+E/H"}
@@ -0,0 +1,131 @@
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
+ import { diagnosticCodes } from './diagnostic-codes';
4
+ import { fenceMap, indentOf } from './document-context';
5
+ import { productionDestinations } from './production-destinations';
6
+ import { eventAnalysisSource } from './event-analysis-source';
7
+ import { directBody } from './symbols';
8
+ const reserved = new Set(['namespace', 'sequence', 'correlation', 'causation', 'causedBy', 'occurred']);
9
+ const quotedId = /^id\s+"((?:[^"\\]|\\.)*)"$/;
10
+ export function validateInlineEvents(lines, symbols, application) {
11
+ lines = eventAnalysisSource(lines);
12
+ const issues = [];
13
+ const fences = fenceMap(lines);
14
+ const documentationBlocks = nonemptyMarkdownBlocks(lines, fences);
15
+ const commandProductions = new Set(symbols.commands.flatMap(command => command.productionHeaders ?? []));
16
+ const eventCounts = new Map();
17
+ const importedNames = new Set();
18
+ for (const document of [symbols, application]) {
19
+ for (const event of document.events)
20
+ eventCounts.set(event.name, (eventCounts.get(event.name) ?? 0) + 1);
21
+ for (const imported of document.imports)
22
+ importedNames.add(imported.shortName);
23
+ }
24
+ const report = (line, code, message, severity = 'error') => {
25
+ issues.push({ line, startColumn: indentOf(lines[line]) + 1, endColumn: lines[line].length + 1, code, message, severity });
26
+ };
27
+ for (const event of symbols.events) {
28
+ const body = directBody(lines, fences, event.line, indentOf(lines[event.line]));
29
+ if (event.inline) {
30
+ const properties = new Set();
31
+ for (const property of event.properties) {
32
+ if (properties.has(property.name))
33
+ report(property.line, diagnosticCodes.duplicateDeclaration, `Event '${event.name}' already declares property '${property.name}'.`);
34
+ properties.add(property.name);
35
+ }
36
+ if (!commandProductions.has(event.line))
37
+ report(event.line, diagnosticCodes.inlineEventOutsideCommand, 'Inline events can only be declared inside commands.');
38
+ if (event.generation !== undefined)
39
+ report(event.line, diagnosticCodes.inlineEventGeneration, 'Inline events are generation 1; extract the event before declaring generations.');
40
+ if ((eventCounts.get(event.name) ?? 0) > 1 || importedNames.has(event.name)) {
41
+ report(event.line, diagnosticCodes.inlineEventCollision, `Inline event '${event.name}' collides with another declaration or import.`);
42
+ }
43
+ }
44
+ let hasId = false;
45
+ let hasDocumentation = false;
46
+ for (const index of body) {
47
+ const text = lines[index].trim();
48
+ const keyword = text.split(/\s+/)[0];
49
+ if (event.inline && keyword === 'generation')
50
+ report(index, diagnosticCodes.inlineEventGeneration, 'Inline events are generation 1; extract the event before declaring generations.');
51
+ if (event.inline && keyword === 'origin')
52
+ report(index, diagnosticCodes.reservedProductionMetadata, 'An inline event is local to its command and cannot declare origin.');
53
+ // Property-shaped metadata names stay properties, whether standalone or typed mappings.
54
+ if (/^(?:id|description|documentation)\s+[\w.]+(?:\[\])?\??(?:\s*=.*)?$/.test(text))
55
+ continue;
56
+ if (keyword === 'id') {
57
+ const match = text.match(quotedId);
58
+ if (hasId || match === null || match[1].trim().length === 0)
59
+ report(index, diagnosticCodes.invalidEventId, 'Expected one nonempty id "<old-name>".');
60
+ else if (match[1] === event.name)
61
+ report(index, diagnosticCodes.redundantEventId, 'This id repeats the event name; remove it.', 'information');
62
+ hasId = true;
63
+ }
64
+ if (keyword === 'documentation') {
65
+ let next = index + 1;
66
+ while (next < lines.length && lines[next].trim().length === 0)
67
+ next++;
68
+ if (hasDocumentation || text !== 'documentation' || lines[next]?.trim() !== '```markdown' || indentOf(lines[next]) <= indentOf(lines[index]) ||
69
+ !documentationBlocks.has(next)) {
70
+ report(index, diagnosticCodes.invalidEventDocumentation, 'Expected one nonempty fenced markdown documentation block.');
71
+ }
72
+ hasDocumentation = true;
73
+ }
74
+ }
75
+ }
76
+ // Also cover reaction productions without a backward ancestry walk per metadata line.
77
+ const productionIndents = [];
78
+ for (let index = 0; index < lines.length; index++) {
79
+ if (fences[index] || lines[index].trim().length === 0)
80
+ continue;
81
+ const indent = indentOf(lines[index]);
82
+ while (productionIndents.length > 0 && productionIndents[productionIndents.length - 1] >= indent)
83
+ productionIndents.pop();
84
+ const keyword = lines[index].trim().split(/\s+/)[0];
85
+ if (reserved.has(keyword) && productionIndents.length > 0) {
86
+ report(index, diagnosticCodes.reservedProductionMetadata, `'${keyword}' is system-assigned production metadata.`);
87
+ }
88
+ if (keyword === 'produces')
89
+ productionIndents.push(indent);
90
+ }
91
+ for (const command of symbols.commands) {
92
+ const { identifier, mixed } = productionDestinations(command);
93
+ for (const production of command.produces ?? []) {
94
+ if (mixed && production.target === undefined)
95
+ report(production.line, diagnosticCodes.explicitProducesTargetsRequired, `Production '${production.name}' must state for explicitly when destinations differ.`);
96
+ const destination = production.target ?? (production.inline ? identifier : undefined);
97
+ if (identifier === undefined || destination !== identifier)
98
+ continue;
99
+ for (const mapping of production.mappings.filter(mapping => mapping.source === identifier)) {
100
+ report(mapping.line, diagnosticCodes.eventSourceIdInPayload, `The payload copies '${identifier}', which already identifies the event source.`, production.inline ? 'warning' : 'information');
101
+ }
102
+ }
103
+ }
104
+ return issues;
105
+ }
106
+ // Record complete, nonempty Markdown fences once. Validation must not scan a suffix
107
+ // for every documentation directive, especially while its opener is still being typed.
108
+ function nonemptyMarkdownBlocks(lines, fences) {
109
+ const blocks = new Set();
110
+ let opening;
111
+ let content = false;
112
+ for (let index = 0; index < lines.length; index++) {
113
+ if (!fences[index])
114
+ continue;
115
+ const text = lines[index].trim();
116
+ if (opening === undefined) {
117
+ opening = index;
118
+ content = false;
119
+ }
120
+ else if (text === '```') {
121
+ if (content && lines[opening].trim() === '```markdown')
122
+ blocks.add(opening);
123
+ opening = undefined;
124
+ }
125
+ else if (text.length > 0) {
126
+ content = true;
127
+ }
128
+ }
129
+ return blocks;
130
+ }
131
+ //# sourceMappingURL=inline-event-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-event-validation.js","sourceRoot":"","sources":["../inline-event-validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"keyword-docs.d.ts","sourceRoot":"","sources":["../keyword-docs.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwG9C,CAAC;AAIF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGhD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuBtD,CAAC"}
1
+ {"version":3,"file":"keyword-docs.d.ts","sourceRoot":"","sources":["../keyword-docs.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0G9C,CAAC;AAIF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGhD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuBtD,CAAC"}
@@ -18,7 +18,9 @@ export const keywordDocs = {
18
18
  template: 'Declares the named slots of a layout.',
19
19
  feature: 'A vertical slice grouping. Features nest arbitrarily deep.',
20
20
  slice: 'The atomic unit of behavior, aligned with Event Modeling. Has a type and a name.',
21
- event: 'An event type — an immutable, past-tense fact. Properties use concepts or primitives.',
21
+ event: 'An immutable, past-tense fact. Declare it in a slice or inline with `produces event <Name>` in a command. Inline properties are typed mappings; inline tags belong to the event type.',
22
+ documentation: 'Authoring-only event documentation in a fenced ```markdown block. It does not change executable model bytes.',
23
+ id: 'Preserves the previous persisted event name after a rename. Leave absent on new events; repeating the current name is redundant.',
22
24
  command: 'An imperative intent. Declares authorization, validation, and what events it produces — declaratively, or via a full handler.',
23
25
  query: 'A read-side entry point mapping to a return type, with an optional description, parameters and performer.',
24
26
  observable: 'Qualifies a query return type as a live read — `query <Name> => observable <ReadModel>` keeps pushing as the read model changes, instead of answering once.',
@@ -36,7 +38,7 @@ export const keywordDocs = {
36
38
  constraint: 'A server-side rule enforced in the Chronicle kernel before events are committed.',
37
39
  authorize: 'References the policies that must all pass for the construct to execute.',
38
40
  validate: 'Declarative validation rules, or `validate` followed by ```csharp for imperative rules — on commands and concepts.',
39
- produces: 'Declares the events a command emits — single, multiple, or conditional.',
41
+ produces: 'References a declared event with `produces <Name>`, or declares one inline with `produces event <Name>`. An inline omitted `for` uses the command identifier only when all destinations are the same source; legacy plain omission allocates an identity.',
40
42
  reads: 'Declares a view consulted by a command or reaction trigger: `reads <View> [as <alias>] [by <value>]`. A reaction `by` names a value taken by its trigger; clock triggers cannot use `by`. Repeated views require unique aliases. Runtime binding is not yet supported for command or reaction reads.',
41
43
  as: 'Names an instance of a view in a command or reaction trigger reads declaration, for example `reads Account as source by sourceId`.',
42
44
  handler: 'A fully imperative command implementation — a `file <Path>` reference or an inline `csharp` block, instead of `produces`.',
@@ -65,7 +67,7 @@ export const keywordDocs = {
65
67
  streamId: 'Concurrency dimension — scope the check to an event stream id.',
66
68
  tag: 'Attaches a tag to appended events — a static identifier or string, or a `$context.` expression resolved at append time.',
67
69
  seed: 'Declares events to seed into the event store per event source id — multiple blocks accumulate.',
68
- for: 'Introduces a seed group — the events to seed for one event source id.',
70
+ for: 'Names the event source of a production or seed group. Inside `produces event`, omission uses the command identifier unless another production targets a different source.',
69
71
  readmodel: 'Read model state in a specification — `given readmodel` establishes it, `then readmodel` asserts it, `then no readmodel <View> for <key>` asserts keyed absence.',
70
72
  no: 'A keyed absence assertion: `then no readmodel <View> for <key>`.',
71
73
  arguments: 'The values supplied to a query asserted by `then query`.',
@@ -1 +1 @@
1
- {"version":3,"file":"keyword-docs.js","sourceRoot":"","sources":["../keyword-docs.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAA2B;IAC/C,MAAM,EAAE,0FAA0F;IAClG,MAAM,EAAE,mXAAmX;IAC3X,OAAO,EAAE,gKAAgK;IACzK,IAAI,EAAE,iJAAiJ;IACvJ,MAAM,EAAE,kKAAkK;IAC1K,UAAU,EAAE,sIAAsI;IAClJ,MAAM,EAAE,gGAAgG;IACxG,OAAO,EAAE,0GAA0G;IACnH,cAAc,EAAE,kFAAkF;IAClG,QAAQ,EAAE,0FAA0F;IACpG,WAAW,EAAE,4KAA4K;IACzL,MAAM,EAAE,sDAAsD;IAC9D,MAAM,EAAE,8CAA8C;IACtD,QAAQ,EAAE,uCAAuC;IACjD,OAAO,EAAE,4DAA4D;IACrE,KAAK,EAAE,kFAAkF;IACzF,KAAK,EAAE,uFAAuF;IAC9F,OAAO,EAAE,+HAA+H;IACxI,KAAK,EAAE,2GAA2G;IAClH,UAAU,EAAE,6JAA6J;IACzK,SAAS,EAAE,8IAA8I;IACzJ,IAAI,EAAE,8HAA8H;IACpI,UAAU,EAAE,0GAA0G;IACtH,OAAO,EAAE,4FAA4F;IACrG,QAAQ,EAAE,4KAA4K;IACtL,OAAO,EAAE,4KAA4K;IACrL,KAAK,EAAE,sDAAsD;IAC7D,QAAQ,EAAE,2EAA2E;IACrF,KAAK,EAAE,qEAAqE;IAC5E,OAAO,EAAE,iGAAiG;IAC1G,MAAM,EAAE,sGAAsG;IAC9G,UAAU,EAAE,kFAAkF;IAC9F,SAAS,EAAE,0EAA0E;IACrF,QAAQ,EAAE,oHAAoH;IAC9H,QAAQ,EAAE,yEAAyE;IACnF,KAAK,EAAE,sSAAsS;IAC7S,EAAE,EAAE,oIAAoI;IACxI,OAAO,EAAE,2HAA2H;IACpI,IAAI,EAAE,+DAA+D;IACrE,IAAI,EAAE,oOAAoO;IAC1O,OAAO,EAAE,kFAAkF;IAC3F,aAAa,EAAE,mCAAmC;IAClD,IAAI,EAAE,6CAA6C;IACnD,KAAK,EAAE,6DAA6D;IACpE,OAAO,EAAE,uCAAuC;IAChD,IAAI,EAAE,iDAAiD;IACvD,MAAM,EAAE,qDAAqD;IAC7D,QAAQ,EAAE,kEAAkE;IAC5E,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,uDAAuD;IAC9D,OAAO,EAAE,0CAA0C;IACnD,MAAM,EAAE,qCAAqC;IAC7C,KAAK,EAAE,sCAAsC;IAC7C,KAAK,EAAE,2CAA2C;IAClD,KAAK,EAAE,mDAAmD;IAC1D,MAAM,EAAE,6FAA6F;IACrG,WAAW,EAAE,+IAA+I;IAC5J,WAAW,EAAE,gFAAgF;IAC7F,UAAU,EAAE,kEAAkE;IAC9E,UAAU,EAAE,kEAAkE;IAC9E,QAAQ,EAAE,gEAAgE;IAC1E,GAAG,EAAE,yHAAyH;IAC9H,IAAI,EAAE,gGAAgG;IACtG,GAAG,EAAE,uEAAuE;IAC5E,SAAS,EAAE,kKAAkK;IAC7K,EAAE,EAAE,kEAAkE;IACtE,SAAS,EAAE,0DAA0D;IACrE,MAAM,EAAE,mKAAmK;IAC3K,KAAK,EAAE,+KAA+K;IACtL,OAAO,EAAE,6HAA6H;IACtI,IAAI,EAAE,0FAA0F;IAChG,EAAE,EAAE,uCAAuC;IAC3C,GAAG,EAAE,qDAAqD;IAC1D,MAAM,EAAE,qCAAqC;IAC7C,EAAE,EAAE,mHAAmH;IACvH,OAAO,EAAE,sDAAsD;IAC/D,OAAO,EAAE,kFAAkF;IAC3F,GAAG,EAAE,wDAAwD;IAC7D,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,0BAA0B;IAC/B,MAAM,EAAE,yCAAyC;IACjD,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,oDAAoD;IAC3D,GAAG,EAAE,oDAAoD;IACzD,GAAG,EAAE,4BAA4B;IACjC,EAAE,EAAE,4BAA4B;IAChC,MAAM,EAAE,sDAAsD;IAC9D,GAAG,EAAE,sGAAsG;IAC3G,UAAU,EAAE,sDAAsD;IAClE,KAAK,EAAE,+EAA+E;IACtF,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,0EAA0E;IACvF,SAAS,EAAE,8EAA8E;IACzF,UAAU,EAAE,iFAAiF;IAC7F,SAAS,EAAE,6DAA6D;IACxE,IAAI,EAAE,mDAAmD;IACzD,MAAM,EAAE,0CAA0C;IAClD,GAAG,EAAE,qCAAqC;IAC1C,OAAO,EAAE,oCAAoC;IAC7C,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE,uCAAuC;IAC7C,QAAQ,EAAE,mCAAmC;IAC7C,IAAI,EAAE,oDAAoD;CAC7D,CAAC;AAEF,8GAA8G;AAC9G,8CAA8C;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC5D,KAAK,EAAE,WAAW,CAAC,KAAK;IACxB,OAAO,EAAE,kHAAkH;IAC3H,OAAO,EAAE,+KAA+K;IACxL,KAAK,EAAE,kOAAkO;IACzO,MAAM,EAAE,oIAAoI;CAC/I,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA2B;IACjD,GAAG,EAAE,kMAAkM;IACvM,SAAS,EAAE,4LAA4L;CAC1M,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACvD,mBAAmB,EAAE,yCAAyC;IAC9D,iBAAiB,EAAE,mDAAmD;IACtE,kBAAkB,EAAE,iEAAiE;IACrF,oBAAoB,EAAE,6CAA6C;IACnE,mBAAmB,EAAE,gFAAgF;IACrG,2BAA2B,EAAE,+DAA+D;IAC5F,wBAAwB,EAAE,oEAAoE;IAC9F,4BAA4B,EAAE,iEAAiE;IAC/F,oBAAoB,EAAE,sEAAsE;IAC5F,yBAAyB,EAAE,sEAAsE;IACjG,mBAAmB,EAAE,uGAAuG;IAC5H,sBAAsB,EAAE,mDAAmD;IAC3E,wBAAwB,EAAE,iCAAiC;IAC3D,4BAA4B,EAAE,8BAA8B;IAC5D,mCAAmC,EAAE,sCAAsC;IAC3E,yBAAyB,EAAE,6BAA6B;IACxD,0BAA0B,EAAE,8EAA8E;IAC1G,MAAM,EAAE,oDAAoD;IAC5D,UAAU,EAAE,iHAAiH;IAC7H,UAAU,EAAE,4GAA4G;IACxH,6EAA6E;IAC7E,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,iBAAiB,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;CAC3G,CAAC"}
1
+ {"version":3,"file":"keyword-docs.js","sourceRoot":"","sources":["../keyword-docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DestinationHint } from './DestinationHint';
2
+ import { CommandSymbol } from './symbols';
3
+ export declare function productionDestinations(command: CommandSymbol): {
4
+ identifier?: string;
5
+ mixed: boolean;
6
+ };
7
+ export declare function destinationHints(lines: string[]): DestinationHint[];
8
+ //# sourceMappingURL=production-destinations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-destinations.d.ts","sourceRoot":"","sources":["../production-destinations.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAgB,MAAM,WAAW,CAAC;AAExD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAQtG;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAanE"}
@@ -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
+ import { eventAnalysisSource } from './event-analysis-source';
4
+ import { scanDocument } from './symbols';
5
+ export function productionDestinations(command) {
6
+ const identifiers = command.properties.filter(property => property.isIdentifier && !property.type.includes('?') && !property.type.includes('[]'));
7
+ const identifier = identifiers.length === 1 ? identifiers[0].name : undefined;
8
+ const productions = command.produces ?? [];
9
+ const mixed = productions.some(production => production.target !== undefined && production.target !== identifier) ||
10
+ (productions.some(production => production.inline && production.target === undefined) &&
11
+ productions.some(production => !production.inline && production.target === undefined));
12
+ return { identifier, mixed };
13
+ }
14
+ // Shared by both editor adapters. Never suggest that a legacy allocated source is the command identifier.
15
+ export function destinationHints(lines) {
16
+ const source = eventAnalysisSource(lines);
17
+ return scanDocument(source).commands.flatMap(command => {
18
+ const { identifier, mixed } = productionDestinations(command);
19
+ if (mixed || command.productionHeaders?.length !== command.produces?.length)
20
+ return [];
21
+ const hasPromotedDestination = command.produces?.some(sibling => sibling.target !== undefined || sibling.inline);
22
+ return (command.produces ?? []).flatMap(production => {
23
+ if (production.target !== undefined || (production.inline && (identifier === undefined || /\bgeneration\b/.test(source[production.line]))))
24
+ return [];
25
+ // A sibling destination can promote the command default in the legacy binder.
26
+ if (!production.inline && hasPromotedDestination)
27
+ return [];
28
+ return [{ line: production.line, column: source[production.line].length + 1, label: production.inline ? `for ${identifier}` : 'for <new event source>' }];
29
+ });
30
+ });
31
+ }
32
+ //# sourceMappingURL=production-destinations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-destinations.js","sourceRoot":"","sources":["../production-destinations.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAGrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAiB,YAAY,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,UAAU,sBAAsB,CAAC,OAAsB;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAClJ,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC;QAC7G,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC;YACpF,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;IAC5F,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,gBAAgB,CAAC,KAAe;IAC5C,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACnD,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,KAAK,IAAI,OAAO,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,EAAE,MAAM;YAAE,OAAO,EAAE,CAAC;QACvF,MAAM,sBAAsB,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACjH,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACjD,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAC;YACtJ,8EAA8E;YAC9E,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,sBAAsB;gBAAE,OAAO,EAAE,CAAC;YAC5D,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC;QAC9J,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/symbols.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { ProductionSymbol } from './ProductionSymbol';
1
2
  export interface PropertySymbol {
2
3
  name: string;
3
4
  type: string;
@@ -25,12 +26,15 @@ export interface PolicySymbol {
25
26
  export interface EventSymbol {
26
27
  name: string;
27
28
  generation?: number;
29
+ inline?: boolean;
28
30
  properties: PropertySymbol[];
29
31
  line: number;
30
32
  }
31
33
  export interface CommandSymbol extends NamedSymbol {
32
34
  properties: PropertySymbol[];
33
35
  reads?: ReadSymbol[];
36
+ produces?: ProductionSymbol[];
37
+ productionHeaders?: number[];
34
38
  }
35
39
  export interface ReadSymbol {
36
40
  view: string;
@@ -62,6 +66,7 @@ export interface DocumentSymbols {
62
66
  screens: NamedSymbol[];
63
67
  triggers: NamedSymbol[];
64
68
  }
69
+ export declare function directBody(lines: string[], fences: boolean[], start: number, indent: number): number[];
65
70
  export declare function scanDocument(lines: string[]): DocumentSymbols;
66
71
  export declare function mergeSymbols(...documents: DocumentSymbols[]): DocumentSymbols;
67
72
  export declare function knownEventNames(symbols: DocumentSymbols): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../symbols.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAC9C,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,WAAW,EAAE,CAAC;CAC3B;AA0CD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,CAiJ7D;AAID,wBAAgB,YAAY,CAAC,GAAG,SAAS,EAAE,eAAe,EAAE,GAAG,eAAe,CAY7E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE,CAKlE;AAGD,eAAO,MAAM,mBAAmB,UAA0B,CAAC;AAI3D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE,CAMpE;AAID,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAOhG"}
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../symbols.ts"],"names":[],"mappings":"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"}