Resharper (или Visual Studio) автозаполнение - PullRequest
9 голосов
/ 31 января 2011

Я использую VS 2010 с Resharper. Если у меня есть класс с именем ConfigParserTests, а затем напишите

new ConfigParser(

код будет автоматически дополнен до

new ConfigParserTests()

это не то, что я хочу. Любая идея, как отключить эту неприятную функцию.

[Редактировать]

Что нужно, так это написать

new ConfigParser()

без нажатия клавиши «Esc». В этом случае я использую TDD, поэтому ConfigParser не существует.

[/ Edit]

Я искал в меню resharper и VS intellisense, не находя ничего полезного.

Ответы [ 7 ]

7 голосов
/ 30 января 2012

Открыть Окно , перейдите к Intellisense> Автопопуп . Вы увидите варианты автозаполнения, соответствующие нескольким случаям и распределенные по языкам:

Changing Resharper auto-complete behaviour


Как видите, вы можете выбрать для каждого отдельного случая:

  • Не отображать.

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

  • Отображение и предварительный выбор. (по умолчанию)


Различные варианты могут быть выбраны в разных случаях или на разных языках. Например, вы можете указать другое поведение в C #:

  • После точки

  • После «нового» * ​​1043 *

  • В комментариях к документу

  • Буквы и цифры

  • Где ожидается значение

НТН

5 голосов
/ 01 февраля 2011

При выполнении TDD вы должны перевести VS intellisense в режим предложения вместо обычного режима завершения .

Разница описана здесь

К сожалению, Resharper принимает intellisense, поэтому вы не можете изменить режим без деактивации resharper.

5 голосов
/ 31 января 2011

Не ясно, жалуетесь ли вы на то, какое имя класса он заполняет или в скобках.Я рассмотрю оба.

Если класс, который вы пытаетесь использовать, находится в другом пространстве имен, и вы еще не добавили соответствующий using, то завершение кода делает то, что вы ожидаете- вы сказали ему, какие пространства имен использовать, и вы не сказали ему использовать одно с ConfigParser в нем;поэтому он использует ближайшее совпадение, как и ожидалось.

Но у ReSharper есть ярлыки, которые могут спасти вас, найдя класс и добавив для вас using.Для этого случая я бы посоветовал вам взглянуть на различные опции Ctrl + Space в ReSharper.Вы могли бы написать new cpReSharper покажет вам всплывающее меню с вопросом, имеете ли вы в виду ConfigParser или ConfigParserTests.Когда вы нажмете Enter, чтобы выбрать тот, который вам нужен, он добавит необходимый using в начало вашего файла и завершит new ConfigParser() курсором в скобках.

(Если ConfigParserКласс еще не существует, тогда это один из случаев, когда вы не хотите дополнения кода. Просто наберите new ConfigParser, а затем нажмите клавишу Esc, прежде чем вводить открытое имя.)

Если ваша проблема в том, что ондобавляет закрывающую скобку, помните, что если вы наберете ), ReSharper не добавит вторую закрывающую скобку - он распознает, что вы набираете скобку, которую он уже добавил, поэтому он просто переместит курсор вправо.Если по какой-то причине вы все еще не хотите, чтобы он завершил открытое представление за вас, @ jdv-Jan de Vaan ответ объясняет, где изменить это предпочтение.

3 голосов
/ 31 января 2011

Выберите Resharper \ Options.В списке слева выберите Enirionment \ Intellisence \ Completion поведения.

Затем снимите флажки «Автоматически завершать один элемент с:»

0 голосов
/ 03 января 2013

Выберите Resharper \ Options \ Environment \ Intellisence \ Completion Behavior Затем измените параметры в разделе «Автоматически вставлять круглые скобки после завершения: можете отключить все вместе Really Old Man Voice Я хочу ввести свой собственный (),« Только открытие »или Young Hip Coder Dude I как резарпер, чтобы сделать все это для меня человек

0 голосов
/ 26 апреля 2012

CTRL + ALT + Пробел

Надо отдать должное Zain за то, что он показал нам, как обойти эти проблемы при использовании TDD

http://blogs.msdn.com/b/zainnab/archive/2010/01/22/intellisense-suggestion-mode-vstipedit0012.aspx

0 голосов
/ 26 апреля 2012

Если вы используете resharper 6.0, я бы обновился до 6.1, так как было много подобных ошибок, введенных в 6.0 и исправленных в 6.1.

...