Skip to main content
Glama

protolint-mcp

by yoheimuta
rules.go5.63 kB
package subcmds import ( "github.com/yoheimuta/protolint/internal/addon/plugin" "github.com/yoheimuta/protolint/internal/addon/plugin/shared" "github.com/yoheimuta/protolint/internal/addon/rules" "github.com/yoheimuta/protolint/internal/linter/config" internalrule "github.com/yoheimuta/protolint/internal/linter/rule" "github.com/yoheimuta/protolint/linter/autodisable" ) // NewAllRules creates new all rules. func NewAllRules( option config.RulesOption, fixMode bool, autoDisableType autodisable.PlacementType, verbose bool, plugins []shared.RuleSet, ) (internalrule.Rules, error) { rs := newAllInternalRules(option, fixMode, autoDisableType) es, err := plugin.GetExternalRules(plugins, fixMode, verbose) if err != nil { return nil, err } rs = append(rs, es...) return rs, nil } func newAllInternalRules( option config.RulesOption, fixMode bool, autoDisableType autodisable.PlacementType, ) internalrule.Rules { syntaxConsistent := option.SyntaxConsistent fileNamesLowerSnakeCase := option.FileNamesLowerSnakeCase indent := option.Indent maxLineLength := option.MaxLineLength enumFieldNamesZeroValueEndWith := option.EnumFieldNamesZeroValueEndWith serviceNamesEndWith := option.ServiceNamesEndWith fieldNamesExcludePrepositions := option.FieldNamesExcludePrepositions messageNamesExcludePrepositions := option.MessageNamesExcludePrepositions messagesHaveComment := option.MessagesHaveComment servicesHaveComment := option.ServicesHaveComment rpcsHaveComment := option.RPCsHaveComment fieldsHaveComment := option.FieldsHaveComment enumsHaveComment := option.EnumsHaveComment enumFieldsHaveComment := option.EnumFieldsHaveComment repeatedFieldNamesPluralized := option.RepeatedFieldNamesPluralized return internalrule.Rules{ rules.NewFileHasCommentRule( option.FileHasComment.Severity, ), rules.NewSyntaxConsistentRule( syntaxConsistent.Severity, syntaxConsistent.Version, ), rules.NewFileNamesLowerSnakeCaseRule( fileNamesLowerSnakeCase.Severity, fileNamesLowerSnakeCase.Excludes, fixMode, ), rules.NewQuoteConsistentRule( option.QuoteConsistentOption.Severity, option.QuoteConsistentOption.Quote, fixMode, ), rules.NewOrderRule( option.Order.Severity, fixMode, ), rules.NewIndentRule( indent.Severity, indent.Style, indent.NotInsertNewline, fixMode, ), rules.NewMaxLineLengthRule( maxLineLength.Severity, maxLineLength.MaxChars, maxLineLength.TabChars, ), rules.NewPackageNameLowerCaseRule( option.PackageNameLowerCase.Severity, fixMode, ), rules.NewImportsSortedRule( option.ImportsSorted.Severity, fixMode, ), rules.NewEnumFieldNamesPrefixRule( option.EnumFieldNamesPrefix.Severity, fixMode, autoDisableType, ), rules.NewEnumFieldNamesUpperSnakeCaseRule( option.EnumFieldNamesUpperSnakeCase.Severity, fixMode, autoDisableType, ), rules.NewEnumFieldNamesZeroValueEndWithRule( enumFieldNamesZeroValueEndWith.Severity, enumFieldNamesZeroValueEndWith.Suffix, fixMode, autoDisableType, ), rules.NewEnumFieldsHaveCommentRule( enumFieldsHaveComment.Severity, enumFieldsHaveComment.ShouldFollowGolangStyle, ), rules.NewEnumNamesUpperCamelCaseRule( option.EnumFieldNamesUpperSnakeCase.Severity, fixMode, autoDisableType, ), rules.NewEnumsHaveCommentRule( enumsHaveComment.Severity, enumsHaveComment.ShouldFollowGolangStyle, ), rules.NewFieldNamesLowerSnakeCaseRule( option.FieldNamesLowerSnakeCase.Severity, fixMode, autoDisableType, ), rules.NewFieldNamesExcludePrepositionsRule( fieldNamesExcludePrepositions.Severity, fieldNamesExcludePrepositions.Prepositions, fieldNamesExcludePrepositions.Excludes, ), rules.NewFieldsHaveCommentRule( fieldsHaveComment.Severity, fieldsHaveComment.ShouldFollowGolangStyle, ), rules.NewProto3FieldsAvoidRequiredRule( option.Proto3FieldsAvoidRequired.Severity, fixMode, ), rules.NewProto3GroupsAvoidRule( option.Proto3GroupsAvoid.Severity, autoDisableType, ), rules.NewRepeatedFieldNamesPluralizedRule( repeatedFieldNamesPluralized.Severity, repeatedFieldNamesPluralized.PluralRules, repeatedFieldNamesPluralized.SingularRules, repeatedFieldNamesPluralized.UncountableRules, repeatedFieldNamesPluralized.IrregularRules, fixMode, autoDisableType, ), rules.NewMessageNamesUpperCamelCaseRule( option.MessageNamesUpperCamelCase.Severity, fixMode, autoDisableType, ), rules.NewMessageNamesExcludePrepositionsRule( messageNamesExcludePrepositions.Severity, messageNamesExcludePrepositions.Prepositions, messageNamesExcludePrepositions.Excludes, ), rules.NewMessagesHaveCommentRule( messagesHaveComment.Severity, messagesHaveComment.ShouldFollowGolangStyle, ), rules.NewRPCNamesUpperCamelCaseRule( option.RPCNamesUpperCamelCase.Severity, fixMode, autoDisableType, ), rules.NewRPCNamesCaseRule( option.RPCNamesCaseOption.Severity, option.RPCNamesCaseOption.Convention, ), rules.NewRPCsHaveCommentRule( rpcsHaveComment.Severity, rpcsHaveComment.ShouldFollowGolangStyle, ), rules.NewServiceNamesUpperCamelCaseRule( option.ServiceNamesUpperCamelCase.Severity, fixMode, autoDisableType, ), rules.NewServiceNamesEndWithRule( option.ServiceNamesEndWith.Severity, serviceNamesEndWith.Text, ), rules.NewServicesHaveCommentRule( option.ServicesHaveComment.Severity, servicesHaveComment.ShouldFollowGolangStyle, ), rules.NewFieldNumbersOrderAscendingRule( option.FieldNumbersOrderAscending.Severity, ), } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yoheimuta/protolint'

If you have feedback or need assistance with the MCP directory API, please join our Discord server