Pull to refresh

Comments 53

А побыстрее, побыстрее вы его сделали? :)
Работа над производительностью ведется постоянно.
По идее — да.

В ветку 8.0 включены Performance-оптимизации, которые не вошли в ветку 7.х + по сообщениям пользователей, 8.0 ЕАР быстрее, чем 7.1.2 release; несмотря на включенные Exception-ы и другую отладочную информацию.
Да, тоже показалось, что быстрее. Спасибо.
Не за что.

Помните, что если в процессе работы наткнулись на сильные тормоза, воспользуйтесь встренным dotTrace Profiler-ом: ReSharper | Help | Profile Visual Studio, воспроизведите тормознутые действия и зааплоадите снэпшот нам. Разберемся и пофиксим!
Есть возможность выделять текущий блок {} цветом?
Это умеет делать студия если блок сворачиваемый и вы наводите курсор на линию, идущую от (+). Решарпер в свою очередь подсвечивает только скобки.
Насколько я знаю в студии это работает только для блока функций.
А для внутренних блоков такого нет.
В QtCreator это сделали удобно, по мере вложенности блоков фон становится темнее.
Надеюсь найти способ это использовать в студии.
Цветом, по дефолту, выделяются только скобки {… }

Если зайти в опции ReSharper | Options | Environment | Editor, то можно выбрать Highlight matching delimiters… with Outline. Это, как я понял ваш вопрос, не совсем то, о чем вы говорите, но хотя бы близко к этому.
Дмитрий, а есть ли какая-нибудь killer-feature по сравнению с 7.1 для тех кто, кхм, не работает с CSS?

Ну, например, R# умеет optimize references, cleanup references… почему бы не уметь visualize references? Это я намекаю на то, что visual studio ultimate ценой ~500к это очень большая редкость и начинание интеграции с графом зависимостей 7й версии можно было бы продолжить и углубить =)

Нет, я ни в коем разе не прошу «фичу по заказу», просто после прочтения пре-релиза желания апгрейдится с 7.1 не возникло, т.к. изменений качественных, касаемых лично меня как разработчика, не заметил. Если, конечно, интересно мнение со стороны.
Я не Дмитрий, но тем не менее отвечу :-)

После того как я попробовал Go To Everything, который заменил Go To Type+Symbol+File/Folder, я больше не могу пользоваться навигацией из 7.1.2 и меньших версий. Работает быстро и находит все что надо. Если любите и пользуетесь текущей навигацией в ReSharper-е — рекомендую попробовать. Думаю, что понравится! :-)

Ну и ко всему прочему, у нас еще есть несколько очень полезных фич, которые пока что не вошли в ЕАР-билды (по причине их неполной готовности). Из того, о чем можно сказать сейчас — поддержка TypeScript. Остальное — дальше, следите за обновлениями!
По поводу Go to everything — а если у меня много классов и я хочу искать только классы? Привык к Ctrl + T уже…
Просто отлично! Спасибо огромное!

А может быть SolBuilder вдобавок умеет профилировать процесс билда (показывать статистику по времени компиляции каждого проекта, на что ушло время)? :))
У EAP какая лицензия?
Он триальный?
EAP для использования бесплатен и не требует лицензии. Когда заканчивается «триалка», достаточно просто поставить свежий ЕАР-билд, и — вуаля — у вас будет свежая лицензия.
Небольшое дополнение: у вас будет свежая лицензия до тех пор пока будут выкладывать свежий билд т.е пока не выйдет релиз. Т.е. на практике это триал.
Я бы сказал, что это ЕАР-триал, т.к. обычный триал истекает через 30 дней. Свежие ЕАР-билды обнуляют этот счетчик.
И сделайте, чтобы он после удаления не отрубал клавиатурные комбинации студии. А то у меня Ctrl+Enter перестал работать. Вылечил переназначением клавиатурной схемы по-умолчанию.
Такая проблема есть, и, к сожалению, пока что нет простого способа ее «вылечить».

