JPSoftworks.CodeTools.Analyzers

Collection of Roslyn analyzers used in various projects, generalized for re-use in generic projects.

Rules & Analyzers

Rule ID Description Category Severity Status Notes
JPX0001 Using new Guid() is ambiguous. Design ⚠️ Warning
JPX0002 Using default literal to create a Guid is ambiguous. Design ℹ Information
JPX0003 Use EventArgs.Empty instead of new EventArgs(). Usage ⚠️ Warning 🚀
JPX0004 Use null-objectpattern instead of creating a new empty object. Usage ℹ️ Information 🚀
JPX0101 Inherited classes must use a suffix. Naming ⚠️ Warning 🚀

Wishlist

Rule ID Description Category Severity Status Notes
JPX0005 Use EventHandler delegate for events. Design ⚠️ Warning 💡
JPX0006 Use EventArgs.Empty instead of null. Design ⚠️ Warning 💡
JPX0007 Use correct sender in event invocation (this for instance, null for static). Usage ⚠️ Warning 💡
JPX0008 Shouldn't call Type.GetType(), probably meant GetType() on object instance. Usage ⚠️ Warning 💡
JPX0009 Shouldn't return null from async method. Usage ⚠️ Warning 💡
JPX0021 Use String.Equals instead of == operator. Usage ⚠️ Warning 💡
JPX0022 Use String.Equals instead of String.Compare(...) == 0. Usage ⚠️ Warning 💡
JPX0023 Specify case comparison explicitly when comparing strings. Usage ⚠️ Warning 💡
JPX0024 Specify comparer when creating collection of strings. Usage ⚠️ Warning 💡
JPX0025 String literal contains zero-width character. Usage ⚠️ Warning 💡

Status legend:

  • 💡: idea / wishlisted
  • 🧪: design
  • 🚀: implementation
  • 💚: implementation + unit test
  • ✅: implementation + unit test + documentation