Модули Javascript AMD: как получить интеллектуальное представление Visual Studio по модулям

Изучив определение асинхронного модуля (AMD) в контексте javascript, мне стало интересно, как получить intellisense в Visual Studio 2010 для зависимого модуля.

Например, данный модуль A:

define(function() {
    return {
        square: function(value) {
            return value * value;
        }
    };
});

и соответствующий модуль B:

define(["A"], function(a) {
    return {
        value: a.square(10)
    }
});

Затем я хотел бы иметь полный интеллект для модуля A (представленного как параметр a) в модуле B. Обратите внимание, что оба этих модуля будут определены в отдельных файлах (в данном случае A.js и B.js).


person Charles    schedule 16.04.2012    source источник
comment
Я опубликовал сообщение об ошибке для Visual Studio по аналогичной проблеме: connect.microsoft.com/VisualStudio /feedback/details/2825862 (хотя он не понял мой логин, когда я писал). Если аналогичные условия решают вашу проблему, пожалуйста, прокомментируйте проблему.   -  person beruic    schedule 17.06.2016


Ответы (2)


Похоже, что автор RequireJS работает над поддержкой Intellisense здесь: https://github.com/jrburke/requirejs-intellisense

К сожалению, я еще не заставил «магию» работать.

Обновление: я заставил это работать в определенных сценариях. В частности, он отлично работает, когда все файлы js находятся в одной папке.

person dcstraw    schedule 17.04.2012
comment
Я поместил все файлы javascript в одну папку и сослался на require.js (перетащите файл в редактор, чтобы получить справочный комментарий). Я обнаружил, что обычно требуется несколько секунд, чтобы начать работу. Я заставил его работать с некоторыми другими структурами папок, но это казалось довольно ограниченным. Также я думаю, что это работает только для обязательных вызовов (не определяет). - person dcstraw; 23.04.2012
comment
Я получаю функции определения и требования (т.е. «требуется» отображается в intellisense в определении модуля по умолчанию). Однако я не могу получить intellisense для теста или человека, то есть «теста». не перечисляет numberProperty и childObject. Это то, что я имел в виду под «полным» интеллектом. - person Charles; 19.05.2012
comment
Получил работу, вот что я сделал: 1. Клонировал github.com/jrburke/requirejs-intellisense 2. Создал пустой sln веб-приложения в vs 11 (vs 10 у меня не работает) 3. Скопировал все файлы js из теста в sln 4. Открыл default.js и удалил префикс 'js/' (человек и тест не во вложенном пути) 5. Добавлен /// ‹reference path=require.intellisense.js /› в начало default.js 6. Парм человека теперь должен иметь intellisense 7. Открыт test.js и добавлен пустой массив зависимостей, т.е. определение теперь должно быть define([], function () { 8. Тестовый параметр в default.js теперь имеет intellisense, yay: D - person Charles; 19.05.2012

Этот комментарий здесь помог мне заставить его частично работать: Comment on GitHub Repo

По сути, я должен был убедиться, что это:

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

находится вверху файла _references.js. Он работает в блоках «require» и «define», но не работает внутри анонимных функций внутри блоков «define».

person Sami    schedule 21.11.2012