Хобрук: Ваш путь к мастерству в программировании

Фильтрация Intellij Поиск использований/иерархия вызовов

Мне нужно сделать важный рефакторинг во фреймворке. У меня есть метод, вызываемый примерно 300 раз из разных мест в коде (т.е. Find Usages дает мне около 300 результатов).

Я хотел бы отфильтровать эти результаты, чтобы они возвращали только те обычаи, которых нет в теле конструктора.

Я попытался использовать «просмотр иерархии вызовов», это дает более читаемые результаты (т.е. легче идентифицировать вызов из внешнего конструктора). Но мне было интересно, есть ли способ исключить автоматические вызовы, которые выполняются из тела конструктора?

Я не привык работать со "структурным поиском", но, может быть, это что-то, что может помочь?

Я использую IDEA EAP 12.


  • Это должно быть возможно с помощью SSR. 01.02.2013

Ответы:


1

(Отвечая на мой собственный вопрос)

Я попытался изучить возможности SSR и, наконец, нашел полезный шаблон.

Что я хочу: найти все вызовы метода myMethod, которые выполняются, но исключая те, которые выполняются внутри тела конструктора (т.е. только те, которые выполняются в обычном методе экземпляра).

Схема поиска:

class $Class$ { 
    $ReturnType$ $MethodName$($ParameterType$ $Parameter$) {$MethodCode$;}
}

Этот шаблон будет соответствовать всем непустым методам. Так что мне все еще нужно ограничить $MethodCode$ регулярным выражением:

.*\.myMethod\(.*

Я думаю, что можно улучшить регулярное выражение $MethodCode$, но я не получил ни одного ложного совпадения... так что я доволен этим.

01.02.2013
Новые материалы

Введение в контекст React
В этом посте мы поговорим о Context API, который был представлен в React 16, и о том, как вы можете их использовать. Что такое контекст? Глядя на определение из react docs , оно..

Шлюз с лицензией OSS, совместимый с Apollo Federation v2, появится в WunderGraph
Сегодня мы рады сообщить, что мы сотрудничаем с поддерживаемой YC Tailor Technologies, Inc. для внедрения Apollo Federation v2. Реализация будет лицензирована MIT (Engine) и Apache 2.0..

Это оно
Ну, я официально уволился с работы! На этой неделе я буду лихорадочно выполнять последние требования Думающего , чтобы я мог сосредоточиться на поиске работы. Что именно это значит?..

7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

Базовое руководство по переносу концепций обучения в глубокое обучение
Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

C в C.R.U.D с использованием React-Redux
Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

5 обязательных элементов современного инструмента конвейера данных
В цифровом мире предприятия используют конвейеры данных для перемещения, преобразования и хранения огромных объемов данных. Эти конвейеры составляют основу бизнес-аналитики и играют..