rspec/rules/S2347/vbnet/rule.adoc
Fred Tingaud 16f6c0aecf
Inline adoc when include has no additional value (#1940)
Inline adoc files when they are included exactly once.

Also fix language tags because this inlining gives us better information
on what language the code is written in.
2023-05-25 14:18:12 +02:00

62 lines
1.4 KiB
Plaintext

== Why is this an issue?
Shared coding conventions allow teams to collaborate efficiently. This rule checks that all even handler names match a provided regular expression.
The default configuration is:
* Either in Pascal case, i.e. starting with an upper case letter, e.g. OnMyButtonClicked
* Or, a subject, in Pascal or camel case, followed by an underscore followed by an event name, in Pascal case, e.g. btn1_Clicked
Event handlers with a ``++handles++`` clause and two-parameter methods with ``++EventArgs++`` second parameter are covered by this rule.
=== Noncompliant code example
With the default regular expression ``++^(([a-z][a-z0-9]*)?([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?_)?([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$++``:
[source,vbnet]
----
Module Module1
Sub subject__SomeEvent() Handles X.SomeEvent ' Noncompliant - two underscores
End Sub
End Module
----
=== Compliant solution
[source,vbnet]
----
Module Module1
Sub subject_SomeEvent() Handles X.SomeEvent ' Compliant
End Sub
End Module
----
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
=== Message
Rename event handler "xxx" to match the regular expression: "yyy".
=== Parameters
.format
****
----
^(([a-z][a-z0-9]*)?([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?_)?([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$
----
Regular expression used to check the even handler names against.
****
endif::env-github,rspecator-view[]