Skip to content

Commit

Permalink
Исправление ошибки определения описания переменной для цикла Для
Browse files Browse the repository at this point in the history
  • Loading branch information
Иванов Эдуард committed May 29, 2024
1 parent 68e8777 commit c1ef968
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,19 @@ private Optional<VariableDescription> createDescription(BSLParser.LValueContext
}

private Optional<VariableDescription> createDescription(BSLParser.ForEachStatementContext ctx) {
var trailingComments = Trees.getTrailingComment(documentContext.getTokens(), ctx.getStart());
var trailingComments = Trees.getTrailingComment(documentContext.getTokens(), ctx.IDENTIFIER().getSymbol());

if (trailingComments.isEmpty()) {
return Optional.empty();
}

return Optional.of(
new VariableDescription(Collections.emptyList(), trailingComments)
);
}

private Optional<VariableDescription> createDescription(BSLParser.ForStatementContext ctx) {
var trailingComments = Trees.getTrailingComment(documentContext.getTokens(), ctx.IDENTIFIER().getSymbol());

if (trailingComments.isEmpty()) {
return Optional.empty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ void setup() {
@Test
void testVariableSymbolDescription() {

assertThat(variableSymbols).hasSize(20);
assertThat(variableSymbols).hasSize(23);

assertThat(variableSymbols)
.filteredOn(variableSymbol -> variableSymbol.getDescription().isEmpty())
.hasSize(9)
.hasSize(11)
.anyMatch(variableSymbol -> variableSymbol.getRange().equals(Ranges.create(12, 6, 34)))
.anyMatch(variableSymbol -> variableSymbol.getRange().equals(Ranges.create(14, 6, 27)))
.anyMatch(variableSymbol -> variableSymbol.getRange().equals(Ranges.create(16, 6, 17)))
Expand All @@ -65,11 +65,12 @@ void testVariableSymbolDescription() {
.anyMatch(variableSymbol -> variableSymbol.getRange().equals(Ranges.create(32, 31, 59)))
.anyMatch(variableSymbol -> variableSymbol.getRange().equals(Ranges.create(33, 10, 19)))
.anyMatch(variableSymbol -> variableSymbol.getRange().equals(Ranges.create(55, 0, 35)))
.anyMatch(variableSymbol -> variableSymbol.getRange().equals(Ranges.create(56, 0, 47)));
.anyMatch(variableSymbol -> variableSymbol.getRange().equals(Ranges.create(56, 0, 47)))
;

assertThat(variableSymbols)
.filteredOn(variableSymbol -> variableSymbol.getDescription().isPresent())
.hasSize(11)
.hasSize(12)
.anyMatch(variableSymbol -> variableSymbol.getRange().equals(Ranges.create(2, 6, 32)))
.anyMatch(variableSymbol -> variableSymbol.getRange().equals(Ranges.create(6, 6, 33)))
.anyMatch(variableSymbol -> variableSymbol.getRange().equals(Ranges.create(8, 6, 33)))
Expand All @@ -92,7 +93,7 @@ void testVariableDescriptionRange() {
.collect(Collectors.toList());

assertThat(variableDescriptions)
.hasSize(11)
.hasSize(12)
.filteredOn(variableDescription -> !variableDescription.getDescription().equals(""))
.hasSize(5)
.anyMatch(variableDescription -> variableDescription.getRange().equals(Ranges.create(1, 0, 18)))
Expand All @@ -105,13 +106,15 @@ void testVariableDescriptionRange() {
assertThat(variableDescriptions)
.extracting(VariableDescription::getTrailingDescription)
.filteredOn(Optional::isPresent)
.hasSize(8)
.hasSize(9)
.extracting(Optional::get)
.anyMatch(trailingDescription -> trailingDescription.getRange().equals(Ranges.create(8, 35, 55)))
.anyMatch(variableDescription -> variableDescription.getRange().equals(Ranges.create(19, 20, 42)))
.anyMatch(variableDescription -> variableDescription.getRange().equals(Ranges.create(24, 20, 42)))
.anyMatch(variableDescription -> variableDescription.getRange().equals(Ranges.create(35, 21, 43)))
.anyMatch(variableDescription -> variableDescription.getRange().equals(Ranges.create(39, 21, 43)))
.anyMatch(variableDescription -> variableDescription.getRange().equals(Ranges.create(63, 45, 77)))
.anyMatch(variableDescription -> variableDescription.getRange().equals(Ranges.create(71, 38, 70)))
;

}
Expand All @@ -121,7 +124,7 @@ void testVariableNameRange() {

assertThat(variableSymbols)
.filteredOn(variableSymbol -> variableSymbol.getDescription().isEmpty())
.hasSize(9)
.hasSize(11)
.anyMatch(variableName -> variableName.getVariableNameRange().equals(Ranges.create(12, 6, 34)))
.anyMatch(variableName -> variableName.getVariableNameRange().equals(Ranges.create(14, 6, 27)))
.anyMatch(variableName -> variableName.getVariableNameRange().equals(Ranges.create(16, 6, 17)))
Expand All @@ -131,6 +134,8 @@ void testVariableNameRange() {
.anyMatch(variableName -> variableName.getVariableNameRange().equals(Ranges.create(33, 10, 19)))
.anyMatch(variableName -> variableName.getVariableNameRange().equals(Ranges.create(55, 0, 35)))
.anyMatch(variableName -> variableName.getVariableNameRange().equals(Ranges.create(56, 0, 47)))
.anyMatch(variableName -> variableName.getVariableNameRange().equals(Ranges.create(59, 12, 30)))
.anyMatch(variableName -> variableName.getVariableNameRange().equals(Ranges.create(67, 4, 22)))
;
}

Expand Down
14 changes: 13 additions & 1 deletion src/test/resources/context/symbol/variableSymbolTest.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,18 @@
ПеременнаяСоздаваемаяВКодеВнеМетодаВторойПример = МойМетод();
А.ЭтоНеПеременная = Неопределенно;

Для Каждого Метод Из Методы Цикл // Висячий комментарий для цикла
Для Каждого МетодБезКоментария Из Методы Цикл
МойМетод(Метод);
КонецЦикла;

Для Каждого МетодСКоментарием Из Методы Цикл // Висячий комментарий для цикла
МойМетод(Метод);
КонецЦикла;

Для СчДляБезКоментария = 1 По 100 Цикл
МойМетод(Метод);
КонецЦикла;

Для СчДляСКоментарием = 1 По 100 Цикл // Висячий комментарий для цикла
МойМетод(Метод);
КонецЦикла;

0 comments on commit c1ef968

Please sign in to comment.