.NET Compiler Platform ("Roslyn") Analyzers
This repository contains a number of Roslyn diagnostic analyzers initially developed to help flesh out the design and implementation of the static analysis APIs.
Currently there are only a few projects here. Over time the collection will grow as more are migrated from the dotnet/roslyn repository.
Debug | Release |
---|---|
Projects
AsyncPackage
Created by summer 2014 interns Chardai Page, Kendra Havens, and Vivian Morgowicz
The AsyncPackage analyzer enforces good practices when writing code that makes use of C#'s async
and await
language features.
Desktop.Analyzers
Analyzers for APIs specific to the desktop .NET Framework.
MetaCompilation
Created by summer 2015 interns Zoë Petard, Jessica Petty, and Daniel King
The MetaCompilation Analyzer is an analyzer that functions as a tutorial to teach users how to write an analyzer. It uses diagnostics and code fixes to guide the user through the various steps required to create a simple analyzer. It is designed for a novice analyzer programmer with some previous programming experience.
For instructions on using this tutorial, see Instructions.
Microsoft.AnalyzerPowerPack
General language rules implemented as analyzers using the .NET Compiler Platform ("Roslyn").
Latest stable version: 1.0.1
Microsoft.CodeAnalysis.Analyzers
Provides guidelines for using .NET Compiler Platform ("Roslyn") APIs.
Latest stable version: 1.0.0
Microsoft.Net.RoslynDiagnostics
Contains analyzers specific to the .NET Compiler Platform ("Roslyn") project.
System.Runtime.Analyzers
Provides guidelines for using APIs in the System.Runtime namespace.
Latest stable version: 1.0.1
System.Runtime.InteropServices.Analyzers
Provides guidelines for using APIs in the System.Runtime.InteropServices namespace.
Latest stable version: 1.0.1
Getting Started
- Clone the repository
- Install NuGet packages:
powershell -executionpolicy bypass src\.nuget\NuGetRestore.ps1
- Build:
msbuild src\Analyzers.sln
Submitting Pull Requests
Prior to submitting a pull request, ensure the build and all tests pass using BuildAndTest.proj:
msbuild BuildAndTest.proj