2011-01-27 16 views
13

Mam ostatnio coś naprawdę denerwującego i nie mogę zrozumieć, dlaczego to robi. Nie jestem pewien, kiedy to się zaczęło, bo ostatnio wyczyściłem komputer, więc może to jego ostatnia aktualizacja, a może jakiś czas temu.Visual Studio 2010 JavaScript Intellisense z wielką literą w "funkcji"

Tak czy inaczej, oto, co się dzieje. Kiedy deklaruję anonimową funkcję inline i zaczynam wpisywać część "function() {...}", intellisense VS2010 pojawia się i zamienia moją małą literę na własną wielką literą "Function". Chyba jest to funkcja statyczna w JavaScript lub JScript lub coś innego, ale nie wiem. Tak czy siak, jego po wpisaniu "()", że zakłada to, co chcę.

Jeśli deklaruję funkcję autonomiczną, nie ma na nią wpływu, ponieważ nie umieszczam po niej słowa "()", więc po prostu zostawiam to, co wpisuję.

Oto kilka zrzutów ekranu z tego, co się dzieje.
javascript intellisenseenter image description here

Jest to dość frustrujące, bo nie zauważają go za każdym razem, a potem, oczywiście, funkcja nie wykonuje. Pracuję również w VS2008 każdego dnia, aw 2008 r. Zarówno "funkcja" i "Funkcja" są wymienione w menu intellisense, ale domyślnie są małe, więc nie ma to na mnie wpływu.

Czy jest jakiś sposób, aby zastąpić ustawienia intellisense? Znajdź plik i usuń "Funkcję" z listy, ponieważ nigdy go nie użyję? Ustaw jako domyślny powrót do "funkcji" pisanej małymi literami?

Każda pomoc będzie świetna. Dzięki!

-Jorin

+1

+1 Jest to bardzo irytujące (nawet jeśli jest to zgodne z projektem) – SLaks

+1

@SLaks - Zgodnie z projektem? 'Funkcja' jest konstruktorem' function' i jest rzadko używana (i powinna być używana rzadko). Jeśli ktoś zdecydował, że powinno to być domyślne, tak naprawdę nie wiedzieli, co robią. – benekastah

Odpowiedz

2

Mam prawie dojść do wniosku, że jest to bardziej wydajne, aby wyłączyć Visual Studio IntelliSense w plikach JavaScript. Jednakże, jeśli nie jak w większości aspektów, opcja „Zakończenie komunikat” jest jednym ze sposobów zaradzenia szczególnym problemem jest zastąpienie function z Function po trafieniu miejsca:

enter image description here

Aktualizacja:

myślę nowy rozstaw paren VS2010 musi nadużył mnie do nieświadomie wpisując rzeczy tak (uwaga przestrzeń pomiędzy funkcją i parens):

$(document).ready(function() { 

}); 

Po wykonaniu tej czynności nie wstawia zakończenia IntelliSense do wersji Function.

Wraz z VS2010 sp1 dodali opcję formatowania pakietów bez spacji. Tak więc, gdy wpisuję zamykanie });, formatuje go na paren rozstaw Powrót do:

$(document).ready(function() { 

}); 

... co jest to, co chciałem, aby rozpocząć.

Z początku rozwodził się, ale szybko przekształciło się w pamięć mięśniową.

+0

Co ciekawe, faktycznie wybrano tę opcję. Wygląda na to, że mimo że mówi "tylko zakładka lub wprowadź", oznacza to "tylko kartę lub wpisz lub wpisz nawiasy". :-) Tak, naprawdę nie chcę całkowicie wyłączać intellisense, ponieważ niektóre z tych projektów mają TON funkcji i miło jest je znaleźć, ale niewiele więcej ... – Jorin

+0

Najwyraźniej omijałem zakończenie wywołane przez paren coś jeszcze, czego nie zauważyłem. Zaktualizowano odpowiedź. –

+0

Tak, sądzę, że będę musiał zwyczaj nawprowadzać tę przestrzeń. Bardzo niefortunne. Miałem nadzieję, że ktoś będzie znał sposób edycji plików intellisense lub cokolwiek innego ... – Jorin

2

Ten problem może być spowodowany przez Resharper, przynajmniej w Visual Studio 2013. Rozszerzenie dodaje plik DHtml.js, który zawiera "Funkcję". (Dla każdej innej wtyczki byłby to wystarczający powód do jej odinstalowania.) Dobrze, że robi tak wiele innych rzeczy.) Zobacz to pytanie: Javascript Intellisense list too long...

Edytuj: JetBrains naprawia ten błąd: (http://youtrack.jetbrains.com/issue/RSRP-400812). W międzyczasie ...

Opcje Resharper pozwalają wyłączyć ulepszenia intellisense według języka. Aby rozwiązać ten problem, można wyłączyć javascript przed naruszone, tak jak poniżej:

enter image description here

+0

Chociaż prawdą jest, że Resharper wprowadza ten problem, proponowane rozwiązanie zabija automatyczne intellisense w językach, których nie wybieracie. Możesz pobrać natywną intellisense przez Ctrl-Spacing ... – Steve

+1

@Steve to na pewno. IMO, intellisenseless javascript jest preferowany do javascript, który łamie się podczas pisania. Z niecierpliwością czekamy na wydanie zawierające tę poprawkę, więc nie jest to już decyzja najgorszej alternatywy. –

+0

Jestem leniwy, podoba mi się mój Intellisense :) – Steve

Powiązane problemy