Skip to main content
Glama

protolint-mcp

by yoheimuta
extendedDisableRuleVisitor.go5.21 kB
package visitor import ( "github.com/yoheimuta/go-protoparser/v4/parser" "github.com/yoheimuta/protolint/linter/disablerule" "github.com/yoheimuta/protolint/linter/report" ) // TODO: To work `enable comments` more precisely, this implementation has to be modified. type extendedDisableRuleVisitor struct { inner HasExtendedVisitor interpreter *disablerule.Interpreter } func newExtendedDisableRuleVisitor( inner HasExtendedVisitor, ruleID string, ) extendedDisableRuleVisitor { interpreter := disablerule.NewInterpreter(ruleID) return extendedDisableRuleVisitor{ inner: inner, interpreter: interpreter, } } func (v extendedDisableRuleVisitor) Finally(p *parser.Proto) error { if v.interpreter.Interpret([]*parser.Comment{}) { return nil } return v.inner.Finally(p) } func (v extendedDisableRuleVisitor) Failures() []report.Failure { return v.inner.Failures() } func (v extendedDisableRuleVisitor) VisitEmptyStatement(e *parser.EmptyStatement) (next bool) { return v.inner.VisitEmptyStatement(e) } func (v extendedDisableRuleVisitor) VisitComment(c *parser.Comment) { if v.interpreter.Interpret([]*parser.Comment{c}) { return } v.inner.VisitComment(c) } func (v extendedDisableRuleVisitor) VisitDeclaration(s *parser.Declaration) (next bool) { if v.interpreter.Interpret(s.Comments, s.InlineComment) { return true } return v.inner.VisitDeclaration(s) } func (v extendedDisableRuleVisitor) VisitEdition(s *parser.Edition) (next bool) { if v.interpreter.Interpret(s.Comments, s.InlineComment) { return true } return v.inner.VisitEdition(s) } func (v extendedDisableRuleVisitor) VisitEnum(e *parser.Enum) (next bool) { if v.interpreter.Interpret(e.Comments, e.InlineComment, e.InlineCommentBehindLeftCurly) { return true } return v.inner.VisitEnum(e) } func (v extendedDisableRuleVisitor) VisitEnumField(e *parser.EnumField) (next bool) { if v.interpreter.Interpret(e.Comments, e.InlineComment) { return true } return v.inner.VisitEnumField(e) } func (v extendedDisableRuleVisitor) VisitExtend(m *parser.Extend) (next bool) { if v.interpreter.Interpret(m.Comments, m.InlineComment, m.InlineCommentBehindLeftCurly) { return true } return v.inner.VisitExtend(m) } func (v extendedDisableRuleVisitor) VisitExtensions(m *parser.Extensions) (next bool) { if v.interpreter.Interpret(m.Comments, m.InlineComment) { return true } return v.inner.VisitExtensions(m) } func (v extendedDisableRuleVisitor) VisitField(f *parser.Field) (next bool) { if v.interpreter.Interpret(f.Comments, f.InlineComment) { return true } return v.inner.VisitField(f) } func (v extendedDisableRuleVisitor) VisitGroupField(m *parser.GroupField) (next bool) { if v.interpreter.Interpret(m.Comments, m.InlineComment, m.InlineCommentBehindLeftCurly) { return true } return v.inner.VisitGroupField(m) } func (v extendedDisableRuleVisitor) VisitImport(i *parser.Import) (next bool) { if v.interpreter.Interpret(i.Comments, i.InlineComment) { return true } return v.inner.VisitImport(i) } func (v extendedDisableRuleVisitor) VisitMapField(m *parser.MapField) (next bool) { if v.interpreter.Interpret(m.Comments, m.InlineComment) { return true } return v.inner.VisitMapField(m) } func (v extendedDisableRuleVisitor) VisitMessage(m *parser.Message) (next bool) { if v.interpreter.Interpret(m.Comments, m.InlineComment, m.InlineCommentBehindLeftCurly) { return true } return v.inner.VisitMessage(m) } func (v extendedDisableRuleVisitor) VisitOneof(o *parser.Oneof) (next bool) { if v.interpreter.Interpret(o.Comments, o.InlineComment, o.InlineCommentBehindLeftCurly) { return true } return v.inner.VisitOneof(o) } func (v extendedDisableRuleVisitor) VisitOneofField(o *parser.OneofField) (next bool) { if v.interpreter.Interpret(o.Comments, o.InlineComment) { return true } return v.inner.VisitOneofField(o) } func (v extendedDisableRuleVisitor) VisitOption(o *parser.Option) (next bool) { if v.interpreter.Interpret(o.Comments, o.InlineComment) { return true } return v.inner.VisitOption(o) } func (v extendedDisableRuleVisitor) VisitPackage(p *parser.Package) (next bool) { if v.interpreter.Interpret(p.Comments, p.InlineComment) { return true } return v.inner.VisitPackage(p) } func (v extendedDisableRuleVisitor) VisitReserved(r *parser.Reserved) (next bool) { if v.interpreter.Interpret(r.Comments, r.InlineComment) { return true } return v.inner.VisitReserved(r) } func (v extendedDisableRuleVisitor) VisitRPC(r *parser.RPC) (next bool) { var inlines []*parser.Comment inlines = append(inlines, r.InlineComment, r.InlineCommentBehindLeftCurly) inlines = append(inlines, r.EmbeddedComments...) if v.interpreter.Interpret(r.Comments, inlines...) { return true } return v.inner.VisitRPC(r) } func (v extendedDisableRuleVisitor) VisitService(s *parser.Service) (next bool) { if v.interpreter.Interpret(s.Comments, s.InlineComment, s.InlineCommentBehindLeftCurly) { return true } return v.inner.VisitService(s) } func (v extendedDisableRuleVisitor) VisitSyntax(s *parser.Syntax) (next bool) { if v.interpreter.Interpret(s.Comments, s.InlineComment) { return true } return v.inner.VisitSyntax(s) }

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