Commit 0195ef0
committed
feat(gen-tm): continuation brackets — multi-line constructs inside rich comments
A bracket left OPEN in a rich comment continues the construct across
consecutive introducer-prefixed lines (env-spec multi-line decorator calls and
literals):
# @import(
# ./.env.shared,
# pick=[
# KEY1, # note
# ],
# )
Declared via `lineComment.continuationBrackets` (bracket pairs). Each pair
emits a begin/end region nested inside the line-scoped rich region — a
TextMate child region suspends its parent's $ end, so the construct spans
lines while single-line comments still close at EOL. Inside a construct:
a line-start introducer is a CONTINUATION MARKER (comment punctuation, not a
new comment); any other introducer opens an embedded comment that dims to
end-of-line; brackets nest recursively; everything else highlights via $self.
An unclosed bracket runs the region to the next closer — the standard
hand-written-grammar hazard; the parser stays the authority on validity.
Opt-in as before: `npm run gen` produces no diffs for the built-in grammars;
41/41 gates pass (env-spec regression contracts extended to 18).1 parent b20f443 commit 0195ef0
4 files changed
Lines changed: 85 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
561 | 561 | | |
562 | 562 | | |
563 | 563 | | |
| 564 | + | |
564 | 565 | | |
565 | 566 | | |
566 | 567 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5034 | 5034 | | |
5035 | 5035 | | |
5036 | 5036 | | |
| 5037 | + | |
| 5038 | + | |
| 5039 | + | |
| 5040 | + | |
| 5041 | + | |
| 5042 | + | |
| 5043 | + | |
| 5044 | + | |
| 5045 | + | |
| 5046 | + | |
| 5047 | + | |
| 5048 | + | |
| 5049 | + | |
| 5050 | + | |
| 5051 | + | |
| 5052 | + | |
| 5053 | + | |
| 5054 | + | |
| 5055 | + | |
| 5056 | + | |
| 5057 | + | |
| 5058 | + | |
| 5059 | + | |
| 5060 | + | |
| 5061 | + | |
| 5062 | + | |
| 5063 | + | |
| 5064 | + | |
| 5065 | + | |
| 5066 | + | |
| 5067 | + | |
| 5068 | + | |
| 5069 | + | |
| 5070 | + | |
| 5071 | + | |
| 5072 | + | |
| 5073 | + | |
| 5074 | + | |
| 5075 | + | |
| 5076 | + | |
| 5077 | + | |
| 5078 | + | |
5037 | 5079 | | |
5038 | 5080 | | |
5039 | 5081 | | |
5040 | 5082 | | |
5041 | 5083 | | |
5042 | | - | |
| 5084 | + | |
5043 | 5085 | | |
5044 | 5086 | | |
5045 | 5087 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
34 | 39 | | |
35 | 40 | | |
36 | 41 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
139 | 173 | | |
140 | 174 | | |
141 | 175 | | |
| |||
0 commit comments