Ace: [JavaScript Linting] 支持 ESNext(async/await、类属性等)

创建于 2016-12-06  ·  11评论  ·  资料来源: ajaxorg/ace

我建议更改 javascript 提示以使用 ESLint 以更好地支持 ES6+ 功能。

我希望能够最多使用类属性和 async/await,但是还有很多其他的 linting 规则比 jshint 做得更好。

class Foo {
    bar = 'baz';
}
async function foo () {
    const bar = await baz();
}

我还没有研究过更换 javascript linter 可能有多困难,所以我不知道这是多么现实的请求。

linters

最有用的评论

请在这个问题上工作。

所有11条评论

这是一个好主意,也是#3180 所需要的。
我们可以基于 ESLint 的web 演示文件

请在这个问题上工作。

新的 JSHint 版本2.10.0已发布,支持新功能。

作为临时解决方法 - 我使用了 ACE 打字稿,它已经有等待/异步。

打字稿没有显示错误..但是它错过了很多其他错误。

它不仅仅是 async/await 它的所有 es6 语法,包括新的数学运算符,如8**2

到今天为止,这个问题已经3 年了。 React 现在已经发布了一段时间,因此肯定对此的需求正在增加。 该项目仍然非常活跃,但没有迹象表明这在任何官方路线图上,看起来就像是,“是的,这就是我们需要做的,我们可能会这样做。”

我们可以_please_在这里获得一些更新吗? @夜翼@adamjimenez

我在尝试查找 CSS 文件的 linter 时发现了这一点,并且陪审团装配了我自己的东西,_/mode/javascript_worker.js_ 🔗

这个配置似乎表明它已经为 ESNext 支持设置了,至少在 javascript worker 的 Javascript worker 模式下工作时。 就个人而言,这并没有说明任何问题,但也许这可以帮助你们中的一个

在用最新的替换 jshint.js 文件后,我尝试重新构建 ace。 这可以防止为 async/await 显示错误。 但是,它也可以停止在其他情况下显示错误(缺少括号、未闭合的字符串等)。 非常令人沮丧,我想王牌项目已经死了。

我也一直在摆弄这个,我能够让它工作。 文档可以更新,挖掘整个生态系统的工作原理(花了几个小时)是相当痛苦的,然后才知道所有的改变都需要一行......:/

有几个选项:
1)如果您刚刚导入打包/缩小版本 - 需要替换:“esnext:!0”与“esversion:9”
https://raw.githubusercontent.com/ajaxorg/ace-builds/master/src-min/worker-javascript.js
2)您可以查看回购并自己构建。 (大约需要1分钟,所以这也很容易)

git clone [email protected]:ajaxorg/ace.git
npm install
nano +82 lib/ace/mode/javascript_worker.js // replace "esnext: true," with "esversion: 9"
node Makefile.dryice.js full --target ../ace-builds

更新:自从我上次发表评论后发现了另一种方式:

var editor = ace.edit("editor");
editor.session.on('changeMode', function(e, session){
    if ("ace/mode/javascript" === session.getMode().$id) {
        if (!!session.$worker) {
            session.$worker.send("setOptions", [{
                "esversion": 9,
                "esnext": false,
            }]);
        }
    }
});
editor.session.setMode("ace/mode/javascript");

惊人的!! 是否有任何迹象表明您可以指定其他版本,例如 ES6 的 6 等等?

我还要补充一点,如果其他人是 git 新手或尚未使用 Github 设置 SSH,您也可以使用以下命令克隆它: git clone https://github.com/ajaxorg/ace.git/ 。 _偶然发现的次数比我想承认的要多_

此页面是否有帮助?
0 / 5 - 0 等级