За что вы любите решарпер?

aleks058

Вопрос, собственно, к тем, кто им пользуется.
Ну чего вы в нём нашли?
Чего он такого может, чего студия не умеет?
Интересуют наиболее лично для вас важные возможности.

timefim

Меня только от одной мысли проганья без него бросает в дрожь.
Анализ кода и исправление его по alt + Enter
Генерация Свойст, Конструкторов alt + Insert
Коментирование (вне конкуренции)
Темплейны ( В чем можно создавать Code Snippets в VS?)
Поиск использования.
Рефакторинг (вне конкуренции)
Дублирование строки без занесения в буфер, навигация по последним местам редактирования, возможность одним ctrl + alt + space внести нужный using, более осмысленный Task List и т.д и т.п.
У меня более осмысленный вопрос, кто нибудь вместо или вместе с решарпером использует девэкспесовский код раш и рефакторинг! ?

timefim

И еще, что нибудь из этого появилось в VS 2008?

pitrik2

Дублирование строки без занесения в буфер
неужели такого в простой студии нету?
позор майкрософту!
обычно строки кстати есть в редакторах
а вот дублирование выделенного - этого мало где есть а бывает очень полезно

6yrop

Меня только от одной мысли проганья без него бросает в дрожь.
+100

6yrop

Интересуют наиболее лично для вас важные возможности.
на словах это не объяснишь, они будут звучать как рекламный ролик. Это надо видеть, как-то мой коллеега (он на другом проекте и там не используется решарпер) посидел около меня буквально 2 мин и начал матерится, почему этот гребанный майкрософт так безнадежно отстает.
P.S. Полный список всех возможностей решарпера можно найти на сайте.

erotic

А какой сайт у них? На resharper.com пробовал, там хня какая-то.
Он совместим с файлами проектов MSVC? Платный? Ссылку, ссылку, ссылку, хочу посмотреть.

6yrop

см. мою подпись
а еще гугл

6yrop

полный список возможносте раньше был на сайте, сейчас куда-то запрятали... подробно не смотрел
Еще есть сайт
http://www.jetbrains.net/confluence/display/ReSharper/ReShar...

erotic

Так это к студии примочка, оказывается.
А как он с Visual Assist X будет себя вести? Надо что-то одно оставить?

6yrop

А как он с Visual Assist X будет себя вести?
не в курсе. Я думаю вместе они не нужны.

bleyman

Несовместимы, вроде.
В решарпере, сцуко, нет Double Effective Key Rate, а то я б уже давно перешёл. Уже полгода где-то прокрастинирую на предмет написания прожки, которая бы это делала, и вдобавок ещё и нужную мне функциональность пунтосвитчера выполняла (потому что существующие прилады на эту тему иссессно нифига между собой не совместимы).

timefim

А как он с Visual Assist X
По поверхностному ознакомление с сайтом сложилось впечатление что он больше заточен под плюсы, или я не прав?

timefim

нет Double Effective Key Rate
Что это такое?

erotic

Это клава в визуалке в два раза быстрее работает, перемещение там по тексту и прочая хренотень. Удобно.

laki

2ALL:
Кстати вопрос. Вот вы прогерами работаете, а у Вас конторы за этот решарпер заплатили?

nikita270601

А почему тебе это так интересно?

6yrop

у меня нет

pitrik2

у нас заплатили

laki

собираю статистику, чтобы потом передать ее в органы

erotic

Давайте себе Classroom License закажем.
А иначе где взять кряк?

aleks058

Заплатили, ессно. У нас крякнутого ваще ничего нет

aleks058

>> Анализ кода и исправление его по alt + Enter
фичу пока не осилил.
>>Генерация Свойст, Конструкторов alt + Insert
Свойства и рефакторинг в студии Ctrl+R, [R, E, M, I]
>> Коментирование (вне конкуренции)
Ctrl+K, C / Ctrl+K, U - коммент-раскоммент. Че еще надо?
>> Темплейны ( В чем можно создавать Code Snippets в VS?)
Их надо руками в XML писать. Не рулез, согласен.
Какие снипеты в дополнение к стандартным ты создал?
>> Поиск использования.
Shift+F12
Ты еще забыл переход к месту декларации - F12
>> Рефакторинг (вне конкуренции)
Про него говорил уже.
Студия 2005 умеет: переименование, генерация свойства, вынос строк в отдельный метод, изредка генерация интерфейса по классу.
Что ктоме этого считаешь полезным?
>>Дублированиестроки без занесения в буфер
Студия умеет, но я никогда не пользусь.
Когда это нужно?
Еще в студии можно нажимать Ctrl+Shift+V и получишь значения из буфера, которые были в нем перед последним. Я тоже очень редко пользую.
>>навигация по последним местамредактирования
Ctrl+-, Ctrl+Shift+-
>>возможность одним ctrl + alt + space внести нужныйusing
Alt+Shift+F10
>>более осмысленный Task List и т.д и т.п.
Да, тасклист стандартный довольно дрянной - отображает TODO только для открытых файлов.
Еще одна супернужная фича - Ctrl+Shift+L - удаление строки. Юзаю намного чаще всего остального
Меня в решарпере радует бесплатный UnitRun.
Вот чего реально в стандартной студии нет, так это интегрированных средств NUnit-тестирования, а тут халява, да еще и выполненная очень цивильно. В чем-то даже лучше TestDriven.Net.

timefim

Писал, писал, цволочь Firefox все потер.
В общем в ВС есть много чего, но в решарпере это реализовано гораздо грамотнее, например что бы раскоментировать /**/ не нужно его полностью выделять,
и на // один хоткей а не два.
>так это интегрированных средств NUnit-тестирования
Team Suite?

aleks058

// Team Suite?
Тим Свит для MSTest сделан - он NUnit не поддерживает.
А тесты все же лучше в NUnit писать, хотя в нем и не хватает простейших вещей вроде generic-методов в Assert.
Тестирование с NUnit лучше автоматизируются (я не знаю, как можно прикрутить запуск MSTest-тестов к CruiseControl-у, например).

6yrop

меня очень прикалывает в решарпере Refactoring->Move
1. Перенос класс в другой наймспейс.
2. Перенос класса в отдельный файл. Понадобился класс, пишешь прям там где стоял, написал класс, все устаканилось — перенес его одной клавишей в отдельный файл.
3. Перенос вложенных классов наружу или в другой класс.

6yrop

еще одна фенька, которая влияет на стиль программирования, "Create From Usage", точнее это набор фенек

mkrec

он с уникодом работает?

erotic

и на // один хоткей а не два.
Делается средствами студии в настройках клавиатурных клавиш.

timefim

Каким образом?

erotic

