Комментарии к документации GDScript
В GDScript комментарии можно использовать для документирования кода и добавления описаний к элементам скрипта. Существует два различия между обычным комментарием и комментарием документации. Во-первых, комментарий документации должен начинаться с двух символов ##. Во-вторых, он должен непосредственно предшествовать элементу скрипта, а в случае описания скрипта — располагаться в начале скрипта. Если экспортируемая переменная документирована, её описание используется в качестве подсказки в редакторе. Редактор может генерировать эту документацию в виде XML-файлов.
Документирование скрипта
Комментарии, описывающие скрипт, должны быть размещены до любой документации участника. Рекомендуемый формат документации скрипта можно разделить на три части.
Краткое описание скрипта.
Подробное описание.
Учебные пособия и устаревшие/экспериментальные отметки.
Чтобы отделить их друг от друга, в комментариях к документации используются специальные теги. Тег должен располагаться в начале строки (без учёта предшествующих пробелов) и иметь формат @, за которым следует ключевое слово.
Документирование элементов скрипта
Элементы, имеющие отношение к документации:
Сигнал
Перечисление
Значение Перечисления (Enum)
Константа
Переменная
Функция
Внутренний класс
Документация элемента скрипта должна располагаться непосредственно перед самим элементом или его аннотациями, если таковые имеются. Описание может состоять из нескольких строк, но каждая строка должна начинаться с двух символов ##, чтобы считаться частью документации.
Теги
Описание |
Нет тега. |
Устаревший |
@deprecated@deprecated: Вместо этого используйте [member another]. |
Экспериментальный |
@experimental@experimental: Этот метод не полон. |
Например:
## The description of the variable.
## @deprecated: Use [member other_var] instead.
var my_var
В качестве альтернативы вы можете использовать встроенные комментарии к документации:
signal my_signal ## My signal.
enum MyEnum { ## My enum.
VALUE_A = 0, ## Value A.
VALUE_B = 1, ## Value B.
}
const MY_CONST = 1 ## My constant.
var my_var ## My variable.
func my_func(): ## My func.
pass
class MyClass: ## My class.
pass
Документация по скрипту будет обновляться в окне справки редактора при каждом обновлении скрипта. Если имя какой-либо переменной-члена или функции начинается с символа подчёркивания, она будет считаться закрытой. Она не будет отображаться в документации и будет игнорироваться в окне справки.
Полный пример скрипта
extends Node2D
## A brief description of the class's role and functionality.
##
## The description of the script, what it can do,
## and any further detail.
##
## @tutorial: https://example.com/tutorial_1
## @tutorial(Tutorial 2): https://example.com/tutorial_2
## @experimental
## The description of a signal.
signal my_signal
## This is a description of the below enum.
enum Direction {
## Direction up.
UP = 0,
## Direction down.
DOWN = 1,
## Direction left.
LEFT = 2,
## Direction right.
RIGHT = 3,
}
## The description of a constant.
const GRAVITY = 9.8
## The description of the variable v1.
var v1
## This is a multiline description of the variable v2.[br]
## The type information below will be extracted for the documentation.
var v2: int
## If the member has any annotation, the annotation should
## immediately precede it.
@export
var v3 := some_func()
## As the following function is documented, even though its name starts with
## an underscore, it will appear in the help window.
func _fn(p1: int, p2: String) -> int:
return 0
# The below function isn't documented and its name starts with an underscore
# so it will treated as private and will not be shown in the help window.
func _internal() -> void:
pass
## Documenting an inner class.
##
## The same rules apply here. The documentation must
## immediately precede the class definition.
##
## @tutorial: https://example.com/tutorial
## @experimental
class Inner:
## Inner class variable v4.
var v4
## Inner class function fn.
func fn(): pass
BBCode и ссылка на класс
Ссылка на класс Godot поддерживает теги, похожие на BBCode. Они добавляют удобное форматирование к тексту, которое также можно использовать в документации. См. также class reference bbcode. Обратите внимание, что это немного отличается от RichTextLabel BBCode.
При ссылке на член другого класса необходимо указывать имя класса. Для ссылок на тот же класс имя класса необязательно и может быть опущено.
Вот список доступных тегов:
Тег и Описание |
Пример |
Результат |
|---|---|---|
[Class]Ссылка на класс
|
|
Переместите Sprite2D. |
[annotation Class.name]Ссылка на аннотацию
|
|
См. @GDScript.@rpc. |
[constant Class.name]Ссылка на константу
|
|
См. Color.RED. |
[enum Class.name]Ссылка на перечисление
|
|
См. Mesh.ArrayType. |
[member Class.name]Ссылка на участника (свойство)
|
|
Получите Node2D.scale. |
[method Class.name]Ссылка на метод
|
|
Вызов Node3D.hide(). |
[constructor Class.name]Ссылка на встроенный конструктор
|
|
Используйте Color.Color. |
[operator Class.name]Ссылка на встроенный оператор
|
|
Используйте Color.operator *. |
[signal Class.name]Ссылка на сигнал
|
|
Передать Node.renamed. |
[theme_item Class.name]Ссылка на тему
|
|
См. Label.font. |
[param name]Имя параметра (в виде кода)
|
|
Принимает |
[br]Перенос строки
|
Line 1.[br]Line 2. |
Строка 1.
Строка 2.
|
[lb] [rb][ and ] соответственно |
|
[b]text[/b] |
[b] [/b]Жирный
|
|
Не вызывайте этот метод. |
[i] [/i]Italic
|
|
Возвращает глобальную позицию. |
[u] [/u]Подчеркнуть
|
|
Always use this method. |
[s] [/s]Зачеркивание
|
|
|
[color] [/color]Цвет
|
|
Error! |
[font] [/font]Шрифт
|
|
LICENSE |
[img] [/img]Изображение
|
|
|
[url] [/url]Гиперссылка
|
[url]https://example.com[/url][url=https://example.com]Website[/url] |
|
[center] [/center]Горизонтальное центрирование
|
|
|
[kbd] [/kbd]Сочетание клавиш/мыши
|
|
Нажмите Ctrl + C. |
[code] [/code]Фрагмент встроенного кода
|
|
Возвращает |
[codeblock][/codeblock]Многострочный блок кода
|
См. ниже. |
См. ниже. |
Примечание
В настоящее время аннотации имеются только у @GDScript.
[kbd]отключает BBCode до тех пор, пока анализатор не встретит[/kbd].[code]отключает BBCode до тех пор, пока анализатор не встретит[/code].[codeblock]отключает BBCode до тех пор, пока анализатор не встретит[/codeblock].
Предупреждение
Используйте [codeblock] для предварительно отформатированных блоков кода. Внутри [codeblock] всегда используйте четыре пробела для отступа (анализатор удалит табуляции).
## Do something for this plugin. Before using the method
## you first have to [method initialize] [MyPlugin].[br]
## [color=yellow]Warning:[/color] Always [method clean] after use.[br]
## Usage:
## [codeblock]
## func _ready():
## the_plugin.initialize()
## the_plugin.do_something()
## the_plugin.clean()
## [/codeblock]
func do_something():
pass
По умолчанию [codeblock] подсвечивает синтаксис GDScript. Вы можете изменить это с помощью атрибута lang. В настоящее время поддерживаются следующие параметры:
[codeblock lang=text]отключает подсветку синтаксиса;[codeblock lang=gdscript]подсвечивает синтаксис GDScript;[codeblock lang=csharp]подсвечивает синтаксис C# (только в версии .NET).