В своем докладе Эрик Биштон рассказал о возможностях IntelliJ Idea для Haxe-программистов.
Эрик работает над Haxe-плагином для Idea уже около 5 лет и является основным его разработчиком.
Также он поддерживает официальный сайт плагина - http://intellij-haxe.org/, занимается его наполнением, пишет документацию.
Вы можете поддержать его работу с помощью patreon - https://www.patreon.com/EricBishton/memberships
Эрик кратко пересказал историю Haxe-плагина:
Компания Jetbrains начала его разработку около 6 лет назад в качестве эксперимента.
Но затем программист, который занимался развитием плагина, ушел из компании (кажется это был Fedor Korotkov) и плагин забросили, т.к. у Haxe слишком мало пользователей, а это значит, что рынок у него небольшой.
Когда компания TiVo начала работать с Haxe, они убедили Jetbrains открыть исходный код плагина и продолжили его разработку под свои нужды. Как раз тогда к разработке плагина присоединился Эрик.
Но когда в TiVo доделали основные нужные им фичи, его разработку опять подзабросили. Эрика переключили на другие проекты и плагином он занимался в свое свободное время.
Спустя какое-то время компанию TiVo купили, а Эрика сократили. Примерно тогда же Джошуа Граник разместил несколько сообщений об ошибках в плагине и Эрик связался с ним, а через него - с компанией FlowPlay, которой и нужно было исправить эти ошибки. Так работу Эрика над плагином стала спонсировать FlowPlay.
Код плагина был передан в Haxe Foundation, и т.к. компания Jetbrains больше не занималась его разработкой, то этот форк был официально признан как основной.
Если хотите узнать, чем же IntelliJ Idea отличается от других IDE для разработки на Haxe - то на википедии есть страничка со сравнением возможностей разных IDE - https://en.wikipedia.org/wiki/Comparison_of_IDE_choices_for_Haxe_programmers
Хотя на этой странице совсем не упоминается VS Code.
Idea является полноценной IDE профессионального уровня, однако и у нее есть свои недостатки по сравнению с другими.
Можно сказать, что VS Code был выбран Haxe Foundation как “точка входа” в Haxe. Такой выбор обусловлен тем, что с ней легко начать работать и вообще просто пользоваться. С Idea же новичку начать работу непросто.
FlashDevelop / HaxeDevelop также очень сильно упрощает начало работы с Haxe - при установке этой IDE будут также установлены все необходимые инструменты, в комплекте идет набор шаблонов проектов для основных нужд. Таким образом FlashDevelop может настроить все необходимое окружение.
Idea так не умеет - и это основная причина того, что программисты не начинают работу с Haxe с нее. И Эрик надеется, что в будущем такая возможность настройки рабочего окружения может появиться и в Idea.
Далее Эрик рассказал об улучшениях в плагине.
Автодополнение по-умолчанию работает с помощью средств, встроенных в IntelliJ Idea (IDE сама “понимает” Haxe с помощью имеющегося парсера языка). В июне 2017 была добавлена возможность автодополнения кода средствами компилятора, но она выключена по-умолчанию, т.к. может работать медленнее, чем с помощью встроенных в Idea средств.
Ускорить работу автодополнения кода с помощью компилятора можно используя сервер компиляции Haxe (compilation server). Но Idea не умеет автоматически его настраивать. Поэтому вам нужно вручную запустить сервер перед запуском самой Idea, а также добавить “--connect” в список параметров компилятора в настройках модуля (во вкладке Haxe).
Также была улучшена поддержка haxelib. Теперь при запуске IDE выполняет команду haxelib, читает список всех установленных библиотек, добавляет их в список библиотек, доступных в вашем модуле, и индексирует их содержимое.
Однако Idea пока еще не умеет одновременно поддерживать библиотеки, установленные в разных локальных репозиториях haxelib (в haxelib есть возможность иметь несколько репозиториев библиотек, и в настройках проекта можно указать какой репозиторий использовать).
Как уже было сказано, Idea сама “понимает” Haxe, весь код парсится средствами IDE, а не компилятором. И в последнее время парсер языка значительно улучшился, стало гораздо меньше ложных срабатываний с сообщениями о синтаксических ошибках.
Но все еще остается проблема с неинформативными сообщениями о таких ошибках, из них, например, сложно понять, что в коде просто не хватает точки с запятой в конце строки.
Поддержка условной компиляции была причиной жалоб №1.
Хотя Idea и “понимает” Haxe, однако использование #if, #elseif, #end ломало парсинг языка.
Временное решение данной проблемы - интерпретировать код, обернутый в #if, #elseif, #end как комментарии, тогда весь остальной код остается для Idea валидным и его можно парсить без проблем.
Однако при этом для кода, обернутого в #if’ы, перестают работать подсветка синтаксиса, а также рефакторинги.
Данную проблему с корректным парсингом всего кода, по словам автора, не решил еще никто, ни в одной IDE нет таких возможностей. Но у Эрика есть идея, с помощью которой потенциально можно решить эту проблему и в скором времени он попытается реализовать ее. Однако решение может оказаться довольно медленным, т.к. потребует множественных проходов по файлам.
В качестве еще одной новой фичи плагина для Idea Эрик назвал поддержку новых возможностей Haxe 4. В последнем официальном релизе есть поддержка short lambdas. А в dev-ветке появилась поддержка final и нового синтаксиса описания типов функций. Эти две фичи появятся в следующем релизе, который обещается в скором времени (в июне?).
Если вам нужна помощь с Haxe-плагином для Idea, то с Эриком можно связаться:
Кроме того, Эрик предоставляет платную поддержку плагина, все средства, полученные от нее, идут на развитие плагина.
Если вы хотите как-то поучаствовать в развитии плагина, то для этого есть множество способов.
Кроме того, помочь проекту можно и финансово:
Также Эрик поделился планами на дальнейшее развитие плагина:
И в завершение Эрик поблагодарил компанию FlowPlay, которая спонсировала работу над плагином.