C#静态分析工具Roslynator.Analyzers将方法数量提高了500多

Roslynator.Analyzers软件包的新版本2.3.1将分析、重构和修复方法的数量提升到了500多个。Roslynator使用开源的Roslyn .NET编译器平台对C#代码进行静态分析。这个分析驱动IDE显示可以帮助你改进代码的提示和操作信息。

Roslynator可以安装到Visual Studio 2017、Visual Studio 2019和Visual Studio Code中。VSCode版本可以在Linux、Mac和Windows上运行。这样,它就可以利用最新版本的Roslyn,即3.0版本。Roslynator.Analyzers 2.3.1将是支持Visual Studio 2017的最后一个版本。

可以在一个简单的“hello world”控制台应用程序中看下这个功能。

using System;
using System.Collections.Generic;
 
namespace HelloWorldApp
{
    class Program
    {
        static void Main(string[] args)
        {  
            var a = new List<string>() { "Hello","World"};
            var b = a.ToArray();
            for (var f = 1;f < b.Length;f++) {
                Console.WriteLine(value: b[f].ToString());
            }
            
        }
    }
}

Roslynator在可以重构的项旁边添加了一个灯泡动作项菜单,并在屏幕底部的面板中列出了问题。曲线突出了问题面板中提到的问题。该系统在你输入时工作。例如,当你输入for语句时,如果结束条件无法解析为布尔值,Roslynator分析器就会突出显示。

使用配置文件或Visual Studio IDE,可以配置你希望包含在项目中的检查和修复。配置文件可以共享,使整个团队能够使用相同的设置。

分析器是可扩展的,因此,你可以编写自己的分析器来处理组织中常见的问题,比如弃用的API或源代码中包含的安全凭据。该工具还支持命令行变体,以便可以将其集成到构建管道中。

与其他静态分析工具一样,Roslynator不需要执行软件来确定程序的行为和特性。它通过检查源代码来实现这一点。这些工具在20世纪70年代就出现了,当时,Stephen C. Johnson在他的C语言课程中提出了Lint的想法。它们甚至可以用于非编译语言,如Python和JavaScript。

SonarAnalyzer、XUnit Analyzers、Code Cracker、FxCop和StyleCop等工具之所以能够相对轻松地进行这种分析,是因为Roslyn编译器的独特创建方式。如下所示,编译器和工具不是以黑盒的方式提供,而是作为一系列API和服务提供的。这些工具可以使用编译器API来识别问题代码以及生成替换选项。

图片来源:Roslyn Overview on github

然而,并不是所有流行的代码分析工具都使用Roslyn。例如,Resharper工具已经存在了更长时间,它使用的是JetBrains专有的技术。Resharper比Roslyn早了几年,他们的引擎提供的特性比Roslyn API多,比如解决方案范围的错误分析,“大局(big picture)”代码检查,以及更广泛的语言支持,比如Razor。JetBrains已经在他们的其他产品中使用了Roslyn技术,比如Rider IDE

原文链接:

C# Static Analysis Tool Roslynator.Analyzers Now Has over 500 Ways to Improve Code

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/jDwxWlJCaAL42h6TcqqU
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券