Naprawiacz Protobuf
Napraw uszkodzone pliki .proto online — uzupełnij brakujące średniki, niedomknięte nawiasy klamrowe, błędne deklaracje syntax i błędy tagów.
Czym jest Naprawiacz Protobuf?
Masz uszkodzony plik .proto? protoc wywala się przy jednym brakującym średniku, niedomkniętym ciele message czy zabłąkanym nawiasie, a reszta pliku jest bezużyteczna, dopóki tego nie znajdziesz. To narzędzie czyta zniekształcone schematy Protocol Buffers i naprawia te problemy automatycznie — wklej plik, a my oddamy ci czystą wersję.
Sprawdza w pierwszej kolejności rzeczy, na których wykłada się protoc: brakujący syntax = "proto3"; na górze, brakujące średniki w liniach pól, niezbalansowane {} w zagnieżdżonych ciałach message/enum oraz problemy z cudzysłowami i importami. Wynik trzyma się tych samych zasad, co oficjalny przewodnik po języku proto3 i referencja gramatyki proto3, więc dostajesz schemat, który protoc faktycznie zaakceptuje.
Żadnych przesyłanych plików, żadnego udostępniania schematu — twój .proto zostaje w tej karcie. Napraw go w sekundę i wracaj do generowania bindingów.
Jak Używać Naprawiacza Protobuf
Trzy kroki. Działa na schematach wyciągniętych z repo, skopiowanych z code review albo edytowanych ręcznie i teraz zepsutych.
Wklej Uszkodzony .proto albo Wczytaj Przykład
Wrzuć uszkodzony schemat do lewego edytora. Wciśnij Przykładowy .proto, żeby załadować przykład z typowymi błędami — brakującym średnikiem po polu, niedomkniętym ciałem message i zabłąkanym brakiem średnika w linii syntax. Przykład uszkodzonego proto:
syntax = "proto3"
message LineItem {
string sku = 1;
int32 quantity = 2
double unit_price = 3;Mamy tu dwa błędy: brak średnika po deklaracji syntax i blok LineItem nigdy się nie zamyka. Oba są typowe dla tego, co naprawia ten fixer.
Kliknij Napraw Protobuf!!
Wciśnij zielony przycisk Napraw Protobuf!!. Fixer czyta schemat, przywraca brakujące średniki, balansuje nawiasy {}, normalizuje deklarację syntax i poprawnie cudzysłowuje importy. Tagi pól, nazwy i typy zostają nietknięte.
Sprawdź Naprawiony Wynik
Prawy panel ma naprawiony .proto. Wrzuć go z powrotem do projektu i odpal protoc dla potwierdzenia. Dla schematów napędzających usługi RPC zrób też sanity check wyniku naszym Walidatorem Protobuf przed generowaniem bindingów. Wszystko działa w przeglądarce — schemat nigdy nie jest zapisywany.
Kiedy Faktycznie Tego Użyjesz
Uratuj Ręcznie Edytowany Schemat
Dodałeś nowe pole, przypadkiem skasowałeś nawias, a teraz protoc zgłasza błędy trzy wiadomości dalej. Wklej plik, odzyskaj nawias i lecisz dalej — zamiast oczami przeczesywać 400-liniowy schemat.
Napraw .proto Wygenerowane przez LLM
Poprosiłeś LLM o szkic .proto z próbki JSON? Struktura zwykle jest dobra, ale zapomina syntax = "proto3";, gubi średniki albo zawija wszystko w markdownowe płotki. Fixer to czyści.
Naprawa po Zepsutym Mergu
Markery konfliktów rozwiązane na łapu-capu i .proto się nie kompiluje. Przepuść go przez fixer, żeby poskładać strukturę, i potem przejrzyj prawdziwy semantyczny diff w Git zamiast walczyć ze składnią.
Odzyskuj Schematy z Logów albo Dokumentów
Wyciągnąłeś .proto z wiki, starego opisu PR-a albo OCR-a ze screena? Tekst zwykle ma śmieciowe znaki i zepsute wcięcia. Fixer doprowadza go do stanu, który protoc akceptuje.
Częste Pytania
Czy mój plik .proto jest gdzieś zapisywany albo wysyłany?
Twój schemat trafia do naszego backendu tylko po to, żeby przeprowadzić naprawę, i nie trzymamy go — jak tylko wraca odpowiedź, znika. Nic z twoimi danymi nie jest logowane, a w ścieżce żądania nie ma żadnych trackerów firm trzecich. Jeśli masz wrażliwy schemat (wewnętrzne usługi, niewydane API), wytrzyj identyfikatory przed wklejeniem, tak jakbyś robił to udostępniając go w publicznym bug reporcie.
Jakie błędy faktycznie naprawia?
Te typowe, które odrzuca protoc: brakującą lub złą deklarację syntax (dorzuca syntax = "proto3";, jeśli jej nie ma), brakujące średniki w liniach pól/opcji/enum, niezbalansowane {} w blokach message/enum/service, brakujące lub niepasujące cudzysłowy w opcjach typu string i importach oraz oczywiste literówki w słowach kluczowych takich jak repeated czy optional.
Czy zmieni numery tagów moich pól albo coś przemianuje?
Nie. Fixer ma jasno napisane, że ma naprawiać wyłącznie składnię — nigdy nie ma zmieniać nazw wiadomości/pól, podmieniać numerów tagów ani wymyślać nowych pól. Numery tagów są częścią twojego formatu wire; ruszanie ich łamałoby kompatybilność wsteczną. Jeśli wynik kiedykolwiek będzie wyglądał, jakby zmieniła się treść semantyczna, traktuj to jako buga i tego nie commituj.
Czy obsługuje proto2 oprócz proto3?
Tak, jeśli chodzi o naprawy na poziomie składni — brakujące średniki, niezbalansowane nawiasy i błędne deklaracje syntax obsługujemy tak samo niezależnie od wersji. Fixer respektuje to, co jest w linii syntax; nie przerzuci schematu proto2 na proto3 (te mają inną semantykę wokół required/optional i wartości domyślnych).
Czemu po prostu nie odpalić protoc i nie przeczytać błędu?
I powinieneś — protoc jest źródłem prawdy. Ale jego błędy wskazują jedno miejsce naraz, a jeden brakujący nawias kaskaduje na dziesięć błędów dalej. Fixer jest po to, żeby odblokować cały plik za jednym zamachem, a potem znów odpalasz protoc dla potwierdzenia. Traktuj to jako pierwsze zamiecenie, a nie zastępstwo.
Czy poradzi sobie z dużymi schematami z wieloma importami?
Tak, do paru tysięcy linii na jedno żądanie. Naprawa patrzy tylko na plik, który wkleisz — nie ściga instrukcji import ani nie pobiera zewnętrznych schematów. Jeśli twój schemat importuje google/protobuf/timestamp.proto albo inne dobrze znane typy, te importy są zachowane jak są.
Inne Narzędzia Protobuf
Naprawienie składni to pierwszy krok. Jak schemat już się kompiluje, te narzędzia poprowadzą go dalej: