Gå til hovedinnhold

Pattern Check

Mønsterkontrollen holder kildeteksten i hver blokk opp mot regulære uttrykk som kalleren navngir. --forbid angir et uttrykk som ikke må forekomme, og --require ett som må forekomme – begge kan gjentas, og begge rapporteres med alvorlighetsgrad major: pattern.forbidden-pattern når et forbudt uttrykk finnes, og pattern.pattern-missing når et påkrevd uttrykk mangler. Et forbidden-pattern-funn bærer med seg teksten det matchet, slik at både blokken og de problematiske ordene er navngitt.

Uttrykkene er Go-regulære uttrykk, matchet slik de er skrevet: ingen implisitt folding av store/små bokstaver og ingen implisitte ordgrenser, så (?i)todo er måten du ignorerer store/små bokstaver på, og \bdraft\b er måten du krever et helt ord på. Et tomt uttrykk, ett som ikke kompilerer, eller en regel som både krever og forbyr, avvises når kontrollen bygges – i stedet for å la alt passere stille.

Dette er rømningsveien ved siden av kontrollene som vet hva de leter etter. En stempelprofil bærer vokabularet et prosjekt har bestemt seg for, og termer bærer ordene det har avtalt; et uttrykk er for listen som ikke har noe vokabular bak seg – for eksempel en plassholdersyntaks som må overleve, eller en markør som aldri må sendes ut.

Checkpattern-check
Rule familypattern.*
SourceBuilt-in

Rules

A finding carries one of these rule ids. The family is pattern, which differs from the check id the code registers.

RuleSeverityReportsFix
pattern.forbidden-patternmajor

The block's source text matches a pattern given with --forbid. The finding carries the text it matched.

Remove or reword the matched text, or drop the pattern from the run when the text is intended.

pattern.pattern-missingmajor

The block's source text does not match a pattern given with --require. Every block is held to every required pattern.

Add the required text to the block, or narrow the run to the files the requirement applies to.

Flags

FlagValuesDescription
--forbidGo regulært uttrykk, kan gjentas

Rapporterer alle blokker hvis kilde samsvarer. Kan gjentas, slik at flere forbud kan angis i én kjøring.

--requireGo regulært uttrykk, kan gjentas

Rapporterer alle blokker hvis kilde ikke samsvarer. Kan gjentas. Brukes per blokk, så et mønster som bare én del av et dokument har, rapporteres overalt ellers.

Processing notes

  • Av med mindre et mønster er oppgitt, så en vanlig kontrollkjøring rapporterer ingenting fra den.

  • Kjører over oversettbare blokker; innhold som en leser presenterer som struktur eller kode matches aldri.

  • Et tomt eller ikke-kompilerbart mønster, og en regel som både krever og forbyr, er feil når kontrollen bygges.

Limitations

  • Leser kun kildetekst; om en oversettelse bevarte et mønster er spørsmålet for den tospråklige qa-kontrollen.

  • Et obligatorisk mønster kreves av alle blokker, så det passer en regel som gjelder for hver blokk snarere enn for et dokument som helhet.

  • Matching skjer over blokkens ren tekst, så et mønster kan ikke adressere kjøringene en plassholder eller en inline-kode representerer.

← Back to the Check Reference