Skip to content

Commit d4de2a5

Browse files
committed
Moved highlighting variable marker to php.json
1 parent 5468fdb commit d4de2a5

File tree

3 files changed

+28
-25
lines changed

3 files changed

+28
-25
lines changed

src/Renderers/CodeNodeRenderer.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,6 @@ public function render(): string
7070

7171
$highLighter = new Highlighter();
7272
$highlightedCode = $highLighter->highlight($languageMapping, $code)->value;
73-
74-
// this allows to highlight the $ in PHP variable names
75-
$highlightedCode = str_replace('<span class="hljs-variable">$', '<span class="hljs-variable"><span class="hljs-variable-other-marker">$</span>', $highlightedCode);
7673
}
7774

7875
if ('terminal' === $language) {

src/Templates/highlight.php/php.json

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"end": "\\)",
2929
"keywords": "array bool boolean float int integer new real string false FALSE null NULL true TRUE PHP_VERSION PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_VERSION_ID PHP_EXTRA_VERSION ZEND_THREAD_SAFE ZEND_DEBUG_BUILD PHP_ZTS PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_OS_FAMILY PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_MIN PHP_INT_SIZE PHP_FLOAT_DIG PHP_FLOAT_EPSILON PHP_FLOAT_MIN PHP_FLOAT_MAX DEFAULT_INCLUDE_PATH PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_PREFIX PHP_BINDIR PHP_BINARY PHP_MANDIR PHP_LIBDIR PHP_DATADIR PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_CONFIG_FILE_SCAN_DIR PHP_SHLIB_SUFFIX PHP_FD_SETSIZE E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_RECOVERABLE_ERROR E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT __COMPILER_HALT_OFFSET__ PHP_WINDOWS_EVENT_CTRL_C PHP_WINDOWS_EVENT_CTRL_BREAK PHP_CLI_PROCESS_TITLE STDERR STDIN STDOUT __CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__",
3030
"contains": {
31-
"$ref": "#contains.11.contains.3.contains",
31+
"$ref": "#contains.10.contains.3.contains",
3232
"_": "params"
3333
}
3434
},
@@ -138,11 +138,17 @@
138138
},
139139
{
140140
"className": "variable",
141-
"begin": "\\$this\\b"
142-
},
143-
{
144-
"className": "variable",
145-
"begin": "\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"
141+
"begin": "\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*",
142+
"returnBegin": true,
143+
"contains": [
144+
{
145+
"className": "variable-other-marker",
146+
"begin": "\\$"
147+
},
148+
{
149+
"begin": "\\$*[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"
150+
}
151+
]
146152
},
147153
{
148154
"begin": "\\b(?!fn\\b|function\\b|__CLASS__\\b|__DIR__\\b|__FILE__\\b|__FUNCTION__\\b|__COMPILER_HALT_OFFSET__\\b|__LINE__\\b|__METHOD__\\b|__NAMESPACE__\\b|__TRAIT__\\b|die\\b|echo\\b|exit\\b|include\\b|include_once\\b|print\\b|require\\b|require_once\\b|array\\b|abstract\\b|and\\b|as\\b|binary\\b|bool\\b|boolean\\b|break\\b|callable\\b|case\\b|catch\\b|class\\b|clone\\b|const\\b|continue\\b|declare\\b|default\\b|do\\b|double\\b|else\\b|elseif\\b|empty\\b|enddeclare\\b|endfor\\b|endforeach\\b|endif\\b|endswitch\\b|endwhile\\b|enum\\b|eval\\b|extends\\b|final\\b|finally\\b|float\\b|for\\b|foreach\\b|from\\b|global\\b|goto\\b|if\\b|implements\\b|instanceof\\b|insteadof\\b|int\\b|integer\\b|interface\\b|isset\\b|iterable\\b|list\\b|match\\b|mixed\\b|new\\b|never\\b|object\\b|or\\b|private\\b|protected\\b|public\\b|readonly\\b|real\\b|return\\b|string\\b|switch\\b|throw\\b|trait\\b|try\\b|unset\\b|use\\b|var\\b|void\\b|while\\b|xor\\b|yield|Countable\\b|OuterIterator\\b|RecursiveIterator\\b|SeekableIterator\\b|ArrayAccess\\b|BackedEnum\\b|Generator\\b|Iterator\\b|IteratorAggregate\\b|Serializable\\b|Stringable\\b|Throwable\\b|Traversable\\b|UnitEnum\\b|__PHP_Incomplete_Class\\b|parent\\b|php_user_filter\\b|self\\b|static\\b)[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(?![A-Za-z0-9])(?![$])[ \\t\\n]*(?=(?=\\())",
@@ -194,27 +200,27 @@
194200
]
195201
},
196202
{
197-
"$ref": "#contains.9",
203+
"$ref": "#contains.8",
198204
"_": "variable"
199205
},
200206
{
201-
"$ref": "#contains.11.contains.3.contains.2",
207+
"$ref": "#contains.10.contains.3.contains.2",
202208
"_": "comment"
203209
},
204210
{
205-
"$ref": "#contains.11.contains.3.contains.3",
211+
"$ref": "#contains.10.contains.3.contains.3",
206212
"_": "string"
207213
},
208214
{
209-
"$ref": "#contains.11.contains.3.contains.4",
215+
"$ref": "#contains.10.contains.3.contains.4",
210216
"_": "number"
211217
},
212218
{
213-
"$ref": "#contains.11",
219+
"$ref": "#contains.10",
214220
"_": "closure"
215221
},
216222
{
217-
"$ref": "#contains.10",
223+
"$ref": "#contains.9",
218224
"_": "invoke"
219225
}
220226
]
@@ -248,7 +254,7 @@
248254
"contains": [
249255
"self",
250256
{
251-
"$ref": "#contains.9",
257+
"$ref": "#contains.8",
252258
"_": "variable"
253259
},
254260
{
@@ -346,7 +352,7 @@
346352
]
347353
},
348354
{
349-
"$ref": "#contains.10.contains.1.contains.1",
355+
"$ref": "#contains.9.contains.1.contains.1",
350356
"_": "constant"
351357
},
352358
{
@@ -368,7 +374,7 @@
368374
"beginKeywords": "extends implements"
369375
},
370376
{
371-
"$ref": "#contains.11.contains.1",
377+
"$ref": "#contains.10.contains.1",
372378
"_": "title"
373379
}
374380
]
@@ -379,7 +385,7 @@
379385
"illegal": "[\\.']",
380386
"contains": [
381387
{
382-
"$ref": "#contains.11.contains.1",
388+
"$ref": "#contains.10.contains.1",
383389
"_": "title"
384390
}
385391
]
@@ -389,7 +395,7 @@
389395
"end": ";",
390396
"contains": [
391397
{
392-
"$ref": "#contains.11.contains.1",
398+
"$ref": "#contains.10.contains.1",
393399
"_": "title"
394400
}
395401
]
@@ -398,11 +404,11 @@
398404
"begin": "=>"
399405
},
400406
{
401-
"$ref": "#contains.11.contains.3.contains.3",
407+
"$ref": "#contains.10.contains.3.contains.3",
402408
"_": "string"
403409
},
404410
{
405-
"$ref": "#contains.11.contains.3.contains.4",
411+
"$ref": "#contains.10.contains.3.contains.4",
406412
"_": "number"
407413
}
408414
]

