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 |