5

カスタム言語のモードで ace を拡張したいと思います。私が知る限り、一般的なプロセスは次のとおりです。

  1. ace ソースをダウンロードします。
  2. カスタム言語用に新しい lib/ace/mode/foo.js を作成します。
  3. 「make build」(または同様のもの) を実行して、ACE を再構築します。
  4. 新しくコンパイルされた 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 の一部としてビルドする唯一のオプションはありますか? または、何か不足していますか?

4

2 に答える 2