haXeDevelop - новая IDE под haXe

Будущий сайт проекта - http://haxedevelop.org/ - пока там ничего дельного.
Языки используемые при разработке haXe/air + haXe/neko.
Интерфейс будет написан на AsWing. Можно будет писать плагины, пока не знаю на чем - либо это будут SWF-файлы, либо это будут скрипты на HaxeScript, работающие через какой-то интерфейс.

С июня месяца я официально начинаю разработку кросплатформенной IDE, полностью поддерживающую haXe и все его особенности. Равняться буду в основном на FlashDevelop и FDT, а также Visual Studio.

Необходимо реализовать поддержку препроцессора haXe. Это даст возможность автодополнению кода работать правильно, в зависимости от выбранной Цели компиляции (flash, javascript, C++ и т.д.). Так же это даст возможность умозрительно отделять код, который скомпилируется от кода который не скомпилируется.

В моем представлении язык haXe не полон и не совершенен, поэтому я собираю дать IDE возможность видоизменять исходный код перед компиляцией, что позволит реализовать: Полиморфные функции, Полиморфные конструкторы, а так же Перегрузку операторов. (это будет реализовано при помощи заключения некоторых фрагментов кода в макро-функции, как я делал и ранее http://haxe.ru/node/308. Только теперь это будет делать IDE непосредственно перед компиляцией)

Так же я считаю, что должна быть поддержка UML-проектирования и функционального проектирования.

Дебагер (в каком-то виде), и Профайлер. Возможность ставить breakpoint-ы и трейсить значения заранее указанных переменных в определенных местах.

Создание снимков проекта. Т.е. сохранение текущей версии, и возможности до нее откатиться.

Поддержка и автодополнение языка HxSL.

Графический редактор, по возможностям приближенный к Macromedia Flash 8 (Самое удобное средство разработки, что я видел в жизни). Поддержка AsWing-а

Встроенный Help как в Visual Studio.

Собственное выявление типов IDE-шкой.

Крутой рефакторинг, а не как в FlashDevelop

Создание собственных кнопок, для каждого проекта, на которые можно вешать исполняемые скрипты (shel, bat, hxml)

Планирую включить в IDE всякие удобные фишечки из других IDE, типа шаблонов или Quick Fix из FDT, или автодополнения switch-case для Enum (в haXe это особая тема). И мне необходима ваша помощь - подскажите, кому чего не хватает.

Комментарии

Автодополнения

Для автодополнения и построения ast(дерево классов, переменных и т.д) можно использовать генератор грамматик типа bison. (код получается вполне понятным и его легко портировать на любой яп). На хабре есть отличные статьи про это.(там даже компилятор написали). А так в целом идея супер. Только не совсем себе представляю поддержку виз. редактирования и анимации(имхо, это самое сложное будет, так как надо с форматами файлов разобраться).

Уже написал

Уже написал лексический анализатор, правильная подсветка считайте обеспечена. Начало выявлению типов и автодополнению положено

И?

Где смотреть, что уже написал? Есть открытый доступ к исходникам? Что насчет коллективной помощи?

И +2

Ждем дальше, месяц почти прошел. А новостей 0

Тоже хотел

Тоже хотел что-то похожее реализовать на haxe/air.
Хотелось бы увидеть ещё такой функционал:
1. Коллективная работа над проектом и над отдельными файлами(например как в google doсs). В списке файлов видно у скольких человек он открыт.
2. Поэтому ещё чат+микрофон и видео(но это можно добавить в последнюю очередь, т.к. есть скайп).
3. Хотелось бы чтобы работало множественное наследование:
class man extends head, body, hands {
//...
}
Готов участвовать в разработке. Могу помочь непосредственно с кодом. axgord@gmail.com

Вот тут хорошо

Вот тут хорошо написано про множесвеное наследование: http://habrahabr.ru/blogs/Flash_Platform/120269/
Вариантов как такое реализовать много.
На выходных набросаю что-нибудь.

Man extends ... ?

Man extends Head, Body, Hands ... До чего ж мы так дойдём? )) Это что-то контрбиблейское или игра про мутантов? )
А если серьезно, то про множественное наследование это точно не к создателям IDE. В крайнем случае к Николя.
А имхо лучше вообще никуда. С Гослингом по этому поводу согласен. Я предпочитаю Man extends Human или Man extends Monkey и иже с ними в крайнем случае ;) А руки-ноги-хвосты композицией.

Множественное

