1

C#(Visual Studio)の特定のソリューションでは、いくつかのテンプレートに続くクラスを検出し、後でコードを生成するためにそのテンプレートを抽出する必要があります。

つまり、2つのクラス(ファイル)を比較し、それらから共通のテンプレートを抽出する必要があります。このテンプレートは、プログラマーがより少ないコードを記述しなければならない後のコード生成に使用されます。

これを行う方法について私にアイデアを与えることができる体はありますか?

もう1つの質問ですが、Visual Studioによって作成された構文/セマンティックツリーを取得することは可能ですか?

Tnx

4

2 に答える 2

0

最初の質問では、diffアルゴリズムを調べて、2つのテキストファイルの一般的な部分を見つける必要があると思います。たとえば、ここにあります。

2番目の質問については、 Roslynを見てみることをお勧めします

于 2013-02-14T14:42:56.520 に答える
0

最後に私はユーザー

  • コードをコンパイルするためのNRefactoryと私はASTを取得しました。
  • カスタムラベルを使用してコードを書き直します(eq:for-> loop_start)
  • 長いラベル配列(eq:class_start、method_start、... end、end)を取得してツリーをフラット化します。
    これは2つのファイル用でした。
  • 「欲張り文字列タイリングアルゴリズム」を使用して2つの配列を比較しました
  • そしてここから私はすでにテンプレートファイルを持っていました。
于 2013-08-06T14:25:03.310 に答える