| Index: c++/clang-format/README.md |
| =================================================================== |
| new file mode 100644 |
| --- /dev/null |
| +++ b/c++/clang-format/README.md |
| @@ -0,0 +1,64 @@ |
| +clang-format-eyeo |
| +================= |
| + |
| +A file containing style configuration for [`clang-format`][clang-format-docs] |
| +that formats according to the |
| +[Adblock Plus coding style guide][abp-coding-style-cpp] for C++. |
| + |
| +Installation |
| +------------ |
| + |
| +When `clang-format` receives its style configuration from a file, it searches |
| +for style configuration in the directory of each input file and then each parent |
| +directory. Copy the format file to the parent directory of the working |
| +directory. In this way it will `clang-format` will find the format file and |
| +the version control system will not. |
| + |
| +The configuration file must be named either "`.clang-format`" or |
| +"`_clang-format`". At the present time there's no command line option to specify |
| +the file name. |
| + |
| +Usage |
| +----- |
| + |
| + clang-format -style=file [...] |
| + |
| +The option "-style=file" (note that this is the word "file", not a file name) |
| +says to perform a directory search for the configuration. For the rest of the |
| +command line, see the `clang-format` documentation link above. |
| + |
| +Notes |
| +----- |
| + |
| +`clang-format` is a complete reformatter; it largely ignores whitespace within |
| +the input and reformats code according to its specified rules. Its treatment of |
| +whitespace within comments, however, is different, within which it preserves |
| +whitespace by default. If the automatically-formatted code is not acceptable, |
| +interventions are available. |
| + |
| +* Formatting can be turned on and off with explicit special comments. |
| + |
| +``` |
| + // clang-format off |
| + // clang-format on |
| + /* clang-format off */ |
| + /* clang-format on */ |
| +``` |
| + |
| +* Line-end comments contain an embedded newline that `clang-format` will retain. |
| +To prevent a manually-split line from unwrapping, add a `//`-comment at the end |
| +of the line; it can be empty. |
| + |
| +For more information, see the answer to this Stack Overflow question: |
| +[Clang-format line breaks][SO-1] |
| + |
| +Clang Version Support |
| +--------------------- |
| +The present version is for Clang 4. One option (`BreakConstructorInitializers`) |
| +we're using has changed in Clang 5. If you want to use Clang 5, edit the file as |
| +part of installation. Uncomment the new version and comment out the old one. |
| + |
| + |
| +[clang-format-docs]: http://clang.llvm.org/docs/ClangFormat.html |
| +[abp-coding-style-cpp]: https://adblockplus.org/coding-style#cpp |
| +[SO-1]: https://stackoverflow.com/questions/33656800/clang-format-line-breaks#answer-34362422 |