xref: /aosp_15_r20/frameworks/minikin/doc/minikin_style.md (revision 834a2baab5fdfc28e9a428ee87c7ea8f6a06a53d)
1*834a2baaSAndroid Build Coastguard Worker### Minikin Style Guide
2*834a2baaSAndroid Build Coastguard Worker
3*834a2baaSAndroid Build Coastguard WorkerThe C++ style in Minikin follows Android Framework C++ Code Style Guide except for following rules:
4*834a2baaSAndroid Build Coastguard Worker
5*834a2baaSAndroid Build Coastguard Worker * Order of include
6*834a2baaSAndroid Build Coastguard Worker
7*834a2baaSAndroid Build Coastguard Worker In dir/foo.cc or dir/foo_test.cc, whose main purpose is to implement or test the stuff in
8*834a2baaSAndroid Build Coastguard Worker dir2/foo2.h, order your includes as follows:
9*834a2baaSAndroid Build Coastguard Worker
10*834a2baaSAndroid Build Coastguard Worker   1. dir2/foo.h
11*834a2baaSAndroid Build Coastguard Worker   2. A blank line
12*834a2baaSAndroid Build Coastguard Worker   3. C system files
13*834a2baaSAndroid Build Coastguard Worker   4. C++ system files
14*834a2baaSAndroid Build Coastguard Worker   5. A blank line
15*834a2baaSAndroid Build Coastguard Worker   6. Other libraries' files
16*834a2baaSAndroid Build Coastguard Worker   7. A blank line
17*834a2baaSAndroid Build Coastguard Worker   8. Minikin public files
18*834a2baaSAndroid Build Coastguard Worker   9. A blank line
19*834a2baaSAndroid Build Coastguard Worker   10. Minikin private files
20*834a2baaSAndroid Build Coastguard Worker
21*834a2baaSAndroid Build Coastguard Worker For example,
22*834a2baaSAndroid Build Coastguard Worker ```
23*834a2baaSAndroid Build Coastguard Worker #include "minikin/Layout.h"  // The corresponding header file.
24*834a2baaSAndroid Build Coastguard Worker
25*834a2baaSAndroid Build Coastguard Worker #include <math.h>  // C system header files.
26*834a2baaSAndroid Build Coastguard Worker #include <string>  // C++ system header files.
27*834a2baaSAndroid Build Coastguard Worker
28*834a2baaSAndroid Build Coastguard Worker #include <hb.h>  // Other library, HarfBuzz, header file.
29*834a2baaSAndroid Build Coastguard Worker #include <log/log.h>  // Other library, Android, header file.
30*834a2baaSAndroid Build Coastguard Worker #include <unicode/ubidi.h>  // Other library, ICU, header file.
31*834a2baaSAndroid Build Coastguard Worker
32*834a2baaSAndroid Build Coastguard Worker #include "minikin/Emoji.h"  // The minikin public header file.
33*834a2baaSAndroid Build Coastguard Worker #include "HbFontCache.h"  // The minikin private header file.
34*834a2baaSAndroid Build Coastguard Worker ```
35*834a2baaSAndroid Build Coastguard Worker
36*834a2baaSAndroid Build Coastguard Worker * "<>" vs ""
37*834a2baaSAndroid Build Coastguard Worker
38*834a2baaSAndroid Build Coastguard Worker   * `#include <...>` should be used for non local library files.
39*834a2baaSAndroid Build Coastguard Worker   * `#include "..."` should be used for minikin header files.
40