Roslyn提供了相关的SDK,可以通过SDK来开发自己的代码分析器:
首先需要安装.Net Compiler Platform SDK:
VS2017 15.5之前的版本可以通过下面连接下载并安装:
https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.NETCompilerPlatformSDK
VS2017 15.5之后的版本可以通过Visual Studio Installer进行安装:
分析器代码简介:
-
代码结构:
创建的项目中一共有三个子项目,分别是分析器、分析器测试项目以及vsix安装包项目如下图所示:
其中分析器项目中包含了分析器(Analyzer1Analyzer)、代码修复器(Analyzer1CodeFixProvider)和相关的资源(Resources.resx)。
-
分析器(Analyzer1Analyzer):
分析器代码的核心内容是注册一个命名符号处理器(用于处理类名、接口名等),处理器的工作是判断分析的符合(名称)中是否包含小写字符,如果包含那么给出诊断信息(诊断信息定义包含在资源文件中)。
-
代码修复器:
将小写字符转换为大写:
-
代码调试:
将vsix项目设为启动项目,就可以对分析器进行调试,调试时VS会在沙盘中启动一个新的VS实例,通过这个VS创建一个项目,编写代码时即可看到分析器给出的诊断结果和代码修复:
诊断信息:
修复结果:
查看语法树:
总结:
官方已经提供了一个完整的机遇Roslyn的代码分析器自定义模板;
我们需要新建基于此模板的分析器程序就可以了;
我们可以根据公司的项目规定按指定的规则设计代码分析器规则;
参考:C# and Visual Basic - Use Roslyn to Write a Live Code Analyzer for Your API