Erlang плагин для IntelliJ IDEA

в 10:22, , рубрики: erlang, Erlang/OTP, intellij idea, plugin, support, метки: , , ,

Сегодня вышел Erlang плагин для IntelliJ IDEA.
Он бесплатен, доступен как в Community Edition, так и в родственных продуктах: RubyMine, PyCharm, WebStorm и т.д.

Основные возможности

  • Подсветка синтаксиса
  • Автодополнение имен функций, переменных, записей и ключевых слов
  • Поиск по коду для функций, модулей, переменных и записей
  • Базовые рефакторинги: rename и safe delete
  • Навигация по коду: structure view и go to declaration
  • Просмотр докумендации для функций и модулей (edoc формат)
  • Базовый форматтер
  • Подсветка unresoved переменных и записей

Это релиз с набором базовых возможностей для редактирования кода и навигации по проекту, написанному на языке Erlang. Основной его целью понять напраление дальнейшего развития.

Скриншоты

Structure view

Erlang плагин для IntelliJ IDEA

Автодополнение имен функций в export атрибуте

Erlang плагин для IntelliJ IDEA

Find usages для записей (показываются использования в том числе и во внешних файлах)

Erlang плагин для IntelliJ IDEA

Quickdoc для функции

Erlang плагин для IntelliJ IDEA

Автодополнение в теле функции

Erlang плагин для IntelliJ IDEA

Дальнейшие планы

  • Улучшение автодополнения
  • Запуск приложения из IDE
  • Дебаггер
  • Life templates для gen_server и т.п.
  • Документация для функций из стандартных модулей

Сегодняшний релиз очень ранний, он, как уже написано выше, направлен на получение отзывов и учета пожеланий.
Пожелания и недочеты принимаются в трэккер.

Благодарность

При разработке использовался Grammar-Kit — каркас для построения плагинов для поддержки языков программирования по BNF грамматикам.
Рекомендую посмотреть на данный плагин при написании языковой поддержки для IntelliJ Platform.

Ссылки

Послесловие

Да, я знаю про плагин ErlGray, но он, к сожалению, доступен только для ветки 10.x.

Автор: ignatov


* - обязательные к заполнению поля


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