Armory — плагин для IntelliJ IDEA
Top 10 IntelliJ Idea Plugins
Posted by: Nassos Hasiotis in IntelliJ IDEA February 4th, 2016 1 Comment Views
IntelliJ IDEA has inspired many Java developers to write plug-ins, from J2EE to code editing tools to games. Now it has a robust plugin ecosystem with more than 1500 available plugins and new ones appearing nearly every week.
In this article we are going to present the 10 most useful to our point of view plugins for any developer using this IDE.
1. Shifter
Detects type of selection, line or keyword at caret and shifts it “up” or “down” on keyboard shortcut. If there’s only one shiftable word in a line, it can be shifted without the caret touching it. Lowercase/uppercase or lower case with upper first character of shifted words is maintained.
Default keyboard shortcuts:
- Ctrl+Shift+Alt+Comma : Shift Down
- Ctrl+Shift+Alt+Period : Shift Up
- Ctrl+Shift+Alt+K : Shift Up More*
- Ctrl+Shift+Alt+J : Shift Down More*
Shift more: repeats shifting the selected value multiple times. The amount of repetitions can be configured in the plugin configuration (default: 10).
Shifter Intellij Plugin
2. BrowseWordAtCaret
Allows to easily browse next/previous word at caret and highlight other appearances of selected word. Usage: Browse with CTRL-ALT-UP, CTRL-ALT-DOWN (note: on default-keymap this shortcut is also for next/previous occurrence).
BrowseWordAtCaret Intellij Plugin
3. BashSupport
Bash language support for IntelliJ. It supports syntax highlighting, rename refactoring, documentation lookup, inspections, quickfixes. BashSupport can directly run scripts within IntelliJ. You can create a new run configuration for Bash scripts. Here you can set which interpreter is used to run it. Whenever a script is executed the output is logged. If Bash prints out syntax errors then the erroneous lines are clickable to jump to the location of the error.
BashSupport Intellij Plugin
4. IdeaVim
IdeaVim is a Vim emulation plug-in for IDEs based on the IntelliJ platform. Use the IDE’s plugin manager to install the latest version of the plugin. Start the IDE normally and enable the Vim emulation using “Tools | Vim Emulator” menu item. At this point you must use Vim keystrokes in all editors.
If you wish to disable the plugin, select the “Tools | Vim Emulator” menu so it is unchecked. At this point IDE will work with its regular keyboard shortcuts. Keyboard shortcut conflicts between the Vim emulation and the IDE can be resolved via “File | Settings | Vim Emulation”, “File | Settings | Keymap” and key mapping commands in your
5. LiveEdit
It allows you to view your changes in an actual browser window instantly without a page refresh, reload corresponding browser pages (related to opened file in IDE) and highlight corresponding element. Currently only Google Chrome is supported (extensions for Firefox & Safari are still postponed). If you edit your PHP file or Smarty template, it is so boring to switch to the browser and reload tab manually, isn’t it? Forget about it! Just View -> Reload in Browser. Want to see your change instantly? No problem. And yes, SASS/CoffeeScript are supported (external watching compiler is still needed). CSS and JavaScript (Kotlin, CoffeeScript and any other compilable to JS) will be hot-swapped without page refresh (of course, hot-swapped JavaScript will be effective only if it used in cycle or event-driven).
6. Maven Helper
Provides actions to run/debug the current test file. If maven-surefire-plugin is configured to skip or exclude the test, ‘verify’ goal will be used. It also provides actions to run/debug maven goals for a module that contains the current file and an easy way to find and exclude conflicting dependencies
Usage:
- Right click in Editor | Run Maven
- Right click in Project View Toolbar | Run Maven
- CTRL + ALT + R – “Quick Run Maven Goal” action
- Customize goals: Settings | (Other Settings) | Maven Helper
- Define shortcuts: Settings | Keymap | Plug-ins | Maven Helper
Open pom file, click on ‘Dependency Analyzer’ tab, right click in the tree for context actions.
Maven Helper Intellij Plugin
7. String Manipulation
Provides actions for text manipulation:
- Toggle style (camelCase, hyphen-lowercase, HYPHEN-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase)
- To SCREAMING_SNAKE_CASE (or to camelCase)
- To snake_case (or to camelCase)
- To dot.case (or to camelCase)
- To hyphen-case (or to camelCase)
- To hyphen-case (or to snake_case)
- To camelCase (or to words)
- To PascalCase (or to camelCase)
- Capitalize selected text
-when nothing is selected, then either nothing or whole line or a particular element is selected – report an issue if you find something to improve, each file type needs its own implementation to work flawlessly. - Un/Escape:
- Un/Escape selected Java text
- Un/Escape selected JavaScript text
- Un/Escape selected HTML text
- Un/Escape selected XML text
- Un/Escape selected SQL text
- Un/Escape selected PHP text
- Convert non ASCII to escaped Unicode
- Convert escaped Unicode to String
- Encode/Decode:
- Encode selected text to MD5 Hex16
- De/Encode selected text as URL
- De/Encode selected text to Base64
Other: - Format selected text to columns/table by a chosen separator/delimiter
- Increment/decrement all numbers found.
- Duplicate line and increment/decrement all numbers found.
- Trim selected text
- Trim all spaces in selected text
- Remove all spaces in selected text
- Remove duplicate lines
- Remove empty lines
- Swap characters at caret
- Grep selected text, All lines not matching input text wil be removed. (Does not work in column mode)
- Actions are available under Edit menu, or via the shortcut “alt M” and “alt shift M”. You can setup your own shortcuts for better usability.
8. SQL Query Plugin
A tool for executing SQL statements through a JDBC connection.
Features:
- Syntax highlighting
- Executing multiple statements at once
- Highlighting of primary and foreign keys
- Editing of results
- Support for easier configuration of common JDBC driver
- Support of different column formats (including custom formats)
- Browser for database structure
- Statement templates for often used statements
- Support for Java BLOB’s
- Export into XML, HTML, CSV and Excel
- Data Load
SQL Query Intellij Plugin
9. JRebel for IntelliJ
JRebel is a productivity tool that allows developers to reload code changes instantly. It skips the rebuild, restart, and redeploy cycle common in Java development. JRebel enables developers to get more done in the same amount of time and stay in the flow while coding. JRebel supports a majority of real-world enterprise java stacks and is easy to install into existing development environments. The JRebel plugin for IntelliJ IDEA includes the JRebel agent and helps you to automatically generate the JRebel configuration. It enables JRebel for applications and servers with a single click and improves the debugging support in the IDE.
9.1 External servers and JRebel Cloud/Remote
When launching the application server from a command line or using a remote server, open Settings > JRebel and select Startup.
- Run via IDE – This displays the server launch instructions from within the IDE.
- Run using CLI – Select this option to access JRebel’s integrated CLI instructions. You will be presented with a set of drop-down menus. Select your desired Java version and operating system to receive a set of pre-configured instructions. Follow the steps provided to start your external, command line server with JRebel enabled.
- Run on a remote server – Select this option to configure JRebel in a JRebel Cloud/Remote setting. Follow the steps provided.
10. Grep Console
Allows you to define a series of regular expressions which will be tested against the console output or file. Each expression matching a line will affect the style of the entire line, or play a sound. For example, error messages could be set to show up with a red background.
Additional Features: ANSI colouring
File Tailing:
- Main menu | Tools | Open File in Console
- Main Menu | Help | Tail (IntelliJ) Log in Console
- Drag&Drop “Tail File” panel in main toolbar
- http and Windows context menu integration
Grep Console Intellij Plugin
11. Conclusion
So this is list of experiences, tips and thoughts about the best IntelliJ IDEA plugins out there. In this article we tried to present some of the best choices for you developers in order to make the development process more convenient. I hope you find it useful and by using them or another plugin of your choice, become even more productive and deliver code faster and in better quality.
Intellij IDEA деплой на Tomcat
Хочу показать как можно быстро тестировать проект прям с IDE Intellij IDEA, а также расскажу плюсы от этого.
Шаг 0. Для чего это нужно?
Думаю вы уже работали над разработкой Java EE проектов ивам приходилось проверять его после написания очередной фитчи, а даже если не приходилось то придётся 🙂
Deploy – процесс развертывания (распаковки) проекта на сервере приложений.
О серверах приложений можно почитать тут. Так вот стандартный процесс деплоя:
1. Вы либо в ручную через Admin Panel или же через Console деплоите;
2. Вы используете Maven, Ant либо Gradle инструмент для этого.
Но не первый не второй способ не совсем удобный если вам к примеру нужно провести Debug проекта и отловить неисправность. И это одна из значительных причин использовать способ о котором я расскажу ниже.
Давайте теперь познакомимся собственно со способом деплоя используя Intellij IDEA.
Шаг 1. Готовим проект
Для того чтобы продемонстрировать данный способ мне необходимо иметь пример проекта для деплоя. Я буду использовать проект с этого урока Spring 3. JavaConfig на примере Spring MVC.
В скачанном вами проекте для деалоя на Tomcat необходимо в pom.xml добавить еще одну зависимость:
Открываем проект, справа в меню Maven Project выбираем clean | install как показано на изображении ниже, таким образом мы соберем наш проект и в итоге у нас получится war файл, который мы будем деплоить на сервер:
После этого в корне проекта появится папка target и в ней будет лежать ваш war архив.
Дальше нам нужно скачать сервер приложений Tomcat 8+ Скачать
Внимание! Вы можете использовать любой сервер приложения не обязательно Tomcat. Я рекомендую использовать его так как он лёгкий и быстро стартует.
Шаг 2. Конфигурируем Intellij IDEA для Deploy
Теперь в открытом вами проекте который вы хотите задеплоить, со студии IDEA выполните действия, которые показанные на изображении ниже:
После этого в появившемся окне нажмите на плюс и выберите Tomcat Server – Local:
После этого вводим имя и нажимаем Configure выбираете где лежит скачанный и распакованный Tomcat и жмете ОК.
Теперь переходите во вкладку Deployment жмем плюсик выбираем Artifact:
B в появившемся окне выбираете свой Artifact war:
Жмете ОК дважды. Вот общая конфигурация, которая должна появится у вас:
Шаг 3. Run и Debug
После настройки вы можите либо просто запускать ваш проект со студии либо проводить Debug со студии в зависимости от режима:
Зеленый треугольник просто запускает проект, а точней деплоит его и запускает в выбранном вами браузере при конфигурации.
Зеленый жучек деплоит проект на сервер и запускает Debug режим, который позволит вам отловить ошибки.
После запуска я получу задеплоиный проект:
Зеленый индикатор в Deployment говорит о том что проект удачно развернулся на сервере.
Tomcat в Intellij Idea Community Edition
возможно ли запустить веб-приложение с помощью сервера Tomcat в Intellij Idea Community Edition?
Я попытался найти некоторую информацию об этом, но не добился успеха.
12 ответов
Если вы используете maven, вы можете использовать эту команду mvn tomcat:run , но сначала вы добавляете свой pom.xml эта структура в тег сборки, так же, как это:
сообщество Intellij не предлагает интеграцию с сервером приложений Java. Ваши варианты
- покупка лицензии Intellij,
- переход на Eclipse;)
- установка Умный Котяра плагин https://plugins.jetbrains.com/plugin/9492
- установка идея Jetty Runner плагин https://plugins.jetbrains.com/plugin/7505
- запуск сервера приложений от Maven, Gradle, что угодно, как описано в других ответах.
Я лично установил плагин Jetty Runner (Jetty отлично подходит для меня, мне не нужен Tomcat), и я доволен этим решением. Мне пришлось иметь дело с IntelliJ idea-Jetty, сообщить об исключении, хотя.
используя Maven, попробуйте tomcat7-maven-plugin :
запустите его с помощью tomcat7:run-war
Да, вы можете использовать плагин maven или простую программу java. Нет необходимости в плагине IDE. См., например, Main class from https://devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat
Да, это возможно и довольно легко.
- рядом с кнопкой ” выполнить “в раскрывающемся списке выберите “Редактировать конфигурации”. “
- слева нажмите плюс, затем maven и переименуйте его “Tomcat” с правой стороны.
- в командной строке введите “spring-boot: run”
- на вкладке runner для “параметры VM” введите ” – XX: MaxPermSize=256m-Xms128m -Xmx512m – Джава.ОУ.headless=true “Примечание:” использовать настройки проекта ” должно быть без накладки.
- для переменных среды введите “env=dev”
- наконец, нажмите Ok.
когда вы будете готовы нажать run, если вы перейдете в ” localhost: 8080/”, вы увидите свою страницу.
мой пом.xml-файл такой же, как официальный весенний учебник обслуживание веб-контента с Spring MVC
плагин maven и встроенный Tomcat являются полезными обходными путями (мне нравится второй, потому что вы можете отлаживать), но фактическая интеграция с веб-сервером доступна только в платных выпусках intelij.
Tomcat (безголовый) может быть интегрирован с IntelliJ Idea – Community edition.
пошаговые инструкции, как показано ниже:
добавить tomcatX-maven-plugin В пом.в XML
добавить новую конфигурацию запуска, как показано ниже:
вызов Tomcat в режиме запуска/отладки непосредственно из IntelliJ Run >> Run / Debug menu
Примечание: хотя это считается взлом использования функций интеграции Tomcat с функциями версии IntelliJ – Enterprise, но я бы счел это программным способом интеграции tomcat в IntelliJ Idea – community edition.
Tomcat также может быть интегрирован с IntelliJ Idea-Community Edition с плагином Tomcat Runner.
вы можете использовать плагин tomcat с gradle. Для получения дополнительной информации, вы здесь.
Я использую intellij CE для создания войны и развертывания войны извне с помощью Tomcat deployment manager. Это работает для тестирования приложения, однако я все еще не мог найти способ, чтобы отладить его.
- откройте cmd и текущий dir в tomcat/bin.
- вы можете запускать и останавливать сервер, используя запуск пакетных файлов.летучая мышь и выключение.летучая мышь.
- Теперь создайте приложение, используя цель mvn в intellij.
- открыть localhost: 8080 / * * ваш номер порта может отличаться.
- используйте это приложение tomcat для развертывания приложения, Если вы получите ошибку аутентификации, вам нужно будет установить учетные данные в conf/tomcat-users.XML.
Я ответ. Очень рекомендую.
если вы никогда не использовал Maven раньше и не хочу чтобы углубиться в это: следуйте ответу Джея Лина, но также сделайте это:
щелкните правой кнопкой мыши на имени проекта – > добавить поддержку фреймворка – > Maven.
затем установите maven отсюда http://maven.apache.org/install.html. Делай, что он говорит, Беги. команды.
затем установите spring-boot отсюда https://mvnrepository.com.
затем следуйте сообщениям об ошибках, если они есть – возможно, вам нужно будет установить некоторые другие вещи (просто google и это mvnrepository.com подошел бы). Для установки используйте следующую команду:
mvn install:install-file -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar -Dfile=path
заменить path С, где вы загрузили jar файл, заменить версию, идентификатор группы и артефакта с информацией из mvnrepository.com – .
- дальнейшие ошибки, с которыми я столкнулся:
мне пришлось создать класс в src / main / java (с помощью simple System.out.println команда в main) и добавить main.java.Hello на
tag in pom.xml . Кстати, pom.xml должен появиться сам, когда вы делаете первое действие из моего ответа-скопируйте туда код вставки Джей Лина.
еще одна ошибка, которую я получил, была связана с JAVA_HOME переменная и материал verion. Так получилось, что он думал, что jdk-это 7-я версия, и я говорил, что это 8-й. Поэтому я изменил тег версии java в
теперь он работает нормально! Всем удачи.
для Intellij 14.0.0 опция сервера приложений доступна в разделе View > Tools window > Application Server (но если он включен, я имею в виду, если у вас установлен какой-либо плагин)
Short notes on everything
Search This Blog
Subscribe to this blog
Follow by Email
- Get link
- Other Apps
Деплой веб-приложения на Tomcat в IntelliJ IDEA Community Edition
- Get link
- Other Apps
Это краткое руководство поможет начинающим разработчикам Java EE.
IntelliJ IDEA – отличная IDE для Java, однако ее бесплатная версия Community Edition несколько ограничена в разработке веб-приложений и Java EE в целом. В Community версии очень легко разрабатывать desktop приложения, но как только становится необходимо разработать веб-приложение с Java EE, ты вдруг обнаруживаешь, что в Community нет никакой поддержки ни апп серверов (JBoss, GlassFish), ни даже сервлет контейнеров (Tomcat).
В этом руководстве я покажу, как обойти эту проблему (без установки довольно дорогой или крякнутой Ultimate Edition) путем интеграции IntelliJ IDEA Community Edition с Tomcat (через Maven) для разработки веб-приложений с сервлетами.
Начнем с того, что создадим наш проект, щелкнув на пункте New -> Project в верхнем меню.
В левой части выбираем Maven, а в правой архетип maven-archetype-webapp (рис. 1):
На следующих скриншотах видно, как задавать group id, artifact id, имя проекта и папку для него. Group id – уникальный идентификатор твоего проекта, обычно это имя java пакета в соответствии с Java code conventions. Artifact id – имя JAR файла который заносится в репозиторий Maven, в данном случае mywebapp. Здесь можно подробнее почитать как выбрать group id и artifact id.
После того как проект создан, появится стандартная структура папок необходимая для веб-приложения: папка WEB-INF, файл web.xml и даже главная страница(рис. 2).
Maven уже сможет собрать такой проект, но до сих пор некуда класть исходный код Java! Это нам и надо исправить (рис. 3). Создаем папку java по адресу My web app/src/main/ и метим ее как “source root”. В этой папке хранится код сервлетов.
Показать/спрятать код сервлета
Код правильный, но почему он подчеркивается красным как ошибка? Надо добавить библиотеки Java EE при помощи Maven. Открываем pom.xml и приводим его к такому виду:
Хотя это и не требуется для того чтобы собрать проект, мы также добавили в pom.xml директивы которые вытягивают с серверов Maven плагин tomcat7-maven. Теперь воспользуемся этим плагином: создаем новую Run/Debug Configuration типа Maven, называем ее как угодно, в поле Command line пишем tomcat7:run, и наконец добавляем clean в список целей Maven перед запуском (рис. 5):
Поздравляю! Теперь у тебя есть рабочее веб-приложение Java EE с конфигурацией запуска которая его собирает, делает WAR архив и деплоит его в Tomcat:
Теперь можно просто нажать Shift+F10 (или кнопку Run на панели вверху) и увидеть в браузере страницу index.jsp по адресу http://localhost:8888 (ссылка будет в окне вывода информации о сборке):
JSP есть, а что насчет сервлетов? Чтобы обратиться к сервлету, надо дать Tomcat понять, где его искать и на какой адрес замапить. Для этого поменяем 2 файла: src/main/webapp/WEB_INF/web.xml и src/main/webapp/index.jsp :
Снова запускаем проект и вуаля! Теперь из главной страницы можно перейти к сервлету и убедиться что он работает:
Как автоматически запускать браузер после деплоя
Показать/спрятать новый pom.xml
Идем в Run/Debug Configurations и меняем параметр Command line на verify :
Создаем файл test.bat в корне проекта с таким содержимым:
Показать/спрятать test.bat
N.B. Для того чтобы не чистить кеш после каждого запуска я заменил запуск стандартного браузера на Chrome в режиме инкогнито:
Если не чистить кеш в обычном режиме браузера, он будет хранить старые версии скриптов которые ты подключаешь в страницах, что может привести ко многим часам чесания головы.
Вот и все! Можно запускать проект и после деплоя он откроется в браузере:
Чтобы выключить Tomcat можно либо нажать Ввод в окне “Run” (правильный способ) или нажать кнопку “Стоп” на верхней панели (экстренное завершение).
Создаем Spring Boot Hello World приложение в Intellij IDEA
Самый простой способ создать Spring Boot приложение, на мой взгляд — это воспользоваться официальным сайтом Spring.
Открываем Intellij IDEA и создаем новый Maven проект:
После создания проекта идем на сайт Spring в раздеп Guides:
Далее в строке поиска пишем MVC и получаем такой результат:
Заходим по этой ссылке и делаем все, что там написано (далее по тексту).
Конфигурация pom.xml для Spring Boot
Чтобы сконфигурировать Spring Boot проект нам надо прописать build script:
Создаем файлы проекта Spring Boot
Далее по инструкции создаем пакет hello и в нем класс GreetingController:
Содержимой класса выглядит следующим образом:
Далее в ресурсах создаем папку templates и в ней файл greeting.html, имеющий следующее содержимое:
Далее в пакете hello создадим класс Application:
Далее создаем папку static в ресурсах и в ней создаем файл index.html:
Запуск Spring Boot приложения
Чтобы запустить приложение, надо перейти в класс Application и выполнить действия, показанные на скриншоте:
Наше приложение доступно по адресу http://127.0.0.1:8080
Создание WAR архива Spring Boot приложения и deploy на Apache Tomcat
Чтобы задеплоить написанное приложение на tomcat необходимо выполнить следующие действия:
Класс Application должен приобрести следующий вид:
В файл pom.xml дописываем
после тега version в начале файла.
Далее создаем war архив (View/Tool Windows/Maven Projects):
В проекте создалась папка target и в ней файл war.
Останавливаем проект и запускаем Apache Tomcat.
Заходим в Application List и деплоим наш файл, предварительно переименовав его, как вам удобно:
Написание плагинов IntelliJ IDEA
1. Вступление
За последние несколько лет IntelliJ от JetBrains быстро стал лучшей IDE для разработчиков Java. В нашем последнем отчете State of Java IntelliJ был IDE для 55% респондентов по сравнению с 48% годом ранее.
Одна особенность, которая делает IntelliJ такой привлекательной для разработчиков Java, – это возможность расширять и создавать новые функциональные возможности с помощью плагинов. В этом руководстве мы рассмотрим создание плагина IntelliJ, чтобы продемонстрировать несколько способов расширения IDE.
И обратите внимание, что хотя эта статья посвящена плагинам IntelliJ, все интегрированные среды разработки JetBrains имеют общий код. Поэтому многие из методов, использованных здесь, могут быть применены к другим IDE JetBrain , таким как PyCharm, RubyMine и другие.
2. Функциональность плагина
Функциональность плагина для IntelliJ обычно подпадает под одну из 4 категорий:
Пользовательские языки : способность писать, интерпретировать и компилировать код
написано на разных языках Frameworks ** : поддержка сторонних фреймворков, таких как Spring
Инструменты : интеграция с внешними инструментами, такими как Gradle
Дополнения пользовательского интерфейса : новые пункты меню, окна инструментов и кнопки,
Плагины часто попадают в несколько категорий ** . Например, плагин Git , который поставляется с IntelliJ, взаимодействует с исполняемым файлом git, установленным в системе. Плагин предоставляет окно инструментов и элементы всплывающего меню, а также интегрируется в рабочий процесс создания проекта, окно настроек и многое другое.
3. Создание плагина
Самый простой способ начать работу с плагинами IntelliJ – использовать их http://www.jetbrains.org/intellij/sdk/docs/basics/getting started/using dev kit.html[Plugin DevKit]. Это может быть доступно из меню New > Project__:
Обратите внимание, что мы должны использовать JetBrains JDK ** , чтобы обеспечить наличие необходимых классов плагинов на пути к классам. IntelliJ должен поставляться с подходящим JDK по умолчанию, но если нет, мы можем скачать его с here .
На момент написания этой статьи мы можем использовать только Java 8 для написания плагинов IntelliJ . Это потому, что JetBrains в настоящее время не предоставляет официальный JDK для Java 9 или выше.
4. Пример плагина
Чтобы продемонстрировать написание плагина IntelliJ, мы создадим плагин, обеспечивающий быстрый доступ к популярному веб-сайту Stack Overflow из нескольких областей в среде IDE. Мы добавим:
Пункт меню Инструменты, чтобы посетить страницу Задать вопрос
Элемент всплывающего меню как в текстовом редакторе, так и в консоли для поиска
Переполнение стека для выделенного текста.
4.1. Создание действий
Действия являются основным компонентом, используемым для написания плагинов IntelliJ ** .
Действия инициируются событиями в IDE, такими как нажатие элемента меню или кнопки панели инструментов.
Первым шагом в создании действия является создание класса Java, который расширяет AnAction . Для нашего плагина Stack Overflow мы создадим 2 действия.
Первое действие открывает страницу «Задать вопрос» в новом окне браузера:
Мы используем встроенный класс BrowserUtil , поскольку он обрабатывает все нюансы открытия веб-страницы в разных операционных системах и браузерах.
Второе действие открывает страницу поиска переполнения стека и передает текст поиска в виде строки запроса. На этот раз мы реализуем два метода.
Первый метод, который мы реализуем, похож на наше первое действие и обрабатывает открытие веб-браузера.
Однако сначала нам нужно собрать два значения для StackOverflow. Одним из них является языковой тег, а другим – текст для поиска.
Чтобы получить языковой тег, мы будем использовать Program Structure Interface . Этот API анализирует все файлы в проекте и предоставляет программный способ их проверки.
В этом случае мы используем PSI для определения языка программирования файла:
Обратите внимание, что PSI также предоставляет информацию о файле для конкретного языка.
Например, мы могли бы использовать PSI для поиска всех открытых методов в классе Java.
Чтобы получить текст для поиска, мы будем использовать __Editor __API для получения выделенного текста на экране:
Хотя это действие одинаково для окон редактора и консоли, доступ к выделенному тексту работает одинаково.
Теперь мы можем собрать все это вместе в объявлении actionPerformed :
Это действие также отменяет второй метод с именем update . Это позволяет нам включать или отключать действие в различных условиях.
В этом случае мы отключаем действие поиска, когда нет выделенного текста:
4.2. Регистрация действий
Как только мы написали наши действия, нам нужно зарегистрировать их в IDE . Есть два способа сделать это.
Первый способ – использовать файл plugin.xml , который создается для нас, когда мы начинаем новый проект.
По умолчанию в файле будет пустой элемент , куда мы добавим наши действия:
Использование файла XML для регистрации действий обеспечит их регистрацию во время запуска IDE, что обычно является предпочтительным.
Второй способ зарегистрировать действия – это программно использовать класс ActionManager :
Это имеет то преимущество, что позволяет нам динамически регистрировать действия. Например, если мы напишем плагин для интеграции с удаленным API, нам может потребоваться зарегистрировать другой набор действий в зависимости от версии API, которую мы вызываем.
Недостатком этого подхода является то, что действия не регистрируются при запуске. Мы должны создать экземпляр ApplicationComponent для управления действиями, что требует больше кодирования и настройки XML.
5. Тестирование плагина
Как и в любой программе, написание плагина IntelliJ требует тестирования. Для небольшого плагина, подобного тому, который мы написали, достаточно убедиться, что плагин компилируется и что созданные нами действия работают, как и ожидалось, когда мы нажимаем на них.
Мы можем вручную протестировать (и отладить) наш плагин, используя конфигурацию запуска плагина:
Это запустит новый экземпляр IntelliJ с активированным нашим плагином.
Это позволяет нам щелкать по различным пунктам меню, которые мы создали, и открывать соответствующие страницы переполнения стека.
Если вы хотите выполнить более традиционное модульное тестирование, IntelliJ предоставляет headlessless environment для запуска модульных тестов. Мы можем писать тесты, используя любую среду тестирования, какую захотим, и тесты выполняются с использованием реальных немодированных компонентов из IDE.
6. Развертывание плагина
Плагин DevKit предоставляет простой способ упаковки плагинов, чтобы мы могли их устанавливать и распространять. Просто щелкните правой кнопкой мыши по проекту плагина и выберите «Подготовить модуль плагина к развертыванию». Это сгенерирует файл JAR внутри директории проекта.
Сгенерированный файл JAR содержит код и файлы конфигурации, необходимые для загрузки в IntelliJ. Вы можете установить его локально или опубликовать в plugin хранилище для использования другими.
На снимке экрана ниже показан один из новых пунктов меню Stack Overflow в действии:
7. Заключение
В этой статье мы разработали простой плагин, который подчеркивает лишь некоторые из способов улучшения IntelliJ IDE.
Хотя мы в основном работали с действиями, плагин IntelliJ SDK предлагает несколько способов добавления новых функций в IDE. Для дальнейшего чтения, ознакомьтесь с official руководством по началу работы .
Как всегда, полный код нашего примера плагина можно найти в нашем GitHub репозитории .