-
-
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 |
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.
@rsglobal As per Google C++ Style Guide,
this way refers to the naming convention of constant names.