我想用自定义语言的模式扩展 ace。据我所知,一般流程是:
- 下载王牌源。
- 为您的自定义语言创建一个新的 lib/ace/mode/foo.js。
- 运行“make build”(或类似的)来重建 ACE。
- 在您的网站中使用新编译的 build/src-min-no-conflict(或其他)ACE 发行版。
但我只想使用他们网站上现有的 ACE 发行版,并结合我独立的新模式。我不想在构建过程中重新构建 ACE 来构建我的新模式。我通过这样做接近了:
ace.config.setModuleUrl("foo-mode", "./foo.js");
session.setMode("foo-mode");
但我很快就遇到了 requirejs / 依赖问题。例如,我不能require("ace/mode/matching_brace_outdent")
在我的模式内做。setMode('ace/mode/c_cpp')
我通过第一次调用(作为副产品定义了matching_brace_outdent 模块)暂时解决了这个问题。但是我在尝试让自定义的 WorkerClient 工作时遇到了更糟糕的问题。
将我的模式构建为 ACE 的一部分是我唯一的选择吗?还是我错过了什么?