在我目前的项目中,我们有几个代码生成器例程来帮助我们完成一些无意识的任务。从技术的角度来看,一切都很好,所以这可能更像是一个好奇而不是真正的问题:当我打开一个新生成的代码时,它(当然)没有正确缩进(虽然语法正确)。
现在,问题是:是否有一个API可用于缩进一段c#代码?就像我在VS2010中使用快捷键Ctrl + E,D时会发生什么。
谢谢!
为了澄清,我正在寻找这样的功能:
string GetProperlyFormattedCode(string notFormattedCode);
其中notFormattedCode
是一段有效的c#源代码,在应用格式化规则后,该函数的输出是相同的代码。换句话说,我正在寻找Visual Studio的“编辑 - >高级 - >格式选择”命令背后的功能。
答案 0 :(得分:1)
这个问题好像回答:
How do you call "Document Format" programmatically from C#?
简短是使用Visual Studio的对象模型来调用format命令。
答案 1 :(得分:0)
要缩进代码,只需使用Microsoft.CodeAnalysis.CSharp nuget包和.NET framework 4.6+。示例代码:
public string ArrangeUsingRoslyn(string csCode) {
var tree = CSharpSyntaxTree.ParseText(csCode);
var root = tree.GetRoot().NormalizeWhitespace();
var ret = root.ToFullString();
return ret;
}
一衬垫:
csCode = CSharpSyntaxTree.ParseText(csCode).GetRoot().NormalizeWhitespace().ToFullString();
您也可以使用NArrange对cs文件中的方法进行排序,组织使用,创建区域等。请注意,NArrange不会缩进任何内容。