Formatowanie JavaScript
Nadaj skryptowi wcięcia, żeby dało się go przeczytać, w całości w twojej przeglądarce. Żaden podział wiersza, który napisałeś, nigdy nie jest usuwany.
Działa w całości w twojej przeglądarce. Nic nie jest wysyłane, logowane ani przechowywane.
Wklej zminifikowany albo źle wcięty skrypt i przeczytaj go porządnie. Formatowanie odbywa się w twojej przeglądarce, a w kodzie nie zmienia się nic poza białymi znakami.
Jak to działa
Skrypt jest dzielony na kawałki — komentarze, łańcuchy, literały szablonowe, wyrażenia regularne, liczby, nazwy, operatory, nawiasy okrągłe i klamrowe — a potem zapisywany od nowa. Blok dostaje własne wiersze i poziom wcięcia, instrukcja dostaje jeden wiersz, a literał obiektowy rozłożony na kilka wierszy dostaje jeden wpis na wiersz.
Żaden podział wiersza, który napisałeś, nigdy nie jest usuwany — i to jest reguła, z której wynika cała reszta. W JavaScripcie koniec wiersza może zakończyć instrukcję — automatyczne wstawianie średników — więc połączenie dwóch wierszy w jeden może zmienić to, co robi program, albo uniemożliwić jego parsowanie. Podziały są tylko dodawane: wokół nawiasów klamrowych bloku, po średniku kończącym instrukcję, między wpisami obiektu oraz między zamykającym nawiasem klamrowym a słowem otwierającym następną instrukcję. Żaden z nich nie może zmienić znaczenia.
Wiersz, który kod źródłowy podzielił w środku instrukcji — łańcuch wywołań, długi warunek, gałęzie wyrażenia warunkowego — dostaje wcięcie o jeden poziom względem wiersza powyżej, żeby nadal czytał się jako jego część.
Przykłady
| Przypadek | Dane wejściowe | Wynik |
|---|---|---|
| Funkcja zapisana w jednej linii | function add(a,b){const total=a+b;return total} | function add(a, b) { const total = a + b; return total } |
Najczęściej zadawane pytania
Czy mój kod jest gdzieś wysyłany?
Nie. Formatter to JavaScript działający na tej stronie. Nic nie jest przesyłane, rejestrowane ani przechowywane: możesz odłączyć sieć, a narzędzie dalej będzie działać.
Czy doda średniki, które pominąłem?
Nie. Średnik, którego nie napisano, to czasem średnik, którego nie wolno napisać, a rozróżnienie tych przypadków wymaga parsera, a nie przebiegu układającego. Formatter zostawia tę kwestię w spokoju: nigdy nie dodaje średnika i nigdy nie usuwa podziału wiersza, więc kod napisany bez nich działa dokładnie tak samo.
Czy także minifikuje?
Nie, i to decyzja, a nie przeoczenie. Minifikacja oznacza zmianę nazw, przepisywanie i rozstrzyganie, które podziały wierszy mają znaczenie — trzy osądy, których to narzędzie istnieje właśnie po to, by nie wydawać. Pomyłka w którymkolwiek z nich psuje program w sposób, o którym dowiadujesz się na produkcji.
Czy rozumie TypeScript lub JSX?
Częściowo, i uczciwie. Oba są odczytywane jako tokeny, którymi są, więc nic się nie gubi, a nawiasy okrągłe i klamrowe nadal się zagnieżdżają, ale adnotacja typu i znacznik to nie są rzeczy, których kształt zna układ. Spodziewaj się wyniku rozsądnego raczej niż idiomatycznego.
Czy powie mi, czy mój skrypt jest poprawny?
Nie. Nie ma gramatyki, więc nie może: wie, gdzie kończy się jeden kawałek kodu, a zaczyna następny, co wystarcza, by rozłożyć plik, ale nie wystarcza, by go ocenić. Plik, którego nie potrafi odczytać w ogóle — z niezamkniętym łańcuchem, komentarzem lub literałem szablonowym — jest odrzucany, zamiast zostać przeformatowany w coś wiarygodnie wyglądającego.
Warto wiedzieć
- Wynik zawiera dokładnie te kawałki, które zawierało wejście. Nic nie jest dodawane, usuwane ani przestawiane: przesuwane są tylko białe znaki pomiędzy nimi.
- Ukośnik to albo dzielenie, albo początek wyrażenia regularnego, i żaden tokenizer nie może mieć pewności, które z nich, bez gramatyki. Ten rozstrzyga to na podstawie poprzedniego tokena, a literał, który musiałby przechodzić przez podział wiersza, odczytuje jako dzielenie, bo wyrażenie regularne nie może go zawierać. Błędne założenie kosztuje co najwyżej estetykę układu i nic więcej, bo każdy kawałek jest kopiowany dokładnie tak, jak został napisany.
- Literał szablonowy wraca znak po znaku, od grawisu do grawisu. Jego białe znaki to tekst, który wyświetli twoja strona, więc nie są to odstępy, które formatter może ruszać.
- Układ jest deterministyczny: ten sam skrypt z tą samą opcją zawsze daje ten sam wynik, a sformatowanie już sformatowanego skryptu niczego nie zmienia.
Źródła
Wszystkie narzędzia z kategorii Kod