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。例如,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