Программирование ARM AStyle: форматировщик исходного кода Tue, May 28 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

AStyle: форматировщик исходного кода Печать
Добавил(а) microsin   

Утилита astyle (Artistic Style) это автоматический форматировщик и организатор стиля исходного кода, предназначенный для улучшения читаемости кода на языках программирования C, C++, C++/CLI, Objective-C, C# и Java.

При оформлении исходного кода обычно программисты для отступов используют и табуляцию, и пробелы. Кроме того, многие редакторы по умолчанию вставляют пробелы вместо табуляции при нажатии на клавишу Tab. Другие редакторы (например Emacs, notepad2) имеют тенденцию "улучшать" текст, автоматически вставляя пробелы при переходе на другую строку, ориентируясь на отступ в предыдущей строке.

Количество пробелов для каждого символа табуляции в исходном коде может меняться при переходе от одного редактора к другому (если пользователь предварительно не установил для себя желаемое количество пробелов). Одна из стандартных проблем программистов, когда они переключаются между редакторами кода состоит в том, что в тексте кода могут встречаться как пробелы, так и символы табуляции, и модуль кода, который казалось бы только что был оформлен правильно, вдруг оказывается совершенно непривычным. Даже если вы относитесь к тем программистам, которые используют для отступов исключительно только пробелы, это все равно может быть не очень удобным для других пользователей вашего кода.

Для решения этой проблемы был создан Artistic Style - фильтр, написанный на C++, который автоматически переназначает отступы и переформатирует исходный код на C / C++ / Objective-C / C++/CLI / C# / Java. Он может быть использован как утилита командной строки, или может быть встроен в другую программу как билиотека.

[Общая информация]

Окончания строк. В форматируемом файле стиль завершения строк сохраняется таким же, каким он был в исходном файле. Например, если это был стиль Windows \r\n (CRLF, т. е. коды 0D0A), то он останется таким же. Если в тексте попалась смесь разных стилей завершения строк, то будет использован наиболее часто попадающийся стиль. Существует также опция для специального указания необходимого стиля окончания строк.

Тип файла. AStyle будет определять тип файла по его расширению. Расширение ".java" показывает файл на языке Java file, и ".cs" показывает файл C#. Все остальное это тип файла стиля языка C (C, C++, C++/CLI или Objective-C). Если вы используете нестандартное расширение файла для Java или C#, то используйте одну из опций --mode=стиль.

Шаблоны (wildcards) и вложенные каталоги. AStyle может рекурсивно обработать все подпапки указанного пути. Обрабатываются шаблоны имен файлов wildcards (такие как "*.cpp" или "*.c??"). Если используется шелл, то в AStyle должны быть переданы wildcards вместо того, чтобы он их сам распознавал. Для Linux используются двойные кавычки, когда в имени файла используются шаблоны wildcards. Для Windows двойные кавычки вокруг имен файлов используются, когда в имени пути содержатся пробелы. Для рекурсивной обработки файлов в подкаталогах имеется специальная опция (см. описание опции --recursive во врезке ниже).

