3

こんにちは私はNRefactoryを使用して文字列定数を抽出し、i18nの静的変数で置き換えます。正常に実行できますが、GetText()を使用してコードを出力すると、元の形式が保持されません。最小限のフォーマット変更でそれをやりたいです。

ありがとう。

4

2 に答える 2

0

NRefactory CodeProject 記事の「C# コードの変更」部分 (最後のセクション) をご覧ください。

于 2012-10-18T18:03:25.253 に答える
0

現在のフォーマットを維持したい場合はDocumentScript、AST に変更を適用するために使用できます。TextLocation構文ツリーに格納されたプロパティに基づいて機能します。

スクリプトを作成するには、これを行う必要があります:

IDocument document = new StringBuilderDocument("source code");
CSharpFormattingOptions policy = FormattingOptionsFactory.CreateAllman();
var options = new TextEditorOptions();

var script = new DocumentScript(document, policy, options);

これで、AST で Replace、Remove、InsertAfter などのメソッドを使用できるようになりました。これは、ast ノードとオフセットの両方で機能します。

また、変更を追跡するため、複数の変更による競合について心配する必要はありません。
NRefactory のその他の例については、私のブログも参照してください。

于 2014-03-14T11:07:04.893 に答える