Skip to content

Commit

Permalink
fix rebase
Browse files Browse the repository at this point in the history
  • Loading branch information
mvorisek committed May 13, 2024
1 parent 8e9d3a0 commit ae2bf3e
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 80 deletions.
15 changes: 8 additions & 7 deletions src/SqlFormatter.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
use function str_repeat;
use function str_replace;
use function strlen;
use function strtoupper;
use function trim;

use const PHP_SAPI;
Expand Down Expand Up @@ -253,25 +254,25 @@ public function format(string $string, string $indentString = ' '): string
$highlighted = preg_replace('/\s+/', ' ', $highlighted);
}

//if SQL 'LIMIT' clause, start variable to reset newline
if ($token->value() === 'LIMIT' && ! $inlineParentheses) {
// if SQL 'LIMIT' clause, start variable to reset newline
if (strtoupper($token->value()) === 'LIMIT' && ! $inlineParentheses) {
$clauseLimit = true;
}
} elseif ($token->value() === 'CASE') {
} elseif (strtoupper($token->value()) === 'CASE') {
$increaseBlockIndent = true;
} elseif (in_array($token->value(), ['WHEN', 'THEN', 'ELSE', 'END'], true)) {
if ($token->value() !== 'THEN') {
} elseif (in_array(strtoupper($token->value()), ['WHEN', 'THEN', 'ELSE', 'END'], true)) {
if (strtoupper($token->value()) !== 'THEN') {
array_shift($indentTypes);
$indentLevel--;

$prevNotWhitespaceToken = $cursor->subCursor()->previous(Token::TOKEN_TYPE_WHITESPACE);
if ($prevNotWhitespaceToken !== null && $prevNotWhitespaceToken->value() !== 'CASE') {
if ($prevNotWhitespaceToken !== null && strtoupper($prevNotWhitespaceToken->value()) !== 'CASE') {
$return = rtrim($return, ' ');
$return .= "\n" . str_repeat($tab, $indentLevel);
}
}

if ($token->value() === 'THEN' || $token->value() === 'ELSE') {
if (strtoupper($token->value()) === 'THEN' || strtoupper($token->value()) === 'ELSE') {
$newline = true;
$increaseBlockIndent = true;
}
Expand Down
36 changes: 18 additions & 18 deletions tests/clihighlight.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1011,36 +1011,36 @@
1 :: text;
---
SELECT
CASE WHEN name = 1 THEN
case when name = 1 then
10
WHEN name = 2 THEN
when name = 2 then
20
WHEN name = 3 THEN
CASE WHEN age > 10 THEN
when name = 3 then
case when age > 10 then
30
ELSE
else
31
END
ELSE
end
else
40
END AS case1,
end AS case1,
(
SELECT
CASE name
WHEN 1 THEN
case name
when 1 then
10
WHEN 2 THEN
when 2 then
20
WHEN 3 THEN
CASE age
WHEN 10 THEN
when 3 then
case age
when 10 then
30
ELSE
else
31
END
ELSE
end
else
40
END
end
) case2,
name
FROM
Expand Down
2 changes: 1 addition & 1 deletion tests/compress.txt
Original file line number Diff line number Diff line change
Expand Up @@ -94,4 +94,4 @@ SELECT a, GROUP_CONCAT(b, '.') OVER (ORDER BY c GROUPS BETWEEN UNBOUNDED PRECEDI
---
SELECT 1::text;
---
SELECT CASE WHEN name = 1 THEN 10 WHEN name = 2 THEN 20 WHEN name = 3 THEN CASE WHEN age > 10 THEN 30 ELSE 31 END ELSE 40 END AS case1, (SELECT CASE name WHEN 1 THEN 10 WHEN 2 THEN 20 WHEN 3 THEN CASE age WHEN 10 THEN 30 ELSE 31 END ELSE 40 END) case2, name FROM user
SELECT case when name = 1 then 10 when name = 2 then 20 when name = 3 then case when age > 10 then 30 else 31 end else 40 end AS case1, (SELECT case name when 1 then 10 when 2 then 20 when 3 then case age when 10 then 30 else 31 end else 40 end) case2, name FROM user
36 changes: 18 additions & 18 deletions tests/format-highlight.html
Original file line number Diff line number Diff line change
Expand Up @@ -1011,36 +1011,36 @@
<span style="color: green;">1</span> <span >::</span> <span style="color: #333;">text</span><span >;</span></pre>
---
<pre style="color: black; background-color: white;"><span style="font-weight:bold;">SELECT</span>
<span style="font-weight:bold;">CASE</span> <span style="font-weight:bold;">WHEN</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">1</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">case</span> <span style="font-weight:bold;">when</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">1</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">10</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">2</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">when</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">2</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">20</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">3</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">CASE</span> <span style="font-weight:bold;">WHEN</span> <span style="color: #333;">age</span> <span >&gt;</span> <span style="color: green;">10</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">when</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">3</span> <span style="font-weight:bold;">then</span>
<span style="font-weight:bold;">case</span> <span style="font-weight:bold;">when</span> <span style="color: #333;">age</span> <span >&gt;</span> <span style="color: green;">10</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">30</span>
<span style="font-weight:bold;">ELSE</span>
<span style="font-weight:bold;">else</span>
<span style="color: green;">31</span>
<span style="font-weight:bold;">END</span>
<span style="font-weight:bold;">ELSE</span>
<span style="font-weight:bold;">end</span>
<span style="font-weight:bold;">else</span>
<span style="color: green;">40</span>
<span style="font-weight:bold;">END</span> <span style="font-weight:bold;">AS</span> <span style="color: #333;">case1</span><span >,</span>
<span style="font-weight:bold;">end</span> <span style="font-weight:bold;">AS</span> <span style="color: #333;">case1</span><span >,</span>
(
<span style="font-weight:bold;">SELECT</span>
<span style="font-weight:bold;">CASE</span> <span style="color: #333;">name</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: green;">1</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">case</span> <span style="color: #333;">name</span>
<span style="font-weight:bold;">when</span> <span style="color: green;">1</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">10</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: green;">2</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">when</span> <span style="color: green;">2</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">20</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: green;">3</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">CASE</span> <span style="color: #333;">age</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: green;">10</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">when</span> <span style="color: green;">3</span> <span style="font-weight:bold;">then</span>
<span style="font-weight:bold;">case</span> <span style="color: #333;">age</span>
<span style="font-weight:bold;">when</span> <span style="color: green;">10</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">30</span>
<span style="font-weight:bold;">ELSE</span>
<span style="font-weight:bold;">else</span>
<span style="color: green;">31</span>
<span style="font-weight:bold;">END</span>
<span style="font-weight:bold;">ELSE</span>
<span style="font-weight:bold;">end</span>
<span style="font-weight:bold;">else</span>
<span style="color: green;">40</span>
<span style="font-weight:bold;">END</span>
<span style="font-weight:bold;">end</span>
) <span style="color: #333;">case2</span><span >,</span>
<span style="color: #333;">name</span>
<span style="font-weight:bold;">FROM</span>
Expand Down
36 changes: 18 additions & 18 deletions tests/format.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1009,36 +1009,36 @@ SELECT
1 :: text;
---
SELECT
CASE WHEN name = 1 THEN
case when name = 1 then
10
WHEN name = 2 THEN
when name = 2 then
20
WHEN name = 3 THEN
CASE WHEN age > 10 THEN
when name = 3 then
case when age > 10 then
30
ELSE
else
31
END
ELSE
end
else
40
END AS case1,
end AS case1,
(
SELECT
CASE name
WHEN 1 THEN
case name
when 1 then
10
WHEN 2 THEN
when 2 then
20
WHEN 3 THEN
CASE age
WHEN 10 THEN
when 3 then
case age
when 10 then
30
ELSE
else
31
END
ELSE
end
else
40
END
end
) case2,
name
FROM
Expand Down
36 changes: 18 additions & 18 deletions tests/highlight.html
Original file line number Diff line number Diff line change
Expand Up @@ -306,35 +306,35 @@
<pre style="color: black; background-color: white;"><span style="font-weight:bold;">SELECT</span> <span style="color: green;">1</span><span >::</span><span style="color: #333;">text</span><span >;</span></pre>
---
<pre style="color: black; background-color: white;"><span style="font-weight:bold;">SELECT</span>
<span style="font-weight:bold;">CASE</span> <span style="font-weight:bold;">WHEN</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">1</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">case</span> <span style="font-weight:bold;">when</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">1</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">10</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">2</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">when</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">2</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">20</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">3</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">CASE</span> <span style="font-weight:bold;">WHEN</span> <span style="color: #333;">age</span> <span >&gt;</span> <span style="color: green;">10</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">when</span> <span style="color: #333;">name</span> <span >=</span> <span style="color: green;">3</span> <span style="font-weight:bold;">then</span>
<span style="font-weight:bold;">case</span> <span style="font-weight:bold;">when</span> <span style="color: #333;">age</span> <span >&gt;</span> <span style="color: green;">10</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">30</span>
<span style="font-weight:bold;">ELSE</span>
<span style="font-weight:bold;">else</span>
<span style="color: green;">31</span>
<span style="font-weight:bold;">END</span>
<span style="font-weight:bold;">ELSE</span>
<span style="font-weight:bold;">end</span>
<span style="font-weight:bold;">else</span>
<span style="color: green;">40</span>
<span style="font-weight:bold;">END</span> <span style="font-weight:bold;">AS</span> <span style="color: #333;">case1</span><span >,</span>
<span style="font-weight:bold;">end</span> <span style="font-weight:bold;">AS</span> <span style="color: #333;">case1</span><span >,</span>
(<span style="font-weight:bold;">SELECT</span>
<span style="font-weight:bold;">CASE</span> <span style="color: #333;">name</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: green;">1</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">case</span> <span style="color: #333;">name</span>
<span style="font-weight:bold;">when</span> <span style="color: green;">1</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">10</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: green;">2</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">when</span> <span style="color: green;">2</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">20</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: green;">3</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">CASE</span> <span style="color: #333;">age</span>
<span style="font-weight:bold;">WHEN</span> <span style="color: green;">10</span> <span style="font-weight:bold;">THEN</span>
<span style="font-weight:bold;">when</span> <span style="color: green;">3</span> <span style="font-weight:bold;">then</span>
<span style="font-weight:bold;">case</span> <span style="color: #333;">age</span>
<span style="font-weight:bold;">when</span> <span style="color: green;">10</span> <span style="font-weight:bold;">then</span>
<span style="color: green;">30</span>
<span style="font-weight:bold;">ELSE</span>
<span style="font-weight:bold;">else</span>
<span style="color: green;">31</span>
<span style="font-weight:bold;">END</span>
<span style="font-weight:bold;">ELSE</span>
<span style="font-weight:bold;">end</span>
<span style="font-weight:bold;">else</span>
<span style="color: green;">40</span>
<span style="font-weight:bold;">END</span>) <span style="color: #333;">case2</span><span >,</span>
<span style="font-weight:bold;">end</span>) <span style="color: #333;">case2</span><span >,</span>
<span style="color: #333;">name</span>
<span style="font-weight:bold;">FROM</span>
<span style="color: #333;">user</span></pre>

0 comments on commit ae2bf3e

Please sign in to comment.