rspec/rules/S101/csharp/rule.adoc
Fred Tingaud 51369b610e
Make sure that includes are always surrounded by empty lines (#2270)
When an include is not surrounded by empty lines, its content is inlined
on the same line as the adjacent content. That can lead to broken tags
and other display issues.
This PR fixes all such includes and introduces a validation step that
forbids introducing the same problem again.
2023-06-22 10:38:01 +02:00

61 lines
1.5 KiB
Plaintext

== Why is this an issue?
Shared naming conventions allow teams to collaborate efficiently.
This rule raises an issue when a type name is not PascalCased.
For example, the classes
[source,csharp]
----
class my_class {...}
class SOMEName42 {...}
----
should be renamed to
[source,csharp]
----
class MyClass {...}
class SomeName42 {...}
----
=== Exceptions
* The rule ignores types marked with `ComImportAttribute` or `InterfaceTypeAttribute`.
* To reduce noise, two consecutive upper case characters are allowed unless they form the full type name. So, `MyXClass` is compliant, but `XC` is not.
* The rule allows having ``++'_'++`` characters in class names inside test projects: in that case, each word separated by ``++'_'++`` should be PascalCased.
[source,csharp]
----
class Some_Name___42 {...} // Compliant in tests
class Some_name___42 {...} // Noncompliant
class Some_Name_XC {...} // Noncompliant because of XC, should be Some_Name_Xc
----
== Resources
=== Documentation
* https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/capitalization-conventions[Microsoft Capitalization Conventions]
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
=== Message
* Rename [class|interface|struct] "XXX" to match PascalCase naming rules, consider using "Xxx".
* Rename [class|interface|struct] "XXX" to match PascalCase naming rules, trim underscores from the name.
'''
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]