Ребята из JetBrains выпустили новый решарпер и теперь он доступен для "покупки" и скачивания с их официального сайта.
Пожалуй самая интересная фича нового решарпера - поддержка C# 3.0 и LINQ. Но первая вещь которую я заметил, это "Reformat" переименовали в "Cleanup Code", и поначалу, это сбивало с толку. Зато сейчас эта фича поддерживает профайлы, т.е. различные профайлы могут делать различные "очистки кода": переход к авто-свойствам, использование анонимных типов, формирование readonly полей, если это возможно и многое другое.
Но единственное, что у меня пока не получилось - это редактирование стандартных профайлов.
Следующее, на что я обратил внимание это инициализация объектов, к примеру если я напишу
Task t = new Task();
t.Name = "Test";
То решарпер мне предложит поступить следующим образом:
Task t = new Task {Name = "Test"};
Аналогичным образом решарпер предлагает использовать implicit type variable:
Решарпер советует использовать var везде, где это возможно. Такое решение далеко не всегда оправдано, поэтому я отключил этот функционал.

Зачатки JetBrains.Annotation были еще в решарпере версии 2.5. Если помните был такой "Null Reference Analysis", который оповещал разработчика о возможных NullReferenceException в коде. Чтобы избежать такого анализа разработчики добавляли к свойствам, атрибуты NotNull или CanBeNull, которые решарпер позже использовал для инициализации состояния переменных. В новой же версии количество таких атрибутов значительно увеличилось. Скажем, если вы хотите явно указать, что ваш строковый параметр будет обрабатываться с помощью string.Format, то можете написать следующее
[StringFormatMethod("key")]
public void Put(string key, params object[] args) { ... }
После чего вызвав эту функцию
Put("testing {0}, {1}, {2}", 1, 2);
решарпер подскажет, что переменная для аргумента {2} отсутствует. Но использования этой фичи требует включения нескольких JetBrain библиотек в ваш проект, что несколько смущает...
Довольно удобным стал CamelHumps Completion, позоволяющий писать лишь заглавные буквы ключевых слов, названий классов, переменных:
После нажатия магического сочетания клавиш
<Ctrl-Shift-Enter>, получаем
if (CodeViewManager.Instance.SupportsView(StandardCodeViews.FindUsages))
{
}
Как я уже упоминал, теперь решарпер полностью поддерживает C# 3.0 и LINQ, что не может не радовать.
Recent Edits позволяет быстро получить доступ к недавно редактируемым участкам кода (CTRL + "-" уже просто достал!):
И в заключение, хочу добавить, что создатели решарпера клянутся, что он стал быстрее, особенно в обработке ASP.NET кода.
Полезные ссылки:
Официальный сайт решарпера
Новые фичи четвертого решарпера
Скачать Resharper 4.0
Купить Resharper 4.0
Блог Ильи Рыженкова, продукт-менеджера компании JetBrains