Здравствуйте, VladD2, Вы писали:
VD>А чем не устраивает ReSharperздесь? В смысле, делай если хочется. Но вот есть ли толк?
Про решарпер знаю. Хочется самому, ручками научится.
Кстати поглядел на кодеаналайзер. на сколько я понимаю он рисует дерево согласно внутреннему представлению ничего при этом не меняя, отсюда вопрос, почему при разборе одного юнита получается два неймспейса на одном уровне,
глобальный и тот который программер навалял, хотя вроде как они должны быть вложеные (IMHO программерский должен быть ребенком глобального).
VD>Для того, чтобы из R#-а сделать тул для рефакторинга сначала нужно обязательно написать полноценное разрешение имен. Пока что-оно сильно ограниченное.
VD>Вот тут R# под SVN и в открытом доступе.Автор: VladD2
Дата: 21.07.04
есть описание по сборке R#-а.
Угу, но я вроде уже со сборкой разобрался, а поддержка SVN понадобится когда напишу и коммитить соберусь что-нибуть.
А>>Натравил CodeAnalizer на сорцы R# (RSParser) поскольку других под рукой не оказалось. Получил ошибку парсинга
VD>...
А>>Пригляделся к сорцам и убидел что диагностика не соотвествует действительности.
А>>Думаю бага, низкого приоритета.
VD>Это не приоритет. Это недоработка. Просто R# переведен на C# 2.0 и потехоничку использует его новые фичи. В том числе дженерик-интефейсы. Вот в этом файле как раз явная реализация этого дела:
VD>VD>IEnumerator<RAttributeDeclaration> IEnumerable<RAttributeDeclaration>.GetEnumerator()
VD>{
VD> throw new NotImplementedException();
VD>}
VD>
VD>А сейчас это дело не обрабатывается. Я как раз сейчас над этим работаю. Там не все так просто. Это фишка не по зубам для LL(1)-парсера (коим является используемый нами CocoR).
VD>Дело в том, что метод сам по себе может быть дженерик. Тогда запись будет примерно такой:
VD>VD>IEnumerator<X> IEnumerable<X>.GetEnumerator<Y>()
VD>
VD>Каждый участок Xxx<...> является так называемым "простым именем". Но имя метода плюс параметры типа тоже прокатывает под определение простого имени. Так что нужен более делатьный контроль.
VD>Ну, а так как времени нехватает, то торможу по тихончку. В обще, надеюсь в ближайшее время устранить эту недороботку.
VD>Пока что можно тестироваться на других проектах. Например, есть проект RscTest. Это специально созданная копия RSParser, но замороженная на стадии когда проект еще не был переведен на C# 2.0. На нем все должно проходить верно.
Ясно. Буду смотреть дальше.