Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Commenti di documentazione in GDScript

In GDScript, i commenti possono servire per documentare il codice e aggiungere descrizioni ai membri di uno script. Esistono due differenze tra un commento normale e un commento di documentazione. Prima di tutto, un commento di documentazione deve iniziare con due simboli cancelletto ##. Inoltre, deve precedere immediatamente un membro dello script o, per le descrizioni di script, essere posizionato in cima allo script. Se una variabile esportata è documentata, la sua descrizione è utilizzata come suggerimento nell'editor. Questa documentazione si può generare come file XML dall'editor.

Documentare uno script

I commenti che documentano uno script devono precedere qualsiasi documentazione relativa ai suoi membri. Il formato suggerito per la documentazione di uno script può essere suddiviso in tre parti.

  • Una breve descrizione dello script.

  • Una descrizione dettagliata.

  • Tutorial e note di deprecazione/esperimentale.

Per separarli, i commenti di documentazione utilizzano tag speciali. Il tag deve trovarsi all'inizio di una riga (ignorando gli spazi vuoti precedenti) e deve avere il formato @, seguito dalla parola chiave.

Tag

Breve descrizione

Nessun tag. Si trova all'inizio della sezione di documentazione.

Descrizione

Nessun tag. Usa una riga vuota per separarla dalla descrizione breve.

Tutorial

@tutorial: https://example.com
@tutorial(Il titolo qui): https://example.com

Deprecato

@deprecated
@deprecated: Usa invece [AltraClasse].

Sperimentale

@experimental
@experimental: Questa classe non è stabile.

Per esempio:

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

Avvertimento

Se c'è uno spazio tra il nome del tag e i due punti, ad esempio @tutorial  :, non sarà considerato un tag valido e sarà ignorato.

Nota

Quando la descrizione si estende su più righe, gli spazi vuoti precedenti e finali saranno eliminati e uniti da un singolo spazio. Per mantenere l'interruzione di riga, utilizzare [br]. Consultare anche BBCode and class reference in seguito.

Documentare i membri di script

Membri idonei per la documentazione:

  • Segnale

  • Enumerazione

  • Valore di enumerazione

  • Costante

  • Variabile

  • Funzione

  • Classe interna

La documentazione di un membro di uno script deve precedere immediatamente il membro stesso o le sue annotazioni, se presenti. La descrizione può essere composta da più righe, ma ogni riga deve cominciare con il doppio simbolo cancelletto ## per essere considerata parte della documentazione.

Tag

Descrizione

Nessun tag.

Deprecato

@deprecated
@deprecated: Usa invece [member altro].

Sperimentale

@experimental
@experimental: Questo metodo è incompleto.

Per esempio:

## The description of the variable.
## @deprecated: Use [member other_var] instead.
var my_var

In alternativa, è possibile scrivere la documentazione sulla stessa riga:

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

La documentazione dello script verrà aggiornata nella finestra di aiuto dell'editor ogni volta che lo script viene aggiornato. Se il nome di una variabile membro o di una funzione inizia con un trattino basso, sarà considerato privato. Non apparirà nella documentazione e sarà ignorato nella finestra di aiuto.

Esempio completo per uno script

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

Tag @deprecated e @experimental

È possibile segnare una classe o uno qualsiasi dei suoi membri come deprecati o sperimentali. Questo aggiungerà l'indicatore corrispondente nella vista di documentazione integrata. Facoltativamente, è possibile fornire un breve messaggio che spieghi perché l'API non è consigliata. Questo può essere particolarmente utile per i creatori di estensioni e librerie.

../../../_images/deprecated_and_experimental_tags.webp
  • Deprecato indica un'API non consigliata che potrebbe essere rimossa o modificata in modo incompatibile in una futura versione principale. Solitamente l'API viene mantenuta per compatibilità con le versioni precedenti.

  • Sperimentale indica una nuova API instabile che potrebbe essere modificata o rimossa nel ramo principale di sviluppo. L'utilizzo di questa API non è consigliato nel codice di produzione.

Nota

Sebbene tecnicamente sia possibile utilizzare entrambi i tag @deprecated e @experimental sulla stessa classe/membro, ciò non è consigliato in quanto va contro le convenzioni comuni.

BBCode e riferimento di classe

