Skip to content

dlebansais/CSharpLatest

Repository files navigation

CSharpLatest

Roslyn-based analysis of C# code to suggest the use of features in the latest version of the language.

Build status codecov CodeFactor NuGet

How to install

To install this analyzer, in Visual Studio:

  • Open menu Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution. The NuGet - Solution window appears.
  • In the top right corner, make sure Package Source is selected to be either nuget.org or All.
  • Click the Browse tab and in the search prompt type CSharpLatest.
  • A list of packages appears, one one them called dlebansais.CSharpLatest.
  • Click to select this package and in the right pane check projects you want to be analyzed.
  • Click the Install button.

How to uninstall

To uninstall this analyzer, in Visual Studio:

  • Open menu Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution. The NuGet - Solution window appears.
  • Click to select the dlebansais.CSharpLatest package and in the right pane uncheck projects you no longer want to be analyzed.
  • Click the Uninstall button.

List of diagnostics

Code Diagnostic
CSL1000 Variables that are not modified should be made constants.
CSL1001 Use is null instead of == null
CSL1002 Use is not null instead of != null
CSL1003 Consider using primary contructors to simplify your code.
CSL1004 Consider using records to simplify your code.
CSL1005 Simplify one line getter.
CSL1006 Simplify one line setter.
CSL1007 Add missing braces.
CSL1008 Remove unnecessary braces.
CSL1009 FieldBackedPropertyAttribute is missing argument.
CSL1010 init accessor not supported in FieldBackedPropertyAttribute.
CSL1011 Implement params collection.
CSL1012 Use System.Threading.Lock to lock.
CSL1013 Change extension function to extension member
CSL1014 Consider using <inheritdoc />
CSL1015 Do not declare async void methods
CSL1016 Unsupported use of the AsyncEventHandler attribute.

CSL1000: Variables that are not modified should be made constants

This diagnostic comes directly from the Roslyn Analyzer Tutorial.

CSL1001: Use is null instead of == null

Feature available since C# 7.0: is operator

CSL1002: Use is not null instead of != null

Feature available since C# 9: logical patterns

CSL1003: Consider using primary contructors to simplify your code

Feature available since C# 12: primary constructors. Superseded by IDE0290.

CSL1004: Consider using records to simplify your code

Feature available since C# 9: records

CSL1005: Simplify one line getter

Feature available since C# 6 (and extended to accessors in 7): expression body. Superseded by IDE0025 and IDE0027.

CSL1006: Simplify one line setter

Feature available since C# 7: expression body. Superseded by IDE0027.

CSL1007: Add missing braces and CSL1008: Remove unnecessary braces

Improves on rule IDE0011.

CSL1009 and CSL1010

The FieldBackedProperty attribute can be used in code conditionally compiled with and without C# 14 to emulate the functionality of the field keyword.

CSL1011: Implement params collection

Feature available since C# 13: params collections.

CSL1012: Use System.Threading.Lock to lock

Feature available since C# 13: New lock object.

CSL1013: Change extension function to extension member

Feature available since C# 14: Extension members.

CSL1014: Consider using <inheritdoc />

Improve your code documentation with Visual Studio 2022 full support of this tag.

CSL1015: Do not declare async void methods

While async void methods are valid C# code, they should be avoided except for event handlers. This diagnostic helps you identify such methods in your code. For more information, see Asynchronous programming with async and await.

If the method is an event handler, consider using the AsyncEventHandler attribute. More information can also be found in the description of this diagnostic.

CSL1016: Unsupported use of the AsyncEventHandler attribute.

The AsyncEventHandler attribute can be used to handle async void methods, but under a restricted set of conditions. This diagnostic notifies you when these conditions are not met.

About

Roslyn-based analysis of C# code to suggest the use of features in the latest version of the language.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors