Skip to content

Commit 50ff0c4

Browse files
huxuxuyanixel2007
authored andcommitted
Добавлено отключение проверки для кейса когда производится соединение переменной с текстом запроса.
1 parent f6abd4b commit 50ff0c4

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IncorrectLineBreakDiagnostic.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.antlr.v4.runtime.Token;
3535
import org.antlr.v4.runtime.tree.ParseTree;
3636

37+
import java.util.HashSet;
3738
import java.util.Optional;
3839
import java.util.regex.Matcher;
3940
import java.util.regex.Pattern;
@@ -57,12 +58,23 @@ public class IncorrectLineBreakDiagnostic extends AbstractDiagnostic {
5758
"\\s+(:?ИЛИ|И|OR|AND|\\+|-|\\/|%|\\*)\\s*(?:\\/\\/.*)?$"
5859
);
5960

61+
private HashSet<Integer> setFirstQueryLines = new HashSet<Integer>();
62+
6063
@Override
6164
protected void check() {
6265

66+
findFirstQueryLines();
67+
6368
checkContent(INCORRECT_START_LINE_PATTERN);
6469
checkContent(INCORRECT_END_LINE_PATTERN);
70+
}
6571

72+
private void findFirstQueryLines() {
73+
74+
documentContext.getQueries().forEach(query -> {
75+
setFirstQueryLines.add(query.getAst().start.getLine());
76+
}
77+
);
6678
}
6779

6880
private void checkContent(Pattern pattern) {
@@ -78,8 +90,8 @@ private void checkContent(Pattern pattern) {
7890

7991
Matcher matcher = pattern.matcher(checkText);
8092

81-
if (matcher.find()) {
82-
diagnosticStorage.addDiagnostic(i + 1, matcher.start(1) , i + 1, matcher.end(1));
93+
if (matcher.find() && !setFirstQueryLines.contains(i + 2)) {
94+
diagnosticStorage.addDiagnostic(i + 1, matcher.start(1), i + 1, matcher.end(1));
8395
}
8496
}
8597
}

src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IncorrectLineBreakDiagnosticTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,13 @@ void test() {
3838

3939
List<Diagnostic> diagnostics = getDiagnostics();
4040

41-
assertThat(diagnostics).hasSize(12);
41+
assertThat(diagnostics).hasSize(11);
4242
assertThat(diagnostics, true)
4343
.hasRange(7, 32, 33)
4444
.hasRange(8, 35, 36)
4545
.hasRange(16, 32, 33)
4646
.hasRange(17, 22, 23)
4747
.hasRange(21, 49, 50)
48-
.hasRange(29, 28, 29)
4948
.hasRange(70, 80, 83)
5049
.hasRange(83, 89, 92)
5150
.hasRange(45, 25, 26)

src/test/resources/diagnostics/IncorrectLineBreakDiagnostic.bsl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818
СуммаАвтоматическойСкидки;
1919

2020
// Error
21-
ПоляОтбора = "Номенклатура,Характеристика,Склад" +
21+
ПоляОтбора = "Номенклатура,Характеристика,Склад" + // Дополнительный комментарий
2222
ДополнительныеПоляОтбора;
2323

2424
// Pass
2525
ПоляОтбора = "Номенклатура,Характеристика,Склад"
2626
+ ДополнительныеПоляОтбора;
2727

28-
// Error
28+
// Pass
2929
ТекстЗапроса = ТекстЗапроса +
3030
"ВЫБРАТЬ
3131
| Номенклатура.Ссылка КАК Ссылка

0 commit comments

Comments
 (0)