Как добиться того, чтобы JavaScript / jQuery Intellisense работал в Visual Studio 2008?

92

Я думал, что jQuery Intellisense должен быть улучшен с помощью SP1. Я даже загрузил аннотированную версию jQuery 1.2.6, но intellisense не будет работать в отдельном файле jscript. У меня есть ссылка на библиотеку jQuery на моей веб-странице в теге <head>. Я что-то не так делаю?

Марк Струзински
источник

Ответы:

87

Вверху внешнего файла JavaScript добавьте следующее:

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

Убедитесь, что путь правильный относительно позиции файла в структуре папок и т. Д.

Кроме того, любые ссылки должны быть вверху файла, перед любым другим текстом, включая комментарии - буквально, самое первое в файле. Надеюсь, будущая версия Visual Studio будет работать независимо от того, где она находится в файле, или, может быть, они сделают что-то совсем другое ...

После того как вы это сделаете и сохраните файл , нажмите Ctrl+ Shift+, Jчтобы Visual Studio обновила Intellisense.

Джейсон Бантинг
источник
1
Нет проблем, рад, что смог помочь! Поддержка Intellisense для JavaScript еще предстоит пройти долгий путь, я думаю, что даже с SP1 все еще немного взломано. Ну хоть что-то делают, чтобы помочь! :)
Джейсон Бантинг
К вашему сведению: я обновил заголовок, чтобы отразить тот факт, что это не относится только к jQuery, поскольку на самом деле это не так. Спасибо за вопрос!
Джейсон Бантинг,
Кроме того, обратите внимание: убедитесь, что вы используете атрибут PATH, а не NAME. Я видел много примеров с /: /// <reference name = "jQuery.js" /> (НЕПРАВИЛЬНО), а не /// <reference path = "jQuery.js" /> (ПРАВИЛЬНО)
Натан
Ага, это то, что указывает мой код. Я что-то пропустил?
Джейсон Бантинг,
1
shift-control-j заставит пересчитать intellisense.
15

Существует официально поддерживаемый файл JavaScript документации jQuery для Visual Studio 2008. Этот файл является лишь временным исправлением, пока Microsoft не выпустит исправление, которое более адекватно решит проблему.

Встроено в ASPX:

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

Встроено в JavaScript:

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

Возьмите его здесь: jquery-1.2.6-vsdoc.js

Ссылки :

JD Courtoy
источник
Это единственный вариант, который заставил меня работать в VS 2010 Ultimate.
Alek Davis
8

Вы захотите посмотреть эту ссылку:

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

ОБНОВЛЕНИЕ: есть новый HotFix для Visual Studio 2008 и новый файл документации jQuery Intellisense, который обеспечивает полную поддержку jQuery Intellisense в VS'08. Ниже приведены ссылки для получения этих двух:

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

Крис Питчманн
источник
Если бы я мог дать вам 10 голосов, я бы это сделал. Упомянутый здесь программно созданный файл, предназначенный только для intellisense, изменяет jQuery intellisense с почти бесполезного на незаменимое. Замечательно!
Херб Кодилл,
3

Для встроенного JavaScript используйте:

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

Обратите внимание на обратную косую черту.

Это не будет работать:

/// <путь ссылки = "~ / js / jquery-vsdoc.js" />

Питер Мортенсен
источник
2

Вам не нужно ссылаться на версию "-vsdoc". Если вы поместите jquery-1.2.6-vsdoc.js в тот же каталог, что и jquery-1.2.6.js, тогда Visual Studio будет знать, что нужно скрыть ссылку jquery-1.2.6.js на jquery-1.2.6-vsdoc. js.

Я думаю, что это действительно сработает для любого файла.

Хммм ... это дает хороший способ решения другого вопроса на этом сайте ...

Изменить: эта функция работает только с VS2008 Service Pack 1.

Алан Оурсленд
источник
Похоже, что мне лично нужно сохранить "-vsdoc" в моей ссылке, чтобы заставить его работать ... Я использую VS2008 с SP 1. (И да, они находятся в том же каталоге.) Может мне нужно посмотреть на них исправления, предложенные Крисом Питчманном, выше?
Funka
Крис прав. Функциональность "vsdoc" была добавлена ​​с исправлением, о котором он упоминал выше.
Алан Оурсленд,
2

Если вы включаете аннотированный файл jQuery в свой источник исключительно для intellisense, я рекомендую использовать директивы препроцессора, чтобы удалить его из вашего представления при компиляции. Ала:

<% #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 %>

Позже в коде вы действительно сможете ссылаться на jQuery. Это удобно при использовании API библиотек Google AJAX , потому что вы получаете все преимущества Google, а также intellisense.

Вот пример использования API библиотек:

<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
источник
0

Если вы хотите забрать файл Intellisense из Microsoft CDN, вы можете использовать:

/// <reference path="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.1-vsdoc.js" />
Стив Миллер
источник
0

Убедитесь, что вы не используете свернутый файл jQuery.

Используйте Ctrl+ Shift+ J, чтобы он заработал после добавления файлов JavaScript в проект.

роман м
источник
Я изо всех сил пытался заставить работать intellisense, пока не нашел это, потому что я использовал уменьшенную версию и задавался вопросом, почему она не работает для меня.
RKP