Здравствуйте, VladD2, Вы писали:
ВВ>>Комплит можно сделать для классов фреймворка. VD>Языком можно сделать все что угодно. На практике же все не так просто.
Да, я поторопился. С фреймворком будет та же жопа, что и со всем остальным. Все равно нужно производить типизацию.
По поводу 4.0 — тут проблема в том, что они обещали серьезные изменения. Делать ингерацию для 3.1, которая отвалится в 4.0
Плюс как раз пока еще релиза нет, можно затребовать у них кое-какие фишки.
Кстати, вот интеграция для Boo ведь работает как-то с автокомплитом. Я правда Boo совсем не знаю, но он тоже статически типизированный, с выводом типов, автокомплит есть Да и код интеграции вроде как тоже открыт.
ВВ>> Class view можно сделать. Некоторую поддержку рефакторинга. Интегрировать Nemerlish. Ну и написать им, чтобы включили в следующий релиз. Вроде в таком объеме на антирекламу тянуть не должно. VD>Ну, ты уже пробовал сделать? Как оно получается?
Здравствуйте, VladD2, Вы писали:
ВВ>>Я не предлагаю решение, а спрашиваю, почему было выбрано существующее. Для саморазвития, если хочешь VD>Не знаю. Не я его принимал, но я не вижу в нем ничего плохого. Зато вижу плюсы.
А сам бы ты как сделал? Через пул или хранил бы указатель на класс с информацией о файле?
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Воронков Василий, Вы писали:
ВВ>>Комплит можно сделать для классов фреймворка.
VD>Языком можно сделать все что угодно. На практике же все не так просто.
ВВ>> Class view можно сделать. Некоторую поддержку рефакторинга. Интегрировать Nemerlish. Ну и написать им, чтобы включили в следующий релиз. Вроде в таком объеме на антирекламу тянуть не должно.
VD>Ну, ты уже пробовал сделать? Как оно получается?
Да, Class view можно сделать, но я в ту сторону еще не заглядывал, на первый взгляд там от автокомплита один шаг.
Нужно из CodeCompileUnit сделать шарпдевелоповский ICompilationUnit.
Nemerlish кстати я туда уже давно прикрутил.
В релиз они точно не будут мое поделие включать — оно на Nemerle писано (хотя все в том же SharpDevelop).
Что сейчас сделано и работает:
1) Интеграция с msbuild: добавить-удалить файлы, настройка параметров сборки проекта, билд
2) Ссылки на библиотеки макросов и проекты макро-сборок
3) Отладка (оно само — я к этому рук не прикладывал), но с локальными функциями там проблемы
3) Кривая-косая подсветка синтаксиса (я еще не пробовал сносить башку стандартному хайлайтеру)
4) Немерлишь (до кучи, как говорится, — им ваще кто-то пользуется?)
5) Автоподстановка — пока тока имена.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>SharpDevelop 4.0, переведен на WPF, обещали и другой редизайн (к слову, многое из того, что делает hardcase может и отвалиться). Недавно стала доступна то ли бета, то ли альфа, но я не качал.
Што отвалится — починим. Там не так уж и много у меня на GUI висит. Разбираться в альфа-бетах пока резону нет, когда выпустят, тогда и посмотрю.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Здравствуйте, hardcase, Вы писали:
H>>В релиз они точно не будут мое поделие включать — оно на Nemerle писано (хотя все в том же SharpDevelop).
ВВ>А это пофиг. Интеграция с F# там написана на F#.
Здравствуйте, hardcase, Вы писали:
ВВ>>А это пофиг. Интеграция с F# там написана на F#. H>В 3.2 (которую использую) она написана на C#.
А там какие-нибудь фичи вроде комплита появились? Хз, может, переделали. Но, честно, я не думаю, что у них такой C# nazi на проекте, какая разница, на каком языке доступна интеграция и почему это должно мешать включить ее в дистрибутив
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Здравствуйте, hardcase, Вы писали:
ВВ>>>А это пофиг. Интеграция с F# там написана на F#. H>>В 3.2 (которую использую) она написана на C#.
ВВ>А там какие-нибудь фичи вроде комплита появились? Хз, может, переделали. Но, честно, я не думаю, что у них такой C# nazi на проекте, какая разница, на каком языке доступна интеграция и почему это должно мешать включить ее в дистрибутив
Зачем к ним в дистрибутив включать? У нас свой есть. Просто очередную опцию можно сделать — Sharp Develop Binding, наравне с интеграцией в VS.
Здравствуйте, hardcase, Вы писали:
H>Зачем к ним в дистрибутив включать? У нас свой есть. Просто очередную опцию можно сделать — Sharp Develop Binding, наравне с интеграцией в VS.
Чтобы больше людей узнало о Немерле. Т.е. вся пользовательская база #D. Без этого я вообще не вижу смысла в этой интеграции.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Чтобы больше людей узнало о Немерле. Т.е. вся пользовательская база #D. Без этого я вообще не вижу смысла в этой интеграции.
Если мыслить в таком ключе... Надо с разрабами поговорить.
Здравствуйте, hardcase, Вы писали:
ВВ>>Чтобы больше людей узнало о Немерле. Т.е. вся пользовательская база #D. Без этого я вообще не вижу смысла в этой интеграции.
H>Если мыслить в таком ключе... Надо с разрабами поговорить.
Вот только им наша реклама на фиг не упала...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
ВВ>>>Чтобы больше людей узнало о Немерле. Т.е. вся пользовательская база #D. Без этого я вообще не вижу смысла в этой интеграции. H>>Если мыслить в таком ключе... Надо с разрабами поговорить. VD>Вот только им наша реклама на фиг не упала...
А им тоже выгодно, чтобы #D поддерживал больше интеграций. Boo-то они включили, чем Немерле хуже.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Да, я поторопился. С фреймворком будет та же жопа, что и со всем остальным. Все равно нужно производить типизацию.
Именно. Ты уж прости, что я так отвечаю, но обычно если человек этого не понимает, то объяснить ему детали практически невозможно.
ВВ>По поводу 4.0 — тут проблема в том, что они обещали серьезные изменения. Делать ингерацию для 3.1, которая отвалится в 4.0
Если этот самый 4.0 создан на базе WPF, то толку от его поддержки в ближайшие 3-5 лет будет не много. #Develop используют те кого не страивает скорость работы VS, а так же те кто использует его клон MonoDevelop под линуксом, так как там вообще никаких IDE нет.
Если люди настолько круты чтобы воспользоваться не оптимизированным WPF-приложением, то они скорее всего имеют не мало бабла, работают на Винде, и как следствие, имеют VS.
Поддержка старого #Develop имеет смысл именно в качестве рекламы и как легкая IDE которую возможно будет портнуть под MonoDevelop.
ВВ>Плюс как раз пока еще релиза нет, можно затребовать у них кое-какие фишки.
Ну, дык для этого достаточно вступить в контакт с ними. Если они согласятся переделывать базовую реализацию, то будет о чем говорить.
ВВ>Кстати, вот интеграция для Boo ведь работает как-то с автокомплитом. Я правда Boo совсем не знаю, но он тоже статически типизированный, с выводом типов, автокомплит есть Да и код интеграции вроде как тоже открыт.
Дерьмо этот ваш Бу. Там вывод типов работает как в шарпе за тем исключением, что когда он не может вывести тип из декларации, то тупо переходит на динамическую типизацию. Макросы в Бу тоже в зачаточном состоянии (да и не ясно как они в этой нитеграции поддерживаются, подозреваю, что никак).
Плюс у немерла есть серьезные проблемы с реализацией и скоростью.
В #Develop предлагается типизироваться отдельные члены динамически, а парсить только изменяемые файлы. Для немерла это неприемлемо. В детали в даваться не убуду, так как их очень много.
Собственно одной из задач для Nemerle 2.0 я вижу изменение принципов работы компилятора с тем, чтобы урпостить его использование в IDE-режиме. Для этого работа с кодом должна стать версионной и строго иерархичной, чтобы изменение мелкой финтифлюшки не приводило к необходимости повторно обрабатывть тучи данных, и чтобы макросы не могли менять АСТ как им захочется, а всегда порождали новую версию некоторых подветок АСТ.
В прочем, боюсь, что и для Nemerle 2.0 реализовать поддержку #Develop будет проблематично.
ВВ>Автокомплит я сделать не пробовал.
А я поглядел что там к чему и пришел в уныние. Возможно я чего-то не заметил, но если я все понял правильно, то #Develop предлагает всегда динамически парсить весь измененный файл и не позволяет узнать какой его участок был изменен. Плюс он предполагает, что мы будем манипулировать его интерфейсом вроде тайп-резолвера. А для нас это не приемлемо.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>А сам бы ты как сделал? Через пул или хранил бы указатель на класс с информацией о файле?
А черт его знает. Я уже видел имеющееся решение, оценил его оригинальность и счел его весьма разумным. Все что я сделал — это привел его в потокобезопасный вид.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, hardcase, Вы писали:
H>Если мыслить в таком ключе... Надо с разрабами поговорить.
Кстати, с ними бы еще поговорить о предоставлении более низкоуровневого АПИ. Нам нужно получать уведомления об изменении исходников (измененный диапазон) и вручную формировать список автодополнения (без их модели кода). Если они это сделают (думаю им это не составит труда), то реализовать комплит и все остальное будет не сложно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Вроде на C#, если мне память не изменяет. Но, думаю, по тем же самым причинам, по которым интеграция Немерле в VS тоже написана на C#.
Интеграция Немерле с VS написана на двух языках. Основная логика и все сложное написано как раз на Немерле, а на шарпе та обвязка которую мы тупо скопипастили из питоновской интеграции.
В прочем, сейчас я уже не уверен, что это была хорошая идея. Но она дала одно приемущество. Удалось вделить движок интеграции который теперь можно использовать не только в студии.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Интеграция Немерле с VS написана на двух языках. Основная логика и все сложное написано как раз на Немерле, а на шарпе та обвязка которую мы тупо скопипастили из питоновской интеграции. VD>В прочем, сейчас я уже не уверен, что это была хорошая идея. Но она дала одно приемущество. Удалось вделить движок интеграции который теперь можно использовать не только в студии.
Ну так раз ты говоришь, что в Бу даже вывод типов похож на Шарповый, то грех было не содрать код интеграции у Шарпа, благо он доступен. Вряд ли там какие другие причины были не писать интеграцию на Бу. Ну разве что им самим на Бу писать не хотелось