Style guide¶
This guide aims to keep our team’s code style consistent, so please follow it as much as possible. Access casing for variables and methods is especially important since a lot of code references code that someone else wrote.
Naming¶
Java¶
Public variables: PascalCase
Public/private top level constant variables:
MACRO_CASEPrivate top level members:
m_camelCasePrivate local (including constant) variables:
camelCaseEnums:
PascalCaseMethods:
camelCaseClasses:
PascalCaseClass files:
PascalCase.javaMethod files:
camelCase.javaTest files:
PascalCaseTest.javaSubsystem classes and files:
PascalCaseSubsystem.javaAbstract subsystem classes and files:
PascalCaseSubsystem.javaCommand classes and files:
PascalCaseCommand.java
C++¶
Public variables:
PascalCasePublic/private top level constant variables:
MACRO_CASEPrivate top level members:
m_camelCasePrivate local (including constant) variables:
camelCaseEnums:
PascalCaseMethods:
camelCaseClasses:
PascalCaseClass files:
PascalCase.cpporPascalCase.hppMethod files:
camelCase.cppTest files:
test_camelCase.cppCMake modules:
PascalCase.cmake
Structure¶
The following outlines the file structure in a WPILib projecct.
subsystemsfoldersubfolders grouping related subsystems (e.g. drive)
commandsfoldersubfolders grouping related subsystems (e.g. arm)
one
autofolder for auto related commands
Auto folder for full auto routines (not PathPlanner)
utilsfolder for reused codeFollow PathPlanner documentation for PathPlanner structure