Добавление Inspections Replace Template в idea

В IntelliJ IDEA существует довольно удобный механизм для автоматической проверки (при необходимости — и преобразования) кода, под название Code inspections. Сложилось так, что мне понадобилось добавить к нему собственное поведение, служащее для замены способа преобразования непустого Optional в его значение внутри стрима (из стиля Java 8 в стиль Java 9+).

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

Итак, для начала надо попасть в само меню конфигурации инспекций, проще всего — по нажатию Ctrl+Alt+Shift+H -> Configure inspections. Там можно добавить Replace Template («плюсик» в верхней части окна) со следующими настройками (актуальны для моего примера):

Затем, при желании, при помощи Edit Metadata можно добавить к шаблону некоторую дополнительную информацию:

И, в общем-то, на этом — всё! Несколько коротких действий экономят достаточно много времени впоследствии (ну и замечания по стилю не приходится исправлять, т.к. их предотвращает наличие инспекции с преобразованием).

Результат в действии выглядит следующим образом (gif с анимацией, запускается по клику):

Проверял на таком небольшом примере:

Stream.of(getOptional())
     .filter(Optional::isPresent)
     .map(Optional::get)
     .count();

public static Optional getOptional() {
     return (new Random().nextInt() > 0)
          ? Optional.of("Yes")
          : Optional.empty();
 }

И, в заключение, пара ссылок по теме создания Code inspections в idea:

И тест создания шаблона:

  • Filter and get presented Optional in Stream
  • Stream filter() and map() operations may be simplified to flatMap()
  • In Java 9 and highest a .filter() and .map() stream operations used for get non-empty Optional object may be replaced to .flatMap() operation for simplify.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *