Linter rulesProtobufmessage-naming
message-naming
Since 0.9.0
This rule checks whether the name of every message of a Protobuf file is in PascalCase.
Rule Details
PascalCase message names match the type naming conventions of most target languages, and are what the Protobuf style guide recommends.
The message-naming rule checks every message, including nested messages, and reports Message name '<name>' should be PascalCase for every name that is not in PascalCase. A name is in
PascalCase when it starts with an upper-case letter and contains only letters and digits, such
as PetOwner (acronyms such as HTTPServer are accepted).
When the name converted to PascalCase differs from the original and is itself valid, the
message ends with a suggestion, for example , e.g. '<converted>'. To convert a name, it is
split into words at underscores and other separators, at lower-to-upper case changes and before
the last capital of an acronym, and the words are capitalized and joined, so pet_owner becomes
PetOwner.
Configuration
This rule has no options.
Examples
Good.
syntax = "proto3";
package acme.pets.v1;
message PetOwner {
string name = 1;
}
Bad. The linter reports Message name 'pet_owner' should be PascalCase, e.g. 'PetOwner'.
syntax = "proto3";
package acme.pets.v1;
message pet_owner {
string name = 1;
}
When Not to Use It
You may disable this rule if the names are part of an existing API that you cannot rename. To
allow a single message, add an // apigenie-lint-disable message-naming comment to it.
Compatibility
This rule is compatible with proto3 files. proto2 and editions files are rejected by the reader and are not linted.