tests/Templates/fixtures/php.output.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
*
1212
* <span class="hljs-doctag">@Route</span>("/blog/{slug}", name="blog_list")
1313
*/</span>
14-
<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">list</span><span class="hljs-params">(UrlGeneratorInterface <span class="hljs-variable">$urlGenerator</span>, <span class="hljs-keyword">string</span> <span class="hljs-variable">$slug</span>)</span>
14+
<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">list</span><span class="hljs-params">(UrlGeneratorInterface <span class="hljs-variable"><span class="hljs-variable-other-marker">$</span>urlGenerator</span>, <span class="hljs-keyword">string</span> <span class="hljs-variable"><span class="hljs-variable-other-marker">$</span>slug</span>)</span>
1515
</span>{
16-
<span class="hljs-keyword">return</span> <span class="hljs-variable">$this</span>-&gt;<span class="hljs-title invoke__">render</span>(<span class="hljs-string">'foo/bar.html.twig'</span>, [
17-
<span class="hljs-string">'key'</span> =&gt; <span class="hljs-variable">$value</span>
16+
<span class="hljs-keyword">return</span> <span class="hljs-variable"><span class="hljs-variable-other-marker">$</span>this</span>-&gt;<span class="hljs-title invoke__">render</span>(<span class="hljs-string">'foo/bar.html.twig'</span>, [
17+
<span class="hljs-string">'key'</span> =&gt; <span class="hljs-variable"><span class="hljs-variable-other-marker">$</span>value</span>
1818
]
1919
}
2020
}

0 commit comments

Comments
 (0)