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?

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.


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 :


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


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" />


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.


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>


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" />

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.