Sign in Join
Wiki copytemporary

Coding style/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Coding style/ru

OldNewLine
1+## Компилятор FPC и RTL
2+
3+### Введение
4+
5+Некоторые люди могут подумать, что стиль кодирования, используемый в исходниках компилятора FPC и базовой RTL (run-time library) - немного странный, но он использовался много лет и не является предметом обсуждения. Поэтому воспринимайте всё нижеследующее как стандарт для использования.
6+
7+### Зарезервированные слова
8+
9+Пишите зарезервировенные слова в нижнем регистре. Не надо делать их нечитаемыми, набирая в верхнем регистре. Современные IDE поддерживают подсветку синтаксиса, поэтому зарезервированные слова легко распознаются.
10+
11+### Пробелы
12+
13+Не используйте пробелы вокруг операторов, двоеточий, скобок и т.д.,\
14+т.е. пишите
15+
16+``` pascal
17+p:=p+i;
18+```
19+
20+вместо
21+
22+``` pascal
23+p := p + i ;
24+```
25+
26+### Символы табуляции
27+
28+Не используйте символы табуляции ([[ASCII]] HT, 0x09). Нет стандартных установок по умолчанию для символов табуляции, поэтому то, как при просмотре будут выглядеть исходные файлы, использующие символы табуляции, будет зависеть от настроек клиента. Это может привести к хаотичному виду исходных файлов. Для выравнивания используйте символы пробела (см. также *Отступы*).
29+
30+### Отступы
31+
32+Размер отступа всегда - 2 пробела на уровень.
33+
34+Никогда не располагайте **begin** на той-же строке, что **while..do**, **if..then** и т.д., а всегда - на его собственной отдельной строке (и делайте отступ относительно **while**, **if** и т.д.).
35+
36+### Переводы строк
37+
38+Отделяйте подпрограммы тремя переводами строк, т.е. помещайте между ними две пустые строки.
39+
40+### Разное
41+
42+Пожалуйста, обратите внимание, что если после **else** идёт **if**, то дополнительного отступа не делается:
43+
44+``` pascal
45+if x then
46+ begin
47+ ...
48+ end
49+else if y then
50+ begin
51+ ...
52+ end;
53+```
54+
55+Разделяйте все составные условия оператора **if** на несколько строк, т.е. пишите\
56+не так:
57+
58+``` pascal
59+if (x) and (y) then
60+```
61+
62+а так:
63+
64+``` pascal
65+if x and
66+ y then
67+ ...
68+```
69+
70+(возможно, за исключением случаев, когда *x* и *y* - просто логические переменные)
71+
72+### Примеры
73+
74+Для того, чтобы убедиться, как всё это выглядит, можно заглянуть в [Исходники FPC](http://www.freepascal.org/cgi-bin/viewcvs.cgi/?root=fpc).
75+
76+## FCL
77+
78+Нет формальных стандартов.
79+
80+## Другие пакеты, поставляемые с FPC
81+
82+Нет формальных стандартов.
83+
84+## Lazarus
85+
86+Поскольку Lazarus и LCL следуют совместимости с Delphi, стиль кода сходен с тем, который используется в Delphi.
87+
88+Если вы пишете патч или расширение для LCL, вам следует придерживаться стиля LCL.
89+
90+Если вы разрабатываете свой собственный компонент, вы можете использовать любой стиль, который вам нравится, но рекомендуется так-же использовать стиль LCL.
91+
92+Смотрите указания по кодированию Lazarus: [[DesignGuidelines/ru]]
93+
94+Для справки: вы можете найти описание стиля кодирования Delphi [здесь](http://edn.embarcadero.com/article/10280)
95+
96+## См. также
97+
98+- [[DesignGuidelines/ru|Указания по кодированию Lazarus: DesignGuidelines/ru]]
99+- [Описание стиля кодирования Delphi: Object Pascal Style Guide (Charles Calvert)](http://edn.embarcadero.com/article/10280)
100+
101+---
102+*From the Free Pascal wiki, page "Coding style/ru", as it stood on 2020-02-11 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history