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