Из того, что могу порекомендовать в данный момент:
1. Если есть много клавиатурных кастомизаций, сделать бэкап перед установкой ReSharper-а.
2. При первом запуске выбрать схему шорткатов «None», после чего замапить нужные команды ReSharper-а руками.
3. Проверить «нужные» шорткаты в Tools | Options | Environment | Keyboard.
4. После удаления ReSharper-а (как вы и написали) сделать Reset Keyboard Shortcuts через Tools | Import and Export settings.

Еще раз приношу извинения за неудобства, но, увы, в данный момент простого решения этой задачи нет :-(
Очень не нравится в code cleanup, что в некотрых случаях (как правило на маленьких классах) решарпер переставляет свойства под конструктор. Очень нравится фича clenup, но из-за этой багофичи приходится иногда откатывать изменения, жутко раздражает

И второе — в code inspection есть две настройки «type or type member is never used» (пишу по памяти, возможно название немного отличается), одна для private, другая — для паблик. Очень, ну вот просто крайне не хватает разбиения этой настройки на классы и методы. Удобно когда неиспользуемые методы помечаются серым, но с классами это не проходит — часто классы инстанциируются рефлекшном и поэтому решарпер помечает их серым, т.к не может обнаружить их вызов хотя на самом деле они используются. Хотелось бы иметь возможность отключать эту фичу для классов, при этом не отключая ее для методов.

Прошу, внесите эти репорты в очередь. Второй для меня более важен
По поводу второго — спасибо за открытый реквест.

По поводу первого — это, если я правильно понял, зависит от настроек Type Members Layout. Создайте свой кастомный профиль в ReSharper | Options | Code Editing | Code Cleanup, и выключите для него опцию Reorder Type Members.
Создайте свой кастомный профиль в ReSharper | Options | Code Editing | Code Cleanup, и выключите для него опцию Reorder Type Members

Да, действительно, это оно. Спасибо!
UFO just landed and posted this here
Этот реквест есть в нашем трекере, за него можно проголосовать тут.
Всем хорош R# но пока я не нашёл как решить следующую проблему. Есть у меня большой солюшн, в котором есть библиотека, которая используется другими разработчиками. И в ней полно типов, которые только экспортируются (т.е. не используются самой библиотекой). Естественно на них R# ругается как на неиспользуемые. Аналогично он ругается на многие неиспользуемые public свойства этих типов. Обрамлять каждый такой тип и свойства в коментарии как-то не вариант — это превращает код в кашу, где коментариев решарпера иногда больше, чем самого кода. Я мог бы отключить это в настройке решарпера, но это будет либо только у меня на компьютере, либо для всего солюшена. Было бы очень полезно иметь возможность отключать определённые предупреждения решарпера (причём для определённого класса/свойства/метода/т.п.) и складывать это всё в отдельный файл, который уже будет в source control-е хоститься вместе с проектом. В общем, моя хотеть аналог GlobalSuppressions.cs для решарпера :)
Такая фича уже есть, и соответствующий экспорт/импорт настроек ReSharper-а делается в ReSharper | Manage Options. Можно задать определенные сеттинги у себя на машине, экспортировать *.dotSettings файл и заимпортировать его на всех остальных машинах. Сам файл, при этом, можно положить хоть на сетевую шару, хоть в дропбокс.
Подробнее об этом мы рассказывали в наших блогпостах про ReSharper Settings Management.

Правда, делать отдельные сеттинги для отдельных файлов в данном случае нельзя. Менеджмент опций происходит per-solution.
Это всё замечательно, вот только абсолютно неюзабельно. Если у меня есть три подобных проекта, то под каждый я должен буду выложить свой файл (т.к. у каждого проекта свои предупреждения). Далее я должен буду каждому разработчику, который берёт проект из TFS объяснить, что он ещё должен взять настройки решарпера из какой-то там шары в сети. GlobalSupressions как раз были сделаны именно для того, чтобы настройки критерий качества кода были неотъемлимы от самой библиотеки и находились бы под source control-ом (чтобы если что можно было увидеть какой Вася убрал все NullReference предупреждения для проекта чтобы зачекинить кучу говнокода).
Если честно — не знаком с этим. Можно ли там, к примеру, создать файл в проекте, где указать не выдавать определённое предупреждение для такого-то метода или свойства определённого класса?
К сожалению, файл нужно создавать не в проекте, а в специальной директории Решарпера.
Понятно. Тогда это такой же неприемлемый вариант, как и сохранение настроек в шаре.
Дмитрий, я про аттрибуты, а не про внешние аннотации.
Заходите в R#->Options->Code Inspections->Code Annotations, жмякаете «Copy default implementation to clipboard».

Создаете пустой .cs файл, туда все вставляете. В файле образовывается куча атрибутов (около 20) с разными свойствами полезными. Для вашего случая [PublicAPIAttribute].

Все публичные API помечаете с помощью этого атрибута — R# перестает жаловаться, что класс/метод/свойстов/и т.д. не используется. Заодно отключает подсказки на использование более общего класса, чтоб не повредить API. Если вам нужно просто пометить как используемый, то для этого есть [UsedImplicitlyAttribute].

R# достаточно умный и эти атрибуты можно сделать внутренними.

В качестве альтернативы — можно установить готовую сборку с атрибутами из nuget. Я ее обычно потом с помощью ilmerge встраиваю с интернализацией.
Благодарю, попробую. А то запарился уже. Но, всё же, было бы очень кстати чтобы R# умел подобное через контекстное меню — думаю, подобная фича была бы более актуальна, чем цветовой редактор в css файлах.
«Go to everything» дико раздражает. Как вернуть все обратно?
Будем признательны, если расскажете, чем именно раздражает. Тормозит? Показывает неверные результаты?

Вернуть все обратно просто так нельзя, но Go To File/Folder и Go To Symbol по-прежнему могут работать «в старом» режиме.
1. Показывается слишком много результатов, приходится писать более точный запрос.
1.1. если используется схема 1 класс = 1 файл, то происходит дублирование результатов (показывается и файл и класс), но при этом не показываются конструкторы.
2. Я почти всегда знаю куда я хочу в данный момент перейти — к символу, классу или файлу\папке:

Переход к символу из произвольного места почти никогда не использую, вместо этого использую переход к символу внутри контекста (файл, класс). Переход к папке\файлу использую только для поиска тест-кейсов в NHibernate. В остальных случаях — поиск класса. Меня совершенно не обламывает переключить контекст поиска, благо запрос сохраняется. Так что хотелось бы вернуть возможность перехода к классу.

И небольшой реквест, к примеру, когда я раньше использовал переход к папке, мне на самом деле нужны были не папки, а поиск по неймспейсам. Т.е. я делал так:

ctrl+shift+N, «NH-1234», стрелка вправо (развернуть папку), стрелка вниз до нужного файла.
Спасибо за информацию. Завтра же передам соотв. разработчику.
Раздражает потому что иногда я иногда не хочу видеть заведомо лишних данных. Хочу видеть только файлы/типы если я заранее об этом знаю.
Привычная старая навигация, например, Go To File — остались без изменений. Go To Type пока что «заоверрайджен», но мы его вернем.
Пробовал дебажить свой плагин в VS2012, перед запуском экземпляра R# мне выплюнул тонну окошек с предложением отправить отчет, и не загрузился (сам R#) :(
Сейчас я занимаюсь документацией для SDK 8.0, соответственно с проблемами запуска тоже буду разбираться.
О, вспомнил!.. Тут в спрятанном (/ReSharper.Internal) аннотаторе есть опция, которую хотелось бы видеть публично — «annotatate in source code by attributes».
А еще в аннотаторе глюк — он не показывает проекты, которые лежат в папках.

Я понимаю, что это hidden gem, но все-же.
А Nemerle на какой релиз планируется? А то на RSDN Влад как всегда не многословен ))
Поддержка Nemerle в ReSharper не планируется. Nemerle мы используем для собственных проектов.
UFO just landed and posted this here
Подобные предложения уже поступали :-)

По теме «тормозов» — мы предпочитаем, чтобы полноценный ReSharper работал как надо, поэтому будем признательны за более подробный баг репорт, снапшот через ReSharper | Help | Profile Visual Studio и прочую информацию. К сожалению, фраза «решарпер тормозит» не помогает нам пофиксить все performance-проблемы…

Заранее спасибо!
Sign up to leave a comment.