Как искать и заменять структурно в Intellij

Я переношу свои тесты Junit с Junit v3 на Junit v4.

Я надеялся использовать поиск и замену структурно «srs», чтобы добавить аннотацию @Test перед всеми методами, начинающимися с test. *, используя мою любимую IDE Intellij.

Я просто не могу понять, как это сделать... Я могу создать запрос, который найдет все методы без аннотации (в Intellij есть пример), но при использовании для замены либо мой класс заменяется только методом имена ИЛИ ничего не найдено.

Может быть, регулярное выражение проще :-)


person Konstantin    schedule 30.04.2009    source источник
comment
Ранее сегодня я пытался найти синхронизированные блоки с двойной проверкой. Возможно, нам следует подать отчет об ошибке; srs не делает то, что нам нужно?   -  person krosenvold    schedule 30.04.2009
comment
Да, я думаю, это немного загадочно для неподготовленных, я видел один образец, который был реализован с помощью groovy. Как такой простой смертный, как я, собирается это использовать?   -  person Konstantin    schedule 30.04.2009
comment
Я пытался использовать его несколько раз, но безуспешно. Требуется некоторое время, чтобы понять, как составить совпадающие выражения (хотя я знаю довольно много систем RE), а затем при применении он удаляет цель, а не заменяет мою замену. Несколько раз мне приходилось долго искать, чтобы найти весь код, разбросанный по моим исходным кодам, который был удален. Это больше хлопот, чем того стоит.   -  person PanCrit    schedule 03.05.2009


Ответы (3)


На данный момент это невозможно, но есть запросы на замену членов класса.

Вот полезная ссылка для начала работы с ssr: https://www.jetbrains.com/idea/docs/ssr.pdf

person nicity    schedule 08.05.2009
comment
Ссылка на документацию мертва. - person dastrobu; 09.02.2016

Я пробовал со следующим SSR, но у меня та же проблема, что и у вас:

Шаблон поиска:

public class $TestCase$ extends $TestCaseClazz$ {
  public void $testMethod$();
}

Шаблон замены:

@Test public void $testMethod$();

И я проверяю «Эта переменная является целью поиска» в testMethod. Предварительный просмотр выглядит нормально, но IntelliJ фактически удаляет весь метод :(

person Gilles Philippart    schedule 12.07.2012

Открыть поиск -> Заменить в пути
Укажите в качестве каталога каталог, в котором находится ваш тест
Задайте для строки поиска значение: public void test.
Задайте для строки замены значение: @Test\n\tpublic void test.
Установите флажок "Регулярное выражение".

Наслаждайтесь.

person Bogdan Gusiev    schedule 04.05.2009
comment
Извините, это не совсем тот ответ, который я искал. Я просил более мощный структурный поиск. Я уже сделал замену, используя регулярные выражения. - person Konstantin; 04.05.2009