@@ -90,19 +90,12 @@ private function writeNode(NodeInterface $node, ?NodeInterface $parentNode = nul
9090 $ children = $ this ->getPrototypeChildren ($ node );
9191 }
9292
93- if (!$ children ) {
94- if ($ node ->hasDefaultValue () && \count ($ defaultArray = $ node ->getDefaultValue ())) {
95- $ default = '' ;
96- } elseif (!\is_array ($ example )) {
97- $ default = '[] ' ;
98- }
93+ if (!$ children && !($ node ->hasDefaultValue () && \count ($ defaultArray = $ node ->getDefaultValue ()))) {
94+ $ default = '[] ' ;
9995 }
10096 } elseif ($ node instanceof EnumNode) {
10197 $ comments [] = 'One of ' .implode ('; ' , array_map ('json_encode ' , $ node ->getValues ()));
10298 $ default = $ node ->hasDefaultValue () ? Inline::dump ($ node ->getDefaultValue ()) : '~ ' ;
103- } elseif (VariableNode::class === \get_class ($ node ) && \is_array ($ example )) {
104- // If there is an array example, we are sure we dont need to print a default value
105- $ default = '' ;
10699 } else {
107100 $ default = '~ ' ;
108101
@@ -170,7 +163,7 @@ private function writeNode(NodeInterface $node, ?NodeInterface $parentNode = nul
170163
171164 $ this ->writeLine ('# ' .$ message .': ' , $ depth * 4 + 4 );
172165
173- $ this ->writeArray (array_map ([Inline::class, 'dump ' ], $ example ), $ depth + 1 );
166+ $ this ->writeArray (array_map ([Inline::class, 'dump ' ], $ example ), $ depth + 1 , true );
174167 }
175168
176169 if ($ children ) {
@@ -191,7 +184,7 @@ private function writeLine(string $text, int $indent = 0)
191184 $ this ->reference .= sprintf ($ format , $ text )."\n" ;
192185 }
193186
194- private function writeArray (array $ array , int $ depth )
187+ private function writeArray (array $ array , int $ depth, bool $ asComment = false )
195188 {
196189 $ isIndexed = array_values ($ array ) === $ array ;
197190
@@ -202,14 +195,16 @@ private function writeArray(array $array, int $depth)
202195 $ val = $ value ;
203196 }
204197
198+ $ prefix = $ asComment ? '# ' : '' ;
199+
205200 if ($ isIndexed ) {
206- $ this ->writeLine ('- ' .$ val , $ depth * 4 );
201+ $ this ->writeLine ($ prefix . '- ' .$ val , $ depth * 4 );
207202 } else {
208- $ this ->writeLine (sprintf ('%-20s %s ' , $ key .': ' , $ val ), $ depth * 4 );
203+ $ this ->writeLine (sprintf ('%s% -20s %s ' , $ prefix , $ key .': ' , $ val ), $ depth * 4 );
209204 }
210205
211206 if (\is_array ($ value )) {
212- $ this ->writeArray ($ value , $ depth + 1 );
207+ $ this ->writeArray ($ value , $ depth + 1 , $ asComment );
213208 }
214209 }
215210 }
0 commit comments