Overview
本系列教程将大量地翻译或借鉴Microsoft官方文章,辅以自己浅薄的理解写成。
我们平常会使用IDE的各组代码分析功能来提高我们搬砖的生产力。一般来说这些功能都是够用的,但是总是有人需要更深一步地增加对代码的掌控度(比如批量改类名,批量把private字段改成下划线开头),所以微软就做了这个Roylyn API,方便各位能够自由处理自己的代码。
Roslyn一般使用两个核心功能:Analyzers和code fixes。前者用来分析代码,获取到代码的语法树,找到需要整改的地方;后者拿来提出整改建议。
使用Roslyn的好处都有啥,谁说对了就给他
非洲农业不发达,我们都要支援他
好处有二:
统一团队的代码风格
比如你们团队要求所有私有字段都以m_
开头,那么可以使用Analysis找到所有private
且非static
的字段,获取其字段名,判断是否是m_
开头的。若非如此,那么在这个地方建议整改(在vs或者vsc里显示个下划线或者灯泡啥的)。整改建议由code fixes提出,轻轻一点,即可完成。
检查方法的使用
可以拿来检查对某些方法的使用步骤是否正确,如果不正确可以提示整改。
检查的模块可以发布到NuGet上给水深火热的同行们下载。
编译器管线
Roslyn把C#和VB的编译过程映射成了一个传统的编译管道。下图为Roslyn提供的API和编译管道各阶段的对应关系。
使用这些API,我们分别可以做到:代码格式化、代码着色、代码大纲、代码跳转、查看Object、智能提示、查找所有引用、重命名、QuickInfo、签名帮助、提取方法、跳转到定义等功能。这些功能对应的API如下图: