Commit 17cd269
committed
Emit a real begin/end region for YAML block scalars
The BlockScalar token is produced by the lexer's indentation state machine
(its pattern is a never() placeholder), so gen-tm's flat token loop emitted a
dead `(?!)` match and the verbatim body fell through to the comment / plain
rules: `#`-lines became comments, the body ended early, tabs and punctuation
were mis-scoped.
Replace it with the proven textmate/yaml.tmbundle begin/end region. A
top-level `while: \G` region cannot sustain itself in a flat grammar —
vscode-textmate sets the while-anchor to -1 unless a parent begin captured
end-of-line, which is why the maintained RedCMD grammar only survives nested
many regions deep. So the body is a begin/end region whose begin captures the
trailing newline (without it the `(?!\G)` end-arm fires at the start of line 2)
and whose inner rule auto-detects the first content line's indent and releases
at the first shallower non-blank line, so nested siblings are not swallowed.
YAML scope-gap holds at 99.7% vs official 99.5%; the comment role is now
genuinely correct (104 -> 106) rather than aliased through the plain-scalar
fallback. Change is gated to YAML; the other six grammars are byte-identical.
Addresses the block-scalar items of #12 (body detected as comment, body ended
prematurely, incorrect punctuation inside the body).
Refs #121 parent 4a26317 commit 17cd269
2 files changed
Lines changed: 78 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4581 | 4581 | | |
4582 | 4582 | | |
4583 | 4583 | | |
| 4584 | + | |
| 4585 | + | |
| 4586 | + | |
| 4587 | + | |
| 4588 | + | |
| 4589 | + | |
| 4590 | + | |
| 4591 | + | |
| 4592 | + | |
| 4593 | + | |
| 4594 | + | |
| 4595 | + | |
| 4596 | + | |
| 4597 | + | |
| 4598 | + | |
| 4599 | + | |
| 4600 | + | |
| 4601 | + | |
| 4602 | + | |
| 4603 | + | |
| 4604 | + | |
| 4605 | + | |
| 4606 | + | |
| 4607 | + | |
| 4608 | + | |
| 4609 | + | |
| 4610 | + | |
| 4611 | + | |
| 4612 | + | |
| 4613 | + | |
| 4614 | + | |
| 4615 | + | |
| 4616 | + | |
| 4617 | + | |
| 4618 | + | |
| 4619 | + | |
| 4620 | + | |
| 4621 | + | |
| 4622 | + | |
| 4623 | + | |
| 4624 | + | |
| 4625 | + | |
| 4626 | + | |
| 4627 | + | |
| 4628 | + | |
| 4629 | + | |
| 4630 | + | |
| 4631 | + | |
| 4632 | + | |
| 4633 | + | |
| 4634 | + | |
| 4635 | + | |
| 4636 | + | |
| 4637 | + | |
4584 | 4638 | | |
4585 | 4639 | | |
4586 | 4640 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | 48 | | |
52 | 49 | | |
53 | 50 | | |
| |||
74 | 71 | | |
75 | 72 | | |
76 | 73 | | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
| |||
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
164 | | - | |
165 | | - | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
166 | 185 | | |
167 | 186 | | |
168 | 187 | | |
| |||
0 commit comments