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

我们使用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);来添加它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发出拉取请求,则应该接受