我有functions1.js,functions2.js和functions3.js。每个都有一个函数,funcA,funcB和funcC。我创建了一个名为“functions.intellisense.js”的文件,并将其添加到_reference.js。然后我在test.js文件中添加了对_reference.js的引用。
为什么智能感知不起作用?
functions.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" />
functions1.js
function funcA() {
alert("this is function A");
}
functions3.js
function funcC(message) {
alert("this is function C " + mesage);
}
test.js
/// <reference path="Scripts/_reference.js" />
func //<--- expecting this to show intellisense
甚至可以这样做吗?我想这样做有几个原因,首先只是结合文档。其次,我希望能够预先记录功能。也许在“TODO”之前添加想法,如果我没有编写Test.Add()函数,我仍然可以将它放在intellisense文件中,然后弹出“TODO:添加测试”。
答案 0 :(得分:1)
我已经评论过你如何设置你的引用 - 你必须在它们传递给intellisense.annotate之前声明函数,如果你想让它们出现在IntelliSense中的话。函数声明驱动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中,然后在该文件中用于预先记录所有函数。
答案 1 :(得分: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>
});
我希望避免这种情况,因为我说这些函数可能是尚未编写的函数的存根,但这仍然有效。我等着接受这个答案,看看乔丹是否有更多的建议。