Здравствуйте, 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? чесно говоря не представляю как такое можно сделать....перелопачивать в лоб? тупо и на долго....
Может быть подскажите в каком направлении копать?