Difference between revisions of "Style/ru"

From KolibriOS wiki
Jump to navigation Jump to search
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Правила SVN для ядра ==
 
== Правила SVN для ядра ==
 
* Табуляции запрещены.
 
* Табуляции запрещены.
 +
* Метки должны идти в отдельной строке от кода (но могут быть в одной строке с данными).
 
* Строка начинается с восьми пробелов. Далее идёт имя команды или макроса. Если имя короче восьми символов, то оно дополняется пробелами до восьми символов; если нет, то далее идёт один пробел. Потом опционально идут аргументы, разделённые запятой и одним пробелом после неё.
 
* Строка начинается с восьми пробелов. Далее идёт имя команды или макроса. Если имя короче восьми символов, то оно дополняется пробелами до восьми символов; если нет, то далее идёт один пробел. Потом опционально идут аргументы, разделённые запятой и одним пробелом после неё.
 
* Префиксы lock/rep[z|e|nz|ne] считаются логическим целым с последующей командой и отделяются одним пробелом.
 
* Префиксы lock/rep[z|e|nz|ne] считаются логическим целым с последующей командой и отделяются одним пробелом.
 
* Все файлы с кодом должны обладать служебным свойством 'svn:eol-style' со значением 'native'.
 
* Все файлы с кодом должны обладать служебным свойством 'svn:eol-style' со значением 'native'.
 
* Все текстовые файлы должны быть в кодировке UTF-8 без BOM.
 
* Все текстовые файлы должны быть в кодировке UTF-8 без BOM.
 +
 +
= Asmxygen =
 +
 +
В ядре присутствует doxygen документация. Синтаксис документации идентичен таковой в обычном doxygen за исключением следующих ньюансов:
 +
* Если функция не возвращает значений и не принимает параметров - в доксиген комментарии следует указать `@returns Nothing`
 +
* Для удаления функции из документации можно воспользоваться директивой `@dont_give_a_doxygen`
  
 
== Рекомендации ==
 
== Рекомендации ==
Line 10: Line 17:
 
* То же самое желательно применять и к меткам, а так же располагать их в отдельной строке без отступа.
 
* То же самое желательно применять и к меткам, а так же располагать их в отдельной строке без отступа.
 
* При написании процедур необходимо описывать её назначение, входные и выходные параметры, изменяемые регистры:
 
* При написании процедур необходимо описывать её назначение, входные и выходные параметры, изменяемые регистры:
<syntaxhighlight lang="asm">
+
<syntaxhighlight lang="asm">; @brief Doing job.
; doing job
+
; @param eax Some data
subroutine:
+
; @param ebx Some pointer
; in:  eax = some data
+
; @returns Some result
;     ebx -> some pointer
+
; @warning Destroys ebx register.
; out: eax = result data
+
subroutine:</syntaxhighlight>
; destroys ebx</syntaxhighlight>
 
  
 
[[Category:Кодинг]]
 
[[Category:Кодинг]]

Latest revision as of 17:44, 8 July 2021

Правила SVN для ядра

  • Табуляции запрещены.
  • Метки должны идти в отдельной строке от кода (но могут быть в одной строке с данными).
  • Строка начинается с восьми пробелов. Далее идёт имя команды или макроса. Если имя короче восьми символов, то оно дополняется пробелами до восьми символов; если нет, то далее идёт один пробел. Потом опционально идут аргументы, разделённые запятой и одним пробелом после неё.
  • Префиксы lock/rep[z|e|nz|ne] считаются логическим целым с последующей командой и отделяются одним пробелом.
  • Все файлы с кодом должны обладать служебным свойством 'svn:eol-style' со значением 'native'.
  • Все текстовые файлы должны быть в кодировке UTF-8 без BOM.

Asmxygen

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

  • Если функция не возвращает значений и не принимает параметров - в доксиген комментарии следует указать `@returns Nothing`
  • Для удаления функции из документации можно воспользоваться директивой `@dont_give_a_doxygen`

Рекомендации

  • Переменные должны иметь либо исчерпывающее название без сокращений, либо комментарий.
  • То же самое желательно применять и к меткам, а так же располагать их в отдельной строке без отступа.
  • При написании процедур необходимо описывать её назначение, входные и выходные параметры, изменяемые регистры:
; @brief Doing job.
; @param eax Some data
; @param ebx Some pointer
; @returns Some result
; @warning Destroys ebx register.
subroutine: