Skip to content

Conversation

@alonthedark
Copy link

Что сделано

  • Опишите изменения функциональности
  • Реализованные проверки кода и метаданных

Чек-лист

Общее:

  • ветка PR обновлена из master и нет конфликтов
  • Тесты-кейсы, JUnit тесты правильного и неправильного состояния
  • Измененные Вами исходники отформатированы в соответствии с конвенцией
  • Авто-аудит (SonarQube и CheckStyle) пройден, покрытие кода хорошее, ошибок нет, плохой код устранен
  • Добавлена запись в ИСТОРИЮ ИЗМЕНЕНИЯ, включаемая в пользовательскую документацию плагина

Если применимо:

  • Пользовательская документация на доп.инструменты написана (на русском)
  • Описание проверок - на двух языках

Закрываемые задачи

Closes #1508

@alonthedark alonthedark changed the title Feature/issue 1508 semicolon extra and mising Feature/issue 1508 semicolon extra and missing Oct 20, 2025
Проверка на нахождение statement
contain -> contains
ReplaceEdit -> InsertEdit
{
return null;
}
return new InsertEdit(node.getEndOffset(), ";"); //$NON-NLS-1$
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

что-то у меня тут ошибка, в гите что ли правилось? не хорошо это
Uploading image.png…


public static String MethodTooManyPramsCheck_title;

public static String MethodSemicolonExtraCheck_Description;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

в этом файле все с разделителем в 1 строку, я бы для общности сохранял практику, не знаю, кто придумал, но для однородности сохранил бы


if (checkText.contains(";")) //$NON-NLS-1$
{
resultAceptor.addIssue(Messages.MethodSemicolonExtraCheck_Issue, NAMED_ELEMENT__NAME);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

я смотрю, что проверка ставится на сам метод, а не на точку с запятой, может лучше на точку, ну так бытсрее и понятнее видно, где проблема и что не так

{
return null;
}
INode checkNode = node.getNextSibling();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

в аналогичном месте в самом check тут есть проверка, что checkNode не null

IProgressMonitor monitor)
{
Method method = (Method)object;
List<Statement> allItems = BslUtil.allStatements(method);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

я понимаю, что жаловались толкьо на ; в начале методов, но чисто по общности вот такой вариант тоже не очень хорош, можно отдельно со всеми обсудить будет ли править

Uploading image.png…

}
if (!checkText.contains(";") && !nodeText.isEmpty()) //$NON-NLS-1$
{
resultAceptor.addIssue(Messages.SemicolonMissingCheck_Issue);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

мне не нравится, что по сути выделяется весь statement, выглядит как по мне ужасно и вообще не понятно, что не так, плюс слишком много вхождений на 1 случай
image

}

List<EObject> eObJects = statement.eContents();
checkSemicolon(eObJects, resultAceptor);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

неверно работает в этом случае
image

}
}

private void checkSemicolon(List<EObject> eObjects, ResultAcceptor resultAceptor)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а в конфигурации документоборота вообще нашел очень странный случай с таким выделением
image
приложу еще и сам весь модуль


private void checkSemicolon(List<EObject> eObjects, ResultAcceptor resultAceptor)
{
if (eObjects.isEmpty())
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

по замерам производительности весьма ощутимо у меня вышло на документообороте, кажется, что не очень подход выбран, что надо проверять каждый statement в методе, может попробуем проверять сходу весь метод, а в нем только последние statement в каждом блоке statement.

Добавление пустых строк
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants