Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

Commit 35f50bb

Browse files
Merge pull request #199 from Trivadis/bugfix/issue-196-space-in-negative-number
Bugfix/issue 196 space in negative number
2 parents 45cc311 + 0615c86 commit 35f50bb

File tree

2 files changed

+70
-0
lines changed

2 files changed

+70
-0
lines changed

settings/sql_developer/trivadis_custom_format.arbori

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -862,6 +862,7 @@ i9_remove_duplicate_spaces_in_scope:
862862
-- - A2: Remove trailing spaces.
863863
-- - A3: Do not format code between @formatter:off and @formatter:on comments.
864864
-- - O2: White Space: Around operators. Options: true; false. (spaceAroundOperators).
865+
-- - A22: No space between sign and digits.
865866
-- - A13: Keep short nodes on the same line.
866867
-- - A5: No space before node.
867868
-- - A6: No space after node.
@@ -1013,6 +1014,21 @@ o2_whitespace_around_operators:
10131014
}
10141015
}
10151016

1017+
-- --------------------------------------------------------------------------------------------------------------------
1018+
-- A22: No space between sign and digits.
1019+
-- --------------------------------------------------------------------------------------------------------------------
1020+
1021+
a22_no_space_between_sign_and_digits:
1022+
([node) '-' | [node) '+')
1023+
& ![node) binary_add_op
1024+
& [node+1) digits
1025+
& ![node-1) digits
1026+
& ![node-1) expr
1027+
-> {
1028+
struct.putNewline(node.to, "");
1029+
logger.fine(struct.getClass(), "a22_no_space_between_sign_and_digits: at " + node.to + ".");
1030+
}
1031+
10161032
-- --------------------------------------------------------------------------------------------------------------------
10171033
-- A13: Keep short nodes on the same line.
10181034
-- --------------------------------------------------------------------------------------------------------------------
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.trivadis.plsql.formatter.settings.tests.rules;
2+
3+
import com.trivadis.plsql.formatter.settings.ConfiguredTestFormatter;
4+
import org.junit.jupiter.api.Test;
5+
6+
public class A22_no_space_between_sign_and_digits extends ConfiguredTestFormatter {
7+
8+
@Test
9+
public void insert_negative_number() {
10+
var sql = """
11+
insert into dept (deptno, dname, loc)
12+
values (-1, 'Testing', 'Winterthur');
13+
""";
14+
formatAndAssert(sql);
15+
}
16+
17+
@Test
18+
public void insert_positive_number() {
19+
var sql = """
20+
insert into dept (deptno, dname, loc)
21+
values (+1, 'Testing', 'Winterthur');
22+
""";
23+
formatAndAssert(sql);
24+
}
25+
26+
@Test
27+
public void insert_expression_with_negative_number() {
28+
var sql = """
29+
insert into dept (deptno, dname, loc)
30+
values ((a + b / 2) + -1, 'Testing', 'Winterthur');
31+
""";
32+
formatAndAssert(sql);
33+
}
34+
35+
@Test
36+
public void assignment_with_negative_number() {
37+
var sql = """
38+
begin
39+
a := b - 1;
40+
end;
41+
""";
42+
formatAndAssert(sql);
43+
}
44+
45+
@Test
46+
public void assignment_with_positive_number() {
47+
var sql = """
48+
begin
49+
x := p1(1) + p1(2) + 17;
50+
end;
51+
""";
52+
formatAndAssert(sql);
53+
}
54+
}

0 commit comments

Comments
 (0)