Как я могу применить несколько быстрых исправлений для проблем Checkstyle того же типа?

Плагин Eclipse Checkstyle предлагает два способа автоматического исправления проблем:

  • Щелкните правой кнопкой мыши по отдельному исходному файлу и выберите "Apply Checkstyle Corrections".

  • Щелкните правой кнопкой мыши маркер проблемы и выберите "Быстрое исправление".

Если я выберу несколько маркеров одного типа и попытаюсь быстро исправить их, Eclipse будет указывать:

Выбранные проблемы не имеют общего применимого быстрого исправления.

Есть ли способ для меня выполнить несколько исправлений Checkstyle того же типа более эффективным образом?

(См. соответствующий вопрос: Как я могу легко исправить ошибки Checkstyle?)


Чтобы привести пример, рассмотрим следующий код:

/**
 * Example to demonstrate check-style quick fix.
 */
public final class CheckStyle {

  /**
   * Example constructor with no if braces.
   *
   * @param arg an argument
   */
  public CheckStyle(final String arg) {
    if (arg == null)
      throw new RuntimeException("Arg is null.");

    if (arg.isEmpty())
      throw new RuntimeException("Arg is empty.");
  }
}

При проверке конфигурации Sun checkstyle выбраны три ошибки:

Checkstyle errors

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

Ответ 1

Начиная с версии 5.6.1, эта возможность теперь доступна в eclipse-cs. Я только что проверил это с 5.7.0 (последняя версия) и подтвердил, что он работает.

Для справки, здесь исходный отчет об ошибках. Эта функция не отображается в примечаниях к выпуску для этой версии, но из-за упущения (см. Комментарии в отчете об ошибке).

Ответ 2

Просто догадайтесь, но я думаю, что ответ заключается в том, чтобы подать запрос об ошибке/функции с помощью команды plug-in cs-eclipse. Сообщение Eclipse дает вам, кажется, указывает на то, что это особый случай, который должен быть обработан разработчиком.

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