0

我有functions1.js、functions2.js和functions3.js。每个都有一个函数,分别是funcA、funcB和funcC。我创建了一个名为“functions.intellisense.js”的文件并将其添加到 _reference.js。然后,我在 test.js 文件中添加了对 _reference.js 的引用。

为什么智能感知不起作用?

函数.intellisense.js

intellisense.annotate(funcA, function () {
    /// <signature>
    /// <summary>Function A</summary>
    /// </signature>
});

intellisense.annotate(funcC, function () {
    /// <signature>
    /// <summary>Function A</summary>
    /// <param name="message">message</param>
    /// </signature>
});

_reference.js

/// <reference path="functions.intellisense.js" />

函数1.js

function funcA() {
    alert("this is function A");
}

函数3.js

function funcC(message) {
    alert("this is function C " + mesage);
}

测试.js

/// <reference path="Scripts/_reference.js" />
func  //<--- expecting this to show intellisense

甚至有可能做到这一点吗?我想这样做有几个原因,首先只是结合文档。其次,我希望能够预先记录功能。也许在想法前加上“TODO”,就像我没有编写 Test.Add() 函数一样,我仍然可以将它放在 intellisense 文件中,它会弹出“TODO:添加测试”。

4

2 回答 2

1

我已经评论过您必须如何设置引用 - 如果您希望它们出现在 IntelliSense 中,则必须在将它们传递给 intellisense.annotate 之前声明函数。函数声明驱动 IntelliSense 完成列表,注释调用更新已声明函数的文档。

我希望能够预先记录功能。也许在想法前加上“TODO”,就像我没有编写 Test.Add() 函数一样,我仍然可以将它放在 intellisense 文件中,它会弹出“TODO:添加测试”。

您可以通过为 IntelliSense 编写自己的帮助程序来做到这一点,例如:

function stubFunction(functionName, annotation) {
    if (!window[functionName]) {
        window[functionName] = function () { };
    }
    intellisense.annotate(window[functionName], annotation);
}

调用stubFunction将创建存根函数声明并在一次调用中对其进行注释:

stubFunction("funcA", function () {
    /// <signature>
    /// <summary>Function A does something important</summary>
    /// </signature>
});

现在,如果您func在编辑器中键入,您将看到 funcA 与您的文档注释一起出现在完成列表中。

stubFunction实用程序可以放在 functions.intellisense.js 中,然后在该文件中用于预先记录您的所有函数。

于 2013-05-08T06:20:14.923 回答
0

如果我修改 functions.intellisense.js 以包含对包含实际函数的脚本文件的引用,它似乎可以按预期工作。

/// <reference path="functions1.js" />
/// <reference path="functions3.js" />
intellisense.annotate(funcA, function () {
    /// <signature>
    /// <summary>Function A does something important</summary>
    /// </signature>
});

intellisense.annotate(funcC, function () {
    /// <signature>
    /// <summary>Function C does something equally important</summary>
    /// <param name="message">message</param>
    /// </signature>
});

我希望避免这种情况,因为正如我所说,这些函数可能是尚未编写的函数的存根,但这仍然有效。我会等待接受这个答案,看看乔丹是否有更多建议。

于 2013-05-06T14:52:26.533 回答