Coding style/ru
│
English (en) │
français (fr) │
русский (ru) │
Компилятор FPC и RTL
Введение
Некоторые люди могут подумать, что стиль кодирования, используемый в исходниках компилятора FPC и базовой RTL (run-time library) - немного странный, но он использовался много лет и не является предметом обсуждения. Поэтому воспринимайте всё нижеследующее как стандарт для использования.
Зарезервированные слова
Пишите зарезервировенные слова в нижнем регистре. Не надо делать их нечитаемыми, набирая в верхнем регистре. Современные IDE поддерживают подсветку синтаксиса, поэтому зарезервированные слова легко распознаются.
Пробелы
Не используйте пробелы вокруг операторов, двоеточий, скобок и т.д.,
т.е. пишите
p:=p+i;
вместо
p := p + i ;
Символы табуляции
Не используйте символы табуляции (ASCII HT, 0x09). Нет стандартных установок по умолчанию для символов табуляции, поэтому то, как при просмотре будут выглядеть исходные файлы, использующие символы табуляции, будет зависеть от настроек клиента. Это может привести к хаотичному виду исходных файлов. Для выравнивания используйте символы пробела (см. также Отступы).
Отступы
Размер отступа всегда - 2 пробела на уровень.
Никогда не располагайте begin на той-же строке, что while..do, if..then и т.д., а всегда - на его собственной отдельной строке (и делайте отступ относительно while, if и т.д.).
Переводы строк
Отделяйте подпрограммы тремя переводами строк, т.е. помещайте между ними две пустые строки.
Разное
Пожалуйста, обратите внимание, что если после else идёт if, то дополнительного отступа не делается:
if x then
begin
...
end
else if y then
begin
...
end;
Разделяйте все составные условия оператора if на несколько строк, т.е. пишите
не так:
if (x) and (y) then
а так:
if x and
y then
...
(возможно, за исключением случаев, когда x и y - просто логические переменные)
Примеры
Для того, чтобы убедиться, как всё это выглядит, можно заглянуть в Исходники FPC.
FCL
Нет формальных стандартов.
Другие пакеты, поставляемые с FPC
Нет формальных стандартов.
Lazarus
Поскольку Lazarus и LCL следуют совместимости с Delphi, стиль кода сходен с тем, который используется в Delphi.
Если вы пишете патч или расширение для LCL, вам следует придерживаться стиля LCL.
Если вы разрабатываете свой собственный компонент, вы можете использовать любой стиль, который вам нравится, но рекомендуется так-же использовать стиль LCL.
Смотрите указания по кодированию Lazarus: DesignGuidelines/ru
Для справки: вы можете найти описание стиля кодирования Delphi здесь