Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 单个intellisense文件用于多个js函数文件?_Visual Studio 2012_Intellisense_Javascript Intellisense - Fatal编程技术网

Visual studio 2012 单个intellisense文件用于多个js函数文件?

Visual studio 2012 单个intellisense文件用于多个js函数文件?,visual-studio-2012,intellisense,javascript-intellisense,Visual Studio 2012,Intellisense,Javascript Intellisense,我有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 () {

我有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 path="functions.intellisense.js" />
function funcA() {
    alert("this is function A");
}
function funcC(message) {
    alert("this is function C " + mesage);
}
/// <reference path="Scripts/_reference.js" />
func  //<--- expecting this to show intellisense
函数3.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 path="functions.intellisense.js" />
function funcA() {
    alert("this is function A");
}
function funcC(message) {
    alert("this is function C " + mesage);
}
/// <reference path="Scripts/_reference.js" />
func  //<--- expecting this to show intellisense
test.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 path="functions.intellisense.js" />
function funcA() {
    alert("this is function A");
}
function funcC(message) {
    alert("this is function C " + mesage);
}
/// <reference path="Scripts/_reference.js" />
func  //<--- expecting this to show intellisense
//

func/如果我修改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>
});
//
/// 
intellisense.annotate(funcA,function(){
/// 
///函数A做了一些重要的事情
/// 
});
intellisense.annotate(函数,函数(){
/// 
///函数C做了同样重要的事情
///信息
/// 
});

我希望避免这种情况,因为我说过函数可能是尚未编写的函数的存根,但这仍然有效。我将等待接受此答案,看看Jordan是否有更多的建议。

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

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

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

function stubFunction(functionName, annotation) {
    if (!window[functionName]) {
        window[functionName] = function () { };
    }
    intellisense.annotate(window[functionName], annotation);
}
调用
stubFunction
将创建stub函数声明,并在一次调用中对其进行注释:

stubFunction("funcA", function () {
    /// <signature>
    /// <summary>Function A does something important</summary>
    /// </signature>
});
stubFunction(“funcA”,函数(){
/// 
///函数A做了一些重要的事情
/// 
});
现在,如果在编辑器中键入
func
,您将看到funcA与您的文档注释一起出现在完成列表中


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

Hi Scott-你能粘贴到_references.js文件的内容吗?-Jordan,Microsoft Visual Studio PM///如果我在functions.intellisense.js的开头引用functions1.js和functions3.js,它看起来会起作用。感谢更新中的所有详细信息。只有在进行注释调用之前已经声明了目标函数,intellisense.annotate调用才会起作用。因此,正如您所发现的,在调用intellisense.annotate之前,通过引用functions1.js和functions3.js文件,可以声明并注释funcA和funcC。我建议将这两个引用放在包含functions.intellisense.js的行上方的_reference.js中。然后,所有引用都保存在一个位置。