Skip to content

Commit 792f018

Browse files
authored
Merge pull request #121 from bigfoot90/better-html
Fix indentation on html format
2 parents 6db3f3e + 6583624 commit 792f018

File tree

3 files changed

+42
-32
lines changed

3 files changed

+42
-32
lines changed

src/Utils/Formatter.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ private function getMergedOptions(array $options)
7878
$options['line_ending'] = $options['type'] === 'html' ? '<br/>' : "\n";
7979
}
8080

81+
if (is_null($options['indentation'])) {
82+
$options['indentation'] = $options['type'] === 'html' ? '&nbsp;&nbsp;&nbsp;&nbsp;' : ' ';
83+
}
84+
8185
// `parts_newline` requires `clause_newline`
8286
$options['parts_newline'] &= $options['clause_newline'];
8387

@@ -112,7 +116,7 @@ protected function getDefaultOptions()
112116
*
113117
* @var string
114118
*/
115-
'indentation' => ' ',
119+
'indentation' => null,
116120

117121
/*
118122
* Whether comments should be removed or not.

tests/Utils/CLITest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,17 @@ public function highlightParams()
2929
return array(
3030
array(
3131
array('q' => 'SELECT 1'),
32-
"\x1b[35mSELECT\n \x1b[92m1\x1b[0m\n",
32+
"\x1b[35mSELECT\n \x1b[92m1\x1b[0m\n",
3333
0,
3434
),
3535
array(
3636
array('query' => 'SELECT 1'),
37-
"\x1b[35mSELECT\n \x1b[92m1\x1b[0m\n",
37+
"\x1b[35mSELECT\n \x1b[92m1\x1b[0m\n",
3838
0,
3939
),
4040
array(
4141
array('q' => 'SELECT /* comment */ 1 /* other */', 'f' => 'text'),
42-
"SELECT\n /* comment */ 1 /* other */\n",
42+
"SELECT\n /* comment */ 1 /* other */\n",
4343
0,
4444
),
4545
array(
@@ -50,7 +50,7 @@ public function highlightParams()
5050
array(
5151
array('q' => 'SELECT 1', 'f' => 'html'),
5252
'<span class="sql-reserved">SELECT</span>' . '<br/>' .
53-
' <span class="sql-number">1</span>' . "\n",
53+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-number">1</span>' . "\n",
5454
0,
5555
),
5656
array(

tests/Utils/FormatterTest.php

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public function testMergeFormats($default, $overriding, $expected)
2222
->willReturn(array(
2323
'type' => 'text',
2424
'line_ending' => null,
25+
'indentation' => null,
2526
'clause_newline' => null,
2627
'parts_newline' => null,
2728
));
@@ -33,6 +34,7 @@ public function testMergeFormats($default, $overriding, $expected)
3334
$expectedOptions = array(
3435
'type' => 'test-type',
3536
'line_ending' => '<br>',
37+
'indentation' => ' ',
3638
'clause_newline' => null,
3739
'parts_newline' => 0,
3840
'formats' => $expected,
@@ -244,30 +246,30 @@ public function formatQueries()
244246
array(
245247
'SELECT 1',
246248
'<span class="sql-reserved">SELECT</span>' . '<br/>' .
247-
' <span class="sql-number">1</span>',
249+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-number">1</span>',
248250
array('type' => 'html'),
249251
),
250252
array(
251253
'SELECT 1 # Comment',
252254
'<span class="sql-reserved">SELECT</span>' . '<br/>' .
253-
' <span class="sql-number">1</span> <span class="sql-comment"># Comment' . "\n" .
255+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-number">1</span> <span class="sql-comment"># Comment' . "\n" .
254256
'</span>',
255257
array('type' => 'html'),
256258
),
257259
array(
258260
'SELECT HEX("1")',
259261
'<span class="sql-reserved">SELECT</span>' . '<br/>' .
260-
' <span class="sql-keyword">HEX</span>(<span class="sql-string">"1"</span>)',
262+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-keyword">HEX</span>(<span class="sql-string">"1"</span>)',
261263
array('type' => 'html'),
262264
),
263265
array(
264266
'SELECT * FROM foo WHERE bar=1',
265267
'<span class="sql-reserved">SELECT</span>' . '<br/>' .
266-
' *' . '<br/>' .
268+
'&nbsp;&nbsp;&nbsp;&nbsp;*' . '<br/>' .
267269
'<span class="sql-reserved">FROM</span>' . '<br/>' .
268-
' foo' . '<br/>' .
270+
'&nbsp;&nbsp;&nbsp;&nbsp;foo' . '<br/>' .
269271
'<span class="sql-reserved">WHERE</span>' . '<br/>' .
270-
' bar = <span class="sql-number">1</span>',
272+
'&nbsp;&nbsp;&nbsp;&nbsp;bar = <span class="sql-number">1</span>',
271273
array('type' => 'html'),
272274
),
273275
array(
@@ -276,56 +278,56 @@ public function formatQueries()
276278
'<span class="sql-reserved">PROCEDURE</span> SPTEST()' . '<br/>' .
277279
'<span class="sql-keyword">BEGIN</span>' . '<br/>' .
278280
'<span class="sql-reserved">FROM</span>' . '<br/>' .
279-
' a' . '<br/>' .
281+
'&nbsp;&nbsp;&nbsp;&nbsp;a' . '<br/>' .
280282
'<span class="sql-reserved">SELECT</span>' . '<br/>' .
281-
' *;' . '<br/>' .
283+
'&nbsp;&nbsp;&nbsp;&nbsp;*;' . '<br/>' .
282284
'<span class="sql-keyword">END</span>',
283285
array('type' => 'html'),
284286
),
285287
array(
286288
'INSERT INTO foo VALUES (0, 0, 0), (1, 1, 1)',
287289
'<span class="sql-reserved">INSERT</span>' . '<br/>' .
288290
'<span class="sql-reserved">INTO</span>' . '<br/>' .
289-
' foo' . '<br/>' .
291+
'&nbsp;&nbsp;&nbsp;&nbsp;foo' . '<br/>' .
290292
'<span class="sql-reserved">VALUES</span>' .
291293
'(<span class="sql-number">0</span>, <span class="sql-number">0</span>, <span class="sql-number">0</span>),' .
292294
'(<span class="sql-number">1</span>, <span class="sql-number">1</span>, <span class="sql-number">1</span>)',
293295
array('type' => 'html'),
294296
),
295297
array(
296298
'SELECT 1',
297-
"\x1b[35mSELECT\n \x1b[92m1\x1b[0m",
299+
"\x1b[35mSELECT\n \x1b[92m1\x1b[0m",
298300
array('type' => 'cli'),
299301
),
300302
array(
301303
'SELECT "Text" AS BAR',
302-
"\x1b[35mSELECT\n \x1b[91m\"Text\" \x1b[35mAS \x1b[39mBAR\x1b[0m",
304+
"\x1b[35mSELECT\n \x1b[91m\"Text\" \x1b[35mAS \x1b[39mBAR\x1b[0m",
303305
array('type' => 'cli'),
304306
),
305307
array(
306308
'SELECT coditm AS Item, descripcion AS Descripcion, contenedores AS Contenedores, IF(suspendido = 1, Si, NO) AS Suspendido FROM `DW_articulos` WHERE superado = 0',
307309
'<span class="sql-reserved">SELECT</span>' . '<br/>' .
308-
' coditm <span class="sql-reserved">AS</span> Item,' . '<br/>' .
309-
' descripcion <span class="sql-reserved">AS</span> Descripcion,' . '<br/>' .
310-
' contenedores <span class="sql-reserved">AS</span> Contenedores,' . '<br/>' .
311-
' <span class="sql-reserved">IF</span>(suspendido = <span class="sql-number">1</span>, Si, <span class="sql-keyword">NO</span>) <span class="sql-reserved">AS</span> Suspendido' . '<br/>' .
310+
'&nbsp;&nbsp;&nbsp;&nbsp;coditm <span class="sql-reserved">AS</span> Item,' . '<br/>' .
311+
'&nbsp;&nbsp;&nbsp;&nbsp;descripcion <span class="sql-reserved">AS</span> Descripcion,' . '<br/>' .
312+
'&nbsp;&nbsp;&nbsp;&nbsp;contenedores <span class="sql-reserved">AS</span> Contenedores,' . '<br/>' .
313+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-reserved">IF</span>(suspendido = <span class="sql-number">1</span>, Si, <span class="sql-keyword">NO</span>) <span class="sql-reserved">AS</span> Suspendido' . '<br/>' .
312314
'<span class="sql-reserved">FROM</span>' . '<br/>' .
313-
' <span class="sql-variable">`DW_articulos`</span>' . '<br/>' .
315+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-variable">`DW_articulos`</span>' . '<br/>' .
314316
'<span class="sql-reserved">WHERE</span>' . '<br/>' .
315-
' superado = <span class="sql-number">0</span>',
317+
'&nbsp;&nbsp;&nbsp;&nbsp;superado = <span class="sql-number">0</span>',
316318
array('type' => 'html'),
317319
),
318320
array(
319321
'SELECT 1 -- comment',
320322
'<span class="sql-reserved">SELECT</span>' . '<br/>' .
321-
' <span class="sql-number">1</span> <span class="sql-comment">-- comment' . "\n" .
323+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-number">1</span> <span class="sql-comment">-- comment' . "\n" .
322324
'</span>',
323325
array('type' => 'html'),
324326
),
325327
array(
326328
'SELECT 1 -- comment',
327329
'<span class="sql-reserved">SELECT</span>' . '<br/>' .
328-
' <span class="sql-number">1</span>',
330+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-number">1</span>',
329331
array('type' => 'html', 'remove_comments' => true),
330332
),
331333
array(
@@ -337,22 +339,26 @@ public function formatQueries()
337339
' `query` text NOT NULL,' . "\n" .
338340
' PRIMARY KEY (`id`)' . "\n",
339341
'<span class="sql-reserved">CREATE</span> <span class="sql-reserved">TABLE</span> <span class="sql-reserved">IF NOT EXISTS</span> <span class="sql-variable">`pma__bookmark`</span>(' . '<br/>' .
340-
' <span class="sql-variable">`id`</span> <span class="sql-reserved">INT</span>(<span class="sql-number">11</span>) <span class="sql-reserved">NOT NULL</span> <span class="sql-keyword">AUTO_INCREMENT</span>,' . '<br/>' .
341-
' <span class="sql-variable">`dbase`</span> <span class="sql-reserved">VARCHAR</span>(<span class="sql-number">255</span>) <span class="sql-reserved">NOT NULL</span> <span class="sql-reserved">DEFAULT</span> <span class="sql-string">""</span>,' . '<br/>' .
342-
' <span class="sql-variable">`user`</span> <span class="sql-reserved">VARCHAR</span>(<span class="sql-number">255</span>) <span class="sql-reserved">NOT NULL</span> <span class="sql-reserved">DEFAULT</span> <span class="sql-string">""</span>,' . '<br/>' .
343-
' <span class="sql-variable">`label`</span> <span class="sql-reserved">VARCHAR</span>(<span class="sql-number">255</span>) <span class="sql-reserved">COLLATE</span> utf8_general_ci <span class="sql-reserved">NOT NULL</span> <span class="sql-reserved">DEFAULT</span> <span class="sql-string">""</span>,' . '<br/>' .
344-
' <span class="sql-variable">`query`</span> <span class="sql-keyword">TEXT</span> <span class="sql-reserved">NOT NULL</span>,' . '<br/>' .
345-
' <span class="sql-reserved">PRIMARY KEY</span>(<span class="sql-variable">`id`</span>)',
342+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-variable">`id`</span> <span class="sql-reserved">INT</span>(<span class="sql-number">11</span>) <span class="sql-reserved">NOT NULL</span> <span class="sql-keyword">AUTO_INCREMENT</span>,' . '<br/>' .
343+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-variable">`dbase`</span> <span class="sql-reserved">VARCHAR</span>(<span class="sql-number">255</span>) <span class="sql-reserved">NOT NULL</span> <span class="sql-reserved">DEFAULT</span> <span class="sql-string">""</span>,' . '<br/>' .
344+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-variable">`user`</span> <span class="sql-reserved">VARCHAR</span>(<span class="sql-number">255</span>) <span class="sql-reserved">NOT NULL</span> <span class="sql-reserved">DEFAULT</span> <span class="sql-string">""</span>,' . '<br/>' .
345+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-variable">`label`</span> <span class="sql-reserved">VARCHAR</span>(<span class="sql-number">255</span>) <span class="sql-reserved">COLLATE</span> utf8_general_ci <span class="sql-reserved">NOT NULL</span> <span class="sql-reserved">DEFAULT</span> <span class="sql-string">""</span>,' . '<br/>' .
346+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-variable">`query`</span> <span class="sql-keyword">TEXT</span> <span class="sql-reserved">NOT NULL</span>,' . '<br/>' .
347+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-reserved">PRIMARY KEY</span>(<span class="sql-variable">`id`</span>)',
346348
array('type' => 'html'),
347349
),
348350
array(
349351
"select '<s>xss' from `<s>xss` , <s>nxss /*s<s>xss*/",
350-
'<span class="sql-reserved">SELECT</span><br/> <span class="sql-string">\'&lt;s&gt;xss\'</span><br/><span class="sql-reserved">FROM</span><br/> <span class="sql-variable">`&lt;s&gt;xss`</span>,<br/> &lt; s &gt; nxss <span class="sql-comment">/*s&lt;s&gt;xss*/</span>',
352+
'<span class="sql-reserved">SELECT</span>' . '<br/>' .
353+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-string">\'&lt;s&gt;xss\'</span>' . '<br/>' .
354+
'<span class="sql-reserved">FROM</span>' . '<br/>' .
355+
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-variable">`&lt;s&gt;xss`</span>,' . '<br/>' .
356+
'&nbsp;&nbsp;&nbsp;&nbsp;&lt; s &gt; nxss <span class="sql-comment">/*s&lt;s&gt;xss*/</span>',
351357
array('type' => 'html'),
352358
),
353359
array(
354360
"select 'text\x1b[33mcolor-inj' from tbl",
355-
"\x1b[35mSELECT\n \x1b[91m'text\\x1B[33mcolor-inj'\n\x1b[35mFROM\n \x1b[39mtbl\x1b[0m",
361+
"\x1b[35mSELECT\n \x1b[91m'text\\x1B[33mcolor-inj'\n\x1b[35mFROM\n \x1b[39mtbl\x1b[0m",
356362
array('type' => 'cli'),
357363
),
358364
);

0 commit comments

Comments
 (0)