Перейти к содержимому

Бесплатный форматировщик кода: Улучшение JavaScript, Python, HTML и других языков

Мгновенное форматирование неаккуратного кода с правильными отступами и интервалами. Поддерживает более 12 языков, включая JavaScript, Python, HTML, CSS и Java. Работает в браузере, безопасен и бесплатен. Регистрация не требуется.

Форматтер кода

Отформатируйте свой код одним щелчком. Выберите язык, вставьте код и получите его правильное форматирование.

Как использовать:

  1. Выберите язык программирования из выпадающего списка.
  2. Вставьте неотформатированный код в область ввода.
  3. Нажмите кнопку "Форматировать код".
  4. Скопируйте отформатированный результат из области вывода.
Калькулятор загрузки...
📚

Документация

Что такое форматтер кода?

Форматтер кода — это инструмент, который переписывает исходный код с единообразными отступами, переносами строк и пробелами, не изменяя его поведение. Этот форматтер кода работает в веб-браузере. Он поддерживает 12 языков программирования, включая JavaScript, Python, HTML и CSS.

Как работает этот форматтер кода

Инструмент использует отдельный набор правил для каждого языка. Ни один из них не строит полное синтаксическое дерево кода, кроме JSON.

  • JSON разбирается встроенным анализатором JSON браузера, а затем выводится с отступами в два пробела. Если JSON недействителен, инструмент сообщает об ошибке и не показывает результат.
  • JavaScript, TypeScript, Java, C, C++ и C# используют один форматтер. Он посимвольно сканирует код, отслеживая фигурные скобки, круглые скобки и точки с запятой. Каждая { начинает новый блок с отступом, а каждая } или ; завершает строку. Комментарии и строки в кавычках копируются без изменений. Этот форматтер не добавляет пробелы вокруг операторов или после запятых, если их не было в исходном коде, — он только заново формирует переносы строк и отступы.
  • Python считывает имеющиеся отступы в каждой строке и перестраивает их, используя четыре пробела на уровень, по тем же правилам вложенности, которые применяет сам язык Python. Он не разбивает длинные строки, не добавляет пустые строки и не расставляет пробелы вокруг операторов; он только нормализует глубину отступа каждой строки.
  • CSS удаляет лишние переносы строк и пробелы, затем добавляет перенос строки после каждого { и ;, а также перед каждым }.
  • HTML и XML добавляют перенос строки и два пробела отступа для каждого уровня вложенных тегов, распознавая стандартные самозакрывающиеся теги, такие как <br>, <img> и <input>.
  • SQL преобразует фиксированный набор ключевых слов, например SELECT, FROM, WHERE, JOIN и ORDER BY, в верхний регистр и начинает новую строку перед каждым основным предложением.

Поскольку только путь обработки JSON действительно разбирает входные данные, остальные форматтеры не обнаруживают синтаксические ошибки, такие как пропущенная скобка или незакрытая строка. Они форматируют любой переданный текст, даже если его нельзя было бы запустить.

Поддерживаемые языки

ЯзыкТипичное расширение файлаШирина отступа
JavaScript.js2 пробела
TypeScript.ts2 пробела
HTML.html2 пробела
CSS.css2 пробела
Python.py4 пробела
Java.java4 пробела
C.c4 пробела
C++.cpp4 пробела
C#.cs4 пробела
SQL.sqlпереносы строк по предложениям
JSON.json2 пробела
XML.xml2 пробела

Как форматировать код

  1. Выберите язык программирования в раскрывающемся меню.
  2. Вставьте неотформатированный код в поле ввода.
  3. Выберите «Форматировать код».
  4. Скопируйте отформатированный результат из поля вывода.

Форматирование полностью выполняется внутри браузера. Код никогда не отправляется на сервер.

Пример форматирования JavaScript

До форматирования:

1function add(a, b) {
2    if (a > 0) { return a + b; }
3    return 0;
4}
5

После форматирования:

1function add(a, b) {
2  if (a > 0) {
3    return a + b;
4  }
5  return 0;
6}
7

Форматтер перенёс код внутри { } на отдельную строку с отступом и нормализовал отступы до двух пробелов на уровень. Он оставил пробелы вокруг a > 0 и a + b точно такими, какими их обнаружил, поскольку эти пробелы уже присутствовали.

Пример форматирования Python

До форматирования:

1def calculate_average(numbers):
2  if len(numbers) == 0:
3    return 0
4  total = sum(numbers)
5  return total / len(numbers)
6

После форматирования:

1def calculate_average(numbers):
2    if len(numbers) == 0:
3        return 0
4    total = sum(numbers)
5    return total / len(numbers)
6

В исходном коде использовалось два пробела на уровень отступа. Форматтер перестроил отступы каждой строки, используя четыре пробела на уровень, в соответствии со стилем, описанным в PEP 8, официальном руководстве по стилю Python. Он сохранил порядок всех строк и не изменил пробелы внутри строк.

Почему форматирование кода важно

Неодинаковые отступы затрудняют понимание того, где заканчивается функция, цикл или условие. В коде, который редактировали несколько человек, часто смешиваются отступы табуляциями и пробелами либо строки перестают выравниваться относительно блока, к которому относятся. Обработка форматтером придаёт каждому файлу одинаковую визуальную структуру: код становится быстрее для просмотра, а неправильно расположенную скобку легче заметить.

Ограничения

  • Размер входных данных: инструмент принимает до 50 000 символов кода. Более длинные данные отклоняются с сообщением об ошибке до начала форматирования.
  • Нет проверки синтаксиса для большинства языков: только входные данные JSON разбираются и проверяются. Код на остальных 11 языках форматируется как есть, даже если в нём пропущена скобка или не закрыта строка. В таком случае отступы в результате могут быть неправильными, а ошибка не будет отмечена.
  • Пробелы вокруг операторов не изменяются: форматтеры JavaScript, TypeScript и языков семейства C меняют только переносы строк и отступы. Они не вставляют пробелы вокруг +, =, !== или после запятой, если такого пробела не было.
  • PHP не поддерживается: при выборе неподдерживаемого языка код возвращается без изменений.

Часто задаваемые вопросы

Проверяет ли этот инструмент мой код на синтаксические ошибки? Только JSON. Входные данные JSON разбираются, поэтому недействительный JSON вызывает сообщение об ошибке. Код на остальных поддерживаемых языках форматируется без проверки синтаксической корректности.

Отправляет ли он мой код на сервер? Нет. Форматирование полностью выполняется в браузере с помощью JavaScript. Код не загружается на сервер и нигде не сохраняется.

Какой максимальный объём кода он может отформатировать? 50 000 символов. При вставке большего объёма возникает ошибка до начала форматирования.

Добавит ли он недостающие пробелы вокруг операторов или после запятых? Нет, для JavaScript, TypeScript, Java, C, C++ и C#. Эти форматтеры только заново формируют отступы и переносы строк вокруг фигурных скобок и точек с запятой; остальная часть каждой строки копируется без изменений.

Какие отступы он использует? Два пробела для JavaScript, TypeScript, HTML, CSS, JSON и XML. Четыре пробела для Python, Java, C, C++ и C#.

Почему после форматирования мой код выглядит почти так же? Если во входных данных уже использовались единообразные пробелы и один стиль скобок, форматтер в основном перестраивает отступы, поэтому изменения могут быть небольшими. Он особенно полезен для кода со смешанными отступами или кода, сжатого до очень небольшого числа строк.