Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 14 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save airglow923/1fa3bda42f2b193920d7f46ee8345e04 to your computer and use it in GitHub Desktop.
Save airglow923/1fa3bda42f2b193920d7f46ee8345e04 to your computer and use it in GitHub Desktop.
clang-tidy readability-identifier-naming for Google's naming convention
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.MemberCase
value: lower_case
- key: readability-identifier-naming.PrivateMemberSuffix
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
@airglow923
Copy link
Author

airglow923 commented Aug 1, 2021

@rsglobal

UPDATE

I forgot to mention that IgnoredRegexp is only supported in clang-tidy 12 onwards.


Thanks. I included ConstexprVariableCase and Prefix as 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,

- key: readability-identifier-naming.MacroDefinitionIgnoredRegexp
  value: '^[A-Z]+(_[A-Z]+)*_$'

Note that IgnoredRegexp uses POSIX Extended Regular Expressions (POSIX ERE) for its regex engine.

@rsglobal
Copy link

rsglobal commented Aug 4, 2021

@airglow923,

Thank you, it worked for me out-of-the-box after upgrading to v12.
I think it worth adding into your CheckOptions list

@airglow923
Copy link
Author

@rsglobal Updated. Thanks

@rsglobal
Copy link

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:           ''

@airglow923
Copy link
Author

@rsglobal Thank you for pointing that out

@ehds
Copy link

ehds commented May 23, 2022

How to use it in CMake Project.

@HappyCerberus
Copy link

@ehds
Copy link

ehds commented May 24, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment