ДЛЯ НАЧАЛА: ЖИВЫЕ

- Knoppix -
Линукс за пять минут
- Puppy Linux -
Хороший друг


ДЛЯ ДЕЛА: ПРОФИ

- Debian -
Он такой один
- Linux Mint -
С родинкой на щеке!
- CentOS -
Копейка рубль бережёт!
- Fedora -
По следам Red Hat
- Ubuntu Linux -
Мы одной крови!
- Mageia -
Красота и удобства
- openSUSE -
Настоящее немецкое качество
- Slackware -
Линукс из кубиков
- ALT Linux -
Что русскому хорошо





ДЛЯ ДЕЛА: РОЛЛЫ

- ArchLinux -
Гениальное - просто!
- PCLinuxOS -
Просто линукс
- Aptosid -
Почувствуй силу!


ДЛЯ ДЕЛА: СОБЕРИ САМ

- Gentoo -
Каждому своё
- LinuxFromScratch -
Линукс с нуля


ДЛЯ ДЕЛА: ЛЁГКИЕ

- DeLiCate -
Старость в радость!
- SLAX -
Тысяча и один модуль


ЗАЩИТА

- OpenWall -
Не стучите, закрыто!
- Kali -
Вам, хакеры!


ПРИЛОЖЕНИЯ

- Planet CCRMA -
Работа со звуком
- VegaStrike -
Каждому по планете!


ЭКСПЕРИМЕНТ

- коЛинуксы -
Не выходя из Виндоус
- GoboLinux -
Очевидно и вероятно
- ReactOS -
Освободите Виндоус!


РОДНЯ

- BSD-семейство -
На плечах гигантов
- OpenIndiana -
До звёзд рукой подать


АРХИВ (2003-2016)
ФОРУМ




НАШИ ПРОЕКТЫ

MATRIX GL
ПОЛЕЗНЫЕ СОВЕТЫ
ПИНГВИН В КАРМАНЕ
ЗАКЛАДКИ
СТАТЬИ
КОНТАКТЫ


ПОМОЧЬ






Личный архив ЕЗ

indent - программа для автоматического форматирования C-исходников

У каждого программиста есть свой стиль оформления исходников, включающий в себя размеры отступов их наличие или отсутствие в определенных конструкциях, расположение фигурных скобок, наличие/отсутствие пробелов после запятых, возле скобок и т.д. Программа indent преобразовывает файлы между такими стилями, позволяя регулировать огромное количество параметров, включая вышеперечисленные. После составления файла профиля в соответствии со своими предпочтениями, программист может пропустить любой исходный текст через indent и получить его на выходе оформленным так, как он предпочитает (это, например, можно сделать для большей удобочитаемости, ну или чтобы приспособить кусок чужого кода для своей программы icon_wink.gif).

У indent есть множество ключей, контролирующих различные параметры стиля. Все они имеют длинную и короткую форму записи. Большинство параметров имеют значение "да" или "нет", но некоторые (ширина текста или отступ, например) имеют числовое значение. Здесь невозможно описать все параметры, так что читайте man indent или info indent, где для многих параметров даже приведены примеры оформления кода в соответствии с тем или иным значением параметра. Но все же рассмотрим 1 пример. Выражение if {} можно оформить так:

if (a) {

b();

}

можно так:

if (a)

{

b();

}

а можно даже так:

if (a)

{

b();

}

При этом размеры отступов тоже могут быть различными. Так вот, ключ -br (--braces-on-if-line) включает расположение открывающей скобки на одной строке с if (как в 1-м варианте), а -bl (--braces-after-if-line) - на следующей строке. -bli (--brace-indent) определяет отступ между if и фигурными скобками (во 2-м примере используется -bli0, а в 3-м -bli2).

Интересной возможностью indent является выборочное отключение обработки отдельных блоков файла. Для этого надо заключить необрабатываемый блок в комментарии /* *INDENT-OFF* */ и /* *INDENT-ON* */.

Несмотря на то, что indent, как правило, не меняет сам код, меняя лишь оформление, целостность кода все же не гарантируется, так что он может (что, впрочем, маловероятно) и перестать компилироваться. И еще, indent "не знает" C++, так что специфичные для С++ конструкции в лучшем случае останутся такими же, как были в исходном файле (а в худшем испортится их форматирование ).

Конечно, все опции indent можно вводить в командной строке, но лучше после изучения их всех и определения набора подходящих под Ваш любимый стиль записать их (по 1 на строчку) в файл ~/.indent.pro и запускать indent в дальнейшем без опций. Для тех, кому интересно, приведу свой профиль:

--blank-lines-after-declarations

--blank-lines-after-procedures

--braces-after-struct-decl-line

--blank-lines-before-block-comments

--brace-indent0

--braces-after-if-line

--case-brace-indentation0

--cuddle-do-while

--continuation-indentation4

--case-indentation2

--space-after-cast

--indent-level2

--continue-at-parentheses

--no-tabs

--no-space-after-function-call-names

--dont-cuddle-else

--no-space-after-parentheses

--space-after-for

--space-after-if

--space-after-while

--space-special-semicolon

--verbose

--dont-break-procedure-type

Вернуться к оглавлению


При частичной или полной перепечатке, переводе, переработке материалов сайта ссылка на Knoppix.ru обязательна.
(c) Knoppix.ru 2003 - 2016