Skip to content

Commit 6702f0d

Browse files
committed
bug #178 Fix attribute arguments highlighting and better support CPP (wouterj)
This PR was merged into the main branch. Discussion ---------- Fix attribute arguments highlighting and better support CPP `@javiereguiluz` after seeing my changes online, I discovered 2 minor bugs that are fixed with this PR: - Highlight `public`/`protected`/`private` when using constructor property promotion - Fix highlighting attribute arguments (these were now parsed as function definition parameters instead of invocation arguments, e.g. lacking named argument support) Commits ------- a467bd9 Fix attribute arguments highlighting and better support CPP
2 parents 027833c + a467bd9 commit 6702f0d

File tree

4 files changed

+31
-10
lines changed

4 files changed

+31
-10
lines changed

src/Templates/highlight.php/php.json

Lines changed: 2 additions & 2 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.10.contains.3.contains",
31+
"$ref": "#contains.9.contains.1.contains",
3232
"_": "params"
3333
}
3434
},
@@ -250,7 +250,7 @@
250250
"className": "params",
251251
"begin": "\\(",
252252
"end": "\\)",
253-
"keywords": "array bool boolean callable float int integer iterable mixed never numeric object real string resource self static false FALSE null NULL true TRUE",
253+
"keywords": "array bool boolean callable float int integer iterable mixed never numeric object private protected public real string resource self static false FALSE null NULL true TRUE",
254254
"contains": [
255255
"self",
256256
{

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
<span class="hljs-variable">
9191
<span class="hljs-variable-other-marker">$</span> property3</span>
9292
;
93-
<span class="hljs-meta">#[AttributeName</span>(<span class="hljs-string">'value'</span>, option: <span class="hljs-string">'value'</span>)<span class="hljs-meta">]</span>
93+
<span class="hljs-meta">#[AttributeName</span>(<span class="hljs-string">'value'</span>, <span class="hljs-attr">option</span>: <span class="hljs-string">'value'</span>)<span class="hljs-meta">]</span>
9494
<span class="hljs-keyword">private</span>
9595
<span class="hljs-variable">
9696
<span class="hljs-variable-other-marker">$</span> property4</span>
@@ -102,7 +102,7 @@
102102
;
103103
<span class="hljs-meta">#[AttributeName</span>(
104104
<span class="hljs-string">'value'</span>,
105-
option: <span class="hljs-string">'value'</span>
105+
<span class="hljs-attr">option</span>: <span class="hljs-string">'value'</span>
106106
)<span class="hljs-meta">]</span>
107107
<span class="hljs-keyword">private</span>
108108
<span class="hljs-variable">
@@ -115,32 +115,32 @@
115115
;
116116
<span class="hljs-meta">#[Assert\AttributeName</span>(
117117
<span class="hljs-string">'value'</span>,
118-
option: <span class="hljs-string">'value'</span>
118+
<span class="hljs-attr">option</span>: <span class="hljs-string">'value'</span>
119119
)<span class="hljs-meta">]</span>
120120
<span class="hljs-keyword">private</span>
121121
<span class="hljs-variable">
122122
<span class="hljs-variable-other-marker">$</span> property8</span>
123123
;
124-
<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>
124+
<span class="hljs-meta">#[Route</span>(<span class="hljs-string">'/blog/{page&lt;\d+&gt;}'</span>, <span class="hljs-attr">name</span>: <span class="hljs-string">'blog_list'</span>)<span class="hljs-meta">]</span>
125125
<span class="hljs-keyword">private</span>
126126
<span class="hljs-variable">
127127
<span class="hljs-variable-other-marker">$</span> property9</span>
128128
;
129129
<span class="hljs-meta">#[Assert\GreaterThanOrEqual</span>(
130-
value: <span class="hljs-number">18</span>,
130+
<span class="hljs-attr">value</span>: <span class="hljs-number">18</span>,
131131
)<span class="hljs-meta">]</span>
132132
<span class="hljs-keyword">private</span>
133133
<span class="hljs-variable">
134134
<span class="hljs-variable-other-marker">$</span> property10</span>
135135
;
136-
<span class="hljs-meta">#[ORM\CustomIdGenerator</span>(class: <span class="hljs-string">'doctrine.uuid_generator'</span>)<span class="hljs-meta">]</span>
136+
<span class="hljs-meta">#[ORM\CustomIdGenerator</span>(<span class="hljs-attr">class</span>: <span class="hljs-string">'doctrine.uuid_generator'</span>)<span class="hljs-meta">]</span>
137137
<span class="hljs-keyword">private</span>
138138
<span class="hljs-variable">
139139
<span class="hljs-variable-other-marker">$</span> property11</span>
140140
;
141141
<span class="hljs-meta">#[Assert\AtLeastOneOf</span>([
142-
<span class="hljs-keyword">new</span> Assert\Regex(<span class="hljs-string">'/#/'</span>),
143-
<span class="hljs-keyword">new</span> Assert\Length(min: <span class="hljs-number">10</span>),
142+
<span class="hljs-keyword">new</span> Assert\<span class="hljs-title invoke__">Regex</span>(<span class="hljs-string">'/#/'</span>),
143+
<span class="hljs-keyword">new</span> Assert\<span class="hljs-title invoke__">Length</span>(<span class="hljs-attr">min</span>: <span class="hljs-number">10</span>),
144144
])<span class="hljs-meta">]</span>
145145
<span class="hljs-keyword">private</span>
146146
<span class="hljs-variable">

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,17 @@
9797
</code></pre>
9898
</div>
9999
</div>
100+
<div translate="no" data-loc="4" class="notranslate codeblock codeblock-length-sm codeblock-php">
101+
<div class="codeblock-scroll">
102+
<pre class="codeblock-lines">1
103+
2
104+
3
105+
4</pre>
106+
<pre class="codeblock-code"><code>
107+
<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">__construct</span><span class="hljs-params">(
108+
<span class="hljs-keyword">private</span> <span class="hljs-keyword">string</span> <span class="hljs-variable"><span class="hljs-variable-other-marker">$</span>username</span>
109+
)</span></span> {
110+
}
111+
</code></pre>
112+
</div>
113+
</div>

tests/fixtures/source/blocks/code-blocks/php.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,10 @@
4747
$this->loadUser(...)
4848
);
4949
}
50+
51+
.. code-block:: php
52+
53+
public function __construct(
54+
private string $username
55+
) {
56+
}

0 commit comments

Comments
 (0)