我在 1.1.0 版(快照)上使用带有 Tern IDE 的 Eclipse Mars,以提供 ES6 支持。我在箭头函数和常量导出上收到验证错误,如下图所示:

eclipse - EcmaScript 6 - 用于 Eclipse 验证错误的 Tern IDE-LMLPHP

我完成了这些描述,但错误不会消失:
https://github.com/angelozerr/tern.java/wiki/Tern-&-ECMAScript6-support
https://github.com/angelozerr/tern.java/wiki/Tern-Linter

我不知道 Tern 插件真正支持什么,但根据 http://ternjs.net/ Tern 的文档,从 0.14 开始应该支持箭头函数。然而,github 上的 IDE 页面只提到了类、导入和 promise 支持(在我看来,对于支持 ES6 的插件来说,这超出了基础)。

有没有人用 Eclipse 开发 ES6 并提供(或多或少)全功能支持?我有点像 unicorn ...

最佳答案

您的错误来自不支持 ES6 语法的 JSDT 验证器(而不是来自 tern)。

tern 1.1.0-SNAPSHOT 支持 ES6 的补全、超链接、验证,但不支持 ES6 验证。 linter https://github.com/angelozerr/tern.java/wiki/Tern-Linter 是一个类型检查器验证器,而不是一个语法验证器。

要使用 Eclipse IDE 和 tern.java 验证 ES6,您必须:

  • 禁用 JSDT 验证器。为此,您可以从 .project 中删除 JSDT 性质。或者安装(从未测试过)未发布的 Eclipse JEE 发行版,它提供 一个选项来关闭内部解析 和验证。见 http://tools.jboss.org/documentation/whatsnew/jbosstools/4.3.0.Final.html#javascript-development-tools-improvements
  • 之后,您可以使用 JSHint 和 https://github.com/angelozerr/tern.java/wiki/Tern-Linter-JSHint 来验证 ES6。要使 JSHint 正确验证 ES6,它需要启用“esnext”选项,否则 ES6 语法将被标记为错误。该选项位于“放松选项”下的项目 properties\Tern\Validation\JSHint 中。
  • 关于eclipse - EcmaScript 6 - 用于 Eclipse 验证错误的 Tern IDE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33479015/

    10-09 20:09