связи
Перед тем, как начать писать свой умопомрачительный и супер-очень полезный плагин, вам следует сначала немного почитать. Ниже приведен список мест, которые стоит посетить:
Начало работы — место, с которого нужно начинать. Самое основное введение в создание новых плагинов.
Основы разработки плагинов — вторая страница похожа на предыдущую, но некоторые интересные знания можно найти там.
FAQ по разработке плагинов — лучшее место с готовыми решениями и ответами на ваши вопросы и проблемы
Открытый форум API — место, куда можно пойти, если вы действительно застряли со своей проблемой
Покажи мне код
Ресурсы в приведенных выше ссылках полезны, но рано или поздно вам придется погрузиться в код, чтобы проверить, как что-то работает или как вы можете реализовать какую-то функцию. Существует два способа анализа исходного кода самой IntelliJ IDEA:
откройте консоль и введите: git clone git: //git.jetbrains.org/idea/community.git idea
или проверьте исходный код IntelliJ IDEA 10 на GrepCode
Я использовал оба способа: Git-репозиторий для извлечения всего проекта, открытия его в IDEA и поиска использования и т. Д., И GrepCode для быстрого поиска того, как выглядит отдельный фрагмент кода.
Учиться у других
Иногда вы можете захотеть добавить какую-то функцию, которая очень похожа на ту, что вы видели в плагине, написанном кем-то другим. Если вам повезет, исходный код этого плагина доступен. Единственное, что вам нужно сделать, это посетить http://plugins.intellij.net/?idea , найти плагин с похожей функцией и проверить, доступен ли его исходный код в открытом доступе. Вот как я нашел способ добавить зеленый шарик с сообщением, что выбранный фрагмент кода был успешно предоставлен Pastie.
Несколько полезных примеров кода
Есть несколько элементов, которые, вероятно, существуют в исходном коде почти каждого плагина. Чтобы облегчить вам боль в поиске или поиске, вот несколько коротких примеров, которые я считаю наиболее популярными.
Получение текущего проекта, текущего файла и т. Д.
Ваше действие плагина должно расширить абстрактный класс AnAction из IntelliJ OpenAPI. Единственный параметр, переданный методу actionPerformed, — это AnActionEvent. И из этого объекта вы можете получить доступ к различным местам:
1
2
3
4
5
|
Project currentProject = DataKeys.PROJECT.getData(actionEvent.getDataContext()); VirtualFile currentFile = DataKeys.VIRTUAL_FILE.getData(actionEvent.getDataContext()); Editor editor = DataKeys.EDITOR.getData(actionEvent.getDataContext()); // and so on... |
Список всех доступных мест можно найти в списке констант класса DataKeys (и его родителей).
Воздушный шар с информацией или сообщением об ошибке
Этот вид всплывающих окон очень полезен для передачи сообщений обратной связи пользователю. Это может быть информационное сообщение или ошибка / предупреждение. Цвета по умолчанию — зеленый для информации, красный для ошибок и оранжевый для предупреждений. В Share with Pastie я использую его, чтобы сообщить, что выбранный текст был успешно отправлен Pastie, и ссылка находится в буфере обмена.
Но прежде чем мы покажем наш воздушный шар, нам нужно указать место, где он будет расположен. В моем плагине это StatusBar (самый низкий элемент в графическом интерфейсе IDEA):
1
2
|
StatusBar statusBar = WindowManager.getInstance() .getStatusBar(DataKeys.PROJECT.getData(actionEvent.getDataContext())); |
и тогда мы можем подготовить воздушный шар и показать его:
1
2
3
4
5
6
|
JBPopupFactory.getInstance() .createHtmlTextBalloonBuilder(htmlText, messageType, null ) .setFadeoutTime( 7500 ) .createBalloon() .show(RelativePoint.getCenterOf(statusBar.getComponent()), Balloon.Position.atRight); |
Несколько мелочей
Плагин DevKit
Самое главное — это скачать или активировать плагин с именем Plugin DevKit, который позволит запускать и отлаживать свой плагин в процессе разработки. Это кажется очень тривиальным, но вы, возможно, деактивировали этот плагин (как я ) или убрал его, чтобы ускорить время запуска.
UI Designer
Если вы планируете разработать плагин с дополнительными окнами, всплывающими окнами и т. Д., Плагин с именем UI Designer очень удобен. Это что-то очень похожее на конструктор графического интерфейса от NetBeans и позволяет создавать панели Swing с помощью перетаскивания, изменения размера и размеров компонентов.
ID группы и действия
Когда я искал подходящее место для отображения своих действий в одном из меню, доступных в IntelliJ IDEA, я обнаружил страницу со списком групп и идентификаторов действий, которые могут помочь мне в настройке моего плагина. Но эта страница оказалась действительно устаревшей, поэтому я попытался найти другой способ определить правильные значения этих идентификаторов. И конечно, решение лежало прямо передо мной. Если в окне проекта нажать Alt + Insert, мы увидим меню, позволяющее создать несколько новых объектов. И одним из них является Action. Нажав на нее, мы увидим очень дружелюбного создателя действий, который будет выглядеть ниже. И, конечно же, он содержит список доступных групп и действий, чтобы разместить рядом с ними наш пункт меню плагинов.
Правильные настройки памяти ВМ
Следующее, что нужно сделать, — сконфигурировать вашу конфигурацию запуска / отладки для правильной работы, потому что в зависимости от настроек вашего оборудования (в основном, доступной памяти) и настроек IntelliJ IDEA вы можете столкнуться с зависаниями при запуске вашего плагина в режиме разработки (чаще всего это сбои во время перестроения индекса).
Чтобы избежать таких проблем, вы должны настроить параметры памяти в окне «Run / Debug Configurations» и добавить правильные параметры виртуальной машины. Для меня -Xms256m -XX: PermSize = 128m -XX: MaxPermSize = 512m работал хорошо.
Конец
Итак, это мой опыт, советы и мысли по созданию собственного плагина IntelliJ IDEA. Я надеюсь, что вы найдете это полезным, и ваш плагин позволит нам (разработчикам) быть еще более продуктивными и предоставлять код быстрее и с лучшим качеством. Мой друг сказал: «Если бы я знал, как создавать плагины для IDEA, я бы создавал новые каждые три недели, потому что у меня постоянно появляются новые идеи, как улучшить мой рабочий процесс», поэтому, возможно, после прочтения этого поста, по крайней мере, начнется процесс разработки плагинов. будет проще
Ссылка: Разработка плагина для IntelliJ IDEA — несколько полезных советов и ссылок от нашего партнера по JCG Томаша Дзюрко в блоге Code Hard Go Pro .