интеллигентное дерево отказов программно - PullRequest
0 голосов
/ 06 июня 2018

Я бы хотел провести некоторый анализ кода.В моем проекте я звоню внешним службам с callExternalService(Service service, Object request).Я хочу получить всех вызывающих этот метод и отследить его для всех методов, которые снабжены аннотацией Spring RequestMapping.В основном создайте некоторое отображение ES -> RestControllers.Я знаю, что в IntelliJ я могу создать дерево иерархии вызовов, но я хотел бы составить это программно, чтобы оно отображалось каждый раз, когда кто-то хочет получить его от меня (на случай, если я забуду создать документацию).

Может кто-нибудьуказать мне код или документацию, как я могу это сделать?

спасибо

1 Ответ

0 голосов
/ 07 июня 2018
  • Сначала вам нужно создать плагин.подробности смотрите https://www.jetbrains.org/intellij/sdk/docs/basics.html.
  • Затем
    • найдите все варианты использования выбранного метода (для этого вы можете использовать com.intellij.psi.search.searches.ReferencesSearch),
    • организуйте их в дерево и
    • покажите пользователю.

Чтобы показать дерево, вы можете использовать старый добрый JTree или подключиться к подсистеме браузера иерархии IDEA.Чтобы выполнить последнее, реализуйте com.intellij.ide.hierarchy.HierarchyProvider, зарегистрируйте его в своем plugin.xml, и вы получите свой собственный браузер иерархии в новом окне инструмента.См. Com.intellij.ide.hierarchy.call.JavaCallHierarchyProvider для примера, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...