a vim plugin that displays stuff on an led matrix
1# C++ style guide for Daedalus firmware
2
3## Formatting
4- Use clang-format with the provided .clang-format file
5- Run before committing: `clang-format -i firmware/src/*.cpp firmware/src/*.h`
6
7## Naming
8- Classes: PascalCase (e.g., `LedController`)
9- Functions: camelCase (e.g., `initializeHardware()`)
10- Variables: camelCase (e.g., `ledPin`)
11- Constants: UPPER_SNAKE_CASE (e.g., `MAX_BUFFER_SIZE`)
12- Macros: UPPER_SNAKE_CASE (e.g., `DEBUG_ENABLE`)
13- Files: snake_case (e.g., `led_controller.cpp`)
14
15## Headers
16- Use `#pragma once` for header guards
17- Order includes: standard library, Pico SDK, project headers
18
19## Comments
20- Use Doxygen-style comments for functions and classes
21- Comment complex algorithms and non-obvious code
22
23## Error handling
24- Use return codes for error reporting
25- Check return values from SDK functions
26- Use assertions for invariants
27
28## Memory management
29- Avoid dynamic memory allocation when possible
30- If needed, use RAII principles with smart pointers