普通文本  |  40行  |  1.13 KB

### Minikin Style Guide

The C++ style in Minikin follows Android Framework C++ Code Style Guide except for following rules:

 * Order of include

 In dir/foo.cc or dir/foo_test.cc, whose main purpose is to implement or test the stuff in
 dir2/foo2.h, order your includes as follows:

   1. dir2/foo.h
   2. A blank line
   3. C system files
   4. C++ system files
   5. A blank line
   6. Other libraries' files
   7. A blank line
   8. Minikin public files
   9. A blank line
   10. Minikin private files

 For example,
 ```
 #include "minikin/Layout.h"  // The corresponding header file.

 #include <math.h>  // C system header files.
 #include <string>  // C++ system header files.

 #include <hb.h>  // Other library, HarfBuzz, header file.
 #include <log/log.h>  // Other library, Android, header file.
 #include <unicode/ubidi.h>  // Other library, ICU, header file.

 #include "minikin/Emoji.h"  // The minikin public header file.
 #include "HbFontCache.h"  // The minikin private header file.
 ```

 * "<>" vs ""

   * `#include <...>` should be used for non local library files.
   * `#include "..."` should be used for minikin header files.