Автоматическое добавление using в CodeRush

Я только что установил 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 вести себя таким образом?


person Rasto    schedule 21.05.2010    source источник


Ответы (3)


arrow_upward
3
arrow_downward

ЧАСТЬ 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.

Прости

person Rory Becker    schedule 21.05.2010
comment
А как насчет какого-нибудь плагина для улучшения Intellisense VS по умолчанию? - person Rasto; 21.05.2010
comment
Дорогой Рори, я потратил несколько часов на поиск в Google и чтение руководств. Прежде всего: Refactor_Resolve не работает. В обсуждении есть комментарий, в котором говорится, что это не работает и у меня тоже не работает. Во-вторых, должно быть легко кодировать расширение, подобное тому, которое мне нужно (и я не одинок - этот персонал понравится многим разработчикам, я уверен в этом). Как вы хорошо знаете, расширять CodeRush - это детская игра. Но есть некоторые сотрудники, которые я не умею кодировать: stackoverflow.com/questions/2886369/ - person Rasto; 22.05.2010
comment
В эти выходные я выясню, что не работает с Refactor_Resolve. Я также посмотрю, смогу ли я предоставить вам то, что нужно для вашего другого вопроса. - person Rory Becker; 22.05.2010
comment
Хорошо, мне удалось пропатчить Refactor_Resolve для DXCore 10.1. Изменения API препятствовали правильной работе этого подключаемого модуля. Пожалуйста, попробуйте сборку 1264 - person Rory Becker; 22.05.2010
comment
Молодцы, Refactor_Resolve теперь работает. Это очень близко к тому, о чем я действительно просил :)) Однако во всплывающем окне не отображается опция исправления. И я бы сказал, что это не должно быть рефрактором - это меняет то, что делает код, поэтому я предполагаю, что это должен быть провайдер кода, а не рефрактор ... - person Rasto; 24.05.2010

arrow_upward
2
arrow_downward

Не ответ, но предлагаю лучший обходной путь для бедняков на случай, если нет лучшего ... это Ctrl-Home (начало файла), затем usl и <space> (развернуть до using System.Linq), затем Ctrl-Minus (Вернуться туда, где мы были - конечно, вы также можно использовать маркеры CR).

(У меня есть запрос в базе ошибок CR, чтобы это было отсортировано)

person Ruben Bartelink    schedule 24.05.2010

arrow_upward
1
arrow_downward

DX создали еще один образец на основе этого. Я бы хотел, чтобы он попал в продукт CR, но я думаю, что не стоит ныть по поводу бесплатных плагинов (все равно слишком много).

person Ruben Bartelink    schedule 30.05.2011
comment
+1 Но это только для методов расширения, верно? это не решает все думаю? - person Rasto; 21.06.2011
comment
@drasto - Да, вы правы - он, к сожалению, неполный, но я думаю, он служит хорошим примером, если у кого-то было время и желание сделать что-то в этом направлении. - person Ruben Bartelink; 21.06.2011
comment
В любом случае, хорошо иметь эту ссылку здесь. - person Rasto; 21.06.2011