1.6 KiB
Pull Requests
TODO
Code Style
Naming Convention
- Namespaces:
CamelCase
- Classes:
CamelCase
- Structs:
CamelCase_t
- Members:
camelCase
- Enum:
SNAKE_CASE
- Macros:
SNAKE_CASE
Brace Style
int myFunction() {
if (shortIf) { shortFunctionName(); }
if (longIf) {
longFunction();
otherStuff();
myLongFunction();
}
}
Note: If it makes the code cleaner, remember to use the ?
keyword instead of a if else
statement.
Structure
Headers and their associated C++ files shall be in the same directory. All headers must use #pragma once
instead of other include guards. Only include files in a header that are being used in that header. Include the rest in the associated C++ file.
Modules
Module Naming Convention
All modules names must be snake_case
. If the module is a source, it must end with _source
. If it is a sink, it must end with _sink
.
For example, lets take the module named cool_source
:
- Directory:
cool_source
- Class:
CoolSourceModule
- Binary:
cool_source.<os dynlib extension>
Integration into main repository
If the module meets the code quality requirements, it may be added to the official repository. A module that doesn't require any external dependencies that the core doesn't already use may be enabled for build by default. Otherwise, they must be disabled for build by default with a OPT_BUILD_MODULE_NAME
variable set to OFF
.
Best Practices
-
All additions and/or bug fixes to the core must not add additional dependencies.
-
Use VSCode for development, VS seems to cause issues.