== Why is this an issue? Shared naming conventions allow teams to collaborate efficiently. This rule checks that all ``++enum++`` names match a provided regular expression. The default configuration is the one recommended by Microsoft: * Pascal casing, starting with an upper case character, e.g. BackColor * Short abbreviations of 2 letters can be capitalized, e.g. GetID * Longer abbreviations need to be lower case, e.g. GetHtml * If the enum is marked as [Flags] then its name should be plural (e.g. MyOptions), otherwise, names should be singular (e.g. MyOption) === Noncompliant code example With the default regular expression for non-flags enums: ``++^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$++`` [source,csharp] ---- public enum foo // Noncompliant { FooValue = 0 } ---- With the default regular expression for flags enums: ``++^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$++`` [source,csharp] ---- [Flags] public enum Option // Noncompliant { None = 0, Option1 = 1, Option2 = 2 } ---- === Compliant solution [source,csharp] ---- public enum Foo { FooValue = 0 } ---- [source,csharp] ---- [Flags] public enum Options { None = 0, Option1 = 1, Option2 = 2 } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::../message.adoc[] === Parameters .format **** ---- ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$ ---- Regular expression used to check the enumeration type names against **** .flagsAttributeFormat **** ---- ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$ ---- Regular expression used to check FlagsAttribute enumeration type names against **** endif::env-github,rspecator-view[]