Il riferimento classi di Godot supporta tag simili a BBCode. Aggiungono un'elegante formattazione al testo, la quale si potrebbe utilizzare anche nella documentazione. Consultare anche bbcode per il riferimento classi bbcode. Si noti che è leggermente diverso dal BBCode di RichTextLabel .

Ogni volta che si crea un collegamento a un membro di un'altra classe, è necessario specificarne il nome. Per i collegamenti alla stessa classe, il nome della classe è facoltativo e può essere omesso.

Ecco l'elenco di tag disponibili:

Tag e descrizione

Esempio

Risultato

[Class]
Collega a una classe

Sposta lo [Sprite2D].

Sposta lo Sprite2D.

[annotation Class.name]
Collega a un'annotazione

Vedi [annotation @GDScript.@rpc].

Vedi @GDScript.@rpc.

[constant Class.name]
Collega a una costante

Vedi [constant Color.RED].

Vedi Color.RED.

[enum Class.name]
Collega a un'enumerazione

Vedi [enum Mesh.ArrayType].

Vedi Mesh.ArrayType.

[member Class.name]
Collega a un membro (proprietà)

Ottieni [member Node2D.scale].

Ottieni Node2D.scale.

[method Class.name]
Collega a un metodo

Chiama [method Node3D.hide].

Chiama Node3D.hide().

[constructor Class.name]
Collega a un costruttore integrato

Usa [constructor Color.Color].

Usa Color.Color.

[operator Class.name]
Collega a un operatore integrato

Usa [operator Color.operator *].

Usa Color.operator *.

[signal Class.name]
Collega a un segnale

Emetti [signal Node.renamed].

Emetti Node.renamed.

[theme_item Class.name]
Collega a un elemento del tema

Vedi [theme_item Label.font].

Vedi Label.font.

[param name]
Nome di parametro (come codice)

Accetta [param size] per le dimensioni.

Accetta size per le dimensioni.

[br]
Interruzione di riga
Riga 1.[br]
Riga 2.
Riga 1.
Riga 2.
[lb] [rb]
[ e ] rispettivamente

[lb]b[rb]testo[lb]/b[rb]

[b]testo[/b]

[b] [/b]
Grassetto

[b]Non[/b] chiamare questo metodo.

Non chiamare questo metodo.

[i] [/i]
Corsivo

Restituisce la posizione [i]globale[/i].

Restituisce la posizione globale.

[u] [/u]
Sottolinea

Usa [u]sempre[/u] questo metodo.

Always use this method.
[s] [/s]
Barrato

[s]Informazioni obsolete.[/s]

Outdated information.
[color] [/color]
Colore

[color=red]Errore![/color]

Error!
[font] [/font]
Font

[font=res://mono.ttf]LICENZA[/font]

LICENSE
[img] [/img]
Immagine

[img width=32]res://icon.svg[/img]

../../../_images/icon.svg
[url] [/url]
Collegamento ipertestuale
[url]https://example.com[/url]
[url=https://example.com]Website[/url]
[center] [/center]
Centratura orizzontale

[center]2 + 2 = 4[/center]

2 + 2 = 4
[kbd] [/kbd]
Scorciatoia da tastiera/mouse

Premi [kbd]Ctrl + C[/kbd].

Premi Ctrl + C.

[code] [/code]
Frammento di codice in riga

Restituisce [code]true[/code].

Restituisce true.

[codeblock]
[/codeblock]
Blocco di codice su più righe

Vedere sotto.

Vedere sotto.

Nota

  1. Attualmente solo @GDScript contiene annotazioni.

  2. [kbd] disattiva il BBCode finché il parser non incontra [/kbd].

  3. [code] disattiva il BBCode finché il parser non incontra [/code].

  4. [codeblock] disattiva il BBCode finché il parser non incontra [/codeblock].

Avvertimento

Utilizzare [codeblock] per i blocchi di codice preformattati. Dentro [codeblock], usare sempre quattro spazi per l'indentazione (Il parser eliminerà le tabulazioni).

## 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

Normalmente, [codeblock] evidenzia la sintassi in GDScript. È possibile cambiarla tramite l'attributo lang. Le opzioni attualmente supportate sono:

  • [codeblock lang=text] disabilita l'evidenziazione della sintassi;

  • [codeblock lang=gdscript] evidenzia la sintassi in GDScript;

  • [codeblock lang=csharp] evidenzia la sintassi in C# (solamente nella versione .NET).