Don't force public variables to use Hungarian notation (#8774)

People generally have expressed a dislike for the Hungarian notation
used in member variables, especially in examples/templates, and our
styleguide shouldn't be forced on downstream consumers, so this removes
all Hungarian notation from the examples/templates.

There are _some_ benefits to Hungarian for private member variables
(like knowing what's a member vs. local in a PR review) so we'll keep
private member variables the same for now, but public variables should
no longer use Hungarian notation, since it looks much worse. A new PMD
XPath rule has been added to accomplish this goal. Some other
non-compliant variables were fixed for the new rule.
This commit is contained in:
Gold856
2026-04-25 14:32:08 -04:00
committed by GitHub
parent e7e51c9c05
commit 35e8abedeb
443 changed files with 4584 additions and 4789 deletions

View File

@@ -12,7 +12,7 @@
<exclude-pattern>.*/Timestamped.*\.java</exclude-pattern>
<exclude-pattern>.*/units/measure/.*\.java</exclude-pattern>
<exclude-pattern>.*/*IntegrationTests.*</exclude-pattern>
<exclude-pattern>.*/*Examples.*</exclude-pattern>
<exclude-pattern>.*/*JNI.*</exclude-pattern>
<exclude-pattern>.*/math/proto.*</exclude-pattern>
<exclude-pattern>.*/command3/proto.*</exclude-pattern>
@@ -143,4 +143,22 @@
]]>
</example>
</rule>
<rule name="PublicFieldNamingConvention"
language="java"
message="Public fields must follow lowerCamelCase."
class="net.sourceforge.pmd.lang.rule.xpath.XPathRule">
<description>
</description>
<priority>3</priority>
<properties>
<property name="xpath">
<value>
<![CDATA[
//ClassDeclaration[not(matches(@PackageName, "org.wpilib.math"))]/ClassBody/FieldDeclaration[@Visibility = 'public' and @Static = false()]/VariableDeclarator[not(matches(@Name, "^[a-z][a-zA-Z0-9]*$"))]
]]>
</value>
</property>
</properties>
</rule>
</ruleset>