diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2021-03-09 13:15:06 -0500 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2021-03-16 21:01:54 -0400 |
commit | f55868927721f273640a3ba7a8e703d418a352b6 (patch) | |
tree | 813740324e90910f74f57a797b7f933b3ebc2776 /docs/markdown/snippets | |
parent | a45f939092cc2c60d49040bdb0147758a1403f61 (diff) | |
download | meson-f55868927721f273640a3ba7a8e703d418a352b6.zip meson-f55868927721f273640a3ba7a8e703d418a352b6.tar.gz meson-f55868927721f273640a3ba7a8e703d418a352b6.tar.bz2 |
clangformat: Add include and ignore files
Diffstat (limited to 'docs/markdown/snippets')
-rw-r--r-- | docs/markdown/snippets/clang-format.md | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/docs/markdown/snippets/clang-format.md b/docs/markdown/snippets/clang-format.md new file mode 100644 index 0000000..8cb88e0 --- /dev/null +++ b/docs/markdown/snippets/clang-format.md @@ -0,0 +1,43 @@ +## clang-format include and ignore lists + +When clang-format is installed and a `.clang-format` file is found at the main +project's root source directory, Meson automatically adds a `clang-format` target +that reformat all C and C++ files. + +It is now possible to restrict files to be reformatted with optional +`.clang-format-include` and `.clang-format-ignore` files. + +The file `.clang-format-include` contains a list of patterns matching the files +that will be reformatted. The `**` pattern matches this directory and all +subdirectories recursively. Empty lines and lines starting with `#` are ignored. +If `.clang-format-include` is not found, the pattern defaults to `**/*` which +means all files recursively in the source directory but has the disadvantage to +walk the whole source tree which could be slow in the case it contains lots of +files. + +Example of `.clang-format-include` file: +``` +# All files in src/ and its subdirectories +src/**/* + +# All files in include/ but not its subdirectories +include/* +``` + +The file `.clang-format-ignore` contains a list of patterns matching the files +that will be excluded. Files matching the include list (see above) that match +one of the ignore pattern will not be reformatted. Unlike include patters, ignore +patterns does not support `**` and a single `*` match any characters including +path separators. Empty lines and lines starting with `#` are ignored. + +The build directory and file without a well known C or C++ suffix are always +ignored. + +Example of `.clang-format-ignore` file: +``` +# Skip C++ files in src/ directory +src/*.cpp +``` + +Modified files will be printed on the console which can be used for example by +CI to ensure all files are correctly formatted. |