Написание инспекций Intelli-J?

Как мне написать свою собственную инспекцию Intelli-J? Я ищу некоторые общие руководства или ресурсы.

Я хочу показывать подсказку проверки каждый раз, когда экземпляр класса коллекции создается вручную, а не через Guava (List.newArrayList()/Maps.newHashMap()) и т. д. в соответствии со стандартом для всей команды.

Буду признателен за любое направление.


person Stefan Kendall    schedule 19.07.2010    source источник


Ответы (3)


Для такой проверки вам не нужно писать плагин, вместо этого используйте Structural Функция поиска и замены (SSR), которая позволяет создавать пользовательские проверки с быстрыми исправлениями.

См. также раздел Создание собственных проверок и документацию по этой функции.

Обратите внимание, что он доступен только в версии Ultimate.

person CrazyCoder    schedule 20.07.2010
comment
Есть ли простой способ захвата типов? Кажется, я не могу делать простые вещи, такие как использование переменных выражений рядом, таких как $mapType$$mapEnd$ для простой замены. Есть ли какая-то причина, по которой это может быть? То есть, если у меня есть одно выражение, скажем, .*\s*.*abc, и я разбиваю его на две переменные, .*\s* и .*abc, выражение не соответствует ни одному тексту. Что может пойти не так? - person Stefan Kendall; 20.07.2010
comment
SSR сопоставляет одну или несколько языковых конструкций для каждой переменной, он НЕ будет захватывать несколько переменных ($mapType$$mapEnd$) в ссылку на тип. Если я вас правильно понял, вам нужно сопоставить List‹$Type$› $variable$ = new $ListType$‹$Type$›() и заменить его соответствующим образом. - person nicity; 22.07.2010
comment
В этом разделе содержится более подробная информация по теме stackoverflow.com/questions/3302233/ - person nicity; 23.07.2010
comment
Как предоставить пользовательское описание для пользовательской проверки SSR? - person Jatin; 02.03.2017

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

Эта компания делает фантастические продукты, но когда дело доходит до документации, книг и руководств для разработчиков (не пользователей) - их практически нет :(.

Ваша единственная ставка — взглянуть на источник актуальных подключаемых модулей IntelliJ (некоторые из них здесь: http://git.jetbrains.org/) и задавайте очень конкретные вопросы по плагину IntelliJ. list, так как команда разработчиков с радостью ответит вам обычно в течение нескольких минут.

person A. Ionescu    schedule 19.07.2010
comment
Это самый грустный ответ, который у меня когда-либо был. Не знаю, готов ли я прыгнуть в кроличью нору. - person Stefan Kendall; 20.07.2010
comment
Дело не в том, что это невозможно. Для IntelliJ уже есть невероятно хорошие плагины. Просто эти разработчики очень опытные (по сравнению со мной) и умеют кодить без документации (я нет :( ). Может быть, им также нравятся кодовые головоломки — и это довольно близко к этому. так плохо (надеюсь на это :) ), так как я смог очень легко написать плагины для Netbeans и Eclipse, но была доступна хорошая документация. - person A. Ionescu; 20.07.2010

Поздно в игру, но этот вопрос все еще поднимается в поиске Google, так что смотрите:

http://confluence.jetbrains.com/display/IDEADEV/Inspection+of+Code+Source

person lab27    schedule 26.06.2013
comment
Никогда не поздно. Ты только что помог мне. Спасибо. - person SlopeOak; 27.11.2015