【问题标题】:single intellisense file for multiple js function files?多个js函数文件的单个intellisense文件?
【发布时间】:2013-04-13 09:08:09
【问题描述】:

我有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: Adds a test”。

【问题讨论】:

  • 嗨,Scott - 您可以粘贴 _references.js 文件的内容吗? - Jordan,Microsoft Visual Studio PM
  • ///
  • 如果我在functions.intellisense.js的开头引用functions1.js和functions3.js,它看起来像它。

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


【解决方案1】:

如果我修改 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 调用才会起作用。因此,正如您所发现的,通过在调用 intellisense.annotate 之前引用 functions1.js 和 functions3.js 文件,可以声明 funcA 和 funcC 并且可以对其进行注释。我建议将这两个引用放在包含 functions.intellisense.js 的行上方的 _reference.js 中。然后,您的所有参考资料都保存在一个位置。
【解决方案2】:

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

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

您可以通过为 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 与您的文档 cmets 一起出现在完成列表中。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-25
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多