Рубрика «intellij idea» - 10

Этат статья является переводом статьи «Developing JSF applications» с официальной вики jetbrains (http://wiki.jetbrains.net/intellij/Developing_JSF_applications) только вместо сервера приложений Tomcat будет использоваться GlassFish.

Мы начнем с подготовки к разработке JSF приложений. Она включает в себя активацию необходимых плагинов, регистрацию GlassFish в IntelliJ Idea и создание Java модуля, подходящего для разработки JSF приложений.

Далее мы разработаем небольшое JSF приложение, в котором будут продемонстрированы некоторые техники программирования и возможности среды разработки. Приложение будет разрабатываться поэтапно: функции в него будут добавляться порциями, необходимые проверки будут осуществляться в конце каждого этапа.
Читать полностью »

Привет-привет!

Как многие из вас читали, а кому-то даже повезло побывать, 28 июня в нашем новом уютном офисе прошел день открытых дверей. Было очень приятно, что огромное число разработчиков желало попасть на это событие, но к сожалению, мест было только на 200 счастливчиков. Мы постарались провести гостей по всем этажам нашего офиса, рассказать про то, как мы занимаемся разработкой и как это делать эффективнее с нашими инструментами, ну и на десерт гости услышали про новую VCS прямо от одного из основателей компании JetBrains – Валентина Кипяткова.

Приглашенные гости имели возможность не только посмотреть на офис и послушать презентации, но и также пообщаться с разработчиками из всех команд прямо в кабинетах офиса, где сидят соответствующие девелоперы. Было очень приятно услышать положительный фидбек от гостей равно, как и ценные замечания, которые мы конечно постараемся учесть в ближайших версиях продуктов. Кроме того, пришедшие разработчики, говорили, что контента хватило бы на целый «День JetBrains». И вот, мы спешим вас порадовать такой «день» действительно скоро состоится, 7 сентября. Правда, впервые он пройдет в шведском городе Мальмо. А возможно после этого, мы проведем его и в России.

Читать полностью »

В этой части: компоненты пользовательского интерфейса. Предыдущая часть тут.

Разработка плагина IntelliJ IDEA. Часть 7
IntelliJ IDEA включает в себя большое количество пользовательских Swing-компонентов. Использование этих компонентов в ваших плагинах гарантирует, что они будут выглядеть и работать согласовано с остальным пользовательским интерфейсом IDE и часто позволяет уменьшить размер кода, по сравнению с использованием стандартных Swing-компонентов.

Меню и панели инструментов

Меню и панели инструментов (тулбары) строятся с использованием системы действий (как уже было описано во второй части).Читать полностью »

В этой части: рефакторинги, форматирование, настройки и другие полезные функции. Предыдущая часть.

Рефакторинг «Переименование»

Операция переименования в IntelliJ IDEA похожа на «Find Usages», IDEA использует те же правила для поиска элементов для переименования и тот же индекс слов для нахождения файлов, в которых могут быть ссылки на элемент, который будет переименован.

Когда выполняется этот рефакторинг, на целевом элементе вызывается метод PsiNamedElement.setName(), а для всех ссылок на него – метод PsiReference.handleElementRename(). Оба метода выполняют одно основное действие – замену нижележащего AST-узла, новым, содержащим введенный пользователем текст. Создание полностью корректного AST бывает довольно сложным, но можно воспользоваться следующим методом: создать фиктивный файл пользовательского языка, содержащий необходимый узел, и затем скопировать его.Читать полностью »

В этой части: подсветка, ссылочная система, автодополнение, навигация по коду. Предыдущая часть здесь.

Подсветка синтаксиса и ошибок

Класс, используемый в IDEA для определения, как соответствующий текстовый диапазон должен быть подсвечен, называется TextAttributesKey. Экземпляр этого класса создается для каждого различного типа элементов, которые должны быть подсвечены (ключевые слова, числа, строки, комментарии и т.д.), он определяет атрибуты по-умолчанию, которые применяются к элементам соответствующего типа (например, ключевые слова выделяются полужирным, числа – синим, строки – курсивом и зеленым фоном). Отображение TextAttributesKey на специфические атрибуты, используемые в редакторе, определено классом EditorColorsScheme и может быть настроено пользователем, если плагин предоставляет соответствующий конфигурационный интерфейс. В подсветке может использоваться наложение нескольких TextAttributeKey: например, один ключ может определять начертание, а другой – цвет элемента.Читать полностью »

Наконец добрались до самой мякотки, в этой части — лексический и синтаксический разбор, PSI (Program Structure Interface), стабы (Stubs). Предыдущие части: 1, 2, 3

IntelliJ IDEA это не только Java IDE, но и мощная платформа для построения инструментов разработки для любого языка. Большинство функций IDEA состоят из двух частей: независимой от языка и специфической для конкретного языка программирования. Поэтому поддержка особенностей какого-либо языка не требует особых усилий – необходимо реализовать лишь специфическую часть, а независимая от языка предоставляется платформой. В дополнение, IDEA предоставляет мощный фреймворк, который позволяет реализовывать собственные функции, необходимые при разработке инструментария.

Регистрация типа файла

Первым шагом при разработке плагина специфического языка является регистрация связанного с ним файлового типа. Обычно IDEA определяет тип файла в соответствии с его именем (расширением).
Тип файла специфического языка – это класс, унаследованный от LanguageFileType, который передает экземпляр класса Language в родительский конструктор. Для регистрации типа файла необходимо предоставить реализацию интерфейса FileTypeFactory, зарегистрированную в точке расширения com.intellij.fileTypeFactory:

<extensions defaultExtensionNs="com.intellij">
  …
  <fileTypeFactory implementation="com.intellij.lang.properties.PropertiesFileTypeFactory"/>
  …
</extensions>

Читать полностью »

Немного теории о проектах и VFS. Предыдущая часть тут.

Структура проекта

В IntelliJ IDEA проект инкапсулирует все исходные коды, библиотеки, сценарии сборки в едином организационном блоке. Абсолютно все действия в IDEA происходят в контексте проекта. Проект может содержать коллекции модулей и библиотек. В зависимости от логических или функциональных требований, можно создать одномодульный или многомодульный проект.

Модули

Модуль – это отдельная сущность функциональности, которая может быть запущена, протестирована и отлажена независимо.
Модули включают такие вещи как исходные коды, сценарии сборки, юнит-тесты, и т.д. Каждый модуль в проекте может использовать определенный SDK, либо наследовать SDK проекта. Модули могут зависеть от других модулей в проекте.Читать полностью »

Продолжаем неравный бой с документаций Intellij IDEA. Предыдущая часть находится здесь.

Конфигурационный файл плагина

Вся функциональность, предоставляемая плагином, а также описание и данные об авторе перечисляются в файле plugin.xml.
Рассмотрим структуру файла, в котором присутствуют практически все значимые элементы.

Читать полностью »
За последнее время у меня накопилось достаточно материалов по разработке плагинов для IntelliJ IDEA, чем и собираюсь поделиться с читателим.

Среда разработки и инфраструктура

Прежде чем начать программировать плагин стоит рассмотреть устройство среды разработки, поддерживаемые функции и их реализацию, и, разумеется, настройку IDE необходимую для разработки плагинов.

Для разработки плагинов подойдет любая современная версия Intellij IDEA – она уже включает в себя полный набор необходимого инструментария.Читать полностью »

День открытых дверей в офисе JetBrains собирает профессионалов разработчиков отовсюду
фото ©Екатерина Жарова

Недавно мы — сотрудники JetBrains в Петербурге — переехали в новый офис на Васильевском острове. Вдохновленные красивым видом из окон и свежим дыханием ветра с моря, мы решили устроить конференцию профессионалов в необычном формате дня открытых дверей — прямо на рабочем месте. Участники конференции будут не просто слушать доклады и задавать вопросы в конференц-зале, а смогут пообщаться лицом к лицу с теми, кто делает популярные инструменты для разработки на нескольких десятках языков — с командами IntelliJ, TeamCity, Kotlin, ReSharper и другими.

На конференции будут и традиционные доклады в залах (программа уточняется, смотрите детали на странице события), будут и Live Support Stations, где можно будет поговорить с разработчиками о беспокоящих вас багах в наших продуктах, будут и мастер-классы, где можно будет научиться самым эффективным приемам работы с инструментами от JetBrains.

Будет интересно: мы приоткроем занавес, пока еще скрывающий наши планы развития, расскажем про поддержку C++ в IDE, расскажем, как мы делаем наши продукты.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js