Intellisense在Visual Studio 2012中不适用于JavaScript


68

我有一个干净的,即开即用的Visual Studio 2012 Web Developer Express安装版本,由于某种原因,对JavaScript(jQuery,jQuery UI和其他库)的支持已经消失。我相信它之前曾奏效,然后“无故”停止了。

我已经按照预期浏览了网络,发现了四个差异。

  1. 我的注册表中没有注册表项HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 11.0 \ JavaScriptLanguageService \ ImplicitReferences。实际上,我什至没有JavaScriptLanguageService目录。

  2. 我检查了引用文件domWindows.js的确是选项所指向的位置。

  3. 在我开发和运行应用程序时,JavaScriptLanguageService下的输出窗口为空,并且在那里没有键入任何内容。

  4. 我已经通过选项引用了我正在使用的jQuery文件,但未产生任何更改。

总而言之,我收到以下错误消息:

“ intellisense无法确定此表达式的准确完成列表,提供的列表包含文件中的所有标识符”

任何建议将不胜感激。

Answers:


123

CraigTP致敬

概要:

  1. 导航到[工具]> [选项]>文本编辑器> JavaScript> IntelliSense>引用选项

  2. 选择隐式(Web)

    您可以找到“〜/ Scripts / _references.js”(如果要将其放在其他位置,请在此处进行更改)

  3. 转到〜/ Scripts并添加新项目“ _references.js”

  4. 添加/// <reference path="path\jquery-1.7.1.js" />“ _references.js”

    要么 /// <reference path="~\root\path\jquery-1.7.1.js" />

快乐的编码:)

编辑笔记:

请记住将jquery-1.7.1-vsdoc.js与jquery-1.7.1.js放在同一文件夹中

完成上述更改后,如果仍然无法正常运行,请尝试重新启动Visual Studio。


2
这是一个整洁的解决方案(我还没有尝试过,但是无论如何我都可以欣赏整洁,哈哈)。现在,所有这些都将起作用,直到我升级到即将发布的较新版本的jQ。当然,将路径编辑为1.8并不是什么大问题,但是如果可以自动完成,那就更加巧妙了,不是吗?我想不出任何方法来实现这一目标(除了开始为MS工作并自己将更新程序编码为VS之外-不太可能发生)。
康拉德·维特尔斯滕

如果您使用nuget升级您的jQ。Nuget会自动将其更改为1.8。但是,没有用于1.8的vsdoc.js。因此,您将失去智能感知支持。最后,您实际上希望Nuget不会自动进行升级。并感谢您将此标记为答案
maxisam 2012年

我确信1.8版的vsdoc.js即将面世。同时,也许可以将1.7的文档重命名为1.8并作弊。当然,这违反了自动更新的目的。顺便说一句,我从未使用过NuGet。我很想念吗?
Konrad Viltersten 2012年

nuget.org没那么多。大约2年大声笑。您真的需要尝试一下。它是VS的必备插件。
maxisam 2012年

哈哈,我想我会等到1.8版本的文档到来。当它无法正常工作时,我不想尝试该必备插件。对我来说,Intellisense比NuGet更重要。:)
Konrad Viltersten 2012年

64

转到菜单工具->选项->文本编辑器-> JavaScript- > Intellisense- >引用并在Implicit Web组中放置对所用jQuery版本的智能感知文件的引用。

在此处输入图片说明

要么

在_references.js文件中放置一个“添加引用”到intellisense文件,您可以将其添加到Scripts项目的文件夹中。

/// <reference path="jquery-1.8.2.js"/>
/// <reference path="jquery-1.8.2.min.js"/>
/// <reference path="jquery-1.8.2.intellisense.js"/>

尽管这只会为您所在的项目提供智能感知,但第一个将为所有打开的JavaScript文件提供信息,而不仅仅是您所在项目中的文件。

