3

学際的な質問と回答には偏りがあるため、これは潜在的に危険な質問ですが、とにかく突き刺します。元気いっぱい!

では、どうぞ。私は、まだほとんどサポートされていない言語の Emacs 用の主要な編集モードを作成しています。そして、プロジェクト ファイルを生成する方法を決定しなければならない段階に来ました。以下は、今後のタスクのシラバスです。

  • テンプレートは、単一のファイルだけでなく、プロジェクト ディレクトリ ツリーを表す必要があります。

  • 結果のファイルは、SGML のような言語を含む可能性のあるさまざまな形式ですが、この種類に限定されません。また、C ライクなソース コード、eLisp ソース コード、および README などのプレーン テキスト ファイルも生成する必要があります。

  • テンプレートは、ユーザーが開始したアクション時にバッチで処理する必要があります (ユーザーがプロジェクトを作成したい場合と同様に、ユーザーが指定したディレクトリにいくつかのファイルを作成する必要があります)。作成を監視する機能があると便利かもしれませんが、プロセスを完全に自動的に実行する機能ほど重要ではありません。

ボーナス機能:

  • テンプレート言語には既にユーザー ベースがあります (既存のテンプレートを再利用する可能性があります)。

  • テンプレートは、コード スニペットに使用できます (ユーザーがファイルの編集中にコード生成ルーチンを呼び出すと、対話的に埋められる空白が含まれます)。

  • クロスプラットフォーム性、グラフィカル インターフェイスとコマンド ラインの両方による使いやすさなどの明らかなこと。

私は調査を行いましたが、結果を(まだ)共有しないので、回答に偏りはありません. この質問に答える際の問題は、答えを見つけるのが難しいということではなく、多くの中から 1 つを選ぶのが難しいということです。

4

3 に答える 3

2

私は、まさにあなたが説明したユースケースのために、Mustache に基づくシステムを開発しています。テンプレート言語自体は、Groomeと呼ばれる Mustache の非常に単純な拡張です。

また、 Groome テンプレートをレンダリングするMoltというコマンドライン ツールもリリースしました。それがあなたが必要とするすべてを行うかどうか知りたいです。私はまだツールに機能を追加しており、まだ発表していません。ありがとう。

于 2012-07-05T07:43:45.443 に答える
1

私は数年前に、Emacs を使用して UML ダイアグラム (cogre) からコードを生成し、プロジェクト仕様から Makefile を生成したいと考えていた同様の問題を解決しに行きました。最初は Tempo を使用しようとしましたが、テンプレートをネストさせようとしたときに問題が発生しました。スケルトンも検討しましたが、それも計画には合いませんでした。

私は最終的に Google テンプレートを少し使用することになり、構文が気に入り、代わりに SRecode を開発し、Google テンプレートから良い部分を借りただけです。SRecode は、機械生成コード専用に作成されました。テンプレート挿入のインタラクション (別名 - 書かれたテンポ) は、SRecode の第一級ではありません。ただし、データ構造からコードを生成する場合は、非常に堅牢で、多くの機能があり、変数が自動的に入力されます。メジャー モードと密接に連携し、ネストされたディクショナリ値を制御して、多数のネストされたテンプレートを使用できます。セマンティック タグを使用し、それらからいくつかの言語用のコードを生成するサブシステムがあります。つまり、セマンティックを使用してある言語でコードを解析し、それらのタグを使用して SReocde で別の言語でコードを生成できます。気の利いた!

テンプレート自体は、ループ、if ステートメント、および include ステートメントを許可します。SRecode には、コメント ライターなどの「アプリケーション」を作成するための例がいくつかあり、EDE はそれを使用して Makefile を作成します。これは、まさにあなたがしようとしていることです。

于 2012-06-23T01:01:48.780 に答える