这个-vsdoc文件出了什么问题?

时间:2013-03-02 20:12:09

标签: visual-studio-2012 javascript-intellisense vsdoc

我有一个脚本retry.js,其中包含:

function retryAjax(load, count, config) {
}

显然有一个机构,但无关紧要,因为无论我是否在剧本中都有这个问题,都会出现这个问题。

要记录此函数返回的对象,我还有一个辅助-vsdoc.js文件,retry-vsdoc.js:

function RetryAjaxDeferred() {
    /// <summary>Returned from retryAjax. A jQuery Ajax Deferred object extended to support failWillRetry()</summary>

    this.done = function (success) {
        /// <summary>A callback when the Ajax call succeeds.</summary>
        /// <param name="success" type="Function">Success callback</param>
    }

    this.fail = function (error) {
        /// <summary>A callback when the Ajax call fails permanently.</summary>
        /// <param name="error" type="Function">Fail callback</param>
    }

    this.failWillRetry = function (willRetry) {
        /// <summary>A callback when the Ajax call fails with retries pending.</summary>
        /// <param name="willRetry" type="Function">Fail callback</param>
    }
};

奇怪的是,如果我删除-vsdoc.js文件,Visual Studio 2012中的Intellisense可以正常用于retry.js(当然,除了它返回的内容我没有真正的帮助)。如果我将-vsdoc.js保留在原位,则Intellisense不再使用retryAjax函数 - 它在输入参数时不会自动完成或显示Intellisense信息。但是,RetryAjaxDeferred函数在Intellisense中变为活动状态。

很明显,-vsdoc.js文件中的某些东西会以某种方式破坏Intellisense for retry.js,而不会破坏它以防止其自身内容消失。我做错了什么?

1 个答案:

答案 0 :(得分:0)

找到它 - 在为Visual Studio添加额外的仅限Intellisense的类等时,您需要引用实际的源文件:

/// <reference path="~/ui/retry.js"/>
function RetryAjaxDeferred() {
    . . .

现在,当我在其他脚本和页面中引用retry.js时,它及其-vsdoc文件的内容都是Intellisense结果的一部分。