NRefactory如何保持原始格式

时间:2012-09-19 14:23:45

标签: c# nrefactory

您好我使用NRefactory来提取String常量并通过i18n的静态变量重新设置它,我可以成功地执行它但是当我使用GetText()输出我的代码时它不保留原始格式。我希望通过最小的格式更改来做到这一点。

感谢。

2 个答案:

答案 0 :(得分:0)

查看NRefactory CodeProject article的“修改C#代码”部分(最后一部分)。

答案 1 :(得分: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的更多示例,您可能还需要查看我的blog