Pau*_*art 6 c# code-generation code-formatting
我们有一个代码生成器,它可以管理给定数据库的模式,以自动化我们的内部n层架构.输出是各种C#部分类,每个文件一个.
在使用munge所有字符串的代码中,我们尝试尽可能地保持缩进和格式化,但是当你在Visual Studio中打开文件时格式化是错误的.一个快速的ctrl-k,ctrl-d修复了它,但很明显这次重新格式化会在下次生成类时丢失.
我想知道的是,我是否有办法以某种方式自动格式化文本文件的内容,就像Visual Studio一样?
伪代码
Create "code" object, passing text file to constructor
Invoke "format" method
Re-save text file
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢.
编辑: 我应该澄清 - 我希望能够从我的C#代码调用格式,该代码创建包含我生成的C#的文本文件.代码的格式可以标准化(不必是每个开发人员),我不想安装任何第三方应用程序.
我似乎记得在C#中有一个包含用于创建C#的类的命名空间:http://msdn.microsoft.com/en-us/library/system.codedom(VS.80).aspx,但我不确定如果它包含任何可以帮助的类.
进一步编辑: 我的代码生成器是一个通过点击一次安装部署的winforms应用程序.它在内部被许多开发人员使用.我需要一个不需要每个开发人员在他们的机器上安装工具的解决方案.
要以编程方式正确缩进代码,您将需要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不会缩进任何内容。
| 归档时间: |
|
| 查看次数: |
5061 次 |
| 最近记录: |