Skip to content

Commit 027ca22

Browse files
committed
Add extra new line between queries
1 parent 15b7420 commit 027ca22

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

src/SqlFormatter.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,15 @@ public function format(string $string, string $indentString = ' '): string
115115

116116
// If we need a new line before the token
117117
if ($newline) {
118-
$return = rtrim($return, ' ');
118+
$return = rtrim($return, ' ');
119+
120+
if ($indentLevel === 0) {
121+
$prevNotWhitespaceToken = $cursor->subCursor()->previous(Token::TOKEN_TYPE_WHITESPACE);
122+
if ($prevNotWhitespaceToken !== null && $prevNotWhitespaceToken->value() === ';') {
123+
$return .= "\n";
124+
}
125+
}
126+
119127
$return .= "\n" . str_repeat($tab, $indentLevel);
120128
$newline = false;
121129
$addedNewline = true;

tests/clihighlight.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,7 @@
798798
*
799799
LIMIT
800800
1;
801+
801802
SELECT
802803
a,
803804
b,
@@ -807,6 +808,7 @@
807808
e
808809
LIMIT
809810
1, 2;
811+
810812
SELECT
811813
1,
812814
2,
@@ -1014,19 +1016,24 @@
10141016
---
10151017
-- semicolon must decrease special indentation level
10161018
MY_NON_TOP_LEVEL_KEYWORD_FX_1();
1019+
10171020
MY_NON_TOP_LEVEL_KEYWORD_FX_2();
1021+
10181022
SELECT
10191023
x
10201024
FROM
10211025
(
10221026
SELECT
10231027
1 as x
10241028
);
1029+
10251030
MY_NON_TOP_LEVEL_KEYWORD_FX_3();
1031+
10261032
BEGIN
10271033
MY_NON_TOP_LEVEL_KEYWORD_FX_4();
10281034
MY_NON_TOP_LEVEL_KEYWORD_FX_5();
10291035
END;
1036+
10301037
BEGIN
10311038
SELECT
10321039
x

tests/format-highlight.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,7 @@
798798
<span >*</span>
799799
<span style="font-weight:bold;">LIMIT</span>
800800
<span style="color: green;">1</span><span >;</span>
801+
801802
<span style="font-weight:bold;">SELECT</span>
802803
<span style="color: #333;">a</span><span >,</span>
803804
<span style="color: #333;">b</span><span >,</span>
@@ -807,6 +808,7 @@
807808
<span style="color: #333;">e</span>
808809
<span style="font-weight:bold;">LIMIT</span>
809810
<span style="color: green;">1</span><span >,</span> <span style="color: green;">2</span><span >;</span>
811+
810812
<span style="font-weight:bold;">SELECT</span>
811813
<span style="color: green;">1</span><span >,</span>
812814
<span style="color: green;">2</span><span >,</span>
@@ -1014,19 +1016,24 @@
10141016
---
10151017
<pre style="color: black; background-color: white;"><span style="color: #aaa;">-- semicolon must decrease special indentation level</span>
10161018
<span style="color: #333;">MY_NON_TOP_LEVEL_KEYWORD_FX_1</span>()<span >;</span>
1019+
10171020
<span style="color: #333;">MY_NON_TOP_LEVEL_KEYWORD_FX_2</span>()<span >;</span>
1021+
10181022
<span style="font-weight:bold;">SELECT</span>
10191023
<span style="color: #333;">x</span>
10201024
<span style="font-weight:bold;">FROM</span>
10211025
(
10221026
<span style="font-weight:bold;">SELECT</span>
10231027
<span style="color: green;">1</span> <span style="font-weight:bold;">as</span> <span style="color: #333;">x</span>
10241028
)<span >;</span>
1029+
10251030
<span style="color: #333;">MY_NON_TOP_LEVEL_KEYWORD_FX_3</span>()<span >;</span>
1031+
10261032
<span style="font-weight:bold;">BEGIN</span>
10271033
<span style="color: #333;">MY_NON_TOP_LEVEL_KEYWORD_FX_4</span>()<span >;</span>
10281034
<span style="color: #333;">MY_NON_TOP_LEVEL_KEYWORD_FX_5</span>()<span >;</span>
10291035
<span style="font-weight:bold;">END</span><span >;</span>
1036+
10301037
<span style="font-weight:bold;">BEGIN</span>
10311038
<span style="font-weight:bold;">SELECT</span>
10321039
<span style="color: #333;">x</span>

tests/format.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -796,6 +796,7 @@ SELECT
796796
*
797797
LIMIT
798798
1;
799+
799800
SELECT
800801
a,
801802
b,
@@ -805,6 +806,7 @@ FROM
805806
e
806807
LIMIT
807808
1, 2;
809+
808810
SELECT
809811
1,
810812
2,
@@ -1012,19 +1014,24 @@ SELECT
10121014
---
10131015
-- semicolon must decrease special indentation level
10141016
MY_NON_TOP_LEVEL_KEYWORD_FX_1();
1017+
10151018
MY_NON_TOP_LEVEL_KEYWORD_FX_2();
1019+
10161020
SELECT
10171021
x
10181022
FROM
10191023
(
10201024
SELECT
10211025
1 as x
10221026
);
1027+
10231028
MY_NON_TOP_LEVEL_KEYWORD_FX_3();
1029+
10241030
BEGIN
10251031
MY_NON_TOP_LEVEL_KEYWORD_FX_4();
10261032
MY_NON_TOP_LEVEL_KEYWORD_FX_5();
10271033
END;
1034+
10281035
BEGIN
10291036
SELECT
10301037
x

0 commit comments

Comments
 (0)