8

Krótki Wersja czy istnieje sposób, aby wyłączyć Visual Studio IntelliSense dla słowa kluczowego obiektu.Czy mimo to wyłączyć Visual Studio auto kompletne dla obiektu hasła

Długi Wersja Używam Visual Studio 2008, a ja w zasadzie za pomocą anonimowych typów. I zacznij pisać coś takiego:

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

wpisuję w new {

Wtedy widzę, że Visual Studio uznał, że metoda GetOutboundUrl przyjmuje obiekt i zmienił kod do new object{. Teraz trzeba czasu to jest super, z wyjątkiem dwóch powodów:

1) I rzadko posiadają kod, który używa obiektu typu.

2) Jestem rzeczywiście próbuje utworzyć typ anonimowy nie obiekt, więc ta funkcja jest rzeczywiście służyć jako przeszkód.

Podpis dla GetOutboundUrl jest następujący (z książki Pro ram ASP.NET MVC, jeśli ktoś jest zainteresowany):

private string GetOutboundUrl(object routeValues) 

Zastanawiam się, czy istnieje sposób, aby wyłączyć tę funkcję, ale tylko dla obiekt słowa kluczowego - chciałbym zobaczyć, czy rzeczywiście pomijam autouzupełnianie obiektu (osobiście nie sądzę, że będę).

Zdaję sobie sprawę, że mogę wyłączyć to dla wszystkich słów kluczowych, odznaczając "Umieść słowa kluczowe na listach ukończonych", ale chcę je wyłączyć tylko dla obiektu.

+0

FYI, powiązane (dupe?) Qustion: [http://stackoverflow.com/questions/717252/ how-do-i-stop-visual-studio-from-inserting-object-when-i-type-new] (http://stackoverflow.com/questions/717252/how-do-i-stop-visual-studio -z-wstawiania-obiektu-kiedy-i-typu-nowego). Zaakceptowana odpowiedź na to pytanie jest taka sama jak powyższa sugestia: usuń "{" z listy znaków w Narzędziach | Opcje | Edytor tekstu | C# | IntelliSense. FWIW, rozwiązanie "remove {from intellisense dialog" działa dla mnie na VS2008 z SP1. John, czy to rozwiązanie działa dla ciebie? Zgodnie z powyższym komentarzem OrbMan ta poprawka może nie działać dla wszystkich. OrbMan, a –

Odpowiedz

2

Bez zmiany faktycznego ustawienia Visual Studio (w co wątpię), można wpisać "nowy", następnie ESC, a następnie "{". To nie jest idealne, ale powstrzymuje cię od konieczności usuwania słowa "obiekt" za każdym razem.

Możesz zająć się tą szczególną sytuacją edytując opcje: "Edytor tekstu" -> "C#" -> "IntelliSense" => "Zaangażowanie przez wpisanie następujących znaków:". Usunąć "{".

+0

Ucieczka z ucieczki jest moim obecnym rozwiązaniem problemu - dzięki za sugestię - może być przydatna dla innych czytających o tym. – RichardOD

+0

Naprawdę próbowałem usunąć "{" zgodnie z powyższymi sugestiami, zrestartowałem Visual Studio i wciąż dodawałem "obiekt", gdy wpisałem "{". – RedFilter

+0

OrbMan, gdy przeprowadziłem test, usunąłem oba "{" i "}". Czy to Ci pasuje? (Zrobiło to dla mnie.) –

1

Co zrobić, gdy intellisense dostaje irytujące jest wykomentuj kilka wierszy, napisać kod na tych liniach, jako komentarze, a następnie odkomentowane, kiedy skończę. Voila, możesz napisać cokolwiek chcesz, a intellisense nie będzie włączyło się. Innym razem, kiedy potrzebujesz intellisense, nie jest on wyłączony. Mam nadzieję, że to pomoże komuś tam być!

+3

Smutne rzeczy, które ludzie muszą zrobić, aby ominąć "funkcje" Microsoftu. –

2

Zrobiłem ReSharper żywo szablonu:

Shortcut: new 

Contents: 
new { $END$ } 

Teraz mogę typ N-e-w-TAB i skończyć z "nowej {}" i mój kursor między nawiasów klamrowych.

To nie jest idealne, ale jest lepsze.

+1

Mam jeden podobny do tego dla JavaScript do tworzenia anonimowych funkcji, func-TAB create function() {$ END $} –

1

Aby włączyć opcje IntelliSense OFF domyślnie

W menu Narzędzia kliknij polecenie Opcje.

Wybierz folder Edytor tekstu.

Wybierz folder dla języka, który chcesz dostosować IntelliSense.

Na stronie Ogólne własności, jasne pola wyboru dla funkcji IntelliSense, że nie chcą:

Auto list members applies to List Members 

Parameter information applies to Parameter Info