-
-
Save airglow923/1fa3bda42f2b193920d7f46ee8345e04 to your computer and use it in GitHub Desktop.
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 |
@rsglobal As per Google C++ Style Guide,
All such variables with static storage duration (i.e., statics and globals, see Storage Duration for details) should be named this way. This convention is optional for variables of other storage classes, e.g., automatic variables, otherwise the usual variable naming rules apply.
this way refers to the naming convention of constant names.
But it looks like .StaticVariableCase
is designed not for consts:
With this rule I have the following failure:
error: invalid case style for static variable 'backend_manager' [readability-identifier-naming,-warnings-as-errors]
BackendManager &BackendManager::GetInstance() {
static BackendManager backend_manager;
^~~~~~~~~~~~~~~
kBackendManager
@rsglobal I think you're right. I thought all such variables mean variables regardless of their constness. However, after going through Google's source code, I could see non-const
static
variables are written with snake case:
- protobuf/stubs/common.cc
- protobuf/io/coded_stream_unittest.cc
- protobuf/testing/googletest.cc
- protobuf/extension_set.cc
- googletest/include/gtest/internal/gtest-port.h
- googletest/test/gtest_pred_impl_unittest.cc
I'm going to fix the error Thanks for letting me know.
@airglow23,
Thank you.
Could you also add this lines?:
- key: readability-identifier-naming.ConstexprVariableCase
value: CamelCase
- key: readability-identifier-naming.ConstexprVariablePrefix
value: k
Currently constexpr variables are lower_case
for some reason on tidy-11.
And also there is one more false positive in macros:
error: invalid case style for macro definition 'DRM_DRMFBIMPORTER_H_' [readability-identifier-naming,-warnings-as-errors]
#define DRM_DRMFBIMPORTER_H_
^~~~~~~~~~~~~~~~~~~~
DRM_DRMFBIMPORTER_H
Do you have any ideas how to fix it?
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.
Thank you, it worked for me out-of-the-box after upgrading to v12.
I think it worth adding into your CheckOptions
list
@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: ''
@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?
@IshitaTakeshi No, I don't. You can use or modify it as you want.
Hi, thank you for sharing this.
Are you sure static should have
kCamelCase
instead oflower_case
?