Skip to content

Commit 87728c4

Browse files
committed
Fix merge conflicts for pull request #242
Signed-off-by: Isaac Bennetch <[email protected]>
2 parents b032d82 + 218aae9 commit 87728c4

File tree

5 files changed

+57
-2
lines changed

5 files changed

+57
-2
lines changed

src/Context.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ public static function isSymbol($str)
409409
return Token::FLAG_SYMBOL_VARIABLE;
410410
} elseif ($str[0] === '`') {
411411
return Token::FLAG_SYMBOL_BACKTICK;
412-
} elseif ($str[0] === ':') {
412+
} elseif ($str[0] === ':' || $str[0] === '?') {
413413
return Token::FLAG_SYMBOL_PARAMETER;
414414
}
415415

src/Lexer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -877,7 +877,7 @@ public function parseSymbol()
877877
$flags |= Token::FLAG_SYMBOL_SYSTEM;
878878
}
879879
} elseif ($flags & Token::FLAG_SYMBOL_PARAMETER) {
880-
if ($this->last + 1 < $this->len) {
880+
if ($token !== '?' && $this->last + 1 < $this->len) {
881881
++$this->last;
882882
}
883883
} else {

src/Utils/Formatter.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,13 @@ protected function getDefaultFormats()
225225
'cli' => "\x1b[91m",
226226
'function' => '',
227227
],
228+
[
229+
'type' => Token::TYPE_SYMBOL,
230+
'flags' => Token::FLAG_SYMBOL_PARAMETER,
231+
'html' => 'class="sql-parameter"',
232+
'cli' => "\x1b[31m",
233+
'function' => '',
234+
],
228235
[
229236
'type' => Token::TYPE_SYMBOL,
230237
'flags' => 0,

tests/Lexer/TokenTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,12 @@ public function testExtractSymbol()
7575

7676
$tok = new Token('@`foo`', Token::TYPE_SYMBOL, Token::FLAG_SYMBOL_VARIABLE);
7777
$this->assertEquals($tok->value, 'foo');
78+
79+
$tok = new Token(':foo', Token::TYPE_SYMBOL, Token::FLAG_SYMBOL_PARAMETER);
80+
$this->assertEquals($tok->value, 'foo');
81+
82+
$tok = new Token('?', Token::TYPE_SYMBOL, Token::FLAG_SYMBOL_PARAMETER);
83+
$this->assertEquals($tok->value, '?');
7884
}
7985

8086
public function testInlineToken()

tests/Utils/FormatterTest.php

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,48 @@ public function formatQueries()
506506
"\x1b[0m",
507507
'html' => '<span class="sql-reserved">JOIN</span> tbl2 <span class="sql-reserved">ON</span> c1 = c2',
508508
],
509+
'named param' => [
510+
'query' => 'select * from tbl where col = :param',
511+
'text' => 'SELECT' . "\n" .
512+
' *' . "\n" .
513+
'FROM' . "\n" .
514+
' tbl' . "\n" .
515+
'WHERE' . "\n" .
516+
' col = :param',
517+
'cli' => "\x1b[35mSELECT" . "\n" .
518+
" \x1b[39m*" . "\n" .
519+
"\x1b[35mFROM" . "\n" .
520+
" \x1b[39mtbl" . "\n" .
521+
"\x1b[35mWHERE" . "\n" .
522+
" \x1b[39mcol = \x1b[31m:param" . "\x1b[0m",
523+
'html' => '<span class="sql-reserved">SELECT</span>' . '<br/>' .
524+
'&nbsp;&nbsp;&nbsp;&nbsp;*' . '<br/>' .
525+
'<span class="sql-reserved">FROM</span>' . '<br/>' .
526+
'&nbsp;&nbsp;&nbsp;&nbsp;tbl' . '<br/>' .
527+
'<span class="sql-reserved">WHERE</span>' . '<br/>' .
528+
'&nbsp;&nbsp;&nbsp;&nbsp;col = <span class="sql-parameter">:param</span>',
529+
],
530+
'anon param' => [
531+
'query' => 'select * from tbl where col = ?',
532+
'text' => 'SELECT' . "\n" .
533+
' *' . "\n" .
534+
'FROM' . "\n" .
535+
' tbl' . "\n" .
536+
'WHERE' . "\n" .
537+
' col = ?',
538+
'cli' => "\x1b[35mSELECT" . "\n" .
539+
" \x1b[39m*" . "\n" .
540+
"\x1b[35mFROM" . "\n" .
541+
" \x1b[39mtbl" . "\n" .
542+
"\x1b[35mWHERE" . "\n" .
543+
" \x1b[39mcol = \x1b[31m?" . "\x1b[0m",
544+
'html' => '<span class="sql-reserved">SELECT</span>' . '<br/>' .
545+
'&nbsp;&nbsp;&nbsp;&nbsp;*' . '<br/>' .
546+
'<span class="sql-reserved">FROM</span>' . '<br/>' .
547+
'&nbsp;&nbsp;&nbsp;&nbsp;tbl' . '<br/>' .
548+
'<span class="sql-reserved">WHERE</span>' . '<br/>' .
549+
'&nbsp;&nbsp;&nbsp;&nbsp;col = <span class="sql-parameter">?</span>',
550+
],
509551
];
510552
}
511553
}

0 commit comments

Comments
 (0)