Есть ли способ отключить автозаполнение Visual Studio для ключевого слова объекта

Краткая версия - есть ли способ отключить Visual Studio Intellisense для ключевого слова объекта.

Длинная версия. Я использую Visual Studio 2008 и в основном использую анонимные типы. Я начинаю печатать что-то вроде:

Assert.AreEqual("/SomePath/Stuff", GetOutboundUrl(

Я набираю new {

Затем я вижу, что Visual Studio распознала, что метод GetOutboundUrl принимает объект, и изменила код на new object{. Теперь, должно быть, это здорово, за исключением двух причин:

1) У меня редко бывает код, использующий объект типа.

2) На самом деле я пытаюсь создать анонимный тип, а не объект, поэтому эта функция фактически мешает.

Подпись для GetOutboundUrl выглядит следующим образом (из книги Pro ASP.NET MVC framework, если кому интересно):

private string GetOutboundUrl(object routeValues)

Мне интересно, есть ли способ отключить эту функцию, но только для объекта ключевого слова - я хотел бы посмотреть, действительно ли я пропускаю автозаполнение объекта (лично я не думаю, что буду).

Я понимаю, что могу отключить эту функцию для всех ключевых слов, сняв флажок "Помещать ключевые слова в списки завершения", но я хочу отключить ее только для объекта.


person RichardOD    schedule 20.06.2009    source источник
comment
К вашему сведению, связанный (обман?) вопрос: новый">http://stackoverflow.com/questions/717252/how-do-i-stop-visual-studio-from-inserting-object-when-i-type-new. Принятый ответ на этот вопрос такой же, как и предложение выше: удалить {из списка символов в Инструменты | Опции | Текстовый редактор | С# | IntelliSense. FWIW, решение для удаления {из диалогового окна Intellisense работает для меня на VS2008 с пакетом обновления 1 (SP1). Джон, это решение работает для вас? Согласно комментарию OrbMan выше, это исправление может не работать для всех. орбмэн, а   -  person Justin Grant    schedule 11.08.2009


Ответы (4)


Не изменяя фактическую настройку Visual Studio (в которой я сомневаюсь), вы можете ввести «new», затем ESC, а затем «{». Это не идеально, но избавляет вас от необходимости каждый раз удалять слово «объект».

Вы можете решить эту конкретную ситуацию, отредактировав параметры: «Текстовый редактор» -> «C#» -> «IntelliSense» => «Зафиксировано путем ввода следующих символов:». Удалить "{".

person John Fisher    schedule 23.06.2009
comment
Нажатие escape - это мое текущее решение проблемы - спасибо за предложение - это может быть полезно для других, читающих об этом. - person RichardOD; 23.06.2009
comment
На самом деле я попытался удалить {, как было предложено выше, перезапустил Visual Studio, и он все равно добавил объект, когда я набрал {. - person D'Arcy Rittich; 23.06.2009
comment
OrbMan, когда я запускал тест, я удалил { и }. Это работает для вас? (Это было для меня.) - person John Fisher; 23.06.2009

Я сделал шаблон ReSharper Live:

Shortcut: new

Contents: 
new { $END$ }

Теперь я могу набрать n-e-w-TAB, и я получаю «new {}» и мой курсор между завитушками.

Это не идеально, но лучше.

person Lance Fisher    schedule 25.03.2010
comment
У меня есть аналог для JavaScript для создания анонимных функций, func-TAB create function(){$END$} - person Chris Brandsma; 26.03.2010

Что я делаю, когда intellisense начинает раздражать, так это комментирую несколько пустых строк, пишу свой код в этих строках в виде комментариев, а затем раскомментирую их, когда закончу. Вуаля, вы можете написать все, что хотите, и intellisense не будет вмешиваться. В других случаях, когда вам нужен intellisense, он не отключен. Я надеюсь, что это поможет кому-то там!

person Community    schedule 08.07.2009
comment
Печально, что людям приходится делать, чтобы обойти возможности Microsoft. - person Keith Pinson; 27.02.2014

Чтобы отключить параметры IntelliSense по умолчанию

В меню Инструменты щелкните Параметры.

Выберите папку текстового редактора.

Выберите папку для языка, для которого вы хотите настроить IntelliSense.

На странице общих свойств снимите флажки для функций IntelliSense, которые вам не нужны:

Auto list members applies to List Members

 Parameter information applies to Parameter Info
person Raghav    schedule 23.02.2013