Имена файлов. Когда файл переформатируется, его оригинальное имя сохраняется. Будет создана копия оригинального файла с суффиксом .orig, добавленным к изначальному имени файла (значение "добавки можно поменять опцией --suffix=, или добавление суффикса может быть подавлено опциями -n или --suffix=none). Таким образом, после переоформления файла SourceFile.cpp результат будет тем же файлом SourceFile.cpp, а старое содержимое этого файла останется в файле SourceFile.cpp.orig.

Интернационализация. Существует возможность трансляции на несколько языков. Используемая трансляция определяется по установленной текущей локали (User Locale) Windows и переменной окружения LANG на других системах. Трансляция будет произведена автоматически на основе этих настроек. Если трансляция недоступна, то по умолчанию используется English. Существует опция ascii, чтобы использовать English вместо установленного языка системы (system language).

Исходный код для трансляций находится в конце ASLocalizer.cpp в форме пар English-Translation. Если вы сделали правки в трансляции, то отправьте исходник на bug report, чтобы разработчики могли включить его в следующий релиз.

Для добавления нового языка добавьте новый класс трансляции в ASLocalizer.h. Добавьте пару English-Translation в конструктор в ASLocalizer.cpp. Обновите массив WinLangCode, и добавьте код языка в функцию setTranslationClass(). Программа ASLocalizer.cpp содержит комментарии, которые дают ссылки на web-страницы, содержащие идентификаторы LCID и коды языка. Отправьте исходный код на bug report, и он будет включен в следующий релиз.

Дополнительные замечания. Имена специальных символов, используемых в программировании, меняются в зависимости от региона. В AStyle используется следующая терминология, за которой следуют другие общие названия:

braces, или фигурные скобки { } - также называются брекетами, или curly brackets.
parens, или круглые скобки ( ) - также называются парентезисами, брекетами, circle brackets или soft brackets.
square brackets, или квадратные скобки [ ] - также называются block parens, brackets, closed brackets или hard brackets.
angle brackets, или угловые скобки < > - также называются brackets, pointy brackets, triangular brackets, diamond brackets, tuples или chevrons.

В Visual Studio, и возможно в других средах разработки, есть расширения, которые выравнивают операторы присваивания по нескольким строкам. Также существует расширение "Code alignment" которое также выравнивает текст кода по другим элементам. В AStyle могут испльзоваться эти опции и расширения. Дополнение пробелами и выравнивание будет сохранено.

AStyle может форматировать операторы библиотеки стандартных классов, таких как Open GL, wxWidgets, Qt и MFC.

Корректно форматируется встроенный язык ассемблера. Это включает строки и блоки расширенного ассемблера (extended assembly) и специфического ассемблера от Microsoft.

AStyle может форматировать встроенные операторы SQL. Форматирование SQL будет поддерживаться, пока сохраняется стандартный формат отступа. Если оператор "exec sql" находится в дополнительных последующих операторах, то SQL будет выровнен в один столбец.

Будут отформатированы файлы Unicode, кодированные в UTF-16, в обоих вариантах big endian и little endian. Для распознавания файлы должны начинаться с маркера порядка следования байт (byte order mark, BOM). Файлы, закодированные UTF-32, будут отбрасываться. Некоторые компилятора не поддерживают эти кодировки. Такие файлы могут быть преобразованы в кодировку UTF-8 с помощью программы iconv, которая существует в версиях для Linux и Windows (версия Windows возможно не будет обрабатывать все кодировки). Visual Studio может преобразовать файлы через меню File -> Advanced Save Options. Есть другие среды разработки и текстовые редакторы, такие как SciTE и notepad2, которые могут преобразовать файлы в UTF-8.

Встроенные многострочные операторы, не имеющие формата типа языка C, такие как Python, обычно будут отформатированы неправильно (форматa C-типа подразумевает блоки, окруженные фигурными скобками, и операторы, заканчивающиеся на точку с запятой). Макросы, которые определяют функции, могут привести к тому, что последующий код будет оформлен с ошибкой, потому что в определении макроса пропущены скобки и символы точки с запятой. Если у вас есть исходный код с операторами такого типа, то исключите их из обработки опцией exclude=#### (см. описание опции --exclude= во врезке ниже).

                     Artistic Style 3.1
                     Maintained by: Jim Pattee
                     Original Author: Tal Davidson

Usage:
------

            astyle [OPTIONS] File1 File2 File3 [...]
            astyle [OPTIONS] < Original > Beautified

    Когда обрабатывается определенный файл, результат будет сохранен
    по месту, в ОРИГИНАЛЬНОМ имени файла. Содержимое оригинального
    файла будет сохранено в файле, где к имени оригинального файла
    добавлен суффикс '.orig'.

    В имени файла могут использоваться шаблоны макроподстановки
    (wildcards * и ?). Опция рекурсии позволяет обрабатывать файлы
    в подкаталогах. Несколько расширений файлов могут быть отделены
    друг от друга запятой.

    По умолчанию astyle настроен на отступы из 4 пробелов, с максимальным
    отступом в 40 пробелов внутри непрерывных операторов, минимальным
    отступом 8 пробелов внутри условных операторов, и опциями без
    форматирования (NO formatting).

Опции:
------

    Программа astyle использует общепринятый GNU-стиль синтаксиса
    опций командной строки. Длинные опции (начинающиеся на '--') должны
    быть написаны по одной, через пробел. Коротки опции (начинающиеся
    на '-') могут комбинироваться вместе. Таким образом, -bps4 задает
    то же самое, что и последовательность опций -b -p -s4.

Файлы опций:
------------

    Artistic Style ожидает файл опций по умолчанию и/или файл опций
    проекта, обрабатывая опции в следующем порядке:

    1. Опции командной строки имеют преимущество.

    2. Файл опций проекта имеет преимущество надо файлом умолчаний.

       o Имя файла показывается опцией командной строки --project=.
       o Имя файла опций .astylerc или _ astylerc.
       o Имя файла идентифицируется переменной окружения
         ARTISTIC_STYLE_PROJECT_OPTIONS.
       o Этот файл запрещается опцией командной строки --project=none.

    3. Для всех проектов может использоваться файл опций по умолчанию.

       o Путь до файла показывается опцией командной строки --options=.
       o Путь до файла показывается переменной окружения
         ARTISTIC_STYLE_OPTIONS.
       o Имя файла опций .astylerc, и он находится в директории
         $HOME (для Linux).
       o Имя файла опций astylerc, и он находится в директории
         APPDATA (для Windows).
       o Этот файл запрещается опцией командной строки --project=none.

    Длинные опции в файлах опций могут быть записаны без '--'.

    Строка комментария начинается с '#', и продолжается до конца строки.

Запрет форматирования:
----------------------

    Disable Block. Блок кода может быть запрещен для форматирования тегами комментария
    *INDENT-OFF* и *INDENT-ON*. Эти теги должны находиться в однострочной
    строке комментария.

    Disable Line. Дополнение операторов можно запретить на одной строке, используя тег
    комментария *NOPAD*. Это должен быть однострочный комментарий.

Опции стиля фигурных скобок (Brace Style Options):
--------------------------------------------------

    Стиль скобок по умолчанию. Если никакой стиль специально не
    запрашивается, то открывающие скобки не меняются, а закрывающие
    скобки расставляются по предыдущей строке.

    --style=allman ИЛИ --style=bsd ИЛИ --style=break ИЛИ -A1
    Стиль Allman для форматирования и отступов. Broken braces.

    --style=java ИЛИ --style=attach ИЛИ -A2
    Java-стиль для форматирования и отступов. Attached braces.

    --style=kr ИЛИ --style=k&r ИЛИ --style=k/r ИЛИ -A3
    Стиль Kernighan & Ritchie для форматирования и отступов.
    Linux braces.

    --style=stroustrup ИЛИ -A4
    Stroustrup-стиль для форматирования и отступов.
    Linux braces.

    --style=whitesmith ИЛИ -A5
    Whitesmith-стиль для форматирования и отступов.
    Broken, indented braces. Блоки класса и блоки switch с отступом.

    --style=vtk ИЛИ -A15
    VTK-стиль для форматирования и отступов.
    Broken, indented braces except for the opening braces.

    --style=ratliff ИЛИ --style=banner ИЛИ -A6
    Ratliff-стиль для форматирования и отступов.
    Attached, indented braces.

    --style=gnu ИЛИ -A7
    GNU для форматирования и отступов.
    Broken braces, indented blocks.

    --style=linux ИЛИ --style=knf ИЛИ -A8
    Linux-стиль для форматирования и отступов.
    Linux braces, minimum conditional indent is one-half indent.

    --style=horstmann ИЛИ --style=run-in ИЛИ -A9
    Horstmann-стиль для форматирования и отступов.
    Run-in braces, indented switches.

    --style=1tbs ИЛИ --style=otbs ИЛИ -A10
    One True Brace Style для форматирования и отступов.
    Linux braces, add braces to all conditionals.

    --style=google ИЛИ -A14
    Google-стиль для форматирования и отступов.
    Attached braces, indented class modifiers.

    --style=mozilla ИЛИ -A16
    Mozilla-стиль для форматирования и отступов.
    Linux braces, with broken braces for structs and enums,
    and attached braces for namespaces.

    --style=pico ИЛИ -A11
    Pico-стиль для форматирования и отступов.
    Run-in opening braces and attached closing braces.
    Uses keep one line blocks and keep one line statements.

    --style=lisp ИЛИ -A12
    Lisp-стиль для форматирования и отступов.
    Attached opening braces and attached closing braces.
    Uses keep one line statements.

Опции табуляции:
----------------

    Если опция отступа не установлена, то по умолчанию
    используется 4 пробела на отступ.

    --indent=spaces=# ИЛИ -s#
    Отступ составляет # пробелов. Если # не указано, то
    будет использоваться по умолчанию 4 пробела на отступ.

    --indent=tab ИЛИ --indent=tab=# ИЛИ -t ИЛИ -t#
    Отступ использует символ табуляции, подразумевая, что
    каждый отступ соответствует # пробелам. Если не указать
    #, то будет подразумеваться 4 пробела на отступ.

    --indent=force-tab=# ИЛИ -T#
    Отступ использует символы табуляции, подразумевая, что
    каждый отступ длиной # пробела. AStyle предпочитает пробелам
    принудительное использование табуляции.

    --indent=force-tab-x=# ИЛИ -xT#
    Позволяет установить длину табуляции, которая отличается от
    длины отступа. Это может привести к тому, что для отступов
    будет использоваться смесь табуляций и пробелов. Эта опция
    устанавливает длину табуляции.

Опции для изменения установки скобок (Brace Modify Options):
------------------------------------------------------------

    --attach-namespaces ИЛИ -xn
    Применение скобок для оператора namespace.

    --attach-classes ИЛИ -xc
    Применение скобок для оператора class.

    --attach-inlines ИЛИ -xl
    Применение скобок для определений inline-функции класса.

    --attach-extern-c ИЛИ -xk
    Применение скобок для оператора extern "C".

    --attach-closing-while ИЛИ -xV
    Применение скобок для while и do-while.

Опции отступа:
--------------

    --indent-classes ИЛИ -C
    Отступ блоков 'class' таким образом, что делается отступ
    для всего блока.

    --indent-modifiers ИЛИ -xG
    Половинный отступ для модификаторов доступа класса public:,
    protected: или private:. Для остальной части класса отступ
    не производится.

    --indent-switches ИЛИ -S
    Делается отступ для блоков switch, так что внутренние
    case XXX: ставятся с отступом относительно блока switch.

    --indent-cases ИЛИ -K
    Отступ блоков case от заголовков case XXX:. Для операторов
    case, не закрытых в блоки, отступ не производится.

    --indent-namespaces ИЛИ -N
    Отступ для содержимого блоков namespace.

    --indent-after-parens ИЛИ -xU
    Вместо выравнивания применить отступ там, где продолжающиеся
    строки содержат открывающую скобку '(' или присваивание '='.

    --indent-continuation=# ИЛИ -xt#
    Отступ продолжающихся строк на дополнительные # отступов.
    Допустимы значения от 0 до 4. Значение по умолчанию 1 оступ.

    --indent-labels ИЛИ -L
    Отступ для меток таким образом, что они на один отступ меньше
    текущей позиции отступа, вместо того чтобы полностью смещаться
    влево (что соответствует умолчанию).

    --indent-preproc-block ИЛИ -xW
    Отступ блоков препроцессора на уровень скобок 0. Без этой
    опции для блоков препроцессора отступ не делается.

    --indent-preproc-cond ИЛИ -xw
    Отступ условных операторов препроцессора #if/#else/#endif
    на уровень отступа исходного кода.

    --indent-preproc-define ИЛИ -w
    Отступ для многострочных операторов #define.

    --indent-col1-comments ИЛИ -Y
    Отступ строк комментария, которые начинаются в первом столбце.

    --min-conditional-indent=# ИЛИ -m#
    Отступ минимум # пробелов в продолжающемся условии,
    принадлежащем условному заголовку.

    Допустимы значения:

    0 - без минимального отступа.
    1 - как минимум один дополнительный отступ.
    2 - как минимум два дополнительных отступа.
    3 - как минимум половинчатый дополнительный отступ.
    Значение по умолчанию 2.

    --max-continuation-indent=# ИЛИ -M#
    Отступ максимум # пробелов в продолжающейся строке, относительно
    предыдущей строки. Допустимы значения от 40 до 120.
    Значение по умолчанию 40.

Опции заполнения (Padding):
---------------------------

    --break-blocks ИЛИ -f
    Вставка пустых строк вокруг несвязанных блоков, меток, классов, ...

    --break-blocks=all ИЛИ -F
    Наподобие --break-blocks, кроме того, что также вставляются пустые
    строки вокруг закрывающих заголовков (например else, catch, ...).

    --pad-oper ИЛИ -p
    Вставка пробелов вокруг операторов.

    --pad-comma ИЛИ -xg
    Вставка пробелов после запятых.

    --pad-paren ИЛИ -P
    Вставка пробела вокруг круглой скобки, снаружи и внутри.

    --pad-paren-out ИЛИ -d
    Вставка пробела возле круглой скобки, но только снаружи.

    --pad-first-paren-out ИЛИ -xd
    Вставка пробела вокруг первой круглой скобки в последовательности,
    но только снаружи.

    --pad-paren-in ИЛИ -D
    Вставка пробела вокруг круглой скобки, но только внутри.

    --pad-header ИЛИ -H
    Вставка пробела после if, for....

    --unpad-paren ИЛИ -U
    Удаление ненужных пробелов вокруг круглых скобок. Это может
    использоваться вместе с комбинацией 'pad'-опций, приведенных
    выше.

    --delete-empty-lines ИЛИ -xd
    Удаление пустых строк функции или метода.
    Это не удалит строки, добавленные опциями разбиения блоков.

    --fill-empty-lines ИЛИ -E
    Заполнение пустых строк пробелами на основе предыдущих строк.

    --align-pointer=type   ИЛИ -k1
    --align-pointer=middle ИЛИ -k2
    --align-pointer=name   ИЛИ -k3
    Прикрепление оператора указателя или ссылки (*, & или ^)
    либо к типу оператора (влево), либо установка посередине,
    либо к имени оператора (вправо).
    Отдельно для ссылки используйте --align-reference.

    --align-reference=none   ИЛИ -W0
    --align-reference=type   ИЛИ -W1
    --align-reference=middle ИЛИ -W2
    --align-reference=name   ИЛИ -W3
    Прикрепление оператора ссылки (&) либо к типу оператора (влево),
    либо посередине, либо к имени оператора (вправо).
    Если не установлено, то применяется прикрепление для указателя.

Опции форматирования:
---------------------

    --break-closing-braces ИЛИ -y
    Разбивает фигурные скобки перед закрывающими заголовками
    (например else, catch, ...). Используется для --style=java,
    --style=kr, --style=stroustrup, --style=linux или --style=1tbs.

    --break-elseifs ИЛИ -e
    Разбивает операторы else if()' на две разные строки.

    --break-one-line-headers ИЛИ -xb
    Разбивает однострочные заголовки (if, while, else, ...) из
    оператора, находящегося в той же строке.

    --add-braces ИЛИ -j
    Добавляет фигурные скобки, где их нет, в однострочные условные
    операторы.

    --add-one-line-braces ИЛИ -J
    Добавляет однострочные фигурные скобки в однострочные условные
    операторы.

    --remove-braces ИЛИ -xj
    Удаляет фигурные скобки из однострочных условных операторов.

    --break-return-type      ИЛИ -xB
    --break-return-type-decl ИЛИ -xD
    Отрывает возвращаемый тип от имени функции. Применяется для
    определений и деклараций функции.

    --attach-return-type      ИЛИ -xf
    --attach-return-type-decl ИЛИ -xh
    Прикрепляет тип к имени функции. Применяется для определений
    и деклараций функции.

    --keep-one-line-blocks ИЛИ -O
    Не разбивает блоки, которые полностью размещены в одной строке.

    --keep-one-line-statements ИЛИ -o
    Не разбивает строки, содержащие несколько операторов в одной
    строке.

    --convert-tabs ИЛИ -c
    Преобразует табуляции в соответствующее количество пробелов.

    --close-templates ИЛИ -xy
    Закрывает завершающие угловые скобки в определениях шаблона.

    --remove-comment-prefix ИЛИ -xp
    Удалит префикс '*' на многострочных комментариях и делает отступ
    текста комментария на одну позицию.

    --max-code-length=#   ИЛИ -xC#
    --break-after-logical ИЛИ -xL
    max-code-length=# разобъет строк, если она превышает в длину
    # символов. Допустимы значения от 50 до 200. Если строка содержит
    логические условия, то они будут помещены на новой строке первыми.
    Опция break-after-logical приведет к тому, что логические условия
    помещаются последними на предыдущей строке.

    --mode=c
    Отступ исходного файла C или C++ (по умолчанию).

    --mode=java
    Отступ исходного файла Java.

    --mode=cs
    Отступ исходного файла C#.

Опции Objective-C:
------------------

    --pad-method-prefix ИЛИ -xQ
    Вставка дополняющего пробела после '-' или '+' префикса
    метода Objective-C.

    --unpad-method-prefix ИЛИ -xR
    Удаление всех пробелов после '-' или '+' префикса
    метода Objective-C.

    --pad-return-type ИЛИ -xq
    Вставка пробела после возвращаемого типа Objective-C.

    --unpad-return-type ИЛИ -xr
    Удаление всех дополняющих пробелов после возвращаемого
    типа Objective-C.

    --pad-param-type ИЛИ -xS
    Вставка дополняющего пробела после возвращаемого типа
    Objective-C.

    --unpad-param-type ИЛИ -xs
    Удаление всех дополняющих пробелов после возвращаемого
    типа Objective-C.

    --align-method-colon ИЛИ -xM
    Выравнивание символов точки с запятой в определении
    метода Objective-C.

    --pad-method-colon=none   ИЛИ -xP
    --pad-method-colon=all    ИЛИ -xP1
    --pad-method-colon=after  ИЛИ -xP2
    --pad-method-colon=before ИЛИ -xP3
    Добавление или удаление дополняющего пробела перед или
    после точки с запятой в вызове метода Objective-C.

Другие опции:
-------------

    --suffix=####
    Добавление суффикса #### вместо .orig для оригинального имени файла.

    --suffix=none ИЛИ -n
    Не делать бекап содержимого оригинального файла.

    --recursive ИЛИ -r ИЛИ -R
    Рекурсивно обрабатывает подкаталоги.

    --dry-run
    Выполнить пустой запуск (trial run) без внесения изменений, чтобы
    проверить форматирование.

    --exclude=####
    Указать файл или директорию #### для исключения из обработки.

    --ignore-exclude-errors ИЛИ -i
    Позволяет продолжить обработку, если имеются ошибки в опциях
    exclude=####. Покажет не совпавшие исключения.

    --ignore-exclude-errors-x ИЛИ -xi

    Позволяет продолжить обработку, если были ошибки в опциях
    exclude=####. Не покажет не совпавшие исключения.

    --errors-to-stdout ИЛИ -X
    Печатает ошибки и информацию help в стандартный вывод (stdout)
    вместо вывода для ошибок (stderr).

    --preserve-date ИЛИ -Z
    Сохраняет дату и время модификации оригинального файла. Время
    будет изменено на несколько микросекунд, чтобы принудительно
    запустилась компиляция.

    --verbose ИЛИ -v
    Режим подробного вывода. Отобразятся дополнительные информационные
    сообщения.

    --formatted ИЛИ -Q
    Режим форматированного отображения. Будет только показано
    форматирование файлов.

    --quiet ИЛИ -q
    "Тихий" режим. Подавляет весь вывод, кроме сообщений об ошибках.

    --lineend=windows ИЛИ -z1
    --lineend=linux   ИЛИ -z2
    --lineend=macold  ИЛИ -z3
    Принудительно задает стиль окончания строк. Допустимы опции
    для Windows (CRLF), Linux (LF) и macold (CR).

Опции только для командной строки:
----------------------------------

    --options=####
    --options=none
    Задает чтение и использование файла опций по умолчанию ####.
    Здесь значение #### должно содержать путь до файла и имя файла.
    Значение none запрещает файл опций по умолчанию.

    --project
    --project=####
    --project=none
    Задает чтение и использование файла опций проекта ####.
    Здесь #### должно содержать только имя файла, без пути директории.
    Этот файл должен быть включен в директорию верхнего уровня проекта.
    Имя файла по умолчанию .astylerc или _astylerc.
    Значение none запретить файл опций проекта или действие переменной
    окружения (ARTISTIC_STYLE_PROJECT_OPTIONS), задающей имя файла
    опций проекта.

    --ascii ИЛИ -I
    Отображаемый вывод будет содержать только символы ASCII.

    --version ИЛИ -V
    Напечатает номер версии.

    --help ИЛИ -h ИЛИ -?
    Выведет это сообщение подсказки.

    --html ИЛИ -!
    Откроет HTML-файл подсказки astyle.html в браузере по умолчанию.
    Документация должна быть установлена в стандартное место установки.

    --html=####
    Откроет HTML-файл подсказки в браузере по умолчанию, используя путь
    файла ####. Путь может включать директорию файла и имя файла, или
    только имя файла. Пути, содержащие пробелы, должны быть заключены
    в кавычки.

    --stdin=####
    Использовать путь файла #### как входной одиночный файл форматирования.
    Это замена для перенаправления.

    --stdout=####
    Использовать путь файла #### в качестве вывода из одиночного файла
    форматирования. Это замена для перенаправления.

[Установка]

Последний релиз можно загрузить на официальной страничке SourceForge. Ссылка на последнюю версию (latest version) для вашей платформы будет находиться верхней части страницы. Как вариант, вы можете выбрать подходящий пакет из папок релизов "astyle". Пакет для Windows содержит скомпилированный бинарник. На других платформах может понадобиться компиляция из исходного кода. Для самых популярных компиляторов предоставлены файлы Makefile. Следуйте инструкциям по инсталляции для вашей платформы, см. [2].

Пример установки на Ubuntu:

$ sudo apt install astyle

[Быстрый старт]

Если вы никогда раньше не использовали AStyle, то есть несколько вариантов, с чего можно начать.

Во-первых, можно запустить его вообще без опций. Этот вариант будет использовать стиль фигурных скобок по умолчанию, 4 символа на отступ, и текст не подвергнется переформатированию. Это разобьёт однострочные блоки и однострочные операторы. Чтобы изменить такое поведение, используйте опцию keep-one-line-blocks и/или keep-one-line-statements (см. "Опции форматирования" врезки выше).

Во-вторых, вы можете попробовать применить один из стилей опций круглых скобок (см. "Опции стиля фигурных скобок" врезки выше). Если опция отступа не установлена, то по умолчанию будут использоваться 4 пробела. /Эти опции также разобьют однострочные блоки и операторы, как было описано выше.

Также попробуйте использовать файл опций. Это помогает дублировать стиль форматирования кода, который уже был использован ранее. Чтобы указать файл опций, используйте options=####. Здесь значение #### должно содержить путь и имя файла.

Когда вы освоитесь с опциями, то можете подобрать формат преобразования исходного кода в соответствии со своими предпочтениями.

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

Командная строка. AStyle это консольная программа, которая принимает управляющую информацию из опций командной строки.

Формат командной строки:

astyle [ОПЦИИ] SourceFilePath1 SourceFilePath2 SourceFilePath3 [ ... ]

Квадратные скобки показывают, что здесь может быть введено одна или несколько опций, или одно или несколько имен файлов. Символы скобок не добавляются в команду. Описание формата опций см. в соответствующую документацию (вывод подсказки astyle -h, или см. врезку выше).

Пример форматирования одного файла:

$ astyle --style=allman /home/project/foo.cpp

Пример форматирования файлов C#, подкаталоги будут обрабатываться рекурсивно:

$ astyle --style=allman --recursive /home/project/*.cs

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

Пример рекурсивного форматирования файлов C++, используя несколько расширений файлов:

$ astyle --style=allman --recursive /home/project/*.cpp,*.h

Перенаправление. Могут использоваться символы < и > для перенаправления файлов в стандартный ввод (stdin) и в стандартный вывод (stdout). С этой опцией может использоваться только один форматируемый файл. В этом случае шаблоны подстановок для имен wildcards не распознаются, в консоль сообщения не выводятся, и файлы бэкапа не создаются. На Windows в выводе всегда будут использоваться стиль завершения строк CRLF. Вместо символов перенаправления можно использовать опции stdin= и stdout=.

Пример перенаправления для форматирования одного файла и изменения имени файла:

$ astyle --style=allman < OriginalSourceFile > BeautifiedSourceFile

Пример того же самого перенаправления с использованием опций stdin= и stdout=:

$ astyle --style=allman --stdin=OriginalSourceFile --stdout=BeautifiedSourceFile

Опция перенаправления может использоваться для отображения форматированного файла без обновления его содержимого:

$ astyle --style=allman < OriginalSourceFile | less

[Ссылки]

1. Artistic Style Documentation site:astyle.sourceforge.net.
2. Artistic Style Install Information site:astyle.sourceforge.net.
3. Indentation style in computer programming site:wikipedia.org.
4. VSCode Astyle Format site:marketplace.visualstudio.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page