Как решить конфликт Checkstyle между @link JavaDo c на одной строке и длиной строки? - PullRequest
0 голосов
/ 06 марта 2020

Рассмотрим следующее JavaDo c:

  /**
   * Test method for
   * {@link MySelectionStyleConfiguration#configureSelectionStyle(org.eclipse.nebula.widgets.nattable.config.IConfigRegistry)}.
   * 
   */

Всякий раз, когда я сохраняю тестовый класс JUnit5, к которому принадлежит этот комментарий, {@link } переформатируется в одну строку, что правильно, в противном случае плагин Maven Checkstyle выдаст ошибку, если я попытаюсь ввести разрыв строки в ссылке: (javadoc) SingleLineJavadoc: Javadoc comment at column 78 has parse error. Details: mismatched input '\n' expecting MEMBER while parsing REFERENCE. (Также я считаю, что ссылка не будет корректно разрешена в документах API, которые отрисованы из этого.)

Однако плагин Maven Checkstyle также выдаст ошибку, если я оставлю длинный Линия связи как есть: (sizes) LineLength: Line is longer than 100 characters (found 125)..

Есть ли способ решить эту проблему?

Требования:

  • Правило линии 100 символов должно оставаться в силе, но длинные {@link } теги в JavaDo c (в тестовых классах наиболее очевидны, но, возможно, и в других местах) должны быть освобождены.
  • Ссылка должна все еще разрешаться в визуализированном JavaDo c (т.е. она должна остаются действительными).

Редактировать

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

1 Ответ

0 голосов
/ 11 марта 2020

Это можно сделать с помощью свойства ignorePattern проверки LineLength https://checkstyle.sourceforge.io/config_sizes.html#LineLength

В вашем случае что-то вроде

<module name="LineLength">
  <property name="max" value="100"/>
  <property name="ignorePattern" value="^ \* \{@link .*$"/>
</module>

решит проблему.

...