【问题标题】:Intellisense with ES5ES5 智能感知
【发布时间】:2017-02-15 10:58:04
【问题描述】:

我已经使用 VSCode 很长时间了,虽然它非常好,但我缺少智能感知和似乎仅限 ES6 的功能:

  • 我无法通过 ctrl+click 转到定义
  • 我无法预览定义

这是我正在使用的:

  • ES5
  • Angular JS

我所有的文件都包装在一个闭包中,例如:

(function() {
    angular.module('foo').factory('bar', ['dep1', function(dep1) {
      dep1.stuff();
    }]);
})();

考虑到这一点,是否有可能让“goto 定义”和其他好的 VSCode 东西正常工作?如果有,怎么做?

我该怎么做才能简单地单击 ctrl+单击 dep1 并让 VSCode 打开定义 dep1 的文件?

【问题讨论】:

    标签: angularjs visual-studio-code ecmascript-5


    【解决方案1】:

    我可以建议您尝试安装 John Papa 的 Visual Studio Code for Angular 1.x 扩展。它是通过 VSCode 直接安装的。您可以查看一些有关其工作原理的示例here。它将为您提供代码完成功能,并将自动执行您在 Angular 中经常执行的许多任务,例如创建服务、控制器、指令......

    顺便说一句,John Papa 是 Angular Style guide 的作者,他的编码方式可以称为 Angular 开发领域的“最佳实践”。

    【讨论】:

    • 谢谢:我去看看。它会为 Angular 内置文件以及我编写的文件提供代码补全吗?
    • Angular 内置文件是什么意思?如果觉得有用,请点赞。
    • 我的意思是:我认为这个扩展会在 Angular 对象上添加补全,比如:$scope、angular 等...如果我也想在我自己的 angular 元素上自动补全怎么办? (我的控制器、服务、..)
    【解决方案2】:

    为 javascript/typescript 获取智能感知的最佳方法是安装 typings

    我发现这个扩展很适合安装类型:https://marketplace.visualstudio.com/items?itemName=benjaminromano.typings-installer

    安装后,您可以启动它 (F1 > Typings Installer: Typings > angular) 并安装 dt~angular 类型。从那里你应该开始获得智能感知,去定义和可能的错误检查。

    然后代码应该选择它(如果不只是重新加载编辑器)。然后你应该开始获得智能感知。如果您想对其进行更多调整,我建议您查看jsconfig.json 文件:https://code.visualstudio.com/docs/languages/jsconfig

    【讨论】:

    • 谢谢。我安装了打字安装程序,但我不知道如何使用它。输入F1 > Typings Installer: Typings 后,它会显示“输入类型名称”。然后我输入“dt~angular”,它说“没有找到'dt~angular的类型”。
    • 不带dt~ 部分试试
    【解决方案3】:

    您可以通过在 Visual Studio Code 中启用 Synthetic Default Imports 来获取通用输入信息。

    它允许您从 TypeScript 类型定义或从许多流行存储库的 JSDoc 中推断类型信息获取 Intellisense。

    这里是tutorial,了解如何进行设置。

    【讨论】: