Forráskód Böngészése

Update "GDScript documentation comments" page

Danil Alexeev 2 éve
szülő
commit
60e3f14d98

+ 83 - 27
tutorials/scripting/gdscript/gdscript_documentation_comments.rst

@@ -19,29 +19,31 @@ suggested format for script documentation can be divided into three parts.
 
 - A brief description of the script.
 - Detailed description.
-- Tutorials.
+- Tutorials and deprecated/experimental marks.
 
 To separate these from each other, the documentation comments use special tags.
-The tag must be at the beginning of a line (ignoring preceding white space) and must
-have the format ``@``, followed by the keyword, and finishing with a colon.
+The tag must be at the beginning of a line (ignoring preceding white space)
+and must have the format ``@``, followed by the keyword.
 
 Tags
 ~~~~
 
 +-------------------+--------------------------------------------------------+
-| Brief description | No tag and lives at the very beginning of              |
+| Brief description | No tag. Lives at the very beginning of                 |
 |                   | the documentation section.                             |
 +-------------------+--------------------------------------------------------+
-| Description       | Use one blank line to separate the description from    |
-|                   | the brief.                                             |
+| Description       | No tag. Use one blank line to separate the description |
+|                   | from the brief.                                        |
 +-------------------+--------------------------------------------------------+
 | Tutorial          | | ``@tutorial:``                                       |
 |                   | | ``@tutorial(The Title Here):``                       |
 +-------------------+--------------------------------------------------------+
+| Deprecated        | ``@deprecated``                                        |
++-------------------+--------------------------------------------------------+
+| Experimental      | ``@experimental``                                      |
++-------------------+--------------------------------------------------------+
 
-For example:
-
-::
+For example::
 
     extends Node2D
     ## A brief description of the class's role and functionality.
@@ -51,6 +53,7 @@ For example:
     ##
     ## @tutorial:            https://the/tutorial1/url.com
     ## @tutorial(Tutorial2): https://the/tutorial2/url.com
+    ## @experimental
 
 .. warning::
 
@@ -66,16 +69,6 @@ For example:
 Documenting script members
 --------------------------
 
-Documentation of a script member must immediately precede the member or its
-annotations if it has any. The exception to this is enum values whose description should
-be on the same line as the enum for readability.
-The description can have more than one line but every line must start
-with the double hash symbol ``##`` to be considered as part of the documentation.
-The script documentation will update in the editor help window every time the
-script is updated. If any member variable or function name starts with an
-underscore, it will be treated as private. It will not appear in the documentation and
-will be ignored in the help window.
-
 Members that are applicable for documentation:
 
 - Inner class
@@ -86,8 +79,48 @@ Members that are applicable for documentation:
 - Enum
 - Enum value
 
-Example
--------
+Documentation of a script member must immediately precede the member or its annotations
+if it has any. The description can have more than one line but every line must start with
+the double hash symbol ``##`` to be considered as part of the documentation.
+
+Tags
+~~~~
+
++--------------+-------------------+
+| Description  | No tag.           |
++--------------+-------------------+
+| Deprecated   | ``@deprecated``   |
++--------------+-------------------+
+| Experimental | ``@experimental`` |
++--------------+-------------------+
+
+For example::
+
+    ## The description of the variable.
+    ## @deprecated
+    var my_var
+
+Variables, constants, signals, and enum values support inline documentation comments.
+Note that inline comments do not support tags.
+
+::
+
+    var my_var ## My variable.
+    const MY_CONST = 1 ## My constant.
+    signal my_signal ## My signal.
+    enum Direction {
+        UP = 0, ## Direction up.
+        DOWN = 1, ## Direction down.
+        LEFT = 2, ## Direction left.
+        RIGHT = 3, ## Direction right.
+    }
+
+The script documentation will update in the editor help window every time the script is updated.
+If any member variable or function name starts with an underscore, it will be treated as private.
+It will not appear in the documentation and will be ignored in the help window.
+
+Complete script example
+-----------------------
 
 ::
 
@@ -99,6 +132,7 @@ Example
     ##
     ## @tutorial:            https://the/tutorial1/url.com
     ## @tutorial(Tutorial2): https://the/tutorial2/url.com
+    ## @experimental
 
     ## The description of a constant.
     const GRAVITY = 9.8
@@ -106,13 +140,16 @@ Example
     ## The description of a signal.
     signal my_signal
 
-    ## This is a description of the below enums. Note below that
-    ## the enum values are documented on the same line as the enum.
+    ## This is a description of the below enum.
     enum Direction {
-        UP    = 0,  ## Direction up.
-        DOWN  = 1,  ## Direction down.
-        LEFT  = 2,  ## Direction left.
-        RIGHT = 3,  ## Direction right.
+        ## Direction up.
+        UP = 0,
+        ## Direction down.
+        DOWN = 1,
+        ## Direction left.
+        LEFT = 2,
+        ## Direction right.
+        RIGHT = 3,
     }
 
     ## The description of a constant.
@@ -149,6 +186,7 @@ Example
     ## immediately precede the class definition.
     ##
     ## @tutorial: https://the/tutorial/url.com
+    ## @experimental
     class Inner:
 
         ## Inner class variable v4.
@@ -158,6 +196,24 @@ Example
         ## Inner class function fn.
         func fn(): pass
 
+``@deprecated`` and ``@experimental`` tags
+------------------------------------------
+
+You can mark a class or any of its members as deprecated or experimental.
+This will add the corresponding indicator in the built-in documentation viewer.
+This can be especially useful for plugin and library creators.
+
+.. image:: img/deprecated_and_experimental_marks.webp
+
+- **Deprecated** marks a non-recommended API that is subject to removal or incompatible change
+  in a future major release. Usually the API is kept for backwards compatibility.
+- **Experimental** marks a new unstable API that may be changed or removed in the current
+  major branch. Using this API is not recommended in production code.
+
+.. note::
+
+    While technically you can use both ``@deprecated`` and ``@experimental`` tags on the same
+    class/member, this is not recommended as it is against common conventions.
 
 BBCode and class reference
 --------------------------

BIN
tutorials/scripting/gdscript/img/deprecated_and_experimental_marks.webp