--- # c-api/.clang-tidy # Place this file at the root of whatever directory holds your Part II # (C API) surface — e.g. c-api/, public-include/, or wherever your extern "C" # headers and shims live. clang-tidy always uses the closest .clang-tidy file # up the directory tree, so files under this directory pick up these # snake_case naming rules instead of the PascalCase/camelCase rules in the # repo-root .clang-tidy, without any extra flags or per-file configuration. # # Formatting (tabs, Allman braces, line length) still comes from the single # root-level .clang-format — only naming differs between Part I and Part II, # per style guide §15 (Indentation and Braces). InheritParentConfig: true Checks: > readability-identifier-naming, bugprone-exception-escape CheckOptions: # --- C API naming — style guide §13 --- # Every public symbol uses snake_case with a library/module prefix # (e.g. net_manager_connect, NET_MAX_RETRIES). clang-tidy can enforce the # casing; the prefix itself is a code-review convention (see TOOLING.md). - key: readability-identifier-naming.FunctionCase value: lower_case - key: readability-identifier-naming.VariableCase value: lower_case - key: readability-identifier-naming.ParameterCase value: lower_case - key: readability-identifier-naming.LocalVariableCase value: lower_case - key: readability-identifier-naming.StructCase value: CamelCase - key: readability-identifier-naming.EnumCase value: CamelCase # Enum values — ALL_CAPS_SNAKE_CASE with a library + enum prefix # (e.g. NET_STATE_CONNECTED). - key: readability-identifier-naming.EnumConstantCase value: UPPER_CASE - key: readability-identifier-naming.GlobalConstantCase value: UPPER_CASE - key: readability-identifier-naming.MacroDefinitionCase value: UPPER_CASE # Internal (non-exported) global/static variables — style guide §13's # g_/s_ rows. Only applies to mutable state; GlobalConstantCase above # still governs const globals, which stay UPPER_CASE with no prefix. - key: readability-identifier-naming.GlobalVariableCase value: lower_case - key: readability-identifier-naming.GlobalVariablePrefix value: g_ - key: readability-identifier-naming.StaticVariableCase value: lower_case - key: readability-identifier-naming.StaticVariablePrefix value: s_