Building a Roslyn Analyzer code fix
Roslyn Analyzers allow you to provide options for users to automatically fix issues your analyzers detect in your code. They do this through something called a code fix provider, which can modify your document in an automated manner to resolve the diagnostic warning.
Think of it this way: diagnostic analyzers, like our OverrideToStringAnalyzer
, help detect issues in your team’s code. On the other hand, code fix providers give you a way of fixing these issues.
Not all diagnostic analyzers will have code-fix providers, but in my experience, those that also provide code-fix providers tend to get addressed earlier and more consistently.
Let’s see how one works.
Creating a CodeFixProvider
First, we’ll add a new class to the Packt.Analyzers
class library. We’ll call this class ToStringCodeFix
. Replace its contents with the following code for a basic code fix:
using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis...