Jak uzyskać obsługę JavaScript / jQuery Intellisense w programie Visual Studio 2008?

92

Myślałem, że jQuery Intellisense powinno zostać ulepszone dzięki SP1. Pobrałem nawet wersję jQuery 1.2.6 z adnotacjami, ale funkcja Intellisense nie będzie działać w oddzielnym pliku jscript. Mam odwołanie do biblioteki jQuery jako pierwsze na mojej stronie internetowej w tagu <head>. Czy robię coś złego?

Mark Struzinski
źródło

Odpowiedzi:

87

U góry zewnętrznego pliku JavaScript dodaj następujące informacje:

/// <reference path="jQuery.js"/>

Upewnij się, że ścieżka jest poprawna w stosunku do pozycji pliku w strukturze folderów itp.

Ponadto wszelkie odniesienia muszą znajdować się na początku pliku, przed jakimkolwiek innym tekstem, w tym komentarzami - dosłownie jako pierwsza rzecz w pliku. Miejmy nadzieję, że przyszła wersja Visual Studio będzie działać niezależnie od tego, gdzie się ona znajduje w pliku, a może zrobi coś zupełnie innego ...

Po wykonaniu tej czynności i zapisaniu pliku naciśnij Ctrl+ Shift+, Jaby zmusić program Visual Studio do zaktualizowania Intellisense.

Jason Bunting
źródło
1
Żaden problem, cieszę się, że mogłem pomóc! Obsługa Intellisense dla JavaScript ma jeszcze długą drogę do zrobienia, myślę, że nawet z dodatkiem SP1 nadal są trochę hakerskie. No cóż, przynajmniej robią coś, żeby pomóc! :)
Jason Bunting
FYI: Zaktualizowałem tytuł tego, aby odzwierciedlić fakt, że nie jest to specyficzne tylko dla jQuery, ponieważ tak naprawdę nie jest. Dzięki za pytanie!
Jason Bunting
Warto również zauważyć, że używasz atrybutu PATH, a nie NAME. Widziałem wiele przykładów w /: /// <reference name = "jQuery.js" /> (NIEPRAWIDŁOWY) zamiast /// <reference path = "jQuery.js" /> (PRAWIDŁOWY)
Nathan
Tak - uh, to właśnie wskazuje mój kod. Przegapiłem coś?
Jason Bunting
1
Shift-Control-j wymusi przeliczenie funkcji Intellisense.
15

Istnieje oficjalnie obsługiwany plik JavaScript z dokumentacją jQuery dla programu Visual Studio 2008. Ten plik jest tylko tymczasową poprawką, dopóki firma Microsoft nie wyda poprawki, która lepiej rozwiąże problem.

Osadzone w ASPX:

<% if (false) { %>
    <script src="jquery-1.2.6-vsdoc.js" type="text/javascript"></script>
<% } %>

Osadzone w JavaScript:

/// <reference path="jquery-1.2.6-vsdoc.js" />

Podnieś to tutaj: jquery-1.2.6-vsdoc.js

Referencje :

JD Courtoy
źródło
To jedyna opcja, która sprawiła, że ​​zadziałało w VS 2010 Ultimate.
Alek Davis
8

Będziesz chciał spojrzeć na ten link:

http://blogs.ipona.com/james/archive/2008/02/15/JQuery-IntelliSense-in-Visual-Studio-2008.aspx

AKTUALIZACJA: Jest nowy HotFix dla Visual Studio 2008 i nowy plik dokumentacji jQuery Intellisense, który przenosi pełny jQuery Intellisense do VS'08. Poniżej znajdują się linki umożliwiające uzyskanie tych dwóch:

http://blogs.msdn.com/webdevtools/archive/2008/11/07/hotfix-to-enable-vsdoc-js-intellisense-doc-files-is-now-available.aspx

http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx

Chris Pietschmann
źródło
Gdybym mógł dać ci 10 głosów, zrobiłbym to. Programowo wygenerowany plik tylko do funkcji Intellisense, o którym mowa w tym miejscu, zmienia jQuery intellisense z prawie bezużytecznego na niezbędny. Wybitny!
Herb Caudill
3

W przypadku wbudowanego kodu JavaScript użyj:

/// <reference path = "~ \ js \ jquery-vsdoc.js" />

Zwróć uwagę na tylne ukośniki.

To nie zadziała:

/// <reference path = "~ / js / jquery-vsdoc.js" />

Peter Mortensen
źródło
2

Nie powinno być potrzeby odwoływania się do wersji „-vsdoc”. Jeśli umieścisz jquery-1.2.6-vsdoc.js w tym samym katalogu, co jquery-1.2.6.js, program Visual Studio będzie wiedział, jak ukryć odwołanie z jquery-1.2.6.js do jquery-1.2.6-vsdoc. js.

Myślę, że to faktycznie zadziała dla każdego pliku.

Hmmm ... to dobre obejście innego pytania w tej witrynie ...

Edycja: ta funkcja działa tylko z VS2008 z dodatkiem Service Pack 1.

Alan Oursland
źródło
Wygląda na to, że osobiście muszę zachować "-vsdoc" w moim odniesieniu, aby to działało ... Używam VS2008 z SP 1. (I tak, te są w tym samym katalogu.) Może muszę spojrzeć na te poprawki sugerowane przez Chrisa Pietschmanna powyżej?
Funka,
Chris ma rację. Funkcjonalność „vsdoc” została dodana wraz z poprawką, o której wspomina powyżej.
Alan Oursland
2

Jeśli dołączasz plik jQuery z adnotacjami do swojego źródła wyłącznie dla funkcji Intellisense, zalecam wykorzystanie dyrektyw preprocesora, aby usunąć go z widoku podczas kompilacji. Ala:

<% #if (false) %>
  <!-- This block is here for jquery intellisense only.  It will be removed by the compiler! -->
  <script type="text/javascript" src="Scripts/jquery-1.3.2-vsdoc.js"></script>
<% #endif %>

W dalszej części kodu możesz naprawdę odwoływać się do jQuery. Jest to przydatne podczas korzystania z interfejsu API bibliotek Google AJAX , ponieważ uzyskujesz wszystkie korzyści oferowane przez Google, a także technologię Intellisense.

Oto przykład korzystania z interfejsu API bibliotek:

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
   google.load("jquery", "1.3.2", { uncompressed: false });
</script>
nikmd23
źródło
0

Jeśli chcesz odebrać plik Intellisense z Microsoft CDN, możesz użyć:

/// <reference path="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.1-vsdoc.js" />
Steve Miller
źródło
0

Upewnij się, że nie używasz zminimalizowanego pliku jQuery.

Użyj Ctrl+ Shift+ J, aby działało po dodaniu plików JavaScript do projektu.

roman m
źródło
Walczyłem, aby inteligencja działała, dopóki tego nie znalazłem, ponieważ korzystałem z wersji zminimalizowanej i zastanawiałem się, dlaczego nie działa ona dla mnie.
RKP