Last active
November 6, 2025 09:15
-
-
Save airglow923/1fa3bda42f2b193920d7f46ee8345e04 to your computer and use it in GitHub Desktop.
clang-tidy readability-identifier-naming for Google's naming convention
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| CheckOptions: | |
| - key: readability-identifier-naming.ClassCase | |
| value: CamelCase | |
| - key: readability-identifier-naming.ClassMemberCase | |
| value: lower_case | |
| - key: readability-identifier-naming.ConstexprVariableCase | |
| value: CamelCase | |
| - key: readability-identifier-naming.ConstexprVariablePrefix | |
| value: k | |
| - key: readability-identifier-naming.EnumCase | |
| value: CamelCase | |
| - key: readability-identifier-naming.EnumConstantCase | |
| value: CamelCase | |
| - key: readability-identifier-naming.EnumConstantPrefix | |
| value: k | |
| - key: readability-identifier-naming.FunctionCase | |
| value: CamelCase | |
| - key: readability-identifier-naming.GlobalConstantCase | |
| value: CamelCase | |
| - key: readability-identifier-naming.GlobalConstantPrefix | |
| value: k | |
| - key: readability-identifier-naming.StaticConstantCase | |
| value: CamelCase | |
| - key: readability-identifier-naming.StaticConstantPrefix | |
| value: k | |
| - key: readability-identifier-naming.StaticVariableCase | |
| value: lower_case | |
| - key: readability-identifier-naming.MacroDefinitionCase | |
| value: UPPER_CASE | |
| - key: readability-identifier-naming.MacroDefinitionIgnoredRegexp | |
| value: '^[A-Z]+(_[A-Z]+)*_$' | |
| - key: readability-identifier-naming.PrivateMemberCase | |
| value: lower_case | |
| - key: readability-identifier-naming.ProtectedMemberCase | |
| value: lower_case | |
| - key: readability-identifier-naming.PublicMemberCase | |
| value: lower_case | |
| - key: readability-identifier-naming.PrivateMemberSuffix | |
| value: _ | |
| - key: readability-identifier-naming.ProtectedMemberSuffix | |
| value: _ | |
| - key: readability-identifier-naming.PublicMemberSuffix | |
| value: '' | |
| - key: readability-identifier-naming.NamespaceCase | |
| value: lower_case | |
| - key: readability-identifier-naming.ParameterCase | |
| value: lower_case | |
| - key: readability-identifier-naming.TypeAliasCase | |
| value: CamelCase | |
| - key: readability-identifier-naming.TypedefCase | |
| value: CamelCase | |
| - key: readability-identifier-naming.VariableCase | |
| value: lower_case | |
| - key: readability-identifier-naming.IgnoreMainLikeFunctions | |
| value: 1 |
Author
Thank you, it worked for me out-of-the-box after upgrading to v12.
I think it worth adding into your CheckOptions list
Author
@rsglobal Updated. Thanks
Hello,
To fix this:
Data members of structs, both static and non-static, are named like ordinary nonmember variables. They do not have the trailing underscores that data members in classes have.
the following diff has to be applied:
- - key: readability-identifier-naming.MemberSuffix
+ - key: readability-identifier-naming.PrivateMemberSuffix
value: _
+ - key: readability-identifier-naming.PublicMemberSuffix
+ value: ''
Author
@rsglobal Thank you for pointing that out
How to use it in CMake Project.
@ehds I made a tutorial: https://itnext.io/save-your-sanity-and-time-beyond-clang-format-2b929b9120b8
Thanks, it's work for me.
@airglow923 Do you have any specific license on this repo?
Author
@IshitaTakeshi No, I don't. You can use or modify it as you want.
I think you also need
- key: readability-identifier-naming.ProtectedMemberCase
value: lower_case
- key: readability-identifier-naming.ProtectedMemberSuffix
value: _
Author
@maliberty Thanks, I added ProtectedMemberSuffix. I also replaced MemberCase with equivalent public, protected, and private configurations.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@rsglobal
UPDATE
I forgot to mention that
IgnoredRegexpis only supported in clang-tidy 12 onwards.Thanks. I included
ConstexprVariableCaseandPrefixas well to the file.I think the error is due to the trailing underline. You can make use of MacroDefinitionIgnoredRegexp to allow trailing underline.
For example,
Note that
IgnoredRegexpuses POSIX Extended Regular Expressions (POSIX ERE) for its regex engine.