Skip to content

Commit 60f9d8a

Browse files
committed
Do not wrap entire attribute in a span
1 parent 81e707a commit 60f9d8a

File tree

2 files changed

+47
-34
lines changed

2 files changed

+47
-34
lines changed

src/Templates/highlight.php/php.json

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,30 @@
1111
"keywords": "and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try match switch continue endfor endif declare unset true false goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",
1212
"contains": [
1313
{
14-
"className": "php-attribute",
15-
"begin": "#\\[\\s*(\\\\?[A-Z][A-Za-z0-9_\\x7f-\\xff]+|\\\\?[A-Z]+(?=[A-Z][a-z0-9_\\x7f-\\xff])){1,}(?![A-Za-z0-9])(?![$])",
14+
"className": "meta",
15+
"begin": "#\\[\\s*(\\\\?[A-Z][A-Za-z0-9_\\x7f-\\xff]+)+\\]"
16+
},
17+
{
18+
"begin": "#\\[\\s*(\\\\?[A-Z][A-Za-z0-9_\\x7f-\\xff]+)+(?![A-Za-z0-9])(?![$])",
1619
"end": "]",
20+
"returnBegin": true,
1721
"contains": [
22+
{
23+
"className": "meta",
24+
"begin": "#\\[\\s*(\\\\?[A-Z][A-Za-z0-9_\\x7f-\\xff]+)+(?![A-Za-z0-9])(?![$])"
25+
},
1826
{
1927
"begin": "\\(",
2028
"end": "\\)",
2129
"keywords": "true false null new array",
2230
"contains": {
23-
"$ref": "#contains.10.contains.1.contains"
31+
"$ref": "#contains.11.contains.1.contains"
2432
}
33+
},
34+
{
35+
"className": "meta",
36+
"begin": "]",
37+
"endsParent": true
2538
}
2639
]
2740
},
@@ -50,7 +63,7 @@
5063
"begin": "<\\?(php)?|\\?>"
5164
},
5265
{
53-
"$ref": "#contains.1.contains.0"
66+
"$ref": "#contains.2.contains.0"
5467
},
5568
{
5669
"className": "doctag",
@@ -69,7 +82,7 @@
6982
"begin": "@[A-Za-z]+"
7083
},
7184
{
72-
"$ref": "#contains.1.contains.0"
85+
"$ref": "#contains.2.contains.0"
7386
},
7487
{
7588
"className": "doctag",
@@ -84,7 +97,7 @@
8497
"end": false,
8598
"contains": [
8699
{
87-
"$ref": "#contains.1.contains.0"
100+
"$ref": "#contains.2.contains.0"
88101
},
89102
{
90103
"className": "doctag",
@@ -120,7 +133,7 @@
120133
]
121134
},
122135
{
123-
"$ref": "#contains.2.contains.0"
136+
"$ref": "#contains.3.contains.0"
124137
},
125138
{
126139
"className": "variable",
@@ -156,15 +169,15 @@
156169
"contains": [
157170
"self",
158171
{
159-
"$ref": "#contains.8"
172+
"$ref": "#contains.9"
160173
},
161174
{
162175
"className": "comment",
163176
"begin": "/\\*",
164177
"end": "\\*/",
165178
"contains": [
166179
{
167-
"$ref": "#contains.1.contains.0"
180+
"$ref": "#contains.2.contains.0"
168181
},
169182
{
170183
"className": "doctag",
@@ -177,10 +190,10 @@
177190
"className": "string",
178191
"contains": [
179192
{
180-
"$ref": "#contains.5.contains.0"
193+
"$ref": "#contains.6.contains.0"
181194
},
182195
{
183-
"$ref": "#contains.2.contains.0"
196+
"$ref": "#contains.3.contains.0"
184197
}
185198
],
186199
"variants": [
@@ -199,7 +212,7 @@
199212
"illegal": null,
200213
"contains": [
201214
{
202-
"$ref": "#contains.5.contains.0"
215+
"$ref": "#contains.6.contains.0"
203216
}
204217
]
205218
},
@@ -210,7 +223,7 @@
210223
"illegal": null,
211224
"contains": [
212225
{
213-
"$ref": "#contains.5.contains.0"
226+
"$ref": "#contains.6.contains.0"
214227
},
215228
{
216229
"className": "subst",
@@ -255,7 +268,7 @@
255268
"beginKeywords": "extends implements"
256269
},
257270
{
258-
"$ref": "#contains.10.contains.0"
271+
"$ref": "#contains.11.contains.0"
259272
}
260273
]
261274
},
@@ -265,7 +278,7 @@
265278
"illegal": "[\\.']",
266279
"contains": [
267280
{
268-
"$ref": "#contains.10.contains.0"
281+
"$ref": "#contains.11.contains.0"
269282
}
270283
]
271284
},
@@ -274,18 +287,18 @@
274287
"end": ";",
275288
"contains": [
276289
{
277-
"$ref": "#contains.10.contains.0"
290+
"$ref": "#contains.11.contains.0"
278291
}
279292
]
280293
},
281294
{
282295
"begin": "=>"
283296
},
284297
{
285-
"$ref": "#contains.10.contains.1.contains.3"
298+
"$ref": "#contains.11.contains.1.contains.3"
286299
},
287300
{
288-
"$ref": "#contains.10.contains.1.contains.4"
301+
"$ref": "#contains.11.contains.1.contains.4"
289302
}
290303
]
291304
}

tests/fixtures/expected/blocks/code-blocks/php-attributes.html

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -64,73 +64,73 @@
6464
<span class="hljs-title">SomeClass</span>
6565
</span>
6666
{
67-
<span class="hljs-php-attribute">#[AttributeName]</span>
67+
<span class="hljs-meta">#[AttributeName]</span>
6868
<span class="hljs-keyword">private</span>
6969
<span class="hljs-variable">
7070
<span class="hljs-variable-other-marker">$</span> property1</span>
7171
;
72-
<span class="hljs-php-attribute">#[AttributeName()]</span>
72+
<span class="hljs-meta">#[AttributeName</span>()<span class="hljs-meta">]</span>
7373
<span class="hljs-keyword">private</span>
7474
<span class="hljs-variable">
7575
<span class="hljs-variable-other-marker">$</span> property2</span>
7676
;
77-
<span class="hljs-php-attribute">#[AttributeName(<span class="hljs-string">'value'</span>)]</span>
77+
<span class="hljs-meta">#[AttributeName</span>(<span class="hljs-string">'value'</span>)<span class="hljs-meta">]</span>
7878
<span class="hljs-keyword">private</span>
7979
<span class="hljs-variable">
8080
<span class="hljs-variable-other-marker">$</span> property3</span>
8181
;
82-
<span class="hljs-php-attribute">#[AttributeName(<span class="hljs-string">'value'</span>, option: <span class="hljs-string">'value'</span>)]</span>
82+
<span class="hljs-meta">#[AttributeName</span>(<span class="hljs-string">'value'</span>, option: <span class="hljs-string">'value'</span>)<span class="hljs-meta">]</span>
8383
<span class="hljs-keyword">private</span>
8484
<span class="hljs-variable">
8585
<span class="hljs-variable-other-marker">$</span> property4</span>
8686
;
87-
<span class="hljs-php-attribute">#[AttributeName([<span class="hljs-string">'value'</span> =&gt; <span class="hljs-string">'value'</span>])]</span>
87+
<span class="hljs-meta">#[AttributeName</span>([<span class="hljs-string">'value'</span> =&gt; <span class="hljs-string">'value'</span>])<span class="hljs-meta">]</span>
8888
<span class="hljs-keyword">private</span>
8989
<span class="hljs-variable">
9090
<span class="hljs-variable-other-marker">$</span> property5</span>
9191
;
92-
<span class="hljs-php-attribute">#[AttributeName(
92+
<span class="hljs-meta">#[AttributeName</span>(
9393
<span class="hljs-string">'value'</span>,
9494
option: <span class="hljs-string">'value'</span>
95-
)]</span>
95+
)<span class="hljs-meta">]</span>
9696
<span class="hljs-keyword">private</span>
9797
<span class="hljs-variable">
9898
<span class="hljs-variable-other-marker">$</span> property6</span>
9999
;
100-
<span class="hljs-php-attribute">#[Assert\AttributeName(<span class="hljs-string">'value'</span>)]</span>
100+
<span class="hljs-meta">#[Assert\AttributeName</span>(<span class="hljs-string">'value'</span>)<span class="hljs-meta">]</span>
101101
<span class="hljs-keyword">private</span>
102102
<span class="hljs-variable">
103103
<span class="hljs-variable-other-marker">$</span> property7</span>
104104
;
105-
<span class="hljs-php-attribute">#[Assert\AttributeName(
105+
<span class="hljs-meta">#[Assert\AttributeName</span>(
106106
<span class="hljs-string">'value'</span>,
107107
option: <span class="hljs-string">'value'</span>
108-
)]</span>
108+
)<span class="hljs-meta">]</span>
109109
<span class="hljs-keyword">private</span>
110110
<span class="hljs-variable">
111111
<span class="hljs-variable-other-marker">$</span> property8</span>
112112
;
113-
<span class="hljs-php-attribute">#[Route(<span class="hljs-string">'/blog/{page&lt;\d+&gt;}'</span>, name: <span class="hljs-string">'blog_list'</span>)]</span>
113+
<span class="hljs-meta">#[Route</span>(<span class="hljs-string">'/blog/{page&lt;\d+&gt;}'</span>, name: <span class="hljs-string">'blog_list'</span>)<span class="hljs-meta">]</span>
114114
<span class="hljs-keyword">private</span>
115115
<span class="hljs-variable">
116116
<span class="hljs-variable-other-marker">$</span> property9</span>
117117
;
118-
<span class="hljs-php-attribute">#[Assert\GreaterThanOrEqual(
118+
<span class="hljs-meta">#[Assert\GreaterThanOrEqual</span>(
119119
value: <span class="hljs-number">18</span>,
120-
)]</span>
120+
)<span class="hljs-meta">]</span>
121121
<span class="hljs-keyword">private</span>
122122
<span class="hljs-variable">
123123
<span class="hljs-variable-other-marker">$</span> property10</span>
124124
;
125-
<span class="hljs-php-attribute">#[ORM\CustomIdGenerator(class: <span class="hljs-string">'doctrine.uuid_generator'</span>)]</span>
125+
<span class="hljs-meta">#[ORM\CustomIdGenerator</span>(class: <span class="hljs-string">'doctrine.uuid_generator'</span>)<span class="hljs-meta">]</span>
126126
<span class="hljs-keyword">private</span>
127127
<span class="hljs-variable">
128128
<span class="hljs-variable-other-marker">$</span> property11</span>
129129
;
130-
<span class="hljs-php-attribute">#[Assert\AtLeastOneOf([
130+
<span class="hljs-meta">#[Assert\AtLeastOneOf</span>([
131131
<span class="hljs-keyword">new</span> Assert\Regex(<span class="hljs-string">'/#/'</span>),
132132
<span class="hljs-keyword">new</span> Assert\Length(min: <span class="hljs-number">10</span>),
133-
])]</span>
133+
])<span class="hljs-meta">]</span>
134134
<span class="hljs-keyword">private</span>
135135
<span class="hljs-variable">
136136
<span class="hljs-variable-other-marker">$</span> property12</span>

0 commit comments

Comments
 (0)