@cratis/pi 2.24.0 → 2.24.1
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.
|
@@ -207,16 +207,20 @@ The language service ships two ways: the Monaco package
|
|
|
207
207
|
(marketplace id `cratis.screenplay`), which is the same service plus a `.play`
|
|
208
208
|
file icon.
|
|
209
209
|
|
|
210
|
-
|
|
211
|
-
`contribute`, `dialog` and `
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
210
|
+
Its keyword list had drifted from the parser: `capture`, `projection`, `reducer`,
|
|
211
|
+
`contribute`, `dialog`, `form`, `theme` and `ui` were constructs the compiler
|
|
212
|
+
accepts with no keyword entry, so they got no highlighting and no completion.
|
|
213
|
+
Fixed in `Cratis/Screenplay#199`, which also added a specification deriving the
|
|
214
|
+
dispatched set from the parsers so the two cannot drift apart again silently.
|
|
215
|
+
|
|
216
|
+
⚠️ The general lesson stands regardless: **absent highlighting is not evidence
|
|
217
|
+
that a construct is wrong** — check `screenplay` rather than the editor.
|
|
216
218
|
|
|
217
219
|
The repository's TypeScript workspaces are **not** built, linted or tested by any
|
|
218
|
-
pull-request workflow;
|
|
219
|
-
pull request as evidence the language service still compiles
|
|
220
|
+
pull-request workflow; only `dotnet-build.yml` runs tests on a pull request. Do
|
|
221
|
+
not read a green pull request as evidence the language service still compiles —
|
|
222
|
+
and put any guard on the language service in the C# suite, which is the one that
|
|
223
|
+
actually runs.
|
|
220
224
|
|
|
221
225
|
## Verify
|
|
222
226
|
|
|
@@ -3,15 +3,17 @@
|
|
|
3
3
|
Verified against `Documentation/screenplay/projections/grammar.md` and
|
|
4
4
|
`Source/DotNET/Screenplay/Parsing/ProjectionParser.cs` at commit `122eee8`.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
- `EveryBlock` accepts a bare `automap` as well as `no automap`.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
6
|
+
Three things below were once looser than the published EBNF, because the parser
|
|
7
|
+
accepts more than that EBNF described. `Cratis/Screenplay#199` corrected the
|
|
8
|
+
reference, so the two now agree:
|
|
9
|
+
|
|
10
|
+
- `EveryBlock` accepts a bare `automap` as well as `no automap`.
|
|
11
|
+
- The braces on a composite key are **optional** — a composite key with and
|
|
12
|
+
without them both compile clean.
|
|
13
|
+
- `$causedBy` is a valid expression root.
|
|
14
|
+
|
|
15
|
+
Against a Screenplay older than that fix the published grammar is the stricter of
|
|
16
|
+
the two, and this file is the accurate one.
|
|
15
17
|
|
|
16
18
|
## Grammar
|
|
17
19
|
|
|
@@ -21,11 +21,11 @@ Read from the Screenplay repository at tag `v4.12.1` (commit `122eee8`), against
|
|
|
21
21
|
and `Source/DotNET/Screenplay/Parsing/`. Reverify before claiming another version
|
|
22
22
|
behaves the same.
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
These constructs went unhighlighted and uncompleted by the Monaco and VS Code
|
|
25
|
+
language service until `Cratis/Screenplay#199` gave every construct the parser
|
|
26
|
+
dispatches on a keyword entry. On an older language-service version they still
|
|
27
|
+
look unrecognized — **check `screenplay`, not the editor**, because absent
|
|
28
|
+
highlighting was never evidence that a construct is wrong.
|
|
29
29
|
|
|
30
30
|
## `layout` — the application shell
|
|
31
31
|
|