Добавление дополнительных файлов js нарушает работу jQuery IntelliSense

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


person Brian David Berman    schedule 17.02.2009    source источник


Ответы (6)


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

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

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

person Alan Oursland    schedule 21.02.2009

Вероятно, это ошибка в одном из файлов JavaScript, на которые часто ссылаются. Откройте свой JS-файл, и как только «Обновление 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, и он будет автоматически выбран (если он находится в той же папке, что и файл, на который вы ссылаетесь)

person Aaron Powell    schedule 17.02.2009
comment
Ошибка: Ошибка обновления JScript IntelliSense: C: \ Users \ Brian \ Documents \ Visual Studio 2008 \ Projects \ jQueryTest \ jQueryTest \ jquery-1.3.1-vsdoc.js: 'jQuery.support.htmlSerialize' не является объектом @ 1418: 4 Я использую файлы jscript - это файлы пользовательского интерфейса jQuery и jQuery с сайта jquery.com. - person Brian David Berman; 17.02.2009
comment
вам, вероятно, лучше всего отправить это как отчет об ошибке в MS, тогда - person Aaron Powell; 17.02.2009
comment
Я все еще не могу заставить это работать. Кто-нибудь может использовать jQuery с jQuery UI с jQuery IntelliSense? - person Brian David Berman; 17.02.2009
comment
@Brian - Я нашел ваш пост, когда искал решение той же проблемы. В моем случае оказалось, что я также ссылался на другие модули из пользовательского интерфейса jQuery. Возможно, вы можете проверить, что импортируете только нужные файлы js? - person Mark; 03.03.2010
comment
Для чего вам нужен этот ссылочный путь? Мне кажется, он работает без этого, создав фиктивный файл < / а> - person Casebash; 09.06.2010

Принятый ответ помог мне исправить эту проблему, но не решил проблему. Я установил исправление: 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

Похоже, что добавление файла follwing без соответствующего файла -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 исчезла.

person Rick Hochstetler    schedule 18.03.2009
comment
Совершенно нелепо, что это работает как решение, но оно работает: \ WTF Microsoft !!! - person Josh; 02.04.2009

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

person Community    schedule 18.12.2009

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

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

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

person vealer    schedule 21.09.2009
comment
Эта вторая ссылка необходима только в том случае, если вы не установили патч. - person Casebash; 09.06.2010

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

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

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

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

person CallMeLaNN    schedule 05.05.2010