【问题标题】:JavaScript IntelliSense for external library is not working in Visual Studio 2015 Update 3用于外部库的 JavaScript IntelliSense 在 Visual Studio 2015 Update 3 中不起作用
【发布时间】:2016-08-22 10:47:13
【问题描述】:

我正在尝试在 Visual Studio 2015 Update 3 中使用 Azure Document DB 服务器端 JavaScript IntelliSense。

我已将 Document DB 的 GitHub site 中的 .js 文件下载到我的 Visual Studio JavaScript 引用文件夹中:

并在我的 .js 文件中引用了它,但我没有看到任何 Document DB IntelliSense:

但是,如果我在 VS 中打开 DocDbWrapperScript.js,IntelliSense 就会开始工作:

我是否遗漏了一些配置以使 /// <reference path="foo.js" /> 语法正常工作?

【问题讨论】:

    标签: javascript visual-studio-2015 intellisense


    【解决方案1】:

    这应该可以,请确保路径正确。

    您也可以尝试在General部分注册docdbwrapperscript.js:Tools->Options->Text Editor->JavaScript->Intellisense->References,ReferenceGroup = Generic,在那里添加docdbwrapperscript.js的路径。

    谢谢!

    【讨论】:

    • 我仔细检查了路径 - 它们看起来都正确,但我仍然看到上面的行为。我也尝试将它添加到通用参考组,但这也不起作用。不过,我不确定这是正确的解决方案 - 这不会使 Doc DB intellisense 可用于所有 .js 文件吗?我认为它应该只在使用/// <reference path="foo.js" /> 语法选择加入它的文件中可用。
    • 是的,添加到 Generic 部分将使其可用于所有 JS 文件。该问题可能与性能有关——JS 语言服务可能无法及时处理文件。我们可能会提供一个更简单的文件,但在我们去那里之前,您能否检查一下简单文件在您的环境中是否有效?例如,创建一个带有var的js文件,通过直接路径引用它,看看你是否得到智能感知?
    • 好的,所以我只是按照您的建议尝试了一个简单的.js 和一个var,但我仍然得到与原始问题相同的行为。今天下午我做了更多的挖掘工作,结果发现参考标签不支持绝对路径(请参阅下面的答案)。当我切换到相对路径时,智能感知开始工作。
    【解决方案2】:

    来自MSDN docs(强调我的):

    以下规则适用于引用指令:

    • 必须在任何脚本之前声明引用 XML 注释。
    • 您必须使用带有三个斜杠的 XML cmets 语法。使用标准 cmets 语法(两个斜杠)进行的引用将被忽略。
    • 每个指令只能指定一个文件或资源。
    • 不允许多次引用基于页面的脚本。
    • 如果指定了页面引用,则不允许使用其他类型的引用指令。
    • 文件名使用相对路径。您可以使用波浪号运算符 (~) 来创建应用程序根相对路径。
    • 绝对路径被忽略。
    • 不会处理被引用页面中的引用指令——也就是说,不会为页面递归解析引用指令。
    • 仅包含页面直接引用的脚本。

    切换到使用 /// <reference path="..." /> 中的相对路径为我修复了 IntelliSense。

    【讨论】:

      猜你喜欢
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 2017-04-28
      相关资源
      最近更新 更多