逐个字符地解析和重写Visual Studio C#源代码文档

时间:2017-03-30 15:06:15

标签: c# visual-studio roslyn

我一直致力于学习Roslyn,并且在使用CSharpSyntaxRewriter机制处理代码方面取得了很大进展。我的目标最终是拥有一个可定制的编码标准实施者。因此,我从https://github.com/dotnet/codeformatter/releases开始使用Microsoft的代码格式化程序项目。现在我正在做的是格式化空白区域。

这里的目标是学习Roslyn,所以我想编写代码来格式化所有空格,而不是使用Visual Studio和Roslyn中内置的Formatter。

Formatter.FormatAsync(document, cancellationToken: cancellationToken);

我能够解析语法树并且知道我可以使用CSharpSyntaxRewriter实现执行此操作所需的代码,但我想要做的是以某种方式简单地获取代码的原始源文本,在源文件中按字符执行任何必要的操作,然后将新文本作为文档放回。

然而,我无法弄清楚我是否有可能做我想用Roslyn / Visual Studio做的事情。我原以为是这样,因为源代码只是一个已加载到Visual Studio中的文本文件,而且文档是'可以为它获取对象。

修改

最佳解决方案是C#源文件的下拉(或上下文)菜单,然后对文件运行所有修改。我无法将MEF / MPF链接到允许对源文件进行全面修改的任何类型的钩子。因此,我去了一个控制台应用程序。

据我所知,MEF / MPF可以为源文件提供单一入口点,而Roslyn接口允许同时访问整个源文件。我相信这就是为什么微软使用Roslyn来实现他们的编码标准执行者。

正如我所说,我只看了一个月罗斯林,所以我可能会遗漏一些明显的东西。

0 个答案:

没有答案