要使用智能感知获取最新的jQuery文件,请使用NuGet软件包安装程序,程序默认情况下将创建一个scripts文件夹,并将jQuery version.js,min.js和intellisense.js文件放入...。您可以从此处将它们复制到大多数Microsoft参考的放置位置,通常为:

install-package jquery 在软件包管理器控制台中。

C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ JavaScript \ References


如果NuGet错误并显示未找到默认项目的消息,则表示NuGet不支持您打开的项目(例如Node.js)。在这种情况下,您需要使用答案中已经说明的其他方法。
TheCrazyProgrammer


4

尝试将它们添加到您的隐式JavaScript引用中。它位于工具->选项->文本编辑器-> JavaScript-> IntelliSense->引用。


到底应该有什么?我现在有以下引用:libhelp.js sitetypesWeb.js domWeb.js underscorefilter.js showPlainComments.js(以上所有内容均在表单c:\ something上的路径中)此外,我还有:〜/ Scripts / _references.js(但是,在我的项目目录中没有这样的文件-可能是个问题吗?)
Konrad Viltersten

现在,我对WHICH文件不清楚以供智能感知参考。我应该去实际的jQuery-1.7.2.js本身(在我的项目目录中)还是应该引用\ Microsoft Visual Studio 11.0 \ JavaScript \ References \ jquery.intellisense.js?可能是在谈论睡眠剥夺,但我不记得将文件放到目录中了...默认情况下在那儿吗?
Konrad Viltersten

2
当我打开这个jquery.intellisense.js时,发现是一个简单的函数和一种签名。添加此文件后,IDE本身没有任何更改。.有点可悲...
alexdd55

4

将jQuery及其智能感知文件添加到活动/打开的项目/网站中

在Visual Studio 2012中,执行以下操作:

开启选单 工具->库数据包管理器->管理Nuget软件包以获取解决方案。单击对话框最右侧的“联机”字段/选择器。在中间列表中找到jQuery,单击它,然后单击Install

通过查看“解决方案资源管理器”面板,观察到jQuery脚本文件现在已插入到您的项目中。您应该看到jquery-1.xxjs(其中x是实际版本号的占位符。假设jquery-1.9.0.js是一个具体示例)。

另外,请注意,现在那里有一个Jquery-1.9.0.intellisense.js文件。整洁的艾?:-)

但是请记住,如果您在Visual Studio中创建一个新网站并选择ASP:NET Web窗体站点(而不是Empty网站),则该Web窗体站点中已经包含jQuery 1.7.1。


3

我在JavaScript- > Intellisense- > Reference中包含了jquery-xxx.intellisense.js 。它工作了一次,但是在我关闭Visual Studio并重新启动它之后,intellisense不再起作用。但是我不小心点击了菜单Edit-> intellisense- > Refresh Remote References。它再次起作用。试试看!


我已经尝试过此页面上的所有操作,但没有任何效果。使用VS2013。
迈克K

3

通过从NuGet控制台进行安装,将NuGet IntelliSense文档包用于JQuery:

Install-Package jQuery-vsdoc

安装软件包后,请转到:

Tools>>Options>>Text Editor>>JavaScript>>Intellisense>>References

并添加对 Implicit(Web)通过选择硬盘驱动器上已安装的软件包位置组。

重新启动Visual Studio,您将获得jQuery intellisense的功能。


0

最终对我有用的是重新排序_references.js中的列表。由于有大量的插件导入到项目中,所以我在那里有将近150行,而jQuery接近底部。当我将其参考移至顶部时,我的智能感知又开始工作。

看起来像什么:

/// <autosync enabled="true" />
/// <reference path="jquery-2.1.3.js" />
/// <reference path="jquery-ui-1.11.2.js" />
/// <reference path="modernizr-2.8.3.js" />
... more reference lines

注意,该引用是针对jquery- {version} .js文件的。Nuget软件包在同一目录中还安装了一个名为jquery- {version} .intelliense.js的文件,我假设使用的是该文件。希望能有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.