Я думаю, каждый из нас слышал на разнообразных конференциях, как люди пишут плагины для IDEA, чтобы решить локальные проблемы своего отдела или команды. Мне никогда не приходилось этого делать, так как локальные проблемы решались чем-то другим (gradle плагинами, CI/CD, или попросту баш скриптами). Однако на этой неделе мне захотелось добавить одну мелкую штуку к себе IDEA, и я создал свой первый, простой плагин.
Я захотел реализовать функциональность, которая уже доступна для GitHub в стандартном плагине для GitHub от IntelliJ, но не доступна для Azure DevOps, который сейчас используется на мой проекте. Это простой action, который называется — open this file in Github (в моем случае — Open File in Azure DevOps). Для тех, кто не знает, этот экшен открывает файл, который сейчас открыт у вас в IDE, в браузере гитхаба/гитхлаба, или ажура — в моем случае. Иногда это может быть полезно, если вы хотите посмотреть на историю файла или blame в более приятном GUI.
На код можно посмотреть тут — https://github.com/Hixon10/open-file-in-azure-devops, а установить плагин можно тут — https://plugins.jetbrains.com/plugin/20548-open-a-project-file-in-azure-devops.
Несколько слов про процесс разработки. Я помню, много лет назад я уже пытался что-то сделать под IntelliJ IDEA (не плагин, а просто патч в кору, кажется). Это был довольно болезненный опыт, с точки зрения developer experience. Документация отсутствовала, как класс. Не было никаких удобных штук для улучшения локального опыта разработки. Спасало только, что IDEA делалась ребятами из РФ, и всегда можно было в каком-нибудь чате спросить совета.
В эти дни всё поменялось. Появилась вполне нормальная документация для старта https://plugins.jetbrains.com/docs/intellij/plugins-quick-start.html. Более того, появился шаблон на гитхабе, который вам позволяет начать разработку вашего плагина в течение 15 минут — https://github.com/JetBrains/intellij-platform-plugin-template. Кстати, у меня была одна проблемка с этим шаблоном, я создал тикет, и мне помогли с моей проблемой в течение суток.
Кроме того, на гитхабе теперь есть довольно много примеров разных плагинов, как от JB, так и от сторонних разработчиков. Используя новый поиск по Github, вы сможете довольно быстро найти примеры использования того или иного API.
После того, как я разработал плагин, я решил опкубликовать его на официальный JetBrains Marketplace. Процесс выглядил максимально гладко. Во-первых, есть пошаговая инструкция. Во-вторых, gradle плагин org.jetbrains.intellij, по сути, делает всё за вас. Вам нужно только указать сертификаты для подписывания плагина, и потом загрузить плагин через web-интерфейс (для первой загрузки, а потом уже можно из CI). В течение суток мой плагин прошел модерацию, и я теперь могу скачивать его прямо из стора.
Вот так вот выглядил мой первый опыт создания расширения под IDEA. Понятно, что мой пример — очень игрушечный. Тем ни менее, я прошел все шаги без каких-либо серьезных проблем. В будущем я постараюсь создать какой-нибудь еще плагин, если попадется под руки подходящая задача.
Категории: Программирование