如何 运行 对解决方案进行大小写更正?
How to run case correction on solution?
我有一个基于 roslyn 的小型应用程序,用于 VB.NET/C# 个基于 sample provided at codeplex. This application is a new version of older code formatter that I developed based on DTE 的项目的代码格式化,我在其中以编程方式 运行 Visual Studio 命令 Edit.FormatDocument
在特定解决方案中的每个文件上,如下所示:
projectItem.Document.DTE.ExecuteCommand("Edit.FormatDocument");
这不再是可接受的,因此我开始开发新版本来执行与 FormatDocument 命令相同的任务。 VB.NET 源文件中此命令的功能之一是它可以更正关键字和名称的大小写,例如:
public
变为 Public
,
- 变量定义为
fooBar
但用作 foobar
=> 用法更改为 fooBar
- 等等
首先我认为 Microsoft.CodeAnalysis.Formatting.Formatter.FormatAsync(...)
一个人就可以完成这项工作,但它似乎只处理空格。因此我开始寻找其他地方并发现了方法 Microsoft.CodeAnalysis.CaseCorrection.CaseCorrector.CaseCorrectAsync(...)
但不幸的是 CaseCorrector
class 是 internal
。不过,这让我想知道,考虑到方法 CaseCorrectAsync
是 public
.
是否不是错误
在我新的基于 roslyn 的应用程序中是否有合理的方法来 运行 大小写更正?
正确的解决方案确实是使用 CaseCorrector
class,根据 roslyn bug report 中的评论,它本来是 public
。因此,现在要解决此问题,必须制作 CaseCorrector
public,在本地构建 roslyn 并使用修改后的二进制文件。
如果需要,应该可以利用 BuildNuGets.csx script 来创建包含本地更改的 roslyn nuget 包。
我有一个基于 roslyn 的小型应用程序,用于 VB.NET/C# 个基于 sample provided at codeplex. This application is a new version of older code formatter that I developed based on DTE 的项目的代码格式化,我在其中以编程方式 运行 Visual Studio 命令 Edit.FormatDocument
在特定解决方案中的每个文件上,如下所示:
projectItem.Document.DTE.ExecuteCommand("Edit.FormatDocument");
这不再是可接受的,因此我开始开发新版本来执行与 FormatDocument 命令相同的任务。 VB.NET 源文件中此命令的功能之一是它可以更正关键字和名称的大小写,例如:
public
变为Public
,- 变量定义为
fooBar
但用作foobar
=> 用法更改为fooBar
- 等等
首先我认为 Microsoft.CodeAnalysis.Formatting.Formatter.FormatAsync(...)
一个人就可以完成这项工作,但它似乎只处理空格。因此我开始寻找其他地方并发现了方法 Microsoft.CodeAnalysis.CaseCorrection.CaseCorrector.CaseCorrectAsync(...)
但不幸的是 CaseCorrector
class 是 internal
。不过,这让我想知道,考虑到方法 CaseCorrectAsync
是 public
.
在我新的基于 roslyn 的应用程序中是否有合理的方法来 运行 大小写更正?
正确的解决方案确实是使用 CaseCorrector
class,根据 roslyn bug report 中的评论,它本来是 public
。因此,现在要解决此问题,必须制作 CaseCorrector
public,在本地构建 roslyn 并使用修改后的二进制文件。
如果需要,应该可以利用 BuildNuGets.csx script 来创建包含本地更改的 roslyn nuget 包。