Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // AllCheckers is the slice of all known Checkers. AllCheckers = []Checker{ commentsNoCStyleChecker, enumFieldNamesUppercaseChecker, enumFieldNamesUpperSnakeCaseChecker, enumFieldPrefixesChecker, enumNamesCamelCaseChecker, enumNamesCapitalizedChecker, enumZeroValuesInvalidChecker, enumsHaveCommentsChecker, fileOptionsEqualGoPackagePbSuffixChecker, fileOptionsEqualJavaMultipleFilesTrueChecker, fileOptionsEqualJavaPackageComPbChecker, fileOptionsGoPackageSameInDirChecker, fileOptionsJavaPackageSameInDirChecker, fileOptionsRequireGoPackageChecker, fileOptionsRequireJavaMultipleFilesChecker, fileOptionsRequireJavaPackageChecker, messageFieldsNotFloatsChecker, messageFieldNamesLowerSnakeCaseChecker, messageFieldNamesLowercaseChecker, messageNamesCamelCaseChecker, messageNamesCapitalizedChecker, messagesHaveCommentsChecker, messagesHaveCommentsExceptRequestResponseTypesChecker, oneofNamesLowerSnakeCaseChecker, packageLowerSnakeCaseChecker, packagesSameInDirChecker, rpcsHaveCommentsChecker, rpcNamesCamelCaseChecker, rpcNamesCapitalizedChecker, requestResponseTypesInSameFileChecker, requestResponseTypesUniqueChecker, requestResponseNamesMatchRPCChecker, servicesHaveCommentsChecker, serviceNamesCamelCaseChecker, serviceNamesCapitalizedChecker, syntaxProto3Checker, wktDirectlyImportedChecker, } // DefaultCheckers is the slice of default Checkers. DefaultCheckers = copyCheckersWithout( AllCheckers, enumFieldNamesUppercaseChecker, enumsHaveCommentsChecker, fileOptionsEqualJavaMultipleFilesTrueChecker, fileOptionsEqualJavaOuterClassnameProtoSuffixChecker, fileOptionsRequireJavaMultipleFilesChecker, fileOptionsRequireJavaOuterClassnameChecker, messageFieldsNotFloatsChecker, messagesHaveCommentsChecker, messagesHaveCommentsExceptRequestResponseTypesChecker, messageFieldNamesLowercaseChecker, requestResponseNamesMatchRPCChecker, rpcsHaveCommentsChecker, servicesHaveCommentsChecker, ) // DefaultGroup is the default group. DefaultGroup = "default" // GroupToCheckers is the map from checker group to the corresponding slice of checkers. GroupToCheckers = map[string][]Checker{ DefaultGroup: DefaultCheckers, } )
Functions ¶
Types ¶
type Checker ¶
type Checker interface { // Return the ID of this Checker. This should be all UPPER_SNAKE_CASE. ID() string // Return the purpose of this Checker. This should be a human-readable string. Purpose() string // Check the file data for the descriptors in a common directgory. // If there is a lint failure, this returns it in the // slice and does not return an error. An error is returned if something // unexpected happens. Callers should verify the files are compilable // before running this. Check(dirPath string, descriptors []*proto.Proto) ([]*text.Failure, error) }
Checker is a linter for Protobuf files.
func GetCheckers ¶
func GetCheckers(config settings.LintConfig) ([]Checker, error)
GetCheckers returns the Checkers for the LintConfig.
The config is expected to be valid, ie slices deduped, all upper-case, and only either IDs or Group/IncludeIDs/ExcludeIDs, with no overlap between IncludeIDs and ExcludeIDs.
If the config came from the settings package, this is already validated.
func NewAddChecker ¶
func NewAddChecker(id string, purpose string, addCheck func(func(*text.Failure), string, []*proto.Proto) error) Checker
NewAddChecker is a convienence function that returns a new Checker for the given parameters, using a function to record failures.
The ID will be upper-cased.
Failures returned from check do not need to set the ID, this will be overwritten.
func NewChecker ¶
func NewChecker(id string, purpose string, check func(string, []*proto.Proto) ([]*text.Failure, error)) Checker
NewChecker is a convienence function that returns a new Checker for the given parameters.
The ID will be upper-cased.
Failures returned from check do not need to set the ID, this will be overwritten.
type RunnerOption ¶
type RunnerOption func(*runner)
RunnerOption is an option for a new Runner.
func RunnerWithLogger ¶
func RunnerWithLogger(logger *zap.Logger) RunnerOption
RunnerWithLogger returns a RunnerOption that uses the given logger.
The default is to use zap.NewNop().
Source Files ¶
- base_checker.go
- base_visitor.go
- check_comments_no_c_style.go
- check_enum_field_names_upper_snake_case.go
- check_enum_field_names_uppercase.go
- check_enum_field_prefixes.go
- check_enum_names_camel_case.go
- check_enum_names_capitalized.go
- check_enum_zero_values_invalid.go
- check_enums_have_comments.go
- check_file_options_equal.go
- check_file_options_required.go
- check_file_options_same_in_dir.go
- check_message_field_names_lower_snake_case.go
- check_message_field_names_lowercase.go
- check_message_fields_not_floats.go
- check_message_names_camel_case.go
- check_message_names_capitalized.go
- check_messages_have_comments.go
- check_messages_have_comments_except_request_response_types.go
- check_oneof_names_lower_snake_case.go
- check_package_lower_snake_case.go
- check_packages_same_in_dir.go
- check_request_response_names_match_rpc.go
- check_request_response_types_in_same_file.go
- check_request_response_types_unique.go
- check_rpc_names_camel_case.go
- check_rpc_names_capitalized.go
- check_rpcs_have_comments.go
- check_service_names_camel_case.go
- check_service_names_capitalized.go
- check_services_have_comments.go
- check_syntax_proto3.go
- check_wkt_directly_imported.go
- lint.go
- runner.go