Я только что установил CodeRush Pro (ознакомительную версию) для Visual Studio и могу сказать, что пока мне он очень нравится. По сравнению с Resharper, мне действительно не хватает только одной функции. Именно так CodeRush обращается с using. Когда я набираю имя класса, которое не объявлено в каком-то пакете, указанном в using, CodeRush подчеркивает его красным цветом как ошибку (что это такое), но если я наведу на него курсор, он не предложит мне добавить using, а просто скажет это "Необъявленный элемент".
Я должен использовать VS по умолчанию, используя добавление (переместите курсор к идентификатору, наведите курсор на это действительно маленькое поле, которое появляется под первой буквой, нажмите появившуюся кнопку и выберите, например, using System из раскрывающегося меню).
Есть ли способ настроить CodeRush, чтобы предлагать добавление mi при наведении курсора на выделенную "проблему" (которая говорит о необъявленном элементе)?
Вторая часть заключается в том, что в Resharper есть нечто под названием Завершение имени типа. Это улучшенный intellisense. Допустим, у вас нет using объявления в вашем файле. Затем вы набираете что-то вроде ICompar и нажимаете CTRL + ПРОБЕЛ. Конечно, предложений не будет. Но с Resharper вы можете нажать CTRL + ALT + SPACE, и вы получите предложения всех классов, начинающихся с ICompar, даже если они не используются. Когда вы выбираете один из них, вам автоматически добавляется правильное использование.
Есть ли способ заставить CodeRush вести себя таким образом?
Ответ 1 · рейтинг 3 · Rory Becker
ЧАСТЬ I
Visual Studio
Упомянутый вами механизм VS по умолчанию отключается с помощью Ctrl + Period или Shift + Alt + F10.
Шаблоны CodeRush
В этой части я процитирую Марка Миллера (главного архитектора CodeRush):
"Шаблоны CodeRush (например, фрагменты кода VS на стероидах) будут добавлять пространства имен по мере необходимости, поэтому, если вы используете шаблоны для создания классов, методов, переменных, свойств, событий и ссылок на типы, тогда ссылки на пространства имен будут добавлены автоматически, и вы вам редко понадобится использовать функцию VS для добавления пространств имен. Чтобы начать работу с шаблонами, мы рекомендуем закрепить окно обучения CodeRush (DevExpress | Tool Windows | CodeRush) сбоку от редактора и проверить это окно обучения на предмет советов и шаблонов, которые вы можете можно использовать для создания необходимого кода. Просто введите шаблон, отображаемый в окне, и разверните его с помощью клавиши пробела. "
Попробуйте v-серию, m-серию, n-серию и t-серию.
Я имею в виду следующее:
- Запустите обучающее окно CodeRush (DevExpress \ Tool Windows \ CodeRush)
- Закрепите его слева
- Вернуться в редактор
- Type 'v' (no quotes)
- Careful this is context sensitive
- Try this whilst the caret is in a class.
- Попробуйте это, пока курсор находится в методе.
- Теперь посмотрите на окно обучения.
- Вы должны увидеть несколько вариантов дополнительных символов для ввода.
- Введите одно из предложений и нажмите пробел.
Это было ваше знакомство с v-серией шаблонов.
Не стесняйтесь проверить серии m, n и t.
Также обратите внимание, что окно обучения также предлагает предложения, когда вы находитесь в пустой строке.
Плагины сообщества
В CodeRush нет ничего, что предоставляло бы функцию "Добавить использование для этого типа".
Однако существует множество подключаемых модулей сообщества, которые добавляют всевозможные функциональные возможности CodeRush. Эта расширяемость - одна из лучших особенностей CodeRush.
Один плагин, в частности Refactor_Resolve, имеет функциональные возможности, которые могут быть близки к тому, что вы описываете.
ЧАСТЬ II
Я не верю, что в настоящее время CodeRush предлагает какие-либо улучшения intellisense.
Прости
Ответ 2 · рейтинг 2 · Ruben Bartelink
Не ответ, но предлагаю лучший обходной путь для бедняков на случай, если нет лучшего ... это Ctrl-Home (начало файла), затем usl и <space> (развернуть до using System.Linq), затем Ctrl-Minus (Вернуться туда, где мы были - конечно, вы также можно использовать маркеры CR).
(У меня есть запрос в базе ошибок CR, чтобы это было отсортировано)