Множественное наследование это вообще что )
Я знаю можно реализовывать несколько интерфейсов, но чтобы наследовать несколько классов...
Мне такое явно не по силам.

Коллективная работа это конечно круто - и в принципе это даже нечто реализуемое

Если

Если реализовать колективную работу, тогда наверно лучше выделить две части: серверную и клиентскую.
На серверной можно создать проекты и добавить к ним пользователей. На клиентской подключение к серверу, выбор проекта и вход.
В обыном режиме, после установки редактора, можно сделать чтобы молча подключалось к 127.0.0.1, и будет изначально выглядить как обычный редактор. Чтоб не напугать новых пользователей.
Клиенская часть копирует к себе все файлы, чтобы можно было проводить эксперементы и не сломать весь проект. После того как всё отлажено, новые файлы можно выгрузить на сервер. При этом пользователь по умолчанию будут подключатся к последней ветке, если начнёт работать с файлами в ней.
Всё это поможет избежать развлетвлений. И сэкономить кучу времени при коллективной работе.
Вот как я это вижу.
После этого будет возможно сделать браузерную версию в урезанном виде. Будет демонстрировать часть функцианала без установки, и выручит если нужно внести правки в проект с ПК без редактора.
Если всё получится потом можно добавить todo и другие плюшки.

Эклипс как раз очень тормозная ide

Эклипс как раз очень тормозная ide)
Не в обиду автору, но в идеи следует добавить собственную операционную систему и корованы - там уже дел лет на пять для команды человек из десяти

Имхо, автору следует:
- спросить себя "зачем"
- сопоставить возможности с желаниями, выкинуть лишнее, оставить 1-2 пункта
- расставить все по местам (что должна делать ide, что компилятор, что отдельные утилиты)

А именно:
- либо реализовать что-то действительно haxe-полезное (в списке это "Графический редактор")
- либо присоединиться к существующим проектам, желательно перспективным (fd/eclihx)
- либо общаться с ncannasse по поводу фич языка ([holywar]кстати, перегрузка операторов - сахар[/holywar])

IDE-haXe должно

IDE-haXe должно быть написано на haXe. А таких проектов нету. Ктому же писать надстройки на eclipse - по-моему не лучшая идея. Он сам по себе тормозной и разваливается на глазах )

Не не не ) Не всё так пугающе как выглядит.
В голове уже почти все по полочкам.
Скоро приступлю. С июня

про Eclipse, не для холивора )

вот вы заладили про "eclipse тормозной". "разваливается на глазах" - это что за ужасы такие в виду имелись? )
не знаю что у вас там за компьютер, как и куда вы ставили этот самый Эклипс, что именно в нем "разваливается" и какой опыт работы в нем, но как человек проводящий большую часть рабочего времени в Eclipse FDT4 скажу, что по скорости она не сильно отличается от FD, а с учетом возможностей и особенно того, что код проверяется на лету даже без сохранения как например в FB (версия 4, тоже кстати довольно шустро работает на том же Eclipse), в результате рабочий процесс часто идет гораздо быстрее.

не для холивора, просто не люблю подобные "мифы". Не нравится - ок, не пользуйтесь, пишите свою. Зачем не проверенные на серьезных командных проектах и устаревшие штампы пиарить? Для хелловорлдов и тестов да, наверное Эклипс не самый быстрый старт, но на большом проекте, с распределенной по подготовке, ОС и т.д. командой, грамотно сделанная IDE на Eclipse оставит все супер-мега-легкие мутировавшие блокноты нервно курить в сторонке ) Поверьте, есть опыт и вполне хорошо отношусь и к "блокнотам". если нужно пару скриптов быстро накидать пользую что-ндь типа Notepad ++ или Geany. Просто каждому инструменту своё.

[оффтоп]

[оффтоп]
это не совсем мифы, возможно ключевые слова тут - грамотно сделанная IDE на Eclipse
в силу определенных причин работаю не на самой шустрой машинке (cel450 2.2ггц, 2гб оперативки), eclipse+pdt, eclipse+aptana, spket
когда перешел на это дело с с++/с# visual studio - было очень противно, особенно скорость и отсутствие intellisence, потом привык
для сравнения - FD ест сейчас 80МБ, запускается моментально
Eclipse запускается примерно минуту (сплешскрин), потом висит минуту перепроверяя проект. В памяти занято 800(!)МБ.
Нажатие ctrl-space (само по себе убожество, по сравнению с autocomplete on typing) список подсказок (в 90% случаев - не в тему) показывает через секунду раздумий.
Опыт общение с плагинами для android - показывает что они все примерно такие же.
Если FDT (не работал с ней) нормальная ide - то это скорее исключение

p.s. особенно приятным при знакомстве с eclipse стало exception при нажатии на кнопку save)
[/оффтоп]

[оффтоп]

ахаха ) А у меня в эклипсе дохнут кнопки после спящего режима

Насчет вирт. машин

FlashDevelop вот например тоже написан на языке, который в байт-код транслируется. И ничего не тормозит. JIT компиляция решает.
Вроде как у Neko тоже JIT компиляция есть.

+ Eclipse...

поддержу. имхо, как раз для IDE виртуальная машина - отнюдь не помеха. Достаточно вспомнить Эклипс и другие IDE бегущие на Java. Вообще, на данный момент можно сказать, что лучшие из существующих IDE бегут как раз на виртуальных рантаймах.

Это вы в какой

Это вы в какой срок собираетесь всё это сделать? Надеюсь вы планируете постепенно наращивать функционал, а не в омут с головой на пять лет.
Так или иначе - удачи, крепких нервов и несгибаемой силы духа вам!
___
Тихо, идёт запись! FlashFang.com

Сроки

Насчет этого не решаюсь пока ничего говорить. Видно будет. Функционал конечно постепенно. Думаю всё как бы плагинами будет добавлятся

смело

по описанию действительно звучит как редактор мечты. но по этому же пока, в отсутствие хотя-бы прототипа с трудом воспринимается более чем гигантские планы. особенно в свете недавнего анонса haXe FDT beta - который поддерживает Influxis и который даже на такой стадии и при наличии Eclipse и FDT в основе до сих пор толком не осилил приемлемую работу автодополнения.

но в любом случае удачи и обязательно помогу с переводами на английский, если до этого дойдет.
да, если разработка будет открытой (open source) мне было бы также интересно взглянуть и на архитектуру haXe-air части. вдруг тоже смогу чем-то помочь.

P.S. "Графический редактор, по возможностям приближенный к Macromedia Flash 8" - вот это, как ни странно, для меня было бы киллер-фичей. давно недоумеваю почему никто не делает подобных редакторов и у перегруженных адобовских IDE для графики и анимации по сути до сих пор нет конкурентов. а Flash 8 и для меня близок к идеалу.) легкий и ничего лишнего. до сих пор собираю в нем библиотеки для haXe проектов.

>Интерфейс

>Интерфейс будет написан на AsWing
Жаль конечно.

Главное для haxe IDE
1) это простая навигация по классам и библиотекам, быстрый поиск по определениям (методы, переменные, классы).
2) подсветка и автодополнение.
3) поддержка ВСЕХ платформ а не только flash.
4) кроссплатформенность
5) бесплатность
Учтите это когда будете писать IDE и может тогда она станет популярной.

По этим критериям я выбрал flashdevelop (windows), komodoedit (linux).

komodoedit?

вот это я пропустил. насколько haXe там поддерживается? ссылка на скачивание плагина для него с haXe.org не работает.

на самом деле я

на самом деле я не использовал расширение для haxe. оно уже устарело.
но когда пробовал новую версию komodo я попробовал сделать ассоциацию hx фавйлов с action script.
a т.к. большя часть языка по синтакcису похожа на action script то и расширение NST для вывода дерева у классов работает.

вот список расширений
NST
Action script
Aero theme
Color tab
Fast open
Fuzzy open
Komodin
Nav
Places
ToDo helper

не flashdevelop но уже чтото достойное для linux.
проекты можно собирать через toolbox. и не зависит от типа проекта cpp/php
все хочу создать файл автодополнений, komodo в какой то степени это позволяет. но пока нет времени.
можно было бы скрипт для автогенерации этого файла автодополнений на основе исходников haxe библиотек.

спасибо

я попробовал. не особо впечатлился, честно говоря. но все равно за информацию спасибо!

Я такого

Я такого редактора два года ждал!

Сразу могу

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

Советы

Мне нужны любые советы, рекомендации и пожелания - так что пишите. В дальнейшем мне возможно потребуется помощь с переводом на английский язык некоторых текстов.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <blockcode> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Use [gist:####] where #### is your gist number to embed the gist.

Подробнее о форматировании

CAPTCHA
Для отсева спамеров
f
8
G
a
x
L
Enter the code without spaces and pay attention to upper/lower case.