mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-03 04:21:13 +00:00
Add warning to schema parser if field name is not snake_case. (#6005)
* Added code gen for evolution tests back in. * General generate code and clang format * Added code gen for evolution tests back in. * General generate code and clang format * reran generate_code.sh * Added code gen for evolution tests back in. * General generate code and clang format * Added code gen for evolution tests back in. * General generate code and clang format * Enforce snake_case for schema field names * Switched to basic for loop, Fixed warning message
This commit is contained in:
@@ -82,6 +82,16 @@ static bool ValidateUTF8(const std::string &str) {
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool IsLowerSnakeCase(const std::string &str) {
|
||||
for (size_t i = 0; i < str.length(); i++) {
|
||||
char c = str[i];
|
||||
if (!check_ascii_range(c, 'a', 'z') && !is_digit(c) && c != '_') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Convert an underscore_based_indentifier in to camelCase.
|
||||
// Also uppercases the first character if first is true.
|
||||
std::string MakeCamel(const std::string &in, bool first) {
|
||||
@@ -671,6 +681,10 @@ CheckedError Parser::ParseField(StructDef &struct_def) {
|
||||
if (LookupCreateStruct(name, false, false))
|
||||
return Error("field name can not be the same as table/struct name");
|
||||
|
||||
if (!IsLowerSnakeCase(name)) {
|
||||
Warning("field names should be lowercase snake_case, got: " + name);
|
||||
}
|
||||
|
||||
std::vector<std::string> dc = doc_comment_;
|
||||
EXPECT(kTokenIdentifier);
|
||||
EXPECT(':');
|
||||
|
||||
Reference in New Issue
Block a user