如何将一些已知对象添加到 ace editors 语法检查器?

How to add some known objects to ace editors syntax checker?

我们正在使用 ACE 编辑器编写 javascript 在服务器端解释的代码。所以服务器有一个 JavaScript 接口,可以执行提交的代码以从外部完成一些任务。

服务器实现了一些 ACE 不知道的新对象。因此,如果代码中使用了其中一个未知对象,ACE 会显示警告。

告诉 ACE 有一些新对象、变量和函数的正确方法是什么?我已经查看了 worker-javascript.js,但我不想重新实现这整个东西(更新 ACE 会比更新更难)。有什么界面可以使用吗?

Ace 使用 jshint,它有一个设置全局变量列表的选项。 Ace 支持调用 worker 的 changeOptions 来修改它传递给 jshint 的默认选项,但没有办法传递 gloabals

列表

您可以通过更改 https://github.com/ajaxorg/ace/blob/v1.1.8/lib/ace/mode/javascript_worker.js#L130 处的行来添加它 至 lint(value, this.options, this.options.globals);

并从您的代码调用

editor.session.$worker.call("changeOptions", [{
   globals: {foo: false, bar: false...},
   undef: true, // enable warnings on undefined variables
   // other jshint options go here check jshint site for more info
}]);

对 worker.js#L130 的更改非常简单,如果您向 ace

发出拉取请求,应该会被接受