カスタム言語のモードで ace を拡張したいと思います。私が知る限り、一般的なプロセスは次のとおりです。
- ace ソースをダウンロードします。
- カスタム言語用に新しい lib/ace/mode/foo.js を作成します。
- 「make build」(または同様のもの) を実行して、ACE を再構築します。
- 新しくコンパイルされた build/src-min-no-conflict (またはその他) の ACE ディストリビューションを Web サイトで使用します。
しかし、私は彼らの Web サイトから既存の 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 の一部としてビルドする唯一のオプションはありますか? または、何か不足していますか?