And*_*rea 3 c# indentation generated-code
在我当前的项目中,我们有几个代码生成器例程来帮助我们完成一些无需动脑筋的任务。从技术角度来看,一切都运行良好,因此这可能更多是出于好奇,而不是真正的问题:当我打开新生成的一段代码时,它(当然)没有正确缩进(尽管语法上是正确的)。
现在的问题是:是否有一个 API 可以用来缩进一段 C# 代码?Ctrl就像我在 VS2010 中使用快捷键+E时发生的情况一样D。
只是为了澄清一下,我正在寻找这样的功能:
string GetProperlyFormattedCode(string notFormattedCode);
Run Code Online (Sandbox Code Playgroud)
其中notFormattedCode是一段有效的 C# 源代码,函数的输出是应用格式化规则后的相同代码。换句话说,我正在寻找 Visual Studio 的“编辑 -> 高级 -> 格式选择”命令背后的功能。
要缩进代码,只需使用 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;
}
Run Code Online (Sandbox Code Playgroud)
单线:
csCode = CSharpSyntaxTree.ParseText(csCode).GetRoot().NormalizeWhitespace().ToFullString();
Run Code Online (Sandbox Code Playgroud)
您还可以使用NArrange对 cs 文件中的方法进行排序、组织用途、创建区域等。请注意,NArrange 不会缩进任何内容。
| 归档时间: |
|
| 查看次数: |
1855 次 |
| 最近记录: |