Введение
Форматирование для облегчения чтения кода или разметки. Красивое форматирование (или prettyprinting) — это применение различных стилистических правил форматирования к текстовым файлам, таким как исходный код, разметка и аналогичный контент. Эти правила могут включать соблюдение стиля отступов, использование различных цветов и шрифтов для выделения синтаксических элементов исходного кода или изменение размера, чтобы сделать контент более удобным для чтения и понимания. Программы красивого форматирования исходного кода иногда называют форматировщиками кода или инструментами для приведения кода в порядок.
Pretty printing (or prettyprinting) is the application of any of various stylistic formatting conventions to text files, such as source code, markup, and similar kinds of content. These formatting conventions may entail adhering to an indentation style, using different color and typeface to highlight syntactic elements of source code, or adjusting size, to make the content easier for people to read, and understand. Pretty printers for source code are sometimes called code formatters or beautifiers.
Математика в красивом шрифте
Красивое отображение обычно относится к представлению математических выражений в виде, близком к профессиональному набору. Например, в системах компьютерной алгебры, таких как Maxima или Mathematica, система может представить выражение "x ^ 2 + 3 * x" как Некоторые графические калькуляторы, такие как серии Casio 9860, HP 49/50 и HP Prime, TI 84 Plus, TI 89 и TI Nspire, TI 83 Plus с расширением PrettyPt, TI 84 Plus с тем же расширением или операционные системы с поддержкой "MathPrint", способны выполнять красивое отображение. Кроме того, ряд новых научных калькуляторов оснащены экранами с точечной матрицей, позволяющими красиво отображать выражения, например, серии Casio FX ES (Natural Display), Sharp EL W (WriteView), HP SmartCalc 300s, TI 30XB и Numworks. Многие программы для форматирования текста также поддерживают набор математических формул: TeX был разработан специально для высококачественного математического набора.
Красивая печать и код на основе тегов
Красивое форматирование в экземплярах языков разметки обычно связано с отступами тегов и строкового содержимого для визуального определения иерархии и вложенности. Хотя синтаксические структуры языков, основанных на тегах, существенно не различаются, отступы могут значительно варьироваться в зависимости от того, как интерпретируется язык разметки, или от описываемых данных. В MathML символы пробелов не несут информации о данных, значении или синтаксисе сверх того, что требуется синтаксисом XML. В HTML символы пробелов между тегами рассматриваются как текст и преобразуются в текстовые узлы в результате разбора. Хотя отступы могут быть щедро использованы в документе MathML, при красивом форматировании документа HTML необходимо проявлять особую осторожность, чтобы не создавать и не удалять дополнительные текстовые узлы вблизи содержимого или тегов, отражающих содержимое. Эта разница в сложности существенна с точки зрения автоматизированной операции красивого форматирования, где не требуются специальные правила или крайние случаи, как в более простом примере MathML. В примере HTML может потребоваться ряд последовательных взаимосвязанных алгоритмов для учета различных шаблонов элементов тегов и содержимого, соответствующих единому стилю и последовательно применяемых в различных экземплярах, что подтверждается разметкой. Этот компонент приложения используется для улучшения внешнего вида HTML, XML и связанных технологий в инструменте Pretty Diff.
Форматирование программного кода
Программисты часто используют инструменты для форматирования исходного кода языка программирования определенным образом. Правильное форматирование кода облегчает его чтение и понимание. Разные программисты часто предпочитают разные стили форматирования, такие как использование отступов и пробелов или расположение фигурных скобок. Форматировщик кода или инструмент для расстановки отступов преобразует исходный код из одного стиля форматирования в другой. Это относительно просто благодаря однозначному синтаксису языков программирования. Красивое форматирование кода включает в себя разбор исходного кода на составные структуры, такие как операторы присваивания, условные операторы, циклы и т. д. (см. также управление потоком выполнения), и форматирование их в соответствии с настройками, указанными пользователем в файле конфигурации. Инструменты для красивого форматирования кода существуют как отдельные приложения, а также встроены в текстовые редакторы и интегрированные среды разработки. Например, различные режимы языка в Emacs могут правильно и аккуратно расставлять отступы в блоках кода.
Красивый принтер Lisp
Ранним примером автоматического форматирования кода была программа Билла Госпера "GRINDEF" (т.е. 'функция шлифовки') (около 1967 года), которая использовала комбинаторный поиск с отсечением для форматирования программ LISP. Ранние версии работали с исполняемой (списочной структурой) формой программы Lisp и не учитывали специальное значение различных функций. Более поздние версии имели специальные правила чтения для включения неисполняемых комментариев, а также для сохранения читаемых макросов в неразвернутом виде. Они также поддерживали специальные правила отступов для специальных функций, таких как if. Термин "grind" (шлифовка) использовался в некоторых кругах Lisp как синоним автоматического форматирования кода.
Правила стиля проекта
Многие проекты с открытым исходным кодом установили правила оформления кода. Наиболее распространены форматирование GNU и стиль BSD. Основное различие между ними заключается в расположении фигурных скобок: в стиле GNU открывающая и закрывающая скобки располагаются на отдельных строках с одинаковым отступом. В стиле BSD открывающая скобка помещается в конце предыдущей строки, а после закрывающей скобки может следовать `else`. Также различаются размер отступа и расположение пробелов.