Browse Source

:memo: clang-format on Electron C++ code.

Haojian Wu 8 years ago
parent
commit
0d930b65f1
3 changed files with 38 additions and 2 deletions
  1. 1 0
      docs/README.md
  2. 34 0
      docs/development/clang-format.md
  3. 3 2
      docs/development/coding-style.md

+ 1 - 0
docs/README.md

@@ -88,6 +88,7 @@ an issue:
 ## Development
 
 * [Coding Style](development/coding-style.md)
+* [Using clang-format on Electron C++ Code](development/clang-format.md)
 * [Source Code Directory Structure](development/source-code-directory-structure.md)
 * [Technical Differences to NW.js (formerly node-webkit)](development/atom-shell-vs-node-webkit.md)
 * [Build System Overview](development/build-system-overview.md)

+ 34 - 0
docs/development/clang-format.md

@@ -0,0 +1,34 @@
+# Using clang-format on Electron C++ Code
+
+[`clang-format`](http://clang.llvm.org/docs/ClangFormat.html) is a tool to
+automatically format C/C++/Objective-C code, so that developers don't need to
+concern about style issues during code review.
+
+It is highly recommended to format your changed C++ code before sending to
+code review, which will save your and reviews' time.
+
+To automatically format a file according to Electron C++ code style, simply run
+`clang-format path/to/electron/file.cc`. It should work on macOS/Linux/Windows.
+
+The workflow to format your changed code:
+
+1. Do your change in electron repository.
+2. Run `git add your_changed_file.cc`.
+3. Run `git-clang-format`, and you will probably see modifications in
+your_changed_file.cc, these modifications are generated from `clang-format`.
+4. Run `git add your_changed_file.cc`, and commit your change.
+5. Now it is ready to send a pull request.
+
+If you want to format the changed code on your latest git commit (HEAD), you can
+run `git-clang-format HEAD~1`. See `git-clang-format -h` for more details.
+
+You can install `clang-format` and `git-clang-format` via
+`npm install -g clang-format`.
+
+## Editor integration
+
+It is useful to integrate `clang-format` tool in your favorite editors.
+For further guidance on setting up editor integration, see specific pages:
+
+  * [Atom](https://atom.io/packages/clang-format)
+  * [Vim & Emacs](http://clang.llvm.org/docs/ClangFormat.html#vim-integration)

+ 3 - 2
docs/development/coding-style.md

@@ -8,8 +8,9 @@ You can run `npm run lint` to show any style issues detected by `cpplint` and
 ## C++ and Python
 
 For C++ and Python, we follow Chromium's [Coding
-Style](http://www.chromium.org/developers/coding-style). There is also a
-script `script/cpplint.py` to check whether all files conform.
+Style](http://www.chromium.org/developers/coding-style). You can use
+[clang-format](clang-format.md) to format the C++ code automatically. There is
+also a script `script/cpplint.py` to check whether all files conform.
 
 The Python version we are using now is Python 2.7.