Re: Есть простая задачка для желающих
От: robot01  
Дата: 07.09.06 10:19
Оценка:
Здравствуйте, IT, Вы писали:

IT>Нужно доделать функцию Go To Definition.


IT>Переход к объектам текущего проекта уже работает, в кишках компилятора сильно копаться не надо. Нужно сделать переход к объектам, которые находятся во внешних модулях. В качестве примера:


IT>
IT>"".ToString();
IT>

IT>Если в студии в C# нажать F12 на ToString, то студия сгенертрует заглушку для класса System.String и спозиционирует туда курсор.

IT>Такую же функцию нужно сделать и нам. Для этого практически всё готово, сильно долго разбираться не надо, зато есть возможность реально потренироваться на N и посмотреть как работает VS SDK.


IT>Если найдутся желающие, то смотреть файл Nemerle.Compiler.Utils -> Nemerle.Completion2 -> CodeModel -> GotoInfo.n.


IT>В этом файле конструкторы принимают объекты и устанавливают Location, если после этого свойство класса HasLocation == false, то нужно посмотреть что у нас за объект и сгенертровать для него файл как это делает студия для C#.


IT>Налетай


Потратил несколько часов на знакомство с поставленной вами задачей.
Честно говоря нормального пути решения я не увидил (не нормальный путь это тупо сгенерировать файл с помощью String.Format).
Нормальный путь для решения сей задачи это: использовать NemerleCodeProvider и с помошью него сгенерить файл.
Все бы хорошо но кодпровайдер хочет стандартные классы из CodeDom, а все что я могу получить это Nemerle.Compiler.TypeInfo, что с этим классом делать ума не пролижу, переколбасить в CodeTypeDeclaration? чесно говоря не представляю как такое можно сделать....перелопачивать в лоб? тупо и на долго....
Может быть подскажите в каком направлении копать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.