如何为ACE创建独立模式扩展?

Mic*_*uer 5 ace-editor

我想用自定义语言模式扩展ace.据我所知,一般过程是:

  1. 下载ace源.
  2. 为您的自定义语言创建一个新的lib/ace/mode/foo.js.
  3. 运行"make build"(或类似)来重建ACE.
  4. 在您的网站中使用新编译的build/src-min-no-conflict(或其他)ACE分发.

但我想在他们的网站上使用现有的ACE发行版,并结合我的独立新模式.我不想在构建我的新模式时重建ACE作为构建过程的一部分.我接近做了:

ace.config.setModuleUrl("foo-mode", "./foo.js");
session.setMode("foo-mode");
Run Code Online (Sandbox Code Playgroud)

但我很快遇到了requirejs/dependency问题.例如,我无法require("ace/mode/matching_brace_outdent")在我的模式中完成.我通过第一次调用setMode('ace/mode/c_cpp')(作为副产品定义了matching_brace_outdent模块)暂时破解了它.但是我试图让自定义WorkerClient工作时遇到更糟糕的问题.

作为ACE的一部分,我唯一的选择是建立我的模式吗?或者我错过了什么?

Akb*_*hry 1

尝试预构建版本。

https://github.com/ajaxorg/ace-builds/releases

您可能需要编辑其他文件(模式列表等),具体取决于您希望如何在 UI 中呈现新语言: