blob: 4c5556ce1c88a3919b884906f49498d6ae443844 [file] [log] [blame]
.. _coding_style:
Coding Style
************
Use this coding guideline to ensure that your development complies with
the project's style and naming conventions.
In general, follow the `Linux kernel coding style`_, with the following
exceptions:
* Add braces to every ``if`` and ``else`` body, even for single-line code
blocks. Use the :option:`--ignore BRACES` flag to make :program:`checkpatch`
stop complaining.
* Use hard tab stops. Set the tab width 8 spaces. Break lines at 80 characters.
If you are trying to align comments after declarations, use spaces instead of
tabs to align them.
* Use C89-style single line comments, :literal:`/* */`. The C99-style
single line comment, //, is not allowed.
* Use :literal:`/** */` for any comments that need to appear in the
documentation.
Checking for Conformity Using Checkpatch
========================================
The Linux kernel GPL-licensed tool :program:`checkpatch` is used to
check coding style conformity. :program:`Checkpatch` is available in the
scripts directory. To invoke it when committing code, edit your
:file:`.git/hooks/pre-commit` file to contain:
.. code-block:: bash
#!/bin/sh
set -e exec
exec git diff --cached | ${ZEPHYR_BASE}/scripts/checkpatch.pl - || true
.. _Linux kernel coding style: https://www.kernel.org/doc/Documentation/CodingStyle