Добавление дополнительных js-файлов обрывает jQuery IntelliSense - PullRequest
9 голосов
/ 17 февраля 2009

Я использовал jQuery IntelliSense в VS2008, и это было здорово. Недавно я добавил ссылку на jQuery UI, и с тех пор jQuery IntelliSense исчез. Я обнаружил, что как только вы ссылаетесь на другой файл .js в своем документе, IntelliSense исчезает. Есть ли способ избежать этого?

Ответы [ 6 ]

13 голосов
/ 21 февраля 2009

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

Тем временем используйте следующий обходной путь. Установите SP1 по ссылке, которую вам дал Slace. Если у вас есть ссылка на файл с именем .js и файл с именем -vsdoc.js находится в том же месте, JS intellisense подберет версию -vsdoc. Если этот скрипт пуст, он не выдаст ошибку. Определите плагин jquery, который вызывает генерацию intellisense, и поместите рядом с ним версию -vsdoc. Вы не получите intellisense для пользовательского интерфейса, но вы все равно получите jquery и другие плагины, которые работают.

Все, что вы добавите в версию vsdoc, будет отображаться в intellisense. Вы можете поместить поддельные версии структур данных, которые вы хотите отобразить в intellisense, если хотите.

8 голосов
/ 18 марта 2009

Принятый ответ помог мне решить эту проблему, но не решил проблему. Я установил исправление: http://code.msdn.microsoft.com/KB958502, но все еще получал ошибку.

Ошибка:

Error updating JScript IntelliSense: D:\Dev\Test\Scripts\jQuery-1.3.2-vsdoc.js: 'jQuery.support.htmlSerialize' is null or not an object @ 1430:4

Похоже, что добавление следующего файла без соответствующего файла -vsdoc.js вызывает вышеуказанную проблему.

<script src="../../Scripts/jquery-ui-1.7.custom.min.js" type="text/javascript"></script>

Я добавил пустой файл «jquery-ui-1.7.custom.min-vsdoc.js» в папку с сценариями, и проблема с Jscript Intellisense исчезла.

8 голосов
/ 17 февраля 2009

Вероятно, есть ошибка в одном из нижеприведенных файлов JavaScript. Откройте файл JS, и как только «Updaing JavaScript Intellisense» выйдет из строки состояния Visual Studio (есть пункт меню, который заставит JS intellisense обновляться, не помню, где он находится, я просто создал сочетание клавиш через Сервис -> Параметры -> область клавиатуры) откройте окно «Ошибки» и в разделе «Предупреждения» вы найдете причину, по которой Intellisense не удалось загрузить.

Обычно при синтаксическом анализе одного из файлов обнаруживается ошибка, но при переполнении стека у меня возникали переполнения стека.

Редактировать : Вы также должны убедиться, что у вас установлен этот патч VS: http://code.msdn.microsoft.com/KB958502 и VS 2008 SP1 (сначала установите SP1!). Тогда вам просто нужно иметь:

/// <reference path="/path/to/jquery-1.3.1.js" />

Убедитесь, что вы сохранили -vsdocs в файле intellisense, и он будет автоматически выбран (если он находится в той же папке, что и файл, на который вы ссылаетесь)

2 голосов
/ 18 декабря 2009

Я хотел бы представить немного лучшее решение. Несколько месяцев назад я решил эту проблему и создал очень простой файл vsdoc для jQuery UI. Вот ссылка на пост в блоге (в котором есть файл для скачивания).

1 голос
/ 05 мая 2010

Отлично, трюк заключается в создании пустого файла * -vsdoc.js для каждого проблемного * .js файла.

Я обнаружил эту ошибку, вызванную анонимной функцией, например, как это:

(function($) {
    $.anything...;
})(jQuery);

Надеюсь, что это поможет кому-то создать http://code.msdn.microsoft.com/KB958502 и JScript IntelliSense Team.

1 голос
/ 21 сентября 2009

Я решил это согласно приведенному выше совету с небольшим расширением: у меня была хитрость, чтобы добавить ссылку на моей странице в мою библиотеку jqueryui.com И в пустую версию -vsdoc.js файла, который я создал: 1001 *

<script type="text/javascript" src="../../Scripts/jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery-ui-1.7.2.custom.min-vsdoc.js"></script>

Надеюсь, это поможет!

...