Code style and formatting

We aim for a consistent and readable coding style. You do not need to worry about styling if you use the right tools we present in the following. Please also enable pre-commit in your repository to have these check run automatically for you on every commit!

C++

Use clang-format. It can be added to be automatically run on save in your editor / IDE:

The current style is defined in .clang-format.

You can also run via the command line:

clang-format -i path/to/file.cpp
# OR clang-format on changed lines only:
git clang-format -i path/to/file.cpp
# OR run on all files, e.g.:
find -E . -regex '.*\.(cpp|h)' -exec clang-format -i {} \;

Python

Use black. It can be added to be automatically run on save in your editor / IDE:

black is also run by our pre-commit-hooks. To run manually:

pre-commit run black --all-files

CMake

Use cmake-format. It can be added to be automatically run on save in your editor / IDE:

The current style is defined in .cmake-format.yaml.

On installation make sure to install with the YAML option:

pip install cmakelang[YAML]

Build targets

You can run clang-format and cmake-format on the full OGS code base by building the following targets:

Language Shows formatting Applies formatting
C++ clang-format fix-clang-format
CMake cmake-format fix-cmake-format

This article was written by Lars Bilke. If you are missing something or you find an error please let us know.
Generated with Hugo 0.122.0 in CI job 430699 | Last revision: February 20, 2024
Commit: [App|PVTU2VTU] Faster computation of unique nodes and mapping d5e28bc  | Edit this page on