Настройка Edit.CommentSelection
Я поставил на Ctrl + /
Если нажимаю на невыделенном тексте, то строка комментируется (//).
Если выделены целиком строки, то строки комментируеются (//).
Если произвольный текст выделен, то текст комментируется (/**/).
Аналогично раскомментируется.

timefim

>Аналогично раскомментируется.
У тебя на эту функцию другой хоткей, итого два.

erotic

Ээ... А тут суть в том, чтобы коммент\раскоммент на одной кнопке были? Ну, тода лана

aleks058

Оживим покойничка.
Итак, месяц юзания решарпера.
Могу сказать сразу, что в "голой" студии теперь работать очень сложно.
Фишки, которые меня очень радуют:
- File structure (хоткей конфликтовал со студийным, но фича полезная) - возможность перетаскивать и окружать #region-ами целые логичесчкие куски кода.
- Ctrl+Shif+G - найти всех имплементеров, родителя и т.п.
- Alt+Enter - создать класс\метод\свойство. Реально удобно.
- Find usages (Alt+F7) - действительно поудобнее студийной будет (хотя бы группировки и фильтр на get и set свойства).
- foreach - рулез: автоугадывание типов, коллекций, названий.
- switch - полный просос аналогичному студийному сниппету (для енумов не вставляет заглушки).
- ctrl+N, ctrl+shift+N - поиск классов\файлов по шаблону имени во всем солюшене. Рулез, ибо у нас в приложении очень много файлов и классов, а я не собираюсь запоминать, в каких проектах и в каких папках они лежат. Реально ускорился поиск требуемого объекта.
- Кодогенерация по Alt+Ins (добавление свойств, конструкторов) - несомненный позитив!
- Stack trace explorer - помогает кликами ходить по стек-трейсу от исключения с боевого приложения. Удобно, но юзаю не часто.
- Alt+Shift+F - реформат кода. Удобная штука, если предварительно настроить под себя. Я вот не люблю рисовать {} если в скобках всего один оператор. А мои коллеги не втыкают в код без скобок. Решарпер спасает (вставляя скобки после того, как я написал код).
- Ctrl+F12 - перейти на член класса по имени. Удобно. Юзаю, так как у нас порой за сотню членов в классе.
- Подсветка ошибок в реальном времени. Экономия времени несомненная.
- Move (хоткей конфликтует со стандартным студийным) - перенос класса в другой неймспейс\файл. Пользую редко, потому что не хватает его возможностей (класс может вынести только в ту же папку, полезность замуты про неймспейс я ваще не понимаю).
- угадывание названий параметров методов и переменных - весьма радует.
- Рефакторинги - пользую Rename по F2 ибо быстрее студийного работает. Остальные очень редко.
Говно решарпера:
- Периодически вылетает ошибка с предложением занести баг и джейбрейновскую жиру.
- Switch-template.
- Жрет память (100 метров отжирает без напрягов).
- Иногда можно значительно сузить список автоподстановки (отобразить классы только данного интерфейса, например).
- Подтормаживает с подсказками (больше полсекунды - уже долго!).
- Небольшие задержки при открытии проекта (решарпер парсит файло).
- Фигово запоминает расположение своих окон.
- Официально стоит бабок.
Вывод могу сделать только один - must have!

6yrop

switch - полный просос аналогичному студийному сниппету (для енумов не вставляет заглушки).
не совсем понял о чем ты, сгенерировать кейсы для всех члена енума он может

6yrop

Пользую редко, потому что не хватает его возможностей (класс может вынести только в ту же папку
перенос файла в папку драг-анд-дроп в дереве солюшена
полезность замуты про неймспейс я ваще не понимаю).

о том в каком неймспейсе будет класс можно подумать после его создания

6yrop

Иногда можно значительно сузить список автоподстановки (отобразить классы только данного интерфейса, например).
не встречал

aleks058

Попробуй так:

IMyInterface obj = new // Тут по уму надо показать список тех классов, которые реализуют IMyInterface. Решарпер этого не делает.

aleks058

Как?
Настройки надо крутить или что?

aleks058

перенос файла в папку драг-анд-дроп в дереве солюшена
Но неймспейс-то остается старый!

6yrop

switch
{
}<здесь нажать Alt+Enter>

6yrop

Но неймспейс-то остается старый!
потом перенести в другой неймспейс, либо переименовать неймспейс

6yrop

да вспомнил есть такое
может сделать запрос на фичу, можно на rsdn.ru

pitrik2

IMyInterface obj = new // Тут по уму надо показать список тех классов, которые реализуют IMyInterface. Решарпер этого не делает.
в идее это будет ctrl+shift+space
ctrl+space - показываются все видимые классы
ctrl+alt+space - вообще все известные классы
ctrl+shift+space - список реализаций
я решарпер не знаю, но может там также сделано?

6yrop

да, скорее всего
Smart Code Completion
Smart Code Completion, invoked with Ctrl + Shift + Space, filters the list of methods and variables to match the expected type of an expression. For example, when you use Smart Completion for method call arguments, the list of suggested values is narrowed down only to the required parameter type.
http://www.jetbrains.com/resharper/features/coding_assistanc...

сейчас нет студии, чтобы проверить
Оставить комментарий
Имя или ник:
Комментарий: