jyasskin@chromium.org | 452ed0ea | 2013-11-01 01:53:40 | [diff] [blame] | 1 | # Defines the Chromium style for automatic reformatting. |
| 2 | # http://clang.llvm.org/docs/ClangFormatStyleOptions.html |
| 3 | BasedOnStyle: Chromium |
thakis | 1c79f864 | 2014-10-31 23:00:18 | [diff] [blame] | 4 | # This defaults to 'Auto'. Explicitly set it for a while, so that |
| 5 | # 'vector<vector<int> >' in existing files gets formatted to |
| 6 | # 'vector<vector<int>>'. ('Auto' means that clang-format will only use |
| 7 | # 'int>>' if the file already contains at least one such instance.) |
scottmg | 57e3f0a | 2014-09-25 06:32:45 | [diff] [blame] | 8 | Standard: Cpp11 |
thakis | 6b08b5d | 2017-02-02 23:31:44 | [diff] [blame] | 9 | |
Peter Boström | 9f9b576d | 2022-12-13 19:02:33 | [diff] [blame] | 10 | # TODO(crbug.com/1392808): Remove when InsertBraces has been upstreamed into |
| 11 | # the Chromium style (is implied by BasedOnStyle: Chromium). |
| 12 | InsertBraces: true |
Zequan Wu | a84a23ae | 2023-03-22 18:12:29 | [diff] [blame] | 13 | InsertNewlineAtEOF: true |
Peter Boström | 9f9b576d | 2022-12-13 19:02:33 | [diff] [blame] | 14 | |
Takuto Ikuta | 4ecc218a | 2024-03-27 13:08:34 | [diff] [blame] | 15 | # Sort #includes by following |
| 16 | # https://google.github.io/styleguide/cppguide.html#Names_and_Order_of_Includes |
| 17 | # |
| 18 | # ref: https://clang.llvm.org/docs/ClangFormatStyleOptions.html#includeblocks |
| 19 | IncludeBlocks: Regroup |
| 20 | # ref: https://clang.llvm.org/docs/ClangFormatStyleOptions.html#includecategories |
| 21 | IncludeCategories: |
| 22 | # The win32 api has all sorts of implicit include order dependencies :-/ |
| 23 | # Give a few headers special priorities that make sure they appear before |
| 24 | # all other headers. |
| 25 | # Sync this with SerializeIncludes in tools/add_header.py. |
| 26 | # TODO(crbug.com/329138753): remove include sorting from tools/add_header.py |
| 27 | # after confirming clang-format sort works well. |
| 28 | # LINT.IfChange(winheader) |
| 29 | - Regex: '^<objbase\.h>' # This has to be before initguid.h. |
| 30 | Priority: 1 |
Takuto Ikuta | d0bcf212 | 2024-04-17 15:37:04 | [diff] [blame] | 31 | - Regex: '^<(initguid|mmdeviceapi|windows|winsock2|ws2tcpip|shobjidl|atlbase|ole2|unknwn|tchar|ocidl)\.h>' |
Takuto Ikuta | 4ecc218a | 2024-03-27 13:08:34 | [diff] [blame] | 32 | Priority: 2 |
| 33 | # LINT.ThenChange(/tools/add_header.py:winheader) |
| 34 | # UIAutomation*.h need to be after base/win/atl.h. |
| 35 | # Note the low priority number. |
| 36 | - Regex: '^<UIAutomation.*\.h>' |
| 37 | Priority: 6 |
| 38 | # Other C system headers. |
| 39 | - Regex: '^<.*\.h>' |
| 40 | Priority: 3 |
| 41 | # C++ standard library headers. |
| 42 | - Regex: '^<.*' |
| 43 | Priority: 4 |
| 44 | # Other libraries. |
| 45 | - Regex: '.*' |
| 46 | Priority: 5 |
| 47 | # ref: https://clang.llvm.org/docs/ClangFormatStyleOptions.html#includeismainregex |
| 48 | IncludeIsMainRegex: "\ |
Takuto Ikuta | c8d6b16f | 2024-04-15 16:59:19 | [diff] [blame] | 49 | (_(32|64|android|apple|chromeos|freebsd|fuchsia|fuzzer|ios|linux|mac|nacl|openbsd|posix|stubs?|win))?\ |
Takuto Ikuta | 4ecc218a | 2024-03-27 13:08:34 | [diff] [blame] | 50 | (_(unit|browser|perf)?tests?)?$" |
| 51 | |
Daniel Cheng | 9ce8be4 | 2015-07-16 21:44:58 | [diff] [blame] | 52 | # Make sure code like: |
| 53 | # IPC_BEGIN_MESSAGE_MAP() |
| 54 | # IPC_MESSAGE_HANDLER(WidgetHostViewHost_Update, OnUpdate) |
| 55 | # IPC_END_MESSAGE_MAP() |
| 56 | # gets correctly indented. |
| 57 | MacroBlockBegin: "^\ |
| 58 | BEGIN_MSG_MAP|\ |
| 59 | BEGIN_MSG_MAP_EX|\ |
| 60 | BEGIN_SAFE_MSG_MAP_EX|\ |
| 61 | CR_BEGIN_MSG_MAP_EX|\ |
| 62 | IPC_BEGIN_MESSAGE_MAP|\ |
| 63 | IPC_BEGIN_MESSAGE_MAP_WITH_PARAM|\ |
dcheng | 0941e7d8 | 2015-07-17 03:51:45 | [diff] [blame] | 64 | IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN|\ |
Daniel Cheng | 9ce8be4 | 2015-07-16 21:44:58 | [diff] [blame] | 65 | IPC_STRUCT_BEGIN|\ |
| 66 | IPC_STRUCT_BEGIN_WITH_PARENT|\ |
dcheng | 0941e7d8 | 2015-07-17 03:51:45 | [diff] [blame] | 67 | IPC_STRUCT_TRAITS_BEGIN|\ |
| 68 | POLPARAMS_BEGIN|\ |
| 69 | PPAPI_BEGIN_MESSAGE_MAP$" |
Daniel Cheng | 9ce8be4 | 2015-07-16 21:44:58 | [diff] [blame] | 70 | MacroBlockEnd: "^\ |
| 71 | CR_END_MSG_MAP|\ |
| 72 | END_MSG_MAP|\ |
| 73 | IPC_END_MESSAGE_MAP|\ |
dcheng | 0941e7d8 | 2015-07-17 03:51:45 | [diff] [blame] | 74 | IPC_PROTOBUF_MESSAGE_TRAITS_END|\ |
Daniel Cheng | 9ce8be4 | 2015-07-16 21:44:58 | [diff] [blame] | 75 | IPC_STRUCT_END|\ |
dcheng | 0941e7d8 | 2015-07-17 03:51:45 | [diff] [blame] | 76 | IPC_STRUCT_TRAITS_END|\ |
| 77 | POLPARAMS_END|\ |
| 78 | PPAPI_END_MESSAGE_MAP$" |