Lim inn din ødelagte .proto her og klikk "Fiks Protobuf!!" for å reparere denSkriv inn ugyldig .proto

Hva er Protobuf-fikseren?

Har du en ødelagt .proto-fil? protoc ramler over et enkelt manglende semikolon, en uavsluttet message-kropp eller en vill klamme, og resten av filen blir ubrukelig til du finner det. Dette verktøyet leser ødelagte Protocol Buffers-skjemaer og fikser problemene automatisk — lim det inn, så gir vi deg en ren versjon tilbake.

Den sjekker først tingene som protoc snubler i: et manglende syntax = "proto3"; på toppen, manglende semikolon på feltlinjer, ubalanserte {} i nestede message/enum-kropper, og problemer med anførselstegn og imports. Outputen følger de samme reglene som er beskrevet i den offisielle proto3-språkguiden og proto3-grammatikkreferansen, så det du får tilbake er et skjema som protoc faktisk godtar.

Ingen filopplastinger, ingen skjemadeling — din .proto blir værende i denne fanen. Fiks den på sekunder og gå tilbake til å generere bindings.

Slik Bruker Du Protobuf-fikseren

Tre steg. Funker på skjemaer hentet ut av et repo, kopiert ut av en code review, eller håndredigert og nå ødelagt.

1

Lim Inn Ødelagt .proto eller Last Eksempel

Slipp det ødelagte skjemaet inn i den venstre editoren. Trykk Eksempel-.proto for å laste et eksempel med de typiske feilene — et manglende semikolon etter et felt, en message-kropp som aldri lukkes, og et villfarent manglende semikolon på syntax-linja. Eksempel på ødelagt proto:

syntax = "proto3"
message LineItem {
  string sku = 1;
  int32 quantity = 2
  double unit_price = 3;

To feil her: ingen semikolon etter syntax-deklarasjonen, og LineItem-blokka lukkes aldri. Begge er typiske for det fikseren reparerer.

2

Klikk Fiks Protobuf!!

Trykk på den grønne Fiks Protobuf!!-knappen. Fikseren leser skjemaet, gjenoppretter manglende semikolon, balanserer {}-klammer, normaliserer syntax-deklarasjonen og setter riktige anførselstegn på imports. Felt-tagger, navn og typer blir ikke rørt.

3

Gå Gjennom Den Fiksede Outputen

Den høyre ruta har den reparerte .proto-filen. Slipp den tilbake i prosjektet ditt og kjør protoc for å bekrefte. For skjemaer som driver RPC-tjenester, kjør også en sanity-sjekk med vår Protobuf-validator før du genererer bindings. Alt kjører i nettleseren din — skjemaet blir aldri lagret.

Når Du Faktisk Ville Brukt Dette

Redd et Håndredigert Skjema

Du la til et nytt felt, kom i skade for å slette en klamme, og nå rapporterer protoc feil tre messages lenger ned. Lim inn fila, få klammen tilbake, og kom deg videre — i stedet for å lete gjennom et 400-linjers skjema med øynene.

Fiks LLM-generert .proto

Bedt en LLM om å skissere en .proto fra et JSON-eksempel? Strukturen er som regel riktig, men den glemmer syntax = "proto3";, mister semikolon eller pakker ting inn i markdown-gjerder. Fikseren rydder opp i det.

Reparer Etter en Dårlig Merge

Konfliktmarkører ble løst slurvete og .proto kompilerer ikke. Kjør den gjennom fikseren for å få strukturen sammen igjen, så du kan gå gjennom den egentlige semantiske diffen i Git i stedet for å slåss med syntax.

Gjenopprett Skjemaer fra Logger eller Dokumenter

Dratt en .proto ut av en wiki-side, en gammel PR-beskrivelse eller en OCR av et skjermbilde? Teksten har som regel villfarne tegn og ødelagt innrykk. Fikseren bringer den tilbake til noe protoc godtar.

Vanlige Spørsmål

Blir .proto-fila mi lagret eller sendt noe sted?

Skjemaet ditt sendes til backenden vår kun for å kjøre reparasjonen, og vi tar ikke vare på det — så snart svaret kommer tilbake, er det borte. Ingenting logges sammen med dataene dine, og det er ingen tredjeparts-trackere i request-stien. Hvis du har et sensitivt skjema (interne tjenester, ikke-utgitte API-er), så masker identifikatorer før du limer inn, på samme måte som du ville gjort hvis du delte det i en offentlig bug-rapport.

Hva slags feil fikser den egentlig?

De vanlige som protoc avviser: manglende eller feil syntax-deklarasjon (den legger til syntax = "proto3"; hvis den ikke er der), manglende semikolon på felt/option/enum-linjer, ubalanserte {} i message/enum/service-blokker, manglende eller ikke-matchende anførselstegn på string-options og imports, og åpenbare skrivefeil i nøkkelord som repeated eller optional.

Vil den endre felt-tagnumrene mine eller døpe om noe?

Nei. Fikseren får eksplisitt beskjed om bare å reparere syntax — aldri å døpe om messages/felter, endre tagnumre eller finne på nye felter. Tagnumre er en del av wire-formatet ditt; å røre dem ville brutt bakoverkompatibilitet. Hvis outputen noen gang ser ut som om den har endret semantisk innhold, så behandle det som en bug og ikke commit det.

Støtter den proto2 like godt som proto3?

Ja for syntax-nivå-fiksene — manglende semikolon, ubalanserte klammer og dårlige syntax-deklarasjoner håndteres likt uansett. Fikseren respekterer det som står på syntax-linja; den flipper ikke et proto2-skjema til proto3 (de har forskjellig semantikk rundt required/optional og defaults).

Hvorfor ikke bare kjøre protoc og lese feilen?

Det bør du — protoc er sannhetens kilde. Men feilene den gir peker på ett sted om gangen, og én manglende klamme kan kaskade til ti påfølgende feil. Fikseren er til for når du vil ha hele fila avblokkert i én sveip, og så kjører du protoc på nytt for å bekrefte. Tenk på det som et første sveip, ikke en erstatning.

Kan den håndtere store skjemaer med mange imports?

Ja, opp til et par tusen linjer per request. Reparasjonen ser bare på fila du limer inn — den jager ikke import-statements eller henter eksterne skjemaer. Hvis skjemaet ditt importerer google/protobuf/timestamp.proto eller andre velkjente typer, blir de importene bevart som de er.

Andre Protobuf-verktøy

Å fikse syntaksen er første steg. Når skjemaet kompilerer, tar disse verktøyene det resten av veien: