Здравствуйте, adontz, Вы писали:
A>Language Service фактически присутствует, но питон я не знаю и как он работает оценить не могу.
Питон динамически типизированный. Так что могут быть проблемы. Но тут главное не это. Тут важно само наличие комплита. А уж чем заполнять списки мы как-нить разберемся.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, AndrewVK, Вы писали:
VD>>И какие проблемы? Сдается мне, что ты просто не в курсе, того что можно вытворять с КОМ-ом.
AVK>Сдается мне ты не в курсе интерфейсов VSIP.
Чтобы сабкласить КОМ-объкты знать структуру конкретных объектов не обязательно. Это общий хак.
В двух словах все просто. Все объекты создаются через фабрику классов. Подменив пару функций из DLL-и можно вернуть свою реализацию. Так же в интерфейсах можно подменять vtbl тем самым перехватывая методы.
Далее все просто... Делаем "куклу" (длл замещающую настоящую) в которой подменяем нужные методы, а остальные транслируем напрямую. Это позволяет пдсовывать свою информацию вместо той что идет из подмененной ДЛЛ-и.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Проблемака. Я уже был зарегестрирован на эту хрень, но ID и пароль уже не помню. VD>А мыло там уже зарегистрировано, так что по новой зарегистрироваться не удается. И главное, не ясно куда стучаться.
Ну хочешь я тебе куда-нибудь закачаю? Есть FTP c 200Мб свободного места?
Здравствуйте, VladD2, Вы писали:
VD>Чтобы сабкласить КОМ-объкты знать структуру конкретных объектов не обязательно. Это общий хак.
VD>В двух словах все просто. Все объекты создаются через фабрику классов.
в vsip это не так. Через COM-фабрику создается только собственно сам Package (и то там тоже определенные ньюансы есть), да еще, пожалуй, генераторы и визарды. Все остальное создается самим пакетом и им же вручную регистрируется в соответствующих сервисах студии. Теоретически конечно можно отчасти сэмулировать среду и поднять пакет внутри себя, но с учетом большого количества сервисов и необходимости подмены гуидов тех же редакторов или типов проектов трах там совершенно нереальный.
VD> Подменив пару функций из DLL-и можно вернуть свою реализацию. Так же в интерфейсах можно подменять vtbl тем самым перехватывая методы.
Влад, я не буду здесь расписывать как устроен VSIP. Поверь, там все не так просто и никакакая подмена vtbl тебя не спасет. Этот путь неверный.
Здравствуйте, AndrewVK, Вы писали:
AVK>в vsip это не так. Через COM-фабрику создается только собственно сам Package (и то там тоже определенные ньюансы есть), да еще, пожалуй, генераторы и визарды. Все остальное создается самим пакетом и им же вручную регистрируется в соответствующих сервисах студии. Теоретически конечно можно отчасти сэмулировать среду и поднять пакет внутри себя, но с учетом большого количества сервисов и необходимости подмены гуидов тех же редакторов или типов проектов трах там совершенно нереальный.
http://www.codeproject.com/macro/vs_custom_window.asp надеюсь ничего пояснять не надо.
VD>> Подменив пару функций из DLL-и можно вернуть свою реализацию. Так же в интерфейсах можно подменять vtbl тем самым перехватывая методы.
AVK>Влад, я не буду здесь расписывать как устроен VSIP.
Да, и не надо так как к воросу принципиальной возможности это отношения не имеет.
AVK> Поверь, там все не так просто и никакакая подмена vtbl тебя не спасет. Этот путь неверный.
Ну, то что принципиально то что я говорю возможно подтверждает приведенная мной ссылка. Я конечно понимаю, что все это вилами на воде писано, но реальных аргументов я от тебя пока не услышал. Меж тем если это пройдет, то можно сэкономить море времени. У меня C#-пный проект хакнутый через MSBuild-target-ы и так делает все кроме комплита. Так что возможно все же удастся влезть в управление редактором и влепить комплит.
В худшем случае можно поступить так... Создать пакет регистриующих только редактор для расширения .n. Его реализоват на базе Rsdn.Editor. Ну, а там уже все интелисенсину будет сделать не сложно. Ну, а проект так и останется C#-пным.
Альтернатива ведь только одна — писать полный пакет с нуля. Это нехилый объем работ. Собственно я не против если Адонц этим займется. Даже помогу чем смогу. Но ничего не случится если я параллельно попробую хакнуть шарповский проект.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, adontz, Вы писали:
A>Да не, тут как я понял движок проектов C# насилуется, а я имел ввиду свой VSIP написать по всем правилам. Благо кое-какой опыт у меня в этом уже есть да и наработки. Я ещё погляжу, но не думаю, что это будет очень уж сложно сделать.
C удовольствием присоеденюсь к проекту. Тоже хочу поднять экспы в области интеграции с VS.
The most annoying and blatantly absent feature of Visual Studio .NET 'extensibility' is the incapacity to insert a custom window into the IDE. Obviously, the Extensibility Object model was deliberately castrated in the interest of Microsoft salesmen, since the VSIP (Visual Studio Integrated Products) package is distributed and sold separately.
Вобщем человек явно не понимает что такое VSIP.
AVK>>Влад, я не буду здесь расписывать как устроен VSIP.
VD>Да, и не надо так как к воросу принципиальной возможности это отношения не имеет.
Ну если тебе времени не жалко, можешь не верить.
VD>Ну, то что принципиально то что я говорю возможно подтверждает приведенная мной ссылка.
Она подтверждает безграмотность автора, который поленился скачать VS SDK, а вместо этого нагородил море хаков.
VD> Я конечно понимаю, что все это вилами на воде писано, но реальных аргументов я от тебя пока не услышал.
Аргументов чего? Неужели ты не понимаешь, что если пакет использует полсотни сервисов, то перекрывать для него site и писать прокси версии всех этих сервисов устанешь?
VD> Меж тем если это пройдет, то можно сэкономить море времени.
Ничего ты не съэкономишь. Хотя конечно поступай как знаешь, флаг тебе в руки.
VD>Альтернатива ведь только одна — писать полный пакет с нуля. Это нехилый объем работ.
Он значительно меньше, чем написание собственной студии, как ты тут предлагал.
Здравствуйте, adontz, Вы писали:
AVK>>А ты готов писать этот проект на Nemerle?
A>А разве кто-то всерьёз собирался? Мне казалось, что C# уже принятое решение.
Боюсь тебя разочаровать, но если решение и принято, то принято оно об использовании Nemerle.
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, Дарней, Вы писали:
VD>>>NemerleVs не подойдет? Д>>лучше NemerleVsip (Vsip = visual studio integration package)
A>Ведь весь смысл проекта в новых топиках Nemerle Vs! Так что никаких VSIP
ТОгда уж ИМХО лучше VsNemerle притяней звучит, да и на слух чуьт по другому воспринимается ж)
Здравствуйте, V.Petrovski, Вы писали:
VP>Здравствуйте, AndrewVK, Вы писали:
AVK>>А ты готов писать этот проект на Nemerle? VP>Я не ткаой фанат как Влад, писать R# на R#
VP>И моё мнение, что лучше писать на C# 2.0 под VS2005.
Моё мнение — лучше писать, чем не писать, выбирайте Лида, c этим кажется всё ясно , и он выбирает язык и формирует команду из Волантёров.
ЗЫ я понимаю, что со стороны не очень красиво, ибо сам я только сочуствующий и жаждущий, но ребята, больше дела.
Мы в Вас верим
V.Petrovski wrote:
> C удовольствием присоеденюсь к проекту. Тоже хочу поднять экспы в > области интеграции с VS. > ... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Кажется у Влада сдохла почта, а тут собрался интересующийся народ. Вобщем вот
У меня появилась несколько идей касательно VSIP.
1. Давайте сперва напишем некоторую базу. Проект который содержит файлы, позволяет их добавлять переименовывать, удалять, редактировать, показывать контекстное меню и проч. Никакой компиляции и отладки. Собственно это у меня уже почти есть Это будет та база над которой множно строить совершенно разные VSIP концентрируясь на действительно специфичных для языка вещах (компиляция и отладка). Это будет тот код, который полезен сам по себе, вне зависимости от успешности остальных частей и хоть как-то оправдает существование проекта.
2. Добавим к этому контроль версий. Причём я бы очень хотел сделать это не только через интерфейсы VS, но в обход, например для CVS/SVN и вообще сделать эту часть максимально расширяемой. Это не объязательно делать срочно, достаточно просто оставить лазейки. Такая расширенная база уже имеет весьма недвусмысленную ценность. Многие ведь мучаются с SVN, нормально ни добавить, ни тем более переименовать файл нельзя. Можно ещё сделать так, чтобы наши веб-проекты не конфликтовали с SVN (там же проблема с именами и нужен спец-билд). Можно делать вещи на которые интерфейсы VS вообще не расчитаны.
3. Язык. Я думал над возможностью проекта для языка Nemerle... и вспомнил, что уже давно люди хотели многоязыковые проекты. Не солюшены, а именно проекты. Технической проблемы в рамках .Net (да и за рамками на самом деле) нет. Есть некоторый бардак с разными настройками для разных компиляторов, Но если реализовать вещи специфичные для компиляторов в виде расширений всё будет ОК. Сделал проект на Nemerle, потребовалось что-то уровнем ниже, добавил файл на C#, Managed C++, Unmanaged C++, да хоть Free Pascal — плевать. То есть поначалу мы сделаем только Nemerle, потом C#, а потом, учитывая что никакой необходимости воевать с парсерами у нас нет можно будет расширяться и дальше в этом направлении.
4. Front End'ы. У нас есть исходный код и есть компилятор. Между ними мы вставляем некоторый преобразователь. Не суть важно что он делает, важна сама возможность. Нередко возникает необходимость генерировать код на Си++/С# из XML или ещё чего-нибудь. А тут мы можем предоставить генератору не просто этот XML, но и все настройки проекта и данные об уже скомпилированном коде. Для тех же DSL-писателей какое-то подспорье наверное.
Вот такие вот идеёки. В каком-то смысле даже план действий. Что скажете?
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, adontz, Вы писали:
[skipped]
A>Вот такие вот идеёки. В каком-то смысле даже план действий. Что скажете?
На самом деле, это только начало для идей.
Если, я надеючь что да, проект начнется и будет жить, то идею будут течь рекой.
Я считаю, что надо начинать с орг.вопросов: CVS/SVN, Solution, Лицензия, Форум и т.д.