Использование структурной замены в IntelliJ для изменения уровня защиты поля

Я пытаюсь использовать Structural Replace, чтобы пометить все частные поля как предупреждения, а затем предложить заменить их защищенными полями. (Я знаю, что многие люди могут не согласиться с моим выбором уровней защиты, но это отдельная проблема)

У меня есть следующее:

class $Class$ { 
 @Modifier("private") $FieldType$ $FieldName$ = $Init$;
}

В "Редактировать переменные..." я проверил "FieldName" на "Эта переменная является целью поиска".

Это правильно подсвечивает переменные, помеченные как частные. Однако предложение о замене совершенно неверно:

Как изменить настройки "Заменить конструкцию", чтобы предложить защитить поле?

ОБНОВИТЬ

Я изменил мои строки поиска / замены, чтобы они выглядели следующим образом, что работает значительно лучше:

Это позволяет мне заменить определения полей, такие как private int foo=1 с protected int foo=1, Тем не менее, он не работает с private static final int foo=1, который он заменяет protected int foo=1 Какие-либо предложения?

2 ответа

Похоже, что удаляемые модификаторы - старая ошибка в Структурном поиске и замене. Я отправил отчет об ошибке.

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

SSR привередлив - он работает только с реальными правильно сформированными сегментами кода... может быть, он не поддерживает 'static' в качестве замены подстановочного знака?

Другие вопросы по тегам