Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validate code tags for class and member references #82691

Merged

Conversation

YuriSizov
Copy link
Contributor

@YuriSizov YuriSizov commented Oct 2, 2023

Inspired by changes in #82681 I have added checks for such cases where [code]ClassName[/code] should be replaced with a class reference, as well as similar checks for class members/methods/etc. As this is an uncertain check, it's marked as a warning. Which leads me to the second change...

This commit also, finally, adds means to manually disable warnings in code tags. These warnings can be false positive, and in fact there are about 30 cases where they certainly are. So far we've just ignored warnings on the CI and printed them out. But that's a lot of noise and it hides new warnings, and nobody is going to pay attention. So code, as well as gdscript, csharp, and codeblock can now have an optional skip-lint argument, which turns these warnings off. Use it wisely.

I've updated all problematic descriptions (see some of the notes below though), and updated all false positives to use the new argument. This allows us to enable warnings on CI, which is what I have done with this PR. I'm keeping them warnings and not errors to draw a semantic difference: errors are pretty much certain, whereas warnings are potential but need to be investigated.


On the technical side of things, I reworked how we parse tags for RST a bit. I made sure there were no regressions in the generated RST files.

@@ -23,7 +23,7 @@
<param index="1" name="layer" type="int" />
<description>
Replaces the existing [Image] data at the given [param layer] with this new image.
The given [Image] must have the same width, height, image format and mipmapping setting (a [code]bool[/code] value) as the rest of the referenced images.
The given [Image] must have the same width, height, image format, and mipmapping flag as the rest of the referenced images.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Phrasing felt a bit weird, so I just reworded it.

@@ -1055,7 +1055,7 @@
Each [Dictionary] contains two [String] entries:
- [code]name[/code] is voice name.
- [code]id[/code] is voice identifier.
- [code]language[/code] is language code in [code]lang_Variant[/code] format. [code]lang[/code] part is a 2 or 3-letter code based on the ISO-639 standard, in lowercase. And [code]Variant[/code] part is an engine dependent string describing country, region or/and dialect.
- [code]language[/code] is language code in [code]lang_Variant[/code] format. The [code]lang[/code] part is a 2 or 3-letter code based on the ISO-639 standard, in lowercase. The [code safe]Variant[/code] part is an engine dependent string describing country, region or/and dialect.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to imitate the casing of the value itself, which I don't think is very clear in this case. But it matches a similar example in OS.xml, so ultimately I left this one as is.

doc/tools/make_rst.py Outdated Show resolved Hide resolved
doc/classes/FontVariation.xml Outdated Show resolved Hide resolved
doc/classes/FileAccess.xml Outdated Show resolved Hide resolved
@YuriSizov YuriSizov requested review from a team as code owners October 3, 2023 10:57
@YuriSizov YuriSizov changed the title Validate code tags for class references Validate code tags for class and member references Oct 3, 2023
@YuriSizov
Copy link
Contributor Author

YuriSizov commented Oct 3, 2023

What is "scope creep", Alex. I've added another set of checks so we can catch not only [code]ClassName[/code], but also [code]some_member[/code], [code]AnotherClass.member[/code], and even [code]some_method()[/code], which are supposed to be references. There was around 120 matches, a decent chunk of which was self-references (so a minor crime). But also there were a lot of genuine issues, some even worth rewording descriptions. I didn't go out of my way to fix the docs, just made changes necessary to address the warnings caught.

I also realized that the new skip-lint directive needs to be supported by EditorHelp, which is now fixed. Another addition to the built-in help is some nominal support for operator and constructor references, something that I was planning to check long time ago. Basis actually has a use case for constructors, so I decided to fix it alongside everything as well.

Other suggestions have also been implemented, and this should be good for a review now.


Here's the diff for the doc/rst folder with this PR, compared to its parent commit in master:

diff --git a/doc/rst/class_@gdscript.rst b/doc/rst/class_@gdscript.rst
index 75519c600f..5e2275c4b2 100644
--- a/doc/rst/class_@gdscript.rst
+++ b/doc/rst/class_@gdscript.rst
@@ -633,9 +633,9 @@ Add a custom icon to the current script. The icon specified at ``icon_path`` is
 
 \ **Note:** Only the script can have a custom icon. Inner classes are not supported.
 
-\ **Note:** As annotations describe their subject, the ``@icon`` annotation must be placed before the class definition and inheritance.
+\ **Note:** As annotations describe their subject, the :ref:`@icon<class_@GDScript_annotation_@icon>` annotation must be placed before the class definition and inheritance.
 
-\ **Note:** Unlike other annotations, the argument of the ``@icon`` annotation must be a string literal (constant expressions are not supported).
+\ **Note:** Unlike other annotations, the argument of the :ref:`@icon<class_@GDScript_annotation_@icon>` annotation must be a string literal (constant expressions are not supported).
 
 .. rst-class:: classref-item-separator
 
@@ -715,7 +715,7 @@ Mark the current script as a tool script, allowing it to be loaded and executed
     @tool
     extends Node
 
-\ **Note:** As annotations describe their subject, the ``@tool`` annotation must be placed before the class definition and inheritance.
+\ **Note:** As annotations describe their subject, the :ref:`@tool<class_@GDScript_annotation_@tool>` annotation must be placed before the class definition and inheritance.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_@globalscope.rst b/doc/rst/class_@globalscope.rst
index 3fde95ed0f..bc2c49bebe 100644
--- a/doc/rst/class_@globalscope.rst
+++ b/doc/rst/class_@globalscope.rst
@@ -5597,7 +5597,7 @@ Cubic interpolates between two rotation values with shortest path by the factor
 
 Cubic interpolates between two rotation values with shortest path by the factor defined in ``weight`` with ``pre`` and ``post`` values. See also :ref:`lerp_angle<class_@GlobalScope_method_lerp_angle>`.
 
-It can perform smoother interpolation than ``cubic_interpolate()`` by the time values.
+It can perform smoother interpolation than :ref:`cubic_interpolate<class_@GlobalScope_method_cubic_interpolate>` by the time values.
 
 .. rst-class:: classref-item-separator
 
@@ -7215,7 +7215,7 @@ Returns the hyperbolic tangent of ``x``.
 
 Converts the given ``variant`` to the given ``type``, using the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` values. This method is generous with how it handles types, it can automatically convert between array types, convert numeric :ref:`String<class_String>`\ s to :ref:`int<class_int>`, and converting most things to :ref:`String<class_String>`.
 
-If the type conversion cannot be done, this method will return the default value for that type, for example converting :ref:`Rect2<class_Rect2>` to :ref:`Vector2<class_Vector2>` will always return ``Vector2.ZERO``. This method will never show error messages as long as ``type`` is a valid Variant type.
+If the type conversion cannot be done, this method will return the default value for that type, for example converting :ref:`Rect2<class_Rect2>` to :ref:`Vector2<class_Vector2>` will always return :ref:`Vector2.ZERO<class_Vector2_constant_ZERO>`. This method will never show error messages as long as ``type`` is a valid Variant type.
 
 The returned value is a :ref:`Variant<class_Variant>`, but the data inside and the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` will be the same as the requested type.
 
@@ -7381,7 +7381,7 @@ Wraps the float ``value`` between ``min`` and ``max``. Can be used for creating
 
 \ **Note:** If ``min`` is ``0``, this is equivalent to :ref:`fposmod<class_@GlobalScope_method_fposmod>`, so prefer using that instead.
 
-\ ``wrapf`` is more flexible than using the :ref:`fposmod<class_@GlobalScope_method_fposmod>` approach by giving the user control over the minimum value.
+\ :ref:`wrapf<class_@GlobalScope_method_wrapf>` is more flexible than using the :ref:`fposmod<class_@GlobalScope_method_fposmod>` approach by giving the user control over the minimum value.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_astar3d.rst b/doc/rst/class_astar3d.rst
index ed02d2309a..6f63516c7c 100644
--- a/doc/rst/class_astar3d.rst
+++ b/doc/rst/class_astar3d.rst
@@ -23,7 +23,7 @@ A\* (A star) is a computer algorithm used in pathfinding and graph traversal, th
 
 You must add points manually with :ref:`add_point<class_AStar3D_method_add_point>` and create segments manually with :ref:`connect_points<class_AStar3D_method_connect_points>`. Once done, you can test if there is a path between two points with the :ref:`are_points_connected<class_AStar3D_method_are_points_connected>` function, get a path containing indices by :ref:`get_id_path<class_AStar3D_method_get_id_path>`, or one containing actual coordinates with :ref:`get_point_path<class_AStar3D_method_get_point_path>`.
 
-It is also possible to use non-Euclidean distances. To do so, create a class that extends ``AStar3D`` and override methods :ref:`_compute_cost<class_AStar3D_method__compute_cost>` and :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>`. Both take two indices and return a length, as is shown in the following example.
+It is also possible to use non-Euclidean distances. To do so, create a class that extends **AStar3D** and override methods :ref:`_compute_cost<class_AStar3D_method__compute_cost>` and :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>`. Both take two indices and return a length, as is shown in the following example.
 
 
 .. tabs::
@@ -56,7 +56,7 @@ It is also possible to use non-Euclidean distances. To do so, create a class tha
 
 
 
-\ :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` should return a lower bound of the distance, i.e. ``_estimate_cost(u, v) <= _compute_cost(u, v)``. This serves as a hint to the algorithm because the custom ``_compute_cost`` might be computation-heavy. If this is not the case, make :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` return the same value as :ref:`_compute_cost<class_AStar3D_method__compute_cost>` to provide the algorithm with the most accurate information.
+\ :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` should return a lower bound of the distance, i.e. ``_estimate_cost(u, v) <= _compute_cost(u, v)``. This serves as a hint to the algorithm because the custom :ref:`_compute_cost<class_AStar3D_method__compute_cost>` might be computation-heavy. If this is not the case, make :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` return the same value as :ref:`_compute_cost<class_AStar3D_method__compute_cost>` to provide the algorithm with the most accurate information.
 
 If the default :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` and :ref:`_compute_cost<class_AStar3D_method__compute_cost>` methods are used, or if the supplied :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` method returns a lower bound of the cost, then the paths returned by A\* will be the lowest-cost paths. Here, the cost of a path equals the sum of the :ref:`_compute_cost<class_AStar3D_method__compute_cost>` results of all segments in the path multiplied by the ``weight_scale``\ s of the endpoints of the respective segments. If the default methods are used and the ``weight_scale``\ s of all points are set to ``1.0``, then this equals the sum of Euclidean distances of all segments in the path.
 
@@ -137,7 +137,7 @@ Method Descriptions
 
 Called when computing the cost between two connected points.
 
-Note that this function is hidden in the default ``AStar3D`` class.
+Note that this function is hidden in the default **AStar3D** class.
 
 .. rst-class:: classref-item-separator
 
@@ -151,7 +151,7 @@ Note that this function is hidden in the default ``AStar3D`` class.
 
 Called when estimating the cost between a point and the path's ending point.
 
-Note that this function is hidden in the default ``AStar3D`` class.
+Note that this function is hidden in the default **AStar3D** class.
 
 .. rst-class:: classref-item-separator
 
@@ -369,7 +369,7 @@ If you change the 2nd point's weight to 3, then the result will be ``[1, 4, 3]``
 
 :ref:`int<class_int>` **get_point_capacity** **(** **)** |const|
 
-Returns the capacity of the structure backing the points, useful in conjunction with ``reserve_space``.
+Returns the capacity of the structure backing the points, useful in conjunction with :ref:`reserve_space<class_AStar3D_method_reserve_space>`.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_astargrid2d.rst b/doc/rst/class_astargrid2d.rst
index 41f478d4ca..7b8bfb9b4d 100644
--- a/doc/rst/class_astargrid2d.rst
+++ b/doc/rst/class_astargrid2d.rst
@@ -412,7 +412,7 @@ Method Descriptions
 
 Called when computing the cost between two connected points.
 
-Note that this function is hidden in the default ``AStarGrid2D`` class.
+Note that this function is hidden in the default **AStarGrid2D** class.
 
 .. rst-class:: classref-item-separator
 
@@ -426,7 +426,7 @@ Note that this function is hidden in the default ``AStarGrid2D`` class.
 
 Called when estimating the cost between a point and the path's ending point.
 
-Note that this function is hidden in the default ``AStarGrid2D`` class.
+Note that this function is hidden in the default **AStarGrid2D** class.
 
 .. rst-class:: classref-item-separator
 
@@ -490,7 +490,7 @@ Returns an array with the IDs of the points that form the path found by AStar2D
 
 :ref:`PackedVector2Array<class_PackedVector2Array>` **get_point_path** **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)**
 
-Returns an array with the points that are in the path found by AStarGrid2D between the given points. The array is ordered from the starting point to the ending point of the path.
+Returns an array with the points that are in the path found by **AStarGrid2D** between the given points. The array is ordered from the starting point to the ending point of the path.
 
 \ **Note:** This method is not thread-safe. If called from a :ref:`Thread<class_Thread>`, it will return an empty :ref:`PackedVector3Array<class_PackedVector3Array>` and will print an error message.
 
diff --git a/doc/rst/class_audiostreamplayer.rst b/doc/rst/class_audiostreamplayer.rst
index d6e8606d2d..6e42f4b523 100644
--- a/doc/rst/class_audiostreamplayer.rst
+++ b/doc/rst/class_audiostreamplayer.rst
@@ -286,7 +286,7 @@ The :ref:`AudioStream<class_AudioStream>` object to be played.
 - void **set_stream_paused** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **get_stream_paused** **(** **)**
 
-If ``true``, the playback is paused. You can resume it by setting ``stream_paused`` to ``false``.
+If ``true``, the playback is paused. You can resume it by setting :ref:`stream_paused<class_AudioStreamPlayer_property_stream_paused>` to ``false``.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_audiostreamplayer2d.rst b/doc/rst/class_audiostreamplayer2d.rst
index fad72083de..3eb1bc99ab 100644
--- a/doc/rst/class_audiostreamplayer2d.rst
+++ b/doc/rst/class_audiostreamplayer2d.rst
@@ -298,7 +298,7 @@ The :ref:`AudioStream<class_AudioStream>` object to be played.
 - void **set_stream_paused** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **get_stream_paused** **(** **)**
 
-If ``true``, the playback is paused. You can resume it by setting ``stream_paused`` to ``false``.
+If ``true``, the playback is paused. You can resume it by setting :ref:`stream_paused<class_AudioStreamPlayer2D_property_stream_paused>` to ``false``.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_basematerial3d.rst b/doc/rst/class_basematerial3d.rst
index b1f21cd5ee..afca853507 100644
--- a/doc/rst/class_basematerial3d.rst
+++ b/doc/rst/class_basematerial3d.rst
@@ -2039,7 +2039,7 @@ If ``true``, the object receives no shadow that would otherwise be cast onto it.
 
 Distance at which the object appears fully opaque.
 
-\ **Note:** If ``distance_fade_max_distance`` is less than ``distance_fade_min_distance``, the behavior will be reversed. The object will start to fade away at ``distance_fade_max_distance`` and will fully disappear once it reaches ``distance_fade_min_distance``.
+\ **Note:** If :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>` is less than :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>`, the behavior will be reversed. The object will start to fade away at :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>` and will fully disappear once it reaches :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>`.
 
 .. rst-class:: classref-item-separator
 
@@ -2058,7 +2058,7 @@ Distance at which the object appears fully opaque.
 
 Distance at which the object starts to become visible. If the object is less than this distance away, it will be invisible.
 
-\ **Note:** If ``distance_fade_min_distance`` is greater than ``distance_fade_max_distance``, the behavior will be reversed. The object will start to fade away at ``distance_fade_max_distance`` and will fully disappear once it reaches ``distance_fade_min_distance``.
+\ **Note:** If :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>` is greater than :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>`, the behavior will be reversed. The object will start to fade away at :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>` and will fully disappear once it reaches :ref:`distance_fade_min_distance<class_BaseMaterial3D_property_distance_fade_min_distance>`.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_basis.rst b/doc/rst/class_basis.rst
index 6b18d92eda..8a64d82212 100644
--- a/doc/rst/class_basis.rst
+++ b/doc/rst/class_basis.rst
@@ -173,7 +173,7 @@ Constants
 
 The identity basis, with no rotation or scaling applied.
 
-This is identical to calling ``Basis()`` without any parameters. This constant can be used to make your code clearer, and for consistency with C#.
+This is identical to creating :ref:`Basis<class_Basis_constructor_Basis>` without any parameters. This constant can be used to make your code clearer, and for consistency with C#.
 
 .. _class_Basis_constant_FLIP_X:
 
diff --git a/doc/rst/class_bone2d.rst b/doc/rst/class_bone2d.rst
index 29229738cf..d4a59a3d7d 100644
--- a/doc/rst/class_bone2d.rst
+++ b/doc/rst/class_bone2d.rst
@@ -166,7 +166,7 @@ Returns the length of the bone in the **Bone2D** node.
 
 :ref:`Transform2D<class_Transform2D>` **get_skeleton_rest** **(** **)** |const|
 
-Returns the node's :ref:`rest<class_Bone2D_property_rest>` ``Transform2D`` if it doesn't have a parent, or its rest pose relative to its parent.
+Returns the node's :ref:`rest<class_Bone2D_property_rest>` :ref:`Transform2D<class_Transform2D>` if it doesn't have a parent, or its rest pose relative to its parent.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_button.rst b/doc/rst/class_button.rst
index 6f5ddc2ede..6016f5afe1 100644
--- a/doc/rst/class_button.rst
+++ b/doc/rst/class_button.rst
@@ -636,7 +636,7 @@ Font size of the **Button**'s text.
 
 :ref:`StyleBox<class_StyleBox>` **focus**
 
-:ref:`StyleBox<class_StyleBox>` used when the **Button** is focused. The ``focus`` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
+:ref:`StyleBox<class_StyleBox>` used when the **Button** is focused. The :ref:`focus<class_Button_theme_style_focus>` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_camera3d.rst b/doc/rst/class_camera3d.rst
index dff858d260..4d2d6ccce4 100644
--- a/doc/rst/class_camera3d.rst
+++ b/doc/rst/class_camera3d.rst
@@ -345,7 +345,7 @@ The distance to the far culling boundary for this camera relative to its local Z
 - void **set_fov** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_fov** **(** **)**
 
-The camera's field of view angle (in degrees). Only applicable in perspective mode. Since :ref:`keep_aspect<class_Camera3D_property_keep_aspect>` locks one axis, ``fov`` sets the other axis' field of view angle.
+The camera's field of view angle (in degrees). Only applicable in perspective mode. Since :ref:`keep_aspect<class_Camera3D_property_keep_aspect>` locks one axis, :ref:`fov<class_Camera3D_property_fov>` sets the other axis' field of view angle.
 
 For reference, the default vertical field of view value (``75.0``) is equivalent to a horizontal FOV of:
 
diff --git a/doc/rst/class_characterbody2d.rst b/doc/rst/class_characterbody2d.rst
index b8b7f94eda..1e9767c8fd 100644
--- a/doc/rst/class_characterbody2d.rst
+++ b/doc/rst/class_characterbody2d.rst
@@ -423,7 +423,7 @@ If ``true``, during a jump against the ceiling, the body will slide, if ``false`
 - void **set_up_direction** **(** :ref:`Vector2<class_Vector2>` value **)**
 - :ref:`Vector2<class_Vector2>` **get_up_direction** **(** **)**
 
-Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling :ref:`move_and_slide<class_CharacterBody2D_method_move_and_slide>`. Defaults to ``Vector2.UP``. As the vector will be normalized it can't be equal to :ref:`Vector2.ZERO<class_Vector2_constant_ZERO>`, if you want all collisions to be reported as walls, consider using :ref:`MOTION_MODE_FLOATING<class_CharacterBody2D_constant_MOTION_MODE_FLOATING>` as :ref:`motion_mode<class_CharacterBody2D_property_motion_mode>`.
+Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling :ref:`move_and_slide<class_CharacterBody2D_method_move_and_slide>`. Defaults to :ref:`Vector2.UP<class_Vector2_constant_UP>`. As the vector will be normalized it can't be equal to :ref:`Vector2.ZERO<class_Vector2_constant_ZERO>`, if you want all collisions to be reported as walls, consider using :ref:`MOTION_MODE_FLOATING<class_CharacterBody2D_constant_MOTION_MODE_FLOATING>` as :ref:`motion_mode<class_CharacterBody2D_property_motion_mode>`.
 
 .. rst-class:: classref-item-separator
 
@@ -486,7 +486,7 @@ Allows to manually apply a snap to the floor regardless of the body's velocity.
 
 :ref:`float<class_float>` **get_floor_angle** **(** :ref:`Vector2<class_Vector2>` up_direction=Vector2(0, -1) **)** |const|
 
-Returns the floor's collision angle at the last collision point according to ``up_direction``, which is ``Vector2.UP`` by default. This value is always positive and only valid after calling :ref:`move_and_slide<class_CharacterBody2D_method_move_and_slide>` and when :ref:`is_on_floor<class_CharacterBody2D_method_is_on_floor>` returns ``true``.
+Returns the floor's collision angle at the last collision point according to ``up_direction``, which is :ref:`Vector2.UP<class_Vector2_constant_UP>` by default. This value is always positive and only valid after calling :ref:`move_and_slide<class_CharacterBody2D_method_move_and_slide>` and when :ref:`is_on_floor<class_CharacterBody2D_method_is_on_floor>` returns ``true``.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_characterbody3d.rst b/doc/rst/class_characterbody3d.rst
index fc59e387df..27f0252ea2 100644
--- a/doc/rst/class_characterbody3d.rst
+++ b/doc/rst/class_characterbody3d.rst
@@ -427,7 +427,7 @@ If ``true``, during a jump against the ceiling, the body will slide, if ``false`
 - void **set_up_direction** **(** :ref:`Vector3<class_Vector3>` value **)**
 - :ref:`Vector3<class_Vector3>` **get_up_direction** **(** **)**
 
-Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling :ref:`move_and_slide<class_CharacterBody3D_method_move_and_slide>`. Defaults to ``Vector3.UP``. As the vector will be normalized it can't be equal to :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`, if you want all collisions to be reported as walls, consider using :ref:`MOTION_MODE_FLOATING<class_CharacterBody3D_constant_MOTION_MODE_FLOATING>` as :ref:`motion_mode<class_CharacterBody3D_property_motion_mode>`.
+Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling :ref:`move_and_slide<class_CharacterBody3D_method_move_and_slide>`. Defaults to :ref:`Vector3.UP<class_Vector3_constant_UP>`. As the vector will be normalized it can't be equal to :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`, if you want all collisions to be reported as walls, consider using :ref:`MOTION_MODE_FLOATING<class_CharacterBody3D_constant_MOTION_MODE_FLOATING>` as :ref:`motion_mode<class_CharacterBody3D_property_motion_mode>`.
 
 .. rst-class:: classref-item-separator
 
@@ -490,7 +490,7 @@ Allows to manually apply a snap to the floor regardless of the body's velocity.
 
 :ref:`float<class_float>` **get_floor_angle** **(** :ref:`Vector3<class_Vector3>` up_direction=Vector3(0, 1, 0) **)** |const|
 
-Returns the floor's collision angle at the last collision point according to ``up_direction``, which is ``Vector3.UP`` by default. This value is always positive and only valid after calling :ref:`move_and_slide<class_CharacterBody3D_method_move_and_slide>` and when :ref:`is_on_floor<class_CharacterBody3D_method_is_on_floor>` returns ``true``.
+Returns the floor's collision angle at the last collision point according to ``up_direction``, which is :ref:`Vector3.UP<class_Vector3_constant_UP>` by default. This value is always positive and only valid after calling :ref:`move_and_slide<class_CharacterBody3D_method_move_and_slide>` and when :ref:`is_on_floor<class_CharacterBody3D_method_is_on_floor>` returns ``true``.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_codeedit.rst b/doc/rst/class_codeedit.rst
index 2adf7e8c3a..06df9c5e98 100644
--- a/doc/rst/class_codeedit.rst
+++ b/doc/rst/class_codeedit.rst
@@ -746,7 +746,7 @@ Prefixes to trigger an automatic indent.
 - void **set_indent_size** **(** :ref:`int<class_int>` value **)**
 - :ref:`int<class_int>` **get_indent_size** **(** **)**
 
-Size of tabs, if ``indent_use_spaces`` is enabled the number of spaces to use.
+Size of the tabulation indent (one :kbd:`Tab` press) in characters. If :ref:`indent_use_spaces<class_CodeEdit_property_indent_use_spaces>` is enabled the number of spaces to use.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_collisionobject2d.rst b/doc/rst/class_collisionobject2d.rst
index 0ab6a4bada..8667ef5c05 100644
--- a/doc/rst/class_collisionobject2d.rst
+++ b/doc/rst/class_collisionobject2d.rst
@@ -334,7 +334,7 @@ Method Descriptions
 
 void **_input_event** **(** :ref:`Viewport<class_Viewport>` viewport, :ref:`InputEvent<class_InputEvent>` event, :ref:`int<class_int>` shape_idx **)** |virtual|
 
-Accepts unhandled :ref:`InputEvent<class_InputEvent>`\ s. ``shape_idx`` is the child index of the clicked :ref:`Shape2D<class_Shape2D>`. Connect to the ``input_event`` signal to easily pick up these events.
+Accepts unhandled :ref:`InputEvent<class_InputEvent>`\ s. ``shape_idx`` is the child index of the clicked :ref:`Shape2D<class_Shape2D>`. Connect to :ref:`input_event<class_CollisionObject2D_signal_input_event>` to easily pick up these events.
 
 \ **Note:** :ref:`_input_event<class_CollisionObject2D_method__input_event>` requires :ref:`input_pickable<class_CollisionObject2D_property_input_pickable>` to be ``true`` and at least one :ref:`collision_layer<class_CollisionObject2D_property_collision_layer>` bit to be set.
 
diff --git a/doc/rst/class_collisionpolygon3d.rst b/doc/rst/class_collisionpolygon3d.rst
index 20af621608..237788b2e5 100644
--- a/doc/rst/class_collisionpolygon3d.rst
+++ b/doc/rst/class_collisionpolygon3d.rst
@@ -114,7 +114,7 @@ The collision margin for the generated :ref:`Shape3D<class_Shape3D>`. See :ref:`
 
 Array of vertices which define the 2D polygon in the local XY plane.
 
-\ **Note:** The returned value is a copy of the original. Methods which mutate the size or properties of the return value will not impact the original polygon. To change properties of the polygon, assign it to a temporary variable and make changes before reassigning the ``polygon`` member.
+\ **Note:** The returned value is a copy of the original. Methods which mutate the size or properties of the return value will not impact the original polygon. To change properties of the polygon, assign it to a temporary variable and make changes before reassigning the class property.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
diff --git a/doc/rst/class_curve3d.rst b/doc/rst/class_curve3d.rst
index 0178ad0d67..7290a30f6d 100644
--- a/doc/rst/class_curve3d.rst
+++ b/doc/rst/class_curve3d.rst
@@ -346,9 +346,7 @@ If ``idx`` is out of bounds it is truncated to the first or last vertex, and ``t
 
 :ref:`Vector3<class_Vector3>` **sample_baked** **(** :ref:`float<class_float>` offset=0.0, :ref:`bool<class_bool>` cubic=false **)** |const|
 
-Returns a point within the curve at position ``offset``, where ``offset`` is measured as a distance in 3D units along the curve.
-
-To do that, it finds the two cached points where the ``offset`` lies between, then interpolates the values. This interpolation is cubic if ``cubic`` is set to ``true``, or linear if set to ``false``.
+Returns a point within the curve at position ``offset``, where ``offset`` is measured as a distance in 3D units along the curve. To do that, it finds the two cached points where the ``offset`` lies between, then interpolates the values. This interpolation is cubic if ``cubic`` is set to ``true``, or linear if set to ``false``.
 
 Cubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough).
 
@@ -362,9 +360,7 @@ Cubic interpolation tends to follow the curves better, but linear is faster (and
 
 :ref:`Vector3<class_Vector3>` **sample_baked_up_vector** **(** :ref:`float<class_float>` offset, :ref:`bool<class_bool>` apply_tilt=false **)** |const|
 
-Returns an up vector within the curve at position ``offset``, where ``offset`` is measured as a distance in 3D units along the curve.
-
-To do that, it finds the two cached up vectors where the ``offset`` lies between, then interpolates the values. If ``apply_tilt`` is ``true``, an interpolated tilt is applied to the interpolated up vector.
+Returns an up vector within the curve at position ``offset``, where ``offset`` is measured as a distance in 3D units along the curve. To do that, it finds the two cached up vectors where the ``offset`` lies between, then interpolates the values. If ``apply_tilt`` is ``true``, an interpolated tilt is applied to the interpolated up vector.
 
 If the curve has no up vectors, the function sends an error to the console, and returns ``(0, 1, 0)``.
 
@@ -378,7 +374,7 @@ If the curve has no up vectors, the function sends an error to the console, and
 
 :ref:`Transform3D<class_Transform3D>` **sample_baked_with_rotation** **(** :ref:`float<class_float>` offset=0.0, :ref:`bool<class_bool>` cubic=false, :ref:`bool<class_bool>` apply_tilt=false **)** |const|
 
-Similar with ``interpolate_baked()``. The return value is ``Transform3D``, with ``origin`` as point position, ``basis.x`` as sideway vector, ``basis.y`` as up vector, ``basis.z`` as forward vector. When the curve length is 0, there is no reasonable way to calculate the rotation, all vectors aligned with global space axes.
+Returns a :ref:`Transform3D<class_Transform3D>` with ``origin`` as point position, ``basis.x`` as sideway vector, ``basis.y`` as up vector, ``basis.z`` as forward vector. When the curve length is 0, there is no reasonable way to calculate the rotation, all vectors aligned with global space axes. See also :ref:`sample_baked<class_Curve3D_method_sample_baked>`.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_dampedspringjoint2d.rst b/doc/rst/class_dampedspringjoint2d.rst
index 0069a782a7..5681fd9787 100644
--- a/doc/rst/class_dampedspringjoint2d.rst
+++ b/doc/rst/class_dampedspringjoint2d.rst
@@ -59,7 +59,7 @@ Property Descriptions
 - void **set_damping** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_damping** **(** **)**
 
-The spring joint's damping ratio. A value between ``0`` and ``1``. When the two bodies move into different directions the system tries to align them to the spring axis again. A high ``damping`` value forces the attached bodies to align faster.
+The spring joint's damping ratio. A value between ``0`` and ``1``. When the two bodies move into different directions the system tries to align them to the spring axis again. A high :ref:`damping<class_DampedSpringJoint2D_property_damping>` value forces the attached bodies to align faster.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_displayserver.rst b/doc/rst/class_displayserver.rst
index ddb0378d60..a42d097e3c 100644
--- a/doc/rst/class_displayserver.rst
+++ b/doc/rst/class_displayserver.rst
@@ -1574,7 +1574,7 @@ Displays OS native dialog for selecting files or directories in the file system.
 
 Callbacks have the following arguments: ``bool status, PackedStringArray selected_paths``.
 
-\ **Note:** This method is implemented if the display server has the ``FEATURE_NATIVE_DIALOG`` feature.
+\ **Note:** This method is implemented if the display server has the :ref:`FEATURE_NATIVE_DIALOG<class_DisplayServer_constant_FEATURE_NATIVE_DIALOG>` feature.
 
 \ **Note:** This method is implemented on Linux, Windows and macOS.
 
@@ -3053,7 +3053,7 @@ Each :ref:`Dictionary<class_Dictionary>` contains two :ref:`String<class_String>
 
 - ``id`` is voice identifier.
 
-- ``language`` is language code in ``lang_Variant`` format. ``lang`` part is a 2 or 3-letter code based on the ISO-639 standard, in lowercase. And ``Variant`` part is an engine dependent string describing country, region or/and dialect.
+- ``language`` is language code in ``lang_Variant`` format. The ``lang`` part is a 2 or 3-letter code based on the ISO-639 standard, in lowercase. The ``Variant`` part is an engine dependent string describing country, region or/and dialect.
 
 Note that Godot depends on system libraries for text-to-speech functionality. These libraries are installed by default on Windows and macOS, but not on all Linux distributions. If they are not present, this method will return an empty list. This applies to both Godot users on Linux, as well as end-users on Linux running Godot games that use text-to-speech.
 
diff --git a/doc/rst/class_editorexportplatformmacos.rst b/doc/rst/class_editorexportplatformmacos.rst
index 12df1a84d3..f0dd193e29 100644
--- a/doc/rst/class_editorexportplatformmacos.rst
+++ b/doc/rst/class_editorexportplatformmacos.rst
@@ -440,7 +440,7 @@ Array of the additional command line arguments passed to the code signing tool.
 
 :ref:`bool<class_bool>` **codesign/entitlements/address_book**
 
-Enable to allow access to contacts in the user's address book, if it's enabled you should also provide usage message in the ``privacy/address_book_usage_description`` option. See `com.apple.security.personal-information.addressbook <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_addressbook>`__.
+Enable to allow access to contacts in the user's address book, if it's enabled you should also provide usage message in the :ref:`privacy/address_book_usage_description<class_EditorExportPlatformMacOS_property_privacy/address_book_usage_description>` option. See `com.apple.security.personal-information.addressbook <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_addressbook>`__.
 
 .. rst-class:: classref-item-separator
 
@@ -634,7 +634,7 @@ Enable to allow app to send Apple events to other apps. See `com.apple.security.
 
 :ref:`bool<class_bool>` **codesign/entitlements/audio_input**
 
-Enable if you need to use the microphone or other audio input sources, if it's enabled you should also provide usage message in the ``privacy/microphone_usage_description`` option. See `com.apple.security.device.audio-input <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_device_audio-input>`__.
+Enable if you need to use the microphone or other audio input sources, if it's enabled you should also provide usage message in the :ref:`privacy/microphone_usage_description<class_EditorExportPlatformMacOS_property_privacy/microphone_usage_description>` option. See `com.apple.security.device.audio-input <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_device_audio-input>`__.
 
 .. rst-class:: classref-item-separator
 
@@ -646,7 +646,7 @@ Enable if you need to use the microphone or other audio input sources, if it's e
 
 :ref:`bool<class_bool>` **codesign/entitlements/calendars**
 
-Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the ``privacy/calendar_usage_description`` option. See `com.apple.security.personal-information.calendars <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_calendars>`__.
+Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the :ref:`privacy/calendar_usage_description<class_EditorExportPlatformMacOS_property_privacy/calendar_usage_description>` option. See `com.apple.security.personal-information.calendars <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_calendars>`__.
 
 .. rst-class:: classref-item-separator
 
@@ -658,7 +658,7 @@ Enable to allow access to the user's calendar, if it's enabled you should also p
 
 :ref:`bool<class_bool>` **codesign/entitlements/camera**
 
-Enable if you need to use the camera, if it's enabled you should also provide usage message in the ``privacy/camera_usage_description`` option. See `com.apple.security.device.camera <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_device_camera>`__.
+Enable if you need to use the camera, if it's enabled you should also provide usage message in the :ref:`privacy/camera_usage_description<class_EditorExportPlatformMacOS_property_privacy/camera_usage_description>` option. See `com.apple.security.device.camera <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_device_camera>`__.
 
 .. rst-class:: classref-item-separator
 
@@ -706,7 +706,7 @@ Allows app to load arbitrary libraries and frameworks (not signed with the same
 
 :ref:`bool<class_bool>` **codesign/entitlements/location**
 
-Enable if you need to use location information from Location Services, if it's enabled you should also provide usage message in the ``privacy/location_usage_description`` option. See `com.apple.security.personal-information.location <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_location>`__.
+Enable if you need to use location information from Location Services, if it's enabled you should also provide usage message in the :ref:`privacy/location_usage_description<class_EditorExportPlatformMacOS_property_privacy/location_usage_description>` option. See `com.apple.security.personal-information.location <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_location>`__.
 
 .. rst-class:: classref-item-separator
 
@@ -718,7 +718,7 @@ Enable if you need to use location information from Location Services, if it's e
 
 :ref:`bool<class_bool>` **codesign/entitlements/photos_library**
 
-Enable to allow access to the user's Photos library, if it's enabled you should also provide usage message in the ``privacy/photos_library_usage_description`` option. See `com.apple.security.personal-information.photos-library <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_photos-library>`__.
+Enable to allow access to the user's Photos library, if it's enabled you should also provide usage message in the :ref:`privacy/photos_library_usage_description<class_EditorExportPlatformMacOS_property_privacy/photos_library_usage_description>` option. See `com.apple.security.personal-information.photos-library <https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_photos-library>`__.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_editorexportplugin.rst b/doc/rst/class_editorexportplugin.rst
index dfeab05520..61f762a0d7 100644
--- a/doc/rst/class_editorexportplugin.rst
+++ b/doc/rst/class_editorexportplugin.rst
@@ -471,9 +471,9 @@ void **add_ios_embedded_framework** **(** :ref:`String<class_String>` path **)**
 
 Adds a dynamic library (\*.dylib, \*.framework) to Linking Phase in iOS's Xcode project and embeds it into resulting binary.
 
-\ **Note:** For static libraries (\*.a) works in same way as ``add_ios_framework``.
+\ **Note:** For static libraries (\*.a) works in same way as :ref:`add_ios_framework<class_EditorExportPlugin_method_add_ios_framework>`.
 
-This method should not be used for System libraries as they are already present on the device.
+\ **Note:** This method should not be used for System libraries as they are already present on the device.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_editorfiledialog.rst b/doc/rst/class_editorfiledialog.rst
index b33d973055..785b372f71 100644
--- a/doc/rst/class_editorfiledialog.rst
+++ b/doc/rst/class_editorfiledialog.rst
@@ -458,7 +458,7 @@ Returns the LineEdit for the selected file.
 
 :ref:`VBoxContainer<class_VBoxContainer>` **get_vbox** **(** **)**
 
-Returns the ``VBoxContainer`` used to display the file system.
+Returns the :ref:`VBoxContainer<class_VBoxContainer>` used to display the file system.
 
 \ **Warning:** This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their :ref:`CanvasItem.visible<class_CanvasItem_property_visible>` property.
 
diff --git a/doc/rst/class_editorinterface.rst b/doc/rst/class_editorinterface.rst
index e2f539aca1..62f4d75d3b 100644
--- a/doc/rst/class_editorinterface.rst
+++ b/doc/rst/class_editorinterface.rst
@@ -783,7 +783,7 @@ A feature profile can be created programmatically using the :ref:`EditorFeatureP
 
 void **set_main_screen_editor** **(** :ref:`String<class_String>` name **)**
 
-Sets the editor's current main screen to the one specified in ``name``. ``name`` must match the text of the tab in question exactly (``2D``, ``3D``, ``Script``, ``AssetLib``).
+Sets the editor's current main screen to the one specified in ``name``. ``name`` must match the title of the tab in question exactly (e.g. ``2D``, ``3D``, ``Script``, or ``AssetLib`` for default tabs).
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_editornode3dgizmo.rst b/doc/rst/class_editornode3dgizmo.rst
index b0cc75c806..2d4f2c855c 100644
--- a/doc/rst/class_editornode3dgizmo.rst
+++ b/doc/rst/class_editornode3dgizmo.rst
@@ -216,7 +216,7 @@ Override this method to update the node properties during subgizmo editing (see
 
 :ref:`PackedInt32Array<class_PackedInt32Array>` **_subgizmos_intersect_frustum** **(** :ref:`Camera3D<class_Camera3D>` camera, :ref:`Plane[]<class_Plane>` frustum **)** |virtual| |const|
 
-Override this method to allow selecting subgizmos using mouse drag box selection. Given a ``camera`` and a ``frustum``, this method should return which subgizmos are contained within the frustum. The ``frustum`` argument consists of an array with all the ``Plane``\ s that make up the selection frustum. The returned value should contain a list of unique subgizmo identifiers, which can have any non-negative value and will be used in other virtual methods like :ref:`_get_subgizmo_transform<class_EditorNode3DGizmo_method__get_subgizmo_transform>` or :ref:`_commit_subgizmos<class_EditorNode3DGizmo_method__commit_subgizmos>`.
+Override this method to allow selecting subgizmos using mouse drag box selection. Given a ``camera`` and a ``frustum``, this method should return which subgizmos are contained within the frustum. The ``frustum`` argument consists of an array with all the :ref:`Plane<class_Plane>`\ s that make up the selection frustum. The returned value should contain a list of unique subgizmo identifiers, which can have any non-negative value and will be used in other virtual methods like :ref:`_get_subgizmo_transform<class_EditorNode3DGizmo_method__get_subgizmo_transform>` or :ref:`_commit_subgizmos<class_EditorNode3DGizmo_method__commit_subgizmos>`.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_editornode3dgizmoplugin.rst b/doc/rst/class_editornode3dgizmoplugin.rst
index e1e7c6f019..20a4b2e4eb 100644
--- a/doc/rst/class_editornode3dgizmoplugin.rst
+++ b/doc/rst/class_editornode3dgizmoplugin.rst
@@ -297,7 +297,7 @@ Override this method to update the node properties during subgizmo editing (see
 
 :ref:`PackedInt32Array<class_PackedInt32Array>` **_subgizmos_intersect_frustum** **(** :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>` gizmo, :ref:`Camera3D<class_Camera3D>` camera, :ref:`Plane[]<class_Plane>` frustum_planes **)** |virtual| |const|
 
-Override this method to allow selecting subgizmos using mouse drag box selection. Given a ``camera`` and ``frustum_planes``, this method should return which subgizmos are contained within the frustums. The ``frustum_planes`` argument consists of an ``Array`` with all the ``Plane``\ s that make up the selection frustum. The returned value should contain a list of unique subgizmo identifiers, these identifiers can have any non-negative value and will be used in other virtual methods like :ref:`_get_subgizmo_transform<class_EditorNode3DGizmoPlugin_method__get_subgizmo_transform>` or :ref:`_commit_subgizmos<class_EditorNode3DGizmoPlugin_method__commit_subgizmos>`. Called for this plugin's active gizmos.
+Override this method to allow selecting subgizmos using mouse drag box selection. Given a ``camera`` and ``frustum_planes``, this method should return which subgizmos are contained within the frustums. The ``frustum_planes`` argument consists of an array with all the :ref:`Plane<class_Plane>`\ s that make up the selection frustum. The returned value should contain a list of unique subgizmo identifiers, these identifiers can have any non-negative value and will be used in other virtual methods like :ref:`_get_subgizmo_transform<class_EditorNode3DGizmoPlugin_method__get_subgizmo_transform>` or :ref:`_commit_subgizmos<class_EditorNode3DGizmoPlugin_method__commit_subgizmos>`. Called for this plugin's active gizmos.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_environment.rst b/doc/rst/class_environment.rst
index 1f1a5a4247..57d3b4eae6 100644
--- a/doc/rst/class_environment.rst
+++ b/doc/rst/class_environment.rst
@@ -551,7 +551,7 @@ Property Descriptions
 - void **set_adjustment_brightness** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_adjustment_brightness** **(** **)**
 
-The global brightness value of the rendered scene. Effective only if ``adjustment_enabled`` is ``true``.
+The global brightness value of the rendered scene. Effective only if :ref:`adjustment_enabled<class_Environment_property_adjustment_enabled>` is ``true``.
 
 .. rst-class:: classref-item-separator
 
@@ -568,7 +568,7 @@ The global brightness value of the rendered scene. Effective only if ``adjustmen
 - void **set_adjustment_color_correction** **(** :ref:`Texture<class_Texture>` value **)**
 - :ref:`Texture<class_Texture>` **get_adjustment_color_correction** **(** **)**
 
-The :ref:`Texture2D<class_Texture2D>` or :ref:`Texture3D<class_Texture3D>` lookup table (LUT) to use for the built-in post-process color grading. Can use a :ref:`GradientTexture1D<class_GradientTexture1D>` for a 1-dimensional LUT, or a :ref:`Texture3D<class_Texture3D>` for a more complex LUT. Effective only if ``adjustment_enabled`` is ``true``.
+The :ref:`Texture2D<class_Texture2D>` or :ref:`Texture3D<class_Texture3D>` lookup table (LUT) to use for the built-in post-process color grading. Can use a :ref:`GradientTexture1D<class_GradientTexture1D>` for a 1-dimensional LUT, or a :ref:`Texture3D<class_Texture3D>` for a more complex LUT. Effective only if :ref:`adjustment_enabled<class_Environment_property_adjustment_enabled>` is ``true``.
 
 .. rst-class:: classref-item-separator
 
@@ -585,7 +585,7 @@ The :ref:`Texture2D<class_Texture2D>` or :ref:`Texture3D<class_Texture3D>` looku
 - void **set_adjustment_contrast** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_adjustment_contrast** **(** **)**
 
-The global contrast value of the rendered scene (default value is 1). Effective only if ``adjustment_enabled`` is ``true``.
+The global contrast value of the rendered scene (default value is 1). Effective only if :ref:`adjustment_enabled<class_Environment_property_adjustment_enabled>` is ``true``.
 
 .. rst-class:: classref-item-separator
 
@@ -621,7 +621,7 @@ If ``true``, enables the ``adjustment_*`` properties provided by this resource.
 - void **set_adjustment_saturation** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_adjustment_saturation** **(** **)**
 
-The global color saturation value of the rendered scene (default value is 1). Effective only if ``adjustment_enabled`` is ``true``.
+The global color saturation value of the rendered scene (default value is 1). Effective only if :ref:`adjustment_enabled<class_Environment_property_adjustment_enabled>` is ``true``.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_fileaccess.rst b/doc/rst/class_fileaccess.rst
index b538c2f19b..61e42b35ba 100644
--- a/doc/rst/class_fileaccess.rst
+++ b/doc/rst/class_fileaccess.rst
@@ -970,7 +970,7 @@ Changes the file reading/writing cursor to the specified position (in bytes from
 
 :ref:`Error<enum_@GlobalScope_Error>` **set_hidden_attribute** **(** :ref:`String<class_String>` file, :ref:`bool<class_bool>` hidden **)** |static|
 
-Sets file ``hidden`` attribute.
+Sets file **hidden** attribute.
 
 \ **Note:** This method is implemented on iOS, BSD, macOS, and Windows.
 
@@ -984,7 +984,7 @@ Sets file ``hidden`` attribute.
 
 :ref:`Error<enum_@GlobalScope_Error>` **set_read_only_attribute** **(** :ref:`String<class_String>` file, :ref:`bool<class_bool>` ro **)** |static|
 
-Sets file ``read only`` attribute.
+Sets file **read only** attribute.
 
 \ **Note:** This method is implemented on iOS, BSD, macOS, and Windows.
 
diff --git a/doc/rst/class_fontfile.rst b/doc/rst/class_fontfile.rst
index 283293d1db..f1678eddd9 100644
--- a/doc/rst/class_fontfile.rst
+++ b/doc/rst/class_fontfile.rst
@@ -914,7 +914,7 @@ Returns list of script support overrides.
 
 :ref:`Vector2i[]<class_Vector2i>` **get_size_cache_list** **(** :ref:`int<class_int>` cache_index **)** |const|
 
-Returns list of the font sizes in the cache. Each size is ``Vector2i`` with font size and outline size.
+Returns list of the font sizes in the cache. Each size is :ref:`Vector2i<class_Vector2i>` with font size and outline size.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_fontvariation.rst b/doc/rst/class_fontvariation.rst
index 595aeada4e..754aa0b634 100644
--- a/doc/rst/class_fontvariation.rst
+++ b/doc/rst/class_fontvariation.rst
@@ -255,7 +255,7 @@ Active face index in the TrueType / OpenType collection file.
 
 Font OpenType variation coordinates. More info: `OpenType variation tags <https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg>`__.
 
-\ **Note:** This :ref:`Dictionary<class_Dictionary>` uses OpenType tags as keys. Variation axes can be identified both by tags(``int``) and names (``string``). Some axes might be accessible by multiple names. For example, ``wght`` refers to the same axis as ``weight``. Tags on the other hand are unique. To convert between names and tags, use :ref:`TextServer.name_to_tag<class_TextServer_method_name_to_tag>` and :ref:`TextServer.tag_to_name<class_TextServer_method_tag_to_name>`.
+\ **Note:** This :ref:`Dictionary<class_Dictionary>` uses OpenType tags as keys. Variation axes can be identified both by tags (:ref:`int<class_int>`, e.g. ``0x77678674``) and names (:ref:`String<class_String>`, e.g. ``wght``). Some axes might be accessible by multiple names. For example, ``wght`` refers to the same axis as ``weight``. Tags on the other hand are unique. To convert between names and tags, use :ref:`TextServer.name_to_tag<class_TextServer_method_name_to_tag>` and :ref:`TextServer.tag_to_name<class_TextServer_method_tag_to_name>`.
 
 \ **Note:** To get available variation axes of a font, use :ref:`Font.get_supported_variation_list<class_Font_method_get_supported_variation_list>`.
 
diff --git a/doc/rst/class_gpuparticles3d.rst b/doc/rst/class_gpuparticles3d.rst
index f9f8b4b49c..4af0e8624f 100644
--- a/doc/rst/class_gpuparticles3d.rst
+++ b/doc/rst/class_gpuparticles3d.rst
@@ -21,7 +21,7 @@ Description
 
 3D particle node used to create a variety of particle systems and effects. **GPUParticles3D** features an emitter that generates some number of particles at a given rate.
 
-Use the ``process_material`` property to add a :ref:`ParticleProcessMaterial<class_ParticleProcessMaterial>` to configure particle appearance and behavior. Alternatively, you can add a :ref:`ShaderMaterial<class_ShaderMaterial>` which will be applied to all particles.
+Use :ref:`process_material<class_GPUParticles3D_property_process_material>` to add a :ref:`ParticleProcessMaterial<class_ParticleProcessMaterial>` to configure particle appearance and behavior. Alternatively, you can add a :ref:`ShaderMaterial<class_ShaderMaterial>` which will be applied to all particles.
 
 .. rst-class:: classref-introduction-group
 
@@ -591,7 +591,7 @@ If ``true``, particles use the parent node's coordinate space (known as local co
 - void **set_one_shot** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **get_one_shot** **(** **)**
 
-If ``true``, only ``amount`` particles will be emitted.
+If ``true``, only the number of particles equal to :ref:`amount<class_GPUParticles3D_property_amount>` will be emitted.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_httprequest.rst b/doc/rst/class_httprequest.rst
index a7c4c0d66c..9856b5c0c4 100644
--- a/doc/rst/class_httprequest.rst
+++ b/doc/rst/class_httprequest.rst
@@ -410,11 +410,11 @@ Property Descriptions
 
 If ``true``, this header will be added to each request: ``Accept-Encoding: gzip, deflate`` telling servers that it's okay to compress response bodies.
 
-Any Response body declaring a ``Content-Encoding`` of either ``gzip`` or ``deflate`` will then be automatically decompressed, and the uncompressed bytes will be delivered via ``request_completed``.
+Any Response body declaring a ``Content-Encoding`` of either ``gzip`` or ``deflate`` will then be automatically decompressed, and the uncompressed bytes will be delivered via :ref:`request_completed<class_HTTPRequest_signal_request_completed>`.
 
-If the user has specified their own ``Accept-Encoding`` header, then no header will be added regardless of ``accept_gzip``.
+If the user has specified their own ``Accept-Encoding`` header, then no header will be added regardless of :ref:`accept_gzip<class_HTTPRequest_property_accept_gzip>`.
 
-If ``false`` no header will be added, and no decompression will be performed on response bodies. The raw bytes of the response body will be returned via ``request_completed``.
+If ``false`` no header will be added, and no decompression will be performed on response bodies. The raw bytes of the response body will be returned via :ref:`request_completed<class_HTTPRequest_signal_request_completed>`.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_image.rst b/doc/rst/class_image.rst
index 6c4fcb5f62..8a1e4e1baa 100644
--- a/doc/rst/class_image.rst
+++ b/doc/rst/class_image.rst
@@ -21,7 +21,7 @@ Description
 
 Native image datatype. Contains image data which can be converted to an :ref:`ImageTexture<class_ImageTexture>` and provides commonly used *image processing* methods. The maximum width and height for an **Image** are :ref:`MAX_WIDTH<class_Image_constant_MAX_WIDTH>` and :ref:`MAX_HEIGHT<class_Image_constant_MAX_HEIGHT>`.
 
-An **Image** cannot be assigned to a ``texture`` property of an object directly (such as :ref:`Sprite2D<class_Sprite2D>`), and has to be converted manually to an :ref:`ImageTexture<class_ImageTexture>` first.
+An **Image** cannot be assigned to a texture property of an object directly (such as :ref:`Sprite2D.texture<class_Sprite2D_property_texture>`), and has to be converted manually to an :ref:`ImageTexture<class_ImageTexture>` first.
 
 \ **Note:** The maximum image size is 16384×16384 pixels due to graphics hardware limitations. Larger images may fail to import.
 
@@ -1224,7 +1224,7 @@ Returns the number of mipmap levels or 0 if the image has no mipmaps. The larges
 
 :ref:`int<class_int>` **get_mipmap_offset** **(** :ref:`int<class_int>` mipmap **)** |const|
 
-Returns the offset where the image's mipmap with index ``mipmap`` is stored in the ``data`` dictionary.
+Returns the offset where the image's mipmap with index ``mipmap`` is stored in the :ref:`data<class_Image_property_data>` dictionary.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_imagetexturelayered.rst b/doc/rst/class_imagetexturelayered.rst
index 7de2a95def..e20ce6bd39 100644
--- a/doc/rst/class_imagetexturelayered.rst
+++ b/doc/rst/class_imagetexturelayered.rst
@@ -68,7 +68,7 @@ void **update_layer** **(** :ref:`Image<class_Image>` image, :ref:`int<class_int
 
 Replaces the existing :ref:`Image<class_Image>` data at the given ``layer`` with this new image.
 
-The given :ref:`Image<class_Image>` must have the same width, height, image format and mipmapping setting (a ``bool`` value) as the rest of the referenced images.
+The given :ref:`Image<class_Image>` must have the same width, height, image format, and mipmapping flag as the rest of the referenced images.
 
 If the image format is unsupported, it will be decompressed and converted to a similar and supported :ref:`Format<enum_Image_Format>`.
 
diff --git a/doc/rst/class_joint2d.rst b/doc/rst/class_joint2d.rst
index 21853eccf9..3ebcea0d7b 100644
--- a/doc/rst/class_joint2d.rst
+++ b/doc/rst/class_joint2d.rst
@@ -73,7 +73,7 @@ Property Descriptions
 - void **set_bias** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_bias** **(** **)**
 
-When :ref:`node_a<class_Joint2D_property_node_a>` and :ref:`node_b<class_Joint2D_property_node_b>` move in different directions the ``bias`` controls how fast the joint pulls them back to their original position. The lower the ``bias`` the more the two bodies can pull on the joint.
+When :ref:`node_a<class_Joint2D_property_node_a>` and :ref:`node_b<class_Joint2D_property_node_b>` move in different directions the :ref:`bias<class_Joint2D_property_bias>` controls how fast the joint pulls them back to their original position. The lower the :ref:`bias<class_Joint2D_property_bias>` the more the two bodies can pull on the joint.
 
 When set to ``0``, the default value from :ref:`ProjectSettings.physics/2d/solver/default_constraint_bias<class_ProjectSettings_property_physics/2d/solver/default_constraint_bias>` is used.
 
diff --git a/doc/rst/class_label.rst b/doc/rst/class_label.rst
index f3d2252ea7..a2fc0ea118 100644
--- a/doc/rst/class_label.rst
+++ b/doc/rst/class_label.rst
@@ -252,7 +252,7 @@ Language code used for line-breaking and text shaping algorithms, if left empty
 - void **set_lines_skipped** **(** :ref:`int<class_int>` value **)**
 - :ref:`int<class_int>` **get_lines_skipped** **(** **)**
 
-The node ignores the first ``lines_skipped`` lines before it starts to display text.
+The number of the lines ignored and not displayed from the start of the :ref:`text<class_Label_property_text>` value.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_line2d.rst b/doc/rst/class_line2d.rst
index 4eba1d7afc..f2c3871863 100644
--- a/doc/rst/class_line2d.rst
+++ b/doc/rst/class_line2d.rst
@@ -397,7 +397,7 @@ Determines the miter limit of the polyline. Normally, when :ref:`joint_mode<clas
 - void **set_texture** **(** :ref:`Texture2D<class_Texture2D>` value **)**
 - :ref:`Texture2D<class_Texture2D>` **get_texture** **(** **)**
 
-The texture used for the polyline. Uses ``texture_mode`` for drawing style.
+The texture used for the polyline. Uses :ref:`texture_mode<class_Line2D_property_texture_mode>` for drawing style.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_linkbutton.rst b/doc/rst/class_linkbutton.rst
index 22281537ac..ed3f64313f 100644
--- a/doc/rst/class_linkbutton.rst
+++ b/doc/rst/class_linkbutton.rst
@@ -416,7 +416,7 @@ Font size of the **LinkButton**'s text.
 
 :ref:`StyleBox<class_StyleBox>` **focus**
 
-:ref:`StyleBox<class_StyleBox>` used when the **LinkButton** is focused. The ``focus`` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
+:ref:`StyleBox<class_StyleBox>` used when the **LinkButton** is focused. The :ref:`focus<class_LinkButton_theme_style_focus>` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
diff --git a/doc/rst/class_margincontainer.rst b/doc/rst/class_margincontainer.rst
index bf2949a8f9..0e7af52d82 100644
--- a/doc/rst/class_margincontainer.rst
+++ b/doc/rst/class_margincontainer.rst
@@ -86,7 +86,7 @@ Theme Property Descriptions
 
 :ref:`int<class_int>` **margin_bottom** = ``0``
 
-All direct children of **MarginContainer** will have a bottom margin of ``margin_bottom`` pixels.
+Offsets towards the inside direct children of the container by this amount of pixels from the bottom.
 
 .. rst-class:: classref-item-separator
 
@@ -98,7 +98,7 @@ All direct children of **MarginContainer** will have a bottom margin of ``margin
 
 :ref:`int<class_int>` **margin_left** = ``0``
 
-All direct children of **MarginContainer** will have a left margin of ``margin_left`` pixels.
+Offsets towards the inside direct children of the container by this amount of pixels from the left.
 
 .. rst-class:: classref-item-separator
 
@@ -110,7 +110,7 @@ All direct children of **MarginContainer** will have a left margin of ``margin_l
 
 :ref:`int<class_int>` **margin_right** = ``0``
 
-All direct children of **MarginContainer** will have a right margin of ``margin_right`` pixels.
+Offsets towards the inside direct children of the container by this amount of pixels from the right.
 
 .. rst-class:: classref-item-separator
 
@@ -122,7 +122,7 @@ All direct children of **MarginContainer** will have a right margin of ``margin_
 
 :ref:`int<class_int>` **margin_top** = ``0``
 
-All direct children of **MarginContainer** will have a top margin of ``margin_top`` pixels.
+Offsets towards the inside direct children of the container by this amount of pixels from the top.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
diff --git a/doc/rst/class_menubutton.rst b/doc/rst/class_menubutton.rst
index e1f106a7f5..2aa1f0ad73 100644
--- a/doc/rst/class_menubutton.rst
+++ b/doc/rst/class_menubutton.rst
@@ -115,7 +115,7 @@ The number of items currently in the list.
 - void **set_switch_on_hover** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **is_switch_on_hover** **(** **)**
 
-If ``true``, when the cursor hovers above another **MenuButton** within the same parent which also has ``switch_on_hover`` enabled, it will close the current **MenuButton** and open the other one.
+If ``true``, when the cursor hovers above another **MenuButton** within the same parent which also has :ref:`switch_on_hover<class_MenuButton_property_switch_on_hover>` enabled, it will close the current **MenuButton** and open the other one.
 
 .. rst-class:: classref-section-separator
 
diff --git a/doc/rst/class_navigationmeshsourcegeometrydata3d.rst b/doc/rst/class_navigationmeshsourcegeometrydata3d.rst
index 300140916e..5bb0deb088 100644
--- a/doc/rst/class_navigationmeshsourcegeometrydata3d.rst
+++ b/doc/rst/class_navigationmeshsourcegeometrydata3d.rst
@@ -64,7 +64,7 @@ Method Descriptions
 
 void **add_faces** **(** :ref:`PackedVector3Array<class_PackedVector3Array>` faces, :ref:`Transform3D<class_Transform3D>` xform **)**
 
-Adds an array of vertex positions to the geometry data for navigation mesh baking to form triangulated faces. For each face the array must have three vertex positions in clockwise winding order. Since :ref:`NavigationMesh<class_NavigationMesh>` resource have no transform all vertex positions need to be offset by the node's transform using the ``xform`` parameter.
+Adds an array of vertex positions to the geometry data for navigation mesh baking to form triangulated faces. For each face the array must have three vertex positions in clockwise winding order. Since :ref:`NavigationMesh<class_NavigationMesh>` resources have no transform, all vertex positions need to be offset by the node's transform using ``xform``.
 
 .. rst-class:: classref-item-separator
 
@@ -76,7 +76,7 @@ Adds an array of vertex positions to the geometry data for navigation mesh bakin
 
 void **add_mesh** **(** :ref:`Mesh<class_Mesh>` mesh, :ref:`Transform3D<class_Transform3D>` xform **)**
 
-Adds the geometry data of a :ref:`Mesh<class_Mesh>` resource to the navigation mesh baking data. The mesh must have valid triangulated mesh data to be considered. Since :ref:`NavigationMesh<class_NavigationMesh>` resource have no transform all vertex positions need to be offset by the node's transform using the ``xform`` parameter.
+Adds the geometry data of a :ref:`Mesh<class_Mesh>` resource to the navigation mesh baking data. The mesh must have valid triangulated mesh data to be considered. Since :ref:`NavigationMesh<class_NavigationMesh>` resources have no transform, all vertex positions need to be offset by the node's transform using ``xform``.
 
 .. rst-class:: classref-item-separator
 
@@ -88,7 +88,7 @@ Adds the geometry data of a :ref:`Mesh<class_Mesh>` resource to the navigation m
 
 void **add_mesh_array** **(** :ref:`Array<class_Array>` mesh_array, :ref:`Transform3D<class_Transform3D>` xform **)**
 
-Adds an :ref:`Array<class_Array>` the size of :ref:`Mesh.ARRAY_MAX<class_Mesh_constant_ARRAY_MAX>` and with vertices at index :ref:`Mesh.ARRAY_VERTEX<class_Mesh_constant_ARRAY_VERTEX>` and indices at index :ref:`Mesh.ARRAY_INDEX<class_Mesh_constant_ARRAY_INDEX>` to the navigation mesh baking data. The array must have valid triangulated mesh data to be considered. Since :ref:`NavigationMesh<class_NavigationMesh>` resource have no transform all vertex positions need to be offset by the node's transform using the ``xform`` parameter.
+Adds an :ref:`Array<class_Array>` the size of :ref:`Mesh.ARRAY_MAX<class_Mesh_constant_ARRAY_MAX>` and with vertices at index :ref:`Mesh.ARRAY_VERTEX<class_Mesh_constant_ARRAY_VERTEX>` and indices at index :ref:`Mesh.ARRAY_INDEX<class_Mesh_constant_ARRAY_INDEX>` to the navigation mesh baking data. The array must have valid triangulated mesh data to be considered. Since :ref:`NavigationMesh<class_NavigationMesh>` resources have no transform, all vertex positions need to be offset by the node's transform using ``xform``.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_navigationpathqueryparameters2d.rst b/doc/rst/class_navigationpathqueryparameters2d.rst
index 19a74f3c55..9e53a5bdef 100644
--- a/doc/rst/class_navigationpathqueryparameters2d.rst
+++ b/doc/rst/class_navigationpathqueryparameters2d.rst
@@ -171,7 +171,7 @@ Property Descriptions
 - void **set_map** **(** :ref:`RID<class_RID>` value **)**
 - :ref:`RID<class_RID>` **get_map** **(** **)**
 
-The navigation ``map`` :ref:`RID<class_RID>` used in the path query.
+The navigation map :ref:`RID<class_RID>` used in the path query.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_navigationpathqueryparameters3d.rst b/doc/rst/class_navigationpathqueryparameters3d.rst
index f34119a6da..a83be6de54 100644
--- a/doc/rst/class_navigationpathqueryparameters3d.rst
+++ b/doc/rst/class_navigationpathqueryparameters3d.rst
@@ -171,7 +171,7 @@ Property Descriptions
 - void **set_map** **(** :ref:`RID<class_RID>` value **)**
 - :ref:`RID<class_RID>` **get_map** **(** **)**
 
-The navigation ``map`` :ref:`RID<class_RID>` used in the path query.
+The navigation map :ref:`RID<class_RID>` used in the path query.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_navigationregion2d.rst b/doc/rst/class_navigationregion2d.rst
index 2e25df4bd7..23624ff31c 100644
--- a/doc/rst/class_navigationregion2d.rst
+++ b/doc/rst/class_navigationregion2d.rst
@@ -194,7 +194,7 @@ Determines if the **NavigationRegion2D** is enabled or disabled.
 - void **set_enter_cost** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_enter_cost** **(** **)**
 
-When pathfinding enters this region's navigation mesh from another regions navigation mesh the ``enter_cost`` value is added to the path distance for determining the shortest path.
+When pathfinding enters this region's navigation mesh from another regions navigation mesh the :ref:`enter_cost<class_NavigationRegion2D_property_enter_cost>` value is added to the path distance for determining the shortest path.
 
 .. rst-class:: classref-item-separator
 
@@ -245,7 +245,7 @@ The :ref:`NavigationPolygon<class_NavigationPolygon>` resource to use.
 - void **set_travel_cost** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_travel_cost** **(** **)**
 
-When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with ``travel_cost`` for determining the shortest path.
+When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with :ref:`travel_cost<class_NavigationRegion2D_property_travel_cost>` for determining the shortest path.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_navigationregion3d.rst b/doc/rst/class_navigationregion3d.rst
index 6c2779db87..d600a0f937 100644
--- a/doc/rst/class_navigationregion3d.rst
+++ b/doc/rst/class_navigationregion3d.rst
@@ -150,7 +150,7 @@ Determines if the **NavigationRegion3D** is enabled or disabled.
 - void **set_enter_cost** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_enter_cost** **(** **)**
 
-When pathfinding enters this region's navigation mesh from another regions navigation mesh the ``enter_cost`` value is added to the path distance for determining the shortest path.
+When pathfinding enters this region's navigation mesh from another regions navigation mesh the :ref:`enter_cost<class_NavigationRegion3D_property_enter_cost>` value is added to the path distance for determining the shortest path.
 
 .. rst-class:: classref-item-separator
 
@@ -201,7 +201,7 @@ The :ref:`NavigationMesh<class_NavigationMesh>` resource to use.
 - void **set_travel_cost** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_travel_cost** **(** **)**
 
-When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with ``travel_cost`` for determining the shortest path.
+When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with :ref:`travel_cost<class_NavigationRegion3D_property_travel_cost>` for determining the shortest path.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_node.rst b/doc/rst/class_node.rst
index 639fa5944d..524ed35ed7 100644
--- a/doc/rst/class_node.rst
+++ b/doc/rst/class_node.rst
@@ -1351,7 +1351,7 @@ Corresponds to the :ref:`NOTIFICATION_READY<class_Node_constant_NOTIFICATION_REA
 
 Usually used for initialization. For even earlier initialization, :ref:`Object._init<class_Object_method__init>` may be used. See also :ref:`_enter_tree<class_Node_method__enter_tree>`.
 
-\ **Note:** :ref:`_ready<class_Node_method__ready>` may be called only once for each node. After removing a node from the scene tree and adding it again, ``_ready`` will not be called a second time. This can be bypassed by requesting another call with :ref:`request_ready<class_Node_method_request_ready>`, which may be called anywhere before adding the node again.
+\ **Note:** :ref:`_ready<class_Node_method__ready>` may be called only once for each node. After removing a node from the scene tree and adding it again, :ref:`_ready<class_Node_method__ready>` will not be called a second time. This can be bypassed by requesting another call with :ref:`request_ready<class_Node_method_request_ready>`, which may be called anywhere before adding the node again.
 
 .. rst-class:: classref-item-separator
 
@@ -2389,7 +2389,7 @@ If ``keep_groups`` is ``true``, the ``node`` is added to the same groups that th
 
 void **request_ready** **(** **)**
 
-Requests that ``_ready`` be called again. Note that the method won't be called immediately, but is scheduled for when the node is added to the scene tree again (see :ref:`_ready<class_Node_method__ready>`). ``_ready`` is called only for the node which requested it, which means that you need to request ready for each child if you want them to call ``_ready`` too (in which case, ``_ready`` will be called in the same order as it would normally).
+Requests that :ref:`_ready<class_Node_method__ready>` be called again. Note that the method won't be called immediately, but is scheduled for when the node is added to the scene tree again. :ref:`_ready<class_Node_method__ready>` is called only for the node which requested it, which means that you need to request ready for each child if you want them to call :ref:`_ready<class_Node_method__ready>` too (in which case, :ref:`_ready<class_Node_method__ready>` will be called in the same order as it would normally).
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_packedbytearray.rst b/doc/rst/class_packedbytearray.rst
index 71b47974b6..ef3301ba4f 100644
--- a/doc/rst/class_packedbytearray.rst
+++ b/doc/rst/class_packedbytearray.rst
@@ -483,7 +483,7 @@ Returns a new **PackedByteArray** with the data decompressed. Set ``buffer_size`
 
 Returns a new **PackedByteArray** with the data decompressed. Set the compression mode using one of :ref:`CompressionMode<enum_FileAccess_CompressionMode>`'s constants. **This method only accepts brotli, gzip, and deflate compression modes.**\ 
 
-This method is potentially slower than ``decompress``, as it may have to re-allocate its output buffer multiple times while decompressing, whereas ``decompress`` knows it's output buffer size from the beginning.
+This method is potentially slower than :ref:`decompress<class_PackedByteArray_method_decompress>`, as it may have to re-allocate its output buffer multiple times while decompressing, whereas :ref:`decompress<class_PackedByteArray_method_decompress>` knows it's output buffer size from the beginning.
 
 GZIP has a maximal compression ratio of 1032:1, meaning it's very possible for a small compressed payload to decompress to a potentially very large output. To guard against this, you may provide a maximum size this function is allowed to allocate in bytes via ``max_output_size``. Passing -1 will allow for unbounded output. If any positive value is passed, and the decompression exceeds that amount in bytes, then an error will be returned.
 
diff --git a/doc/rst/class_packedscene.rst b/doc/rst/class_packedscene.rst
index dee78eeaed..be4503e48f 100644
--- a/doc/rst/class_packedscene.rst
+++ b/doc/rst/class_packedscene.rst
@@ -46,7 +46,7 @@ Can be used to save a node to a file. When saving, the node as well as all the n
 
 
 
-\ **Example of saving a node with different owners:** The following example creates 3 objects: :ref:`Node2D<class_Node2D>` (``node``), :ref:`RigidBody2D<class_RigidBody2D>` (``body``) and :ref:`CollisionObject2D<class_CollisionObject2D>` (``collision``). ``collision`` is a child of ``body`` which is a child of ``node``. Only ``body`` is owned by ``node`` and ``pack`` will therefore only save those two nodes, but not ``collision``.
+\ **Example of saving a node with different owners:** The following example creates 3 objects: :ref:`Node2D<class_Node2D>` (``node``), :ref:`RigidBody2D<class_RigidBody2D>` (``body``) and :ref:`CollisionObject2D<class_CollisionObject2D>` (``collision``). ``collision`` is a child of ``body`` which is a child of ``node``. Only ``body`` is owned by ``node`` and :ref:`pack<class_PackedScene_method_pack>` will therefore only save those two nodes, but not ``collision``.
 
 
 .. tabs::
@@ -237,7 +237,7 @@ Returns ``true`` if the scene file has nodes.
 
 :ref:`SceneState<class_SceneState>` **get_state** **(** **)** |const|
 
-Returns the ``SceneState`` representing the scene file contents.
+Returns the :ref:`SceneState<class_SceneState>` representing the scene file contents.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_packetpeer.rst b/doc/rst/class_packetpeer.rst
index 6a883200da..e929aa53a4 100644
--- a/doc/rst/class_packetpeer.rst
+++ b/doc/rst/class_packetpeer.rst
@@ -81,7 +81,7 @@ Property Descriptions
 
 Maximum buffer size allowed when encoding :ref:`Variant<class_Variant>`\ s. Raise this value to support heavier memory allocations.
 
-The :ref:`put_var<class_PacketPeer_method_put_var>` method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the :ref:`Variant<class_Variant>`. If the :ref:`Variant<class_Variant>` is bigger than ``encode_buffer_max_size``, the method will error out with :ref:`@GlobalScope.ERR_OUT_OF_MEMORY<class_@GlobalScope_constant_ERR_OUT_OF_MEMORY>`.
+The :ref:`put_var<class_PacketPeer_method_put_var>` method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the :ref:`Variant<class_Variant>`. If the :ref:`Variant<class_Variant>` is bigger than :ref:`encode_buffer_max_size<class_PacketPeer_property_encode_buffer_max_size>`, the method will error out with :ref:`@GlobalScope.ERR_OUT_OF_MEMORY<class_@GlobalScope_constant_ERR_OUT_OF_MEMORY>`.
 
 .. rst-class:: classref-section-separator
 
diff --git a/doc/rst/class_particleprocessmaterial.rst b/doc/rst/class_particleprocessmaterial.rst
index 92a374dd69..eca8109515 100644
--- a/doc/rst/class_particleprocessmaterial.rst
+++ b/doc/rst/class_particleprocessmaterial.rst
@@ -1006,7 +1006,7 @@ Unit vector specifying the particles' emission direction.
 - void **set_emission_box_extents** **(** :ref:`Vector3<class_Vector3>` value **)**
 - :ref:`Vector3<class_Vector3>` **get_emission_box_extents** **(** **)**
 
-The box's extents if ``emission_shape`` is set to :ref:`EMISSION_SHAPE_BOX<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_BOX>`.
+The box's extents if :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>` is set to :ref:`EMISSION_SHAPE_BOX<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_BOX>`.
 
 .. rst-class:: classref-item-separator
 
@@ -1059,7 +1059,7 @@ Particle velocity and rotation will be set by sampling this texture at the same
 - void **set_emission_point_count** **(** :ref:`int<class_int>` value **)**
 - :ref:`int<class_int>` **get_emission_point_count** **(** **)**
 
-The number of emission points if ``emission_shape`` is set to :ref:`EMISSION_SHAPE_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_POINTS>` or :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS>`.
+The number of emission points if :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>` is set to :ref:`EMISSION_SHAPE_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_POINTS>` or :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS>`.
 
 .. rst-class:: classref-item-separator
 
@@ -1178,7 +1178,7 @@ Particles will be emitted inside this region. Use :ref:`EmissionShape<enum_Parti
 - void **set_emission_sphere_radius** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_emission_sphere_radius** **(** **)**
 
-The sphere's radius if ``emission_shape`` is set to :ref:`EMISSION_SHAPE_SPHERE<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_SPHERE>`.
+The sphere's radius if :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>` is set to :ref:`EMISSION_SHAPE_SPHERE<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_SPHERE>`.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_physicsserver2d.rst b/doc/rst/class_physicsserver2d.rst
index f541200104..4999e439af 100644
--- a/doc/rst/class_physicsserver2d.rst
+++ b/doc/rst/class_physicsserver2d.rst
@@ -1263,7 +1263,7 @@ Returns the local transform matrix of the shape with the given index in the area
 
 :ref:`RID<class_RID>` **area_get_space** **(** :ref:`RID<class_RID>` area **)** |const|
 
-Returns the :ref:`RID<class_RID>` of the space assigned to the area. Returns ``RID()`` if no space is assigned.
+Returns the :ref:`RID<class_RID>` of the space assigned to the area. Returns an empty :ref:`RID<class_RID>` if no space is assigned.
 
 .. rst-class:: classref-item-separator
 
@@ -1839,7 +1839,7 @@ Returns the local transform matrix of the shape with the given index in the area
 
 :ref:`RID<class_RID>` **body_get_space** **(** :ref:`RID<class_RID>` body **)** |const|
 
-Returns the :ref:`RID<class_RID>` of the space assigned to the body. Returns ``RID()`` if no space is assigned.
+Returns the :ref:`RID<class_RID>` of the space assigned to the body. Returns an empty :ref:`RID<class_RID>` if no space is assigned.
 
 .. rst-class:: classref-item-separator
 
@@ -2353,7 +2353,7 @@ Makes the joint a groove joint.
 
 void **joint_make_pin** **(** :ref:`RID<class_RID>` joint, :ref:`Vector2<class_Vector2>` anchor, :ref:`RID<class_RID>` body_a, :ref:`RID<class_RID>` body_b=RID() **)**
 
-Makes the joint a pin joint. If ``body_b`` is ``RID()``, then ``body_a`` is pinned to the point ``anchor`` (given in global coordinates); otherwise, ``body_a`` is pinned to ``body_b`` at the point ``anchor`` (given in global coordinates). To set the parameters which are specific to the pin joint, see :ref:`pin_joint_set_param<class_PhysicsServer2D_method_pin_joint_set_param>`.
+Makes the joint a pin joint. If ``body_b`` is an empty :ref:`RID<class_RID>`, then ``body_a`` is pinned to the point ``anchor`` (given in global coordinates); otherwise, ``body_a`` is pinned to ``body_b`` at the point ``anchor`` (given in global coordinates). To set the parameters which are specific to the pin joint, see :ref:`pin_joint_set_param<class_PhysicsServer2D_method_pin_joint_set_param>`.
 
 .. rst-class:: classref-item-separator
 
@@ -2499,19 +2499,19 @@ void **shape_set_data** **(** :ref:`RID<class_RID>` shape, :ref:`Variant<class_V
 
 Sets the shape data that defines the configuration of the shape. The ``data`` to be passed depends on the shape's type (see :ref:`shape_get_type<class_PhysicsServer2D_method_shape_get_type>`):
 
-- :ref:`SHAPE_WORLD_BOUNDARY<class_PhysicsServer2D_constant_SHAPE_WORLD_BOUNDARY>`: an array of length two containing a :ref:`Vector2<class_Vector2>` ``normal`` direction and a ``float`` distance ``d``,
+- :ref:`SHAPE_WORLD_BOUNDARY<class_PhysicsServer2D_constant_SHAPE_WORLD_BOUNDARY>`: an array of length two containing a :ref:`Vector2<class_Vector2>` ``normal`` direction and a :ref:`float<class_float>` distance ``d``,
 
-- :ref:`SHAPE_SEPARATION_RAY<class_PhysicsServer2D_constant_SHAPE_SEPARATION_RAY>`: a dictionary containing the key ``length`` with a ``float`` value and the key ``slide_on_slope`` with a ``bool`` value,
+- :ref:`SHAPE_SEPARATION_RAY<class_PhysicsServer2D_constant_SHAPE_SEPARATION_RAY>`: a dictionary containing the key ``length`` with a :ref:`float<class_float>` value and the key ``slide_on_slope`` with a :ref:`bool<class_bool>` value,
 
 - :ref:`SHAPE_SEGMENT<class_PhysicsServer2D_constant_SHAPE_SEGMENT>`: a :ref:`Rect2<class_Rect2>` ``rect`` containing the first point of the segment in ``rect.position`` and the second point of the segment in ``rect.size``,
 
-- :ref:`SHAPE_CIRCLE<class_PhysicsServer2D_constant_SHAPE_CIRCLE>`: a ``float`` ``radius``,
+- :ref:`SHAPE_CIRCLE<class_PhysicsServer2D_constant_SHAPE_CIRCLE>`: a :ref:`float<class_float>` ``radius``,
 
 - :ref:`SHAPE_RECTANGLE<class_PhysicsServer2D_constant_SHAPE_RECTANGLE>`: a :ref:`Vector2<class_Vector2>` ``half_extents``,
 
-- :ref:`SHAPE_CAPSULE<class_PhysicsServer2D_constant_SHAPE_CAPSULE>`: an array of length two (or a :ref:`Vector2<class_Vector2>`) containing a ``float`` ``height`` and a ``float`` ``radius``,
+- :ref:`SHAPE_CAPSULE<class_PhysicsServer2D_constant_SHAPE_CAPSULE>`: an array of length two (or a :ref:`Vector2<class_Vector2>`) containing a :ref:`float<class_float>` ``height`` and a :ref:`float<class_float>` ``radius``,
 
-- :ref:`SHAPE_CONVEX_POLYGON<class_PhysicsServer2D_constant_SHAPE_CONVEX_POLYGON>`: either a :ref:`PackedVector2Array<class_PackedVector2Array>` of points defining a convex polygon in counterclockwise order (the clockwise outward normal of each segment formed by consecutive points is calculated internally), or a :ref:`PackedFloat32Array<class_PackedFloat32Array>` of length divisible by four so that every 4-tuple of ``float``\ s contains the coordinates of a point followed by the coordinates of the clockwise outward normal vector to the segment between the current point and the next point,
+- :ref:`SHAPE_CONVEX_POLYGON<class_PhysicsServer2D_constant_SHAPE_CONVEX_POLYGON>`: either a :ref:`PackedVector2Array<class_PackedVector2Array>` of points defining a convex polygon in counterclockwise order (the clockwise outward normal of each segment formed by consecutive points is calculated internally), or a :ref:`PackedFloat32Array<class_PackedFloat32Array>` of length divisible by four so that every 4-tuple of :ref:`float<class_float>`\ s contains the coordinates of a point followed by the coordinates of the clockwise outward normal vector to the segment between the current point and the next point,
 
 - :ref:`SHAPE_CONCAVE_POLYGON<class_PhysicsServer2D_constant_SHAPE_CONCAVE_POLYGON>`: a :ref:`PackedVector2Array<class_PackedVector2Array>` of length divisible by two (each pair of points forms one segment).
 
diff --git a/doc/rst/class_physicsserver3d.rst b/doc/rst/class_physicsserver3d.rst
index 563486c58e..b1f658bd06 100644
--- a/doc/rst/class_physicsserver3d.rst
+++ b/doc/rst/class_physicsserver3d.rst
@@ -2537,13 +2537,11 @@ Continuous collision detection tries to predict where a moving body will collide
 
 void **body_set_force_integration_callback** **(** :ref:`RID<class_RID>` body, :ref:`Callable<class_Callable>` callable, :ref:`Variant<class_Variant>` userdata=null **)**
 
-Sets the function used to calculate physics for an object, if that object allows it (see :ref:`body_set_omit_force_integration<class_PhysicsServer3D_method_body_set_omit_force_integration>`).
+Sets the function used to calculate physics for an object, if that object allows it (see :ref:`body_set_omit_force_integration<class_PhysicsServer3D_method_body_set_omit_force_integration>`). The force integration function takes 2 arguments:
 
-The force integration function takes 2 arguments:
+- ``state`` ΓÇö :ref:`PhysicsDirectBodyState3D<class_PhysicsDirectBodyState3D>` used to retrieve and modify the body's state.
 
-\ ``state:`` :ref:`PhysicsDirectBodyState3D<class_PhysicsDirectBodyState3D>` used to retrieve and modify the body's state.
-
-\ ``userdata:`` Optional user data, if it was passed when calling ``body_set_force_integration_callback``.
+- ``userdata`` ΓÇö optional user data passed to :ref:`body_set_force_integration_callback<class_PhysicsServer3D_method_body_set_force_integration_callback>`.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_polygon2d.rst b/doc/rst/class_polygon2d.rst
index 1344c10f94..c5a33bb45d 100644
--- a/doc/rst/class_polygon2d.rst
+++ b/doc/rst/class_polygon2d.rst
@@ -138,7 +138,7 @@ Internal list of :ref:`Bone2D<class_Bone2D>` nodes used by the assigned :ref:`sk
 - void **set_color** **(** :ref:`Color<class_Color>` value **)**
 - :ref:`Color<class_Color>` **get_color** **(** **)**
 
-The polygon's fill color. If ``texture`` is defined, it will be multiplied by this color. It will also be the default color for vertices not set in ``vertex_colors``.
+The polygon's fill color. If :ref:`texture<class_Polygon2D_property_texture>` is set, it will be multiplied by this color. It will also be the default color for vertices not set in :ref:`vertex_colors<class_Polygon2D_property_vertex_colors>`.
 
 .. rst-class:: classref-item-separator
 
@@ -276,7 +276,7 @@ Path to a :ref:`Skeleton2D<class_Skeleton2D>` node used for skeleton-based defor
 - void **set_texture** **(** :ref:`Texture2D<class_Texture2D>` value **)**
 - :ref:`Texture2D<class_Texture2D>` **get_texture** **(** **)**
 
-The polygon's fill texture. Use ``uv`` to set texture coordinates.
+The polygon's fill texture. Use :ref:`uv<class_Polygon2D_property_uv>` to set texture coordinates.
 
 .. rst-class:: classref-item-separator
 
@@ -293,7 +293,7 @@ The polygon's fill texture. Use ``uv`` to set texture coordinates.
 - void **set_texture_offset** **(** :ref:`Vector2<class_Vector2>` value **)**
 - :ref:`Vector2<class_Vector2>` **get_texture_offset** **(** **)**
 
-Amount to offset the polygon's ``texture``. If ``(0, 0)`` the texture's origin (its top-left corner) will be placed at the polygon's ``position``.
+Amount to offset the polygon's :ref:`texture<class_Polygon2D_property_texture>`. If set to ``Vector2(0, 0)`` the texture's origin (its top-left corner) will be placed at the polygon's position.
 
 .. rst-class:: classref-item-separator
 
@@ -327,7 +327,7 @@ The texture's rotation in radians.
 - void **set_texture_scale** **(** :ref:`Vector2<class_Vector2>` value **)**
 - :ref:`Vector2<class_Vector2>` **get_texture_scale** **(** **)**
 
-Amount to multiply the ``uv`` coordinates when using a ``texture``. Larger values make the texture smaller, and vice versa.
+Amount to multiply the :ref:`uv<class_Polygon2D_property_uv>` coordinates when using :ref:`texture<class_Polygon2D_property_texture>`. Larger values make the texture smaller, and vice versa.
 
 .. rst-class:: classref-item-separator
 
@@ -344,7 +344,7 @@ Amount to multiply the ``uv`` coordinates when using a ``texture``. Larger value
 - void **set_uv** **(** :ref:`PackedVector2Array<class_PackedVector2Array>` value **)**
 - :ref:`PackedVector2Array<class_PackedVector2Array>` **get_uv** **(** **)**
 
-Texture coordinates for each vertex of the polygon. There should be one ``uv`` per polygon vertex. If there are fewer, undefined vertices will use ``(0, 0)``.
+Texture coordinates for each vertex of the polygon. There should be one UV value per polygon vertex. If there are fewer, undefined vertices will use ``Vector2(0, 0)``.
 
 .. rst-class:: classref-item-separator
 
@@ -361,7 +361,7 @@ Texture coordinates for each vertex of the polygon. There should be one ``uv`` p
 - void **set_vertex_colors** **(** :ref:`PackedColorArray<class_PackedColorArray>` value **)**
 - :ref:`PackedColorArray<class_PackedColorArray>` **get_vertex_colors** **(** **)**
 
-Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use ``color``.
+Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use :ref:`color<class_Polygon2D_property_color>`.
 
 .. rst-class:: classref-section-separator
 
diff --git a/doc/rst/class_projectsettings.rst b/doc/rst/class_projectsettings.rst
index 2d00c8019f..7d6908032a 100644
--- a/doc/rst/class_projectsettings.rst
+++ b/doc/rst/class_projectsettings.rst
@@ -11057,7 +11057,7 @@ Specify whether OpenXR should be configured for an HMD or a hand held device.
 
 :ref:`bool<class_bool>` **xr/openxr/foveation_dynamic** = ``false``
 
-If true and foveation is supported, will automatically adjust foveation level based on framerate up to the level set on ``xr/openxr/foveation_level``.
+If true and foveation is supported, will automatically adjust foveation level based on framerate up to the level set on :ref:`xr/openxr/foveation_level<class_ProjectSettings_property_xr/openxr/foveation_level>`.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_quaternion.rst b/doc/rst/class_quaternion.rst
index 91f939171a..6991799216 100644
--- a/doc/rst/class_quaternion.rst
+++ b/doc/rst/class_quaternion.rst
@@ -550,7 +550,7 @@ Performs a spherical cubic interpolation between quaternions ``pre_a``, this vec
 
 Performs a spherical cubic interpolation between quaternions ``pre_a``, this vector, ``b``, and ``post_b``, by the given amount ``weight``.
 
-It can perform smoother interpolation than ``spherical_cubic_interpolate()`` by the time values.
+It can perform smoother interpolation than :ref:`spherical_cubic_interpolate<class_Quaternion_method_spherical_cubic_interpolate>` by the time values.
 
 .. rst-class:: classref-section-separator
 
diff --git a/doc/rst/class_richtextlabel.rst b/doc/rst/class_richtextlabel.rst
index 0dfe967090..a568037b10 100644
--- a/doc/rst/class_richtextlabel.rst
+++ b/doc/rst/class_richtextlabel.rst
@@ -854,7 +854,7 @@ The number of spaces associated with a single tab length. Does not affect ``\t``
 
 The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.
 
-\ **Note:** If :ref:`bbcode_enabled<class_RichTextLabel_property_bbcode_enabled>` is ``true``, it is unadvised to use the ``+=`` operator with ``text`` (e.g. ``text += "some string"``) as it replaces the whole text and can cause slowdowns. It will also erase all BBCode that was added to stack using ``push_*`` methods. Use :ref:`append_text<class_RichTextLabel_method_append_text>` for adding text instead, unless you absolutely need to close a tag that was opened in an earlier method call.
+\ **Note:** If :ref:`bbcode_enabled<class_RichTextLabel_property_bbcode_enabled>` is ``true``, it is unadvised to use the ``+=`` operator with :ref:`text<class_RichTextLabel_property_text>` (e.g. ``text += "some string"``) as it replaces the whole text and can cause slowdowns. It will also erase all BBCode that was added to stack using ``push_*`` methods. Use :ref:`append_text<class_RichTextLabel_method_append_text>` for adding text instead, unless you absolutely need to close a tag that was opened in an earlier method call.
 
 .. rst-class:: classref-item-separator
 
@@ -2198,7 +2198,7 @@ The default text font size.
 
 :ref:`StyleBox<class_StyleBox>` **focus**
 
-The background used when the **RichTextLabel** is focused. The ``focus`` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
+The background used when the **RichTextLabel** is focused. The :ref:`focus<class_RichTextLabel_theme_style_focus>` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_rigidbody3d.rst b/doc/rst/class_rigidbody3d.rst
index 74dccf6d74..13f2c841b5 100644
--- a/doc/rst/class_rigidbody3d.rst
+++ b/doc/rst/class_rigidbody3d.rst
@@ -584,7 +584,7 @@ This is multiplied by the global 3D gravity setting found in **Project > Project
 
 The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body on each axis. The moment of inertia is usually computed automatically from the mass and the shapes, but this property allows you to set a custom value.
 
-If set to ``Vector3.ZERO``, inertia is automatically computed (default value).
+If set to :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`, inertia is automatically computed (default value).
 
 \ **Note:** This value does not change when inertia is automatically computed. Use :ref:`PhysicsServer3D<class_PhysicsServer3D>` to get the computed inertia.
 
diff --git a/doc/rst/class_slider.rst b/doc/rst/class_slider.rst
index cc62a0687d..883712716d 100644
--- a/doc/rst/class_slider.rst
+++ b/doc/rst/class_slider.rst
@@ -202,7 +202,7 @@ Boolean constant. If ``1``, the grabber texture size will be ignored and it will
 
 :ref:`int<class_int>` **grabber_offset** = ``0``
 
-Vertical/horizontal offset of the grabber.
+Vertical or horizontal offset of the grabber.
 
 .. rst-class:: classref-item-separator
 
@@ -262,7 +262,7 @@ The texture for the ticks, visible when :ref:`tick_count<class_Slider_property_t
 
 :ref:`StyleBox<class_StyleBox>` **grabber_area**
 
-The background of the area to the left/bottom of the grabber.
+The background of the area to the left or bottom of the grabber.
 
 .. rst-class:: classref-item-separator
 
@@ -274,7 +274,7 @@ The background of the area to the left/bottom of the grabber.
 
 :ref:`StyleBox<class_StyleBox>` **grabber_area_highlight**
 
-The background of the area to the left/bottom of the grabber that displays when it's being hovered or focused.
+The background of the area to the left or bottom of the grabber that displays when it's being hovered or focused.
 
 .. rst-class:: classref-item-separator
 
@@ -286,7 +286,7 @@ The background of the area to the left/bottom of the grabber that displays when
 
 :ref:`StyleBox<class_StyleBox>` **slider**
 
-The background for the whole slider. Determines the height/width of the ``grabber_area``.
+The background for the whole slider. Affects the height or width of the :ref:`grabber_area<class_Slider_theme_style_grabber_area>`.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
diff --git a/doc/rst/class_spinbox.rst b/doc/rst/class_spinbox.rst
index 0537355a96..80055f8fcf 100644
--- a/doc/rst/class_spinbox.rst
+++ b/doc/rst/class_spinbox.rst
@@ -143,7 +143,7 @@ Changes the alignment of the underlying :ref:`LineEdit<class_LineEdit>`.
 - void **set_custom_arrow_step** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_custom_arrow_step** **(** **)**
 
-If not ``0``, ``value`` will always be rounded to a multiple of ``custom_arrow_step`` when interacting with the arrow buttons of the **SpinBox**.
+If not ``0``, :ref:`Range.value<class_Range_property_value>` will always be rounded to a multiple of :ref:`custom_arrow_step<class_SpinBox_property_custom_arrow_step>` when interacting with the arrow buttons of the **SpinBox**.
 
 .. rst-class:: classref-item-separator
 
@@ -177,7 +177,7 @@ If ``true``, the **SpinBox** will be editable. Otherwise, it will be read only.
 - void **set_prefix** **(** :ref:`String<class_String>` value **)**
 - :ref:`String<class_String>` **get_prefix** **(** **)**
 
-Adds the specified ``prefix`` string before the numerical value of the **SpinBox**.
+Adds the specified prefix string before the numerical value of the **SpinBox**.
 
 .. rst-class:: classref-item-separator
 
@@ -211,7 +211,7 @@ If ``true``, the **SpinBox** will select the whole text when the :ref:`LineEdit<
 - void **set_suffix** **(** :ref:`String<class_String>` value **)**
 - :ref:`String<class_String>` **get_suffix** **(** **)**
 
-Adds the specified ``suffix`` string after the numerical value of the **SpinBox**.
+Adds the specified suffix string after the numerical value of the **SpinBox**.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_textedit.rst b/doc/rst/class_textedit.rst
index bf966c36d9..d9c3fdda7e 100644
--- a/doc/rst/class_textedit.rst
+++ b/doc/rst/class_textedit.rst
@@ -3699,7 +3699,7 @@ Sets a custom :ref:`Texture2D<class_Texture2D>` for tab text characters.
 
 :ref:`StyleBox<class_StyleBox>` **focus**
 
-Sets the :ref:`StyleBox<class_StyleBox>` when in focus. The ``focus`` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
+Sets the :ref:`StyleBox<class_StyleBox>` when in focus. The :ref:`focus<class_TextEdit_theme_style_focus>` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_textserver.rst b/doc/rst/class_textserver.rst
index 7b922071bc..d14776f2c3 100644
--- a/doc/rst/class_textserver.rst
+++ b/doc/rst/class_textserver.rst
@@ -1454,9 +1454,7 @@ BiDi override for email.
 
 :ref:`StructuredTextParser<enum_TextServer_StructuredTextParser>` **STRUCTURED_TEXT_LIST** = ``4``
 
-BiDi override for lists.
-
-Structured text options: list separator ``String``.
+BiDi override for lists. Structured text options: list separator :ref:`String<class_String>`.
 
 .. _class_TextServer_constant_STRUCTURED_TEXT_GDSCRIPT:
 
@@ -1747,7 +1745,7 @@ Returns glyph advance (offset of the next glyph).
 
 :ref:`Dictionary<class_Dictionary>` **font_get_glyph_contours** **(** :ref:`RID<class_RID>` font, :ref:`int<class_int>` size, :ref:`int<class_int>` index **)** |const|
 
-Returns outline contours of the glyph as a ``Dictionary`` with the following contents:
+Returns outline contours of the glyph as a :ref:`Dictionary<class_Dictionary>` with the following contents:
 
 \ ``points``         - :ref:`PackedVector3Array<class_PackedVector3Array>`, containing outline points. ``x`` and ``y`` are point coordinates. ``z`` is the type of the point, using the :ref:`ContourPointTag<enum_TextServer_ContourPointTag>` values.
 
@@ -2033,7 +2031,7 @@ Returns list of script support overrides.
 
 :ref:`Vector2i[]<class_Vector2i>` **font_get_size_cache_list** **(** :ref:`RID<class_RID>` font_rid **)** |const|
 
-Returns list of the font sizes in the cache. Each size is ``Vector2i`` with font size and outline size.
+Returns list of the font sizes in the cache. Each size is :ref:`Vector2i<class_Vector2i>` with font size and outline size.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_textureprogressbar.rst b/doc/rst/class_textureprogressbar.rst
index bc8a551540..d8ab21094c 100644
--- a/doc/rst/class_textureprogressbar.rst
+++ b/doc/rst/class_textureprogressbar.rst
@@ -415,7 +415,7 @@ The offset of :ref:`texture_progress<class_TextureProgressBar_property_texture_p
 - void **set_tint_over** **(** :ref:`Color<class_Color>` value **)**
 - :ref:`Color<class_Color>` **get_tint_over** **(** **)**
 
-Multiplies the color of the bar's ``texture_over`` texture. The effect is similar to :ref:`CanvasItem.modulate<class_CanvasItem_property_modulate>`, except it only affects this specific texture instead of the entire node.
+Multiplies the color of the bar's :ref:`texture_over<class_TextureProgressBar_property_texture_over>` texture. The effect is similar to :ref:`CanvasItem.modulate<class_CanvasItem_property_modulate>`, except it only affects this specific texture instead of the entire node.
 
 .. rst-class:: classref-item-separator
 
@@ -432,7 +432,7 @@ Multiplies the color of the bar's ``texture_over`` texture. The effect is simila
 - void **set_tint_progress** **(** :ref:`Color<class_Color>` value **)**
 - :ref:`Color<class_Color>` **get_tint_progress** **(** **)**
 
-Multiplies the color of the bar's ``texture_progress`` texture.
+Multiplies the color of the bar's :ref:`texture_progress<class_TextureProgressBar_property_texture_progress>` texture.
 
 .. rst-class:: classref-item-separator
 
@@ -449,7 +449,7 @@ Multiplies the color of the bar's ``texture_progress`` texture.
 - void **set_tint_under** **(** :ref:`Color<class_Color>` value **)**
 - :ref:`Color<class_Color>` **get_tint_under** **(** **)**
 
-Multiplies the color of the bar's ``texture_under`` texture.
+Multiplies the color of the bar's :ref:`texture_under<class_TextureProgressBar_property_texture_under>` texture.
 
 .. rst-class:: classref-section-separator
 
diff --git a/doc/rst/class_tileset.rst b/doc/rst/class_tileset.rst
index d2bf5320fb..e46cf3364d 100644
--- a/doc/rst/class_tileset.rst
+++ b/doc/rst/class_tileset.rst
@@ -886,7 +886,7 @@ Returns the navigation layers count.
 
 :ref:`int<class_int>` **get_next_source_id** **(** **)** |const|
 
-Returns a new unused source ID. This generated ID is the same that a call to ``add_source`` would return.
+Returns a new unused source ID. This generated ID is the same that a call to :ref:`add_source<class_TileSet_method_add_source>` would return.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_tilesetatlassource.rst b/doc/rst/class_tilesetatlassource.rst
index 01cd62949c..8b2f0d31f4 100644
--- a/doc/rst/class_tilesetatlassource.rst
+++ b/doc/rst/class_tilesetatlassource.rst
@@ -345,7 +345,7 @@ Creates a new tile at coordinates ``atlas_coords`` with the given ``size``.
 
 :ref:`Vector2i<class_Vector2i>` **get_atlas_grid_size** **(** **)** |const|
 
-Returns the atlas grid size, which depends on how many tiles can fit in the texture. It thus depends on the Texture's size, the atlas ``margins`` the tiles' ``texture_region_size``.
+Returns the atlas grid size, which depends on how many tiles can fit in the texture. It thus depends on the :ref:`texture<class_TileSetAtlasSource_property_texture>`'s size, the atlas :ref:`margins<class_TileSetAtlasSource_property_margins>`, and the tiles' :ref:`texture_region_size<class_TileSetAtlasSource_property_texture_region_size>`.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_transform2d.rst b/doc/rst/class_transform2d.rst
index 3dd5d2bce6..56c73be75d 100644
--- a/doc/rst/class_transform2d.rst
+++ b/doc/rst/class_transform2d.rst
@@ -438,7 +438,7 @@ Returns ``true`` if the transform's basis is conformal, meaning it preserves ang
 
 :ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`Transform2D<class_Transform2D>` xform **)** |const|
 
-Returns ``true`` if this transform and ``xform`` are approximately equal, by calling ``is_equal_approx`` on each component.
+Returns ``true`` if this transform and ``xform`` are approximately equal, by running :ref:`@GlobalScope.is_equal_approx<class_@GlobalScope_method_is_equal_approx>` on each component.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_transform3d.rst b/doc/rst/class_transform3d.rst
index 00d5abdd0f..0e3b350a94 100644
--- a/doc/rst/class_transform3d.rst
+++ b/doc/rst/class_transform3d.rst
@@ -318,7 +318,7 @@ Returns the inverse of the transform, under the assumption that the transformati
 
 :ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`Transform3D<class_Transform3D>` xform **)** |const|
 
-Returns ``true`` if this transform and ``xform`` are approximately equal, by calling ``is_equal_approx`` on each component.
+Returns ``true`` if this transform and ``xform`` are approximately equal, by running :ref:`@GlobalScope.is_equal_approx<class_@GlobalScope_method_is_equal_approx>` on each component.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_tree.rst b/doc/rst/class_tree.rst
index 93322a7f13..a8080071e4 100644
--- a/doc/rst/class_tree.rst
+++ b/doc/rst/class_tree.rst
@@ -477,7 +477,7 @@ Emitted when an item is selected.
 
 **multi_selected** **(** :ref:`TreeItem<class_TreeItem>` item, :ref:`int<class_int>` column, :ref:`bool<class_bool>` selected **)**
 
-Emitted instead of ``item_selected`` if ``select_mode`` is :ref:`SELECT_MULTI<class_Tree_constant_SELECT_MULTI>`.
+Emitted instead of :ref:`item_selected<class_Tree_signal_item_selected>` if :ref:`select_mode<class_Tree_property_select_mode>` is set to :ref:`SELECT_MULTI<class_Tree_constant_SELECT_MULTI>`.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_variant.rst b/doc/rst/class_variant.rst
index 4d90ce67ae..d01ffcd5e7 100644
--- a/doc/rst/class_variant.rst
+++ b/doc/rst/class_variant.rst
@@ -49,7 +49,7 @@ Godot tracks all scripting API variables within Variants. Without even realizing
 
 - GDScript automatically wrap values in them. It keeps all data in plain Variants by default and then optionally enforces custom static typing rules on variable types.
 
-- C# is statically typed, but uses its own implementation of the ``Variant`` type in place of Godot's Variant class when it needs to represent a dynamic value. A ``Variant`` can be assigned any compatible type implicitly but converting requires an explicit cast.
+- C# is statically typed, but uses its own implementation of the Variant type in place of Godot's **Variant** class when it needs to represent a dynamic value. C# Variant can be assigned any compatible type implicitly but converting requires an explicit cast.
 
 The global :ref:`@GlobalScope.typeof<class_@GlobalScope_method_typeof>` function returns the enumerated value of the Variant type stored in the current variable (see :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>`).
 
diff --git a/doc/rst/class_vector2.rst b/doc/rst/class_vector2.rst
index 9bb0630594..5f387648ef 100644
--- a/doc/rst/class_vector2.rst
+++ b/doc/rst/class_vector2.rst
@@ -548,7 +548,7 @@ Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and
 
 Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and ``post_b`` as handles, and returns the result at position ``weight``. ``weight`` is on the range of 0.0 to 1.0, representing the amount of interpolation.
 
-It can perform smoother interpolation than ``cubic_interpolate()`` by the time values.
+It can perform smoother interpolation than :ref:`cubic_interpolate<class_Vector2_method_cubic_interpolate>` by the time values.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_vector3.rst b/doc/rst/class_vector3.rst
index 9815e8d7f8..73ba23f158 100644
--- a/doc/rst/class_vector3.rst
+++ b/doc/rst/class_vector3.rst
@@ -586,7 +586,7 @@ Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and
 
 Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and ``post_b`` as handles, and returns the result at position ``weight``. ``weight`` is on the range of 0.0 to 1.0, representing the amount of interpolation.
 
-It can perform smoother interpolation than ``cubic_interpolate()`` by the time values.
+It can perform smoother interpolation than :ref:`cubic_interpolate<class_Vector3_method_cubic_interpolate>` by the time values.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_vector4.rst b/doc/rst/class_vector4.rst
index 63e4537a23..8866fc051a 100644
--- a/doc/rst/class_vector4.rst
+++ b/doc/rst/class_vector4.rst
@@ -399,7 +399,7 @@ Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and
 
 Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and ``post_b`` as handles, and returns the result at position ``weight``. ``weight`` is on the range of 0.0 to 1.0, representing the amount of interpolation.
 
-It can perform smoother interpolation than ``cubic_interpolate()`` by the time values.
+It can perform smoother interpolation than :ref:`cubic_interpolate<class_Vector4_method_cubic_interpolate>` by the time values.
 
 .. rst-class:: classref-item-separator
 
diff --git a/doc/rst/class_visualshadernodeswitch.rst b/doc/rst/class_visualshadernodeswitch.rst
index 55e7c9cf65..2cbb9b7e50 100644
--- a/doc/rst/class_visualshadernodeswitch.rst
+++ b/doc/rst/class_visualshadernodeswitch.rst
@@ -19,7 +19,7 @@ A selector function for use within the visual shader graph.
 Description
 -----------
 
-Returns an associated value of the ``op_type`` type if the provided boolean value is ``true`` or ``false``.
+Returns an associated value of the :ref:`op_type<class_VisualShaderNodeSwitch_property_op_type>` type if the provided boolean value is ``true`` or ``false``.
 
 .. rst-class:: classref-reftable-group
 
diff --git a/doc/rst/class_worldboundaryshape2d.rst b/doc/rst/class_worldboundaryshape2d.rst
index 7df38521e8..a1b56eb9a5 100644
--- a/doc/rst/class_worldboundaryshape2d.rst
+++ b/doc/rst/class_worldboundaryshape2d.rst
@@ -74,7 +74,7 @@ In the scalar equation of the line ``ax + by = d``, this is ``d``, while the ``(
 - void **set_normal** **(** :ref:`Vector2<class_Vector2>` value **)**
 - :ref:`Vector2<class_Vector2>` **get_normal** **(** **)**
 
-The line's normal, typically a unit vector. Its direction indicates the non-colliding half-plane. Can be of any length but zero. Defaults to ``Vector2.UP``.
+The line's normal, typically a unit vector. Its direction indicates the non-colliding half-plane. Can be of any length but zero. Defaults to :ref:`Vector2.UP<class_Vector2_constant_UP>`.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

@raulsntos

This comment was marked as resolved.

@YuriSizov
Copy link
Contributor Author

@raulsntos How can I test it? Just generate glue and check relevant XML documentation comments?

@raulsntos
Copy link
Member

raulsntos commented Oct 3, 2023

Yeah, if there's malformed XML documentation there should also be warnings when building the C# projects but it'll likely be impossible to see them among the many warnings that we currently have.

I have now generated the glue and took a quick look at some XML documentation comments and haven't seen any obvious problems.

@@ -16,7 +16,7 @@
<param index="1" name="event" type="InputEvent" />
<param index="2" name="shape_idx" type="int" />
<description>
Accepts unhandled [InputEvent]s. [param shape_idx] is the child index of the clicked [Shape2D]. Connect to the [code]input_event[/code] signal to easily pick up these events.
Accepts unhandled [InputEvent]s. [param shape_idx] is the child index of the clicked [Shape2D]. Connect to [signal input_event] to easily pick up these events.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Random thought, but since this name might be ambiguous, I understand why one might want to make "signal" explicit in the text so it's not confused to methods like _input_event in this same class.

I'm not advocating to change it back, but it makes me think that we should probably aim to have a tooltip on all those hyperlinks providing context on the type of API, and maybe its short description.

This would prevent having to click a link to know what it's referring to exactly, before going back in history where one was.

Totally for a separate PR / proposal, and after Yeldham's refactor is merged.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not advocating to change it back, but it makes me think that we should probably aim to have a tooltip on all those hyperlinks providing context on the type of API, and maybe its short description.

I was thinking an icon, but we should also be able to add tooltips now, yeah.

@@ -30,16 +30,16 @@
</tutorials>
<theme_items>
<theme_item name="margin_bottom" data_type="constant" type="int" default="0">
All direct children of [MarginContainer] will have a bottom margin of [code]margin_bottom[/code] pixels.
Offsets towards the inside direct children of the container by this amount of pixels from the bottom.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with rephrasing, but I think the new one is still hard to parse.
It took me multiple attempts to break down in individual semantic elements and understand the flow of that sentence. "Offsets towards the inside" used as a verb especially makes it complex.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that one is hard to get right. I could use "insets" perhaps, instead of the whole "offsets towards the inside", though I consider the "inset" word to be a bit less clear to non-English speakers for no particular reason.

doc/classes/Polygon2D.xml Outdated Show resolved Hide resolved
editor/editor_help.cpp Outdated Show resolved Hide resolved
Copy link
Member

@akien-mga akien-mga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Read through all changes, seems good to go.

@YuriSizov YuriSizov marked this pull request as draft October 3, 2023 13:09
This commit also adds means to manually disable warnings
in `code` tags where it's a false positive with the new
`skip-lint` attribute.

Warnings are now enabled on CI to prevent future errors.
@YuriSizov YuriSizov marked this pull request as ready for review October 3, 2023 13:49
@YuriSizov YuriSizov requested a review from a team as a code owner October 3, 2023 13:49
@YuriSizov
Copy link
Contributor Author

Applied suggestions and added necessary changes to the C# bindings generator. Not sure how to improve "Offsets towards the inside", so left it as is for now.

Copy link
Member

@raulsntos raulsntos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes to the C# bindings generator look good to me.

I noticed a typo in the Light3D documentation while testing this. The BAKE_DISABLED constant is not closing a member tag. Not really related to this PR though, but here's a diff anyway:

diff --git a/doc/classes/Light3D.xml b/doc/classes/Light3D.xml
index ebb36ba92be..df3d802e16e 100644
--- a/doc/classes/Light3D.xml
+++ b/doc/classes/Light3D.xml
@@ -199,7 +199,7 @@
 		</constant>
 		<constant name="BAKE_DISABLED" value="0" enum="BakeMode">
 			Light is ignored when baking. This is the fastest mode, but the light will be taken into account when baking global illumination. This mode should generally be used for dynamic lights that change quickly, as the effect of global illumination is less noticeable on those lights.
-			[b]Note:[/b] Hiding a light does [i]not[/i] affect baking [LightmapGI]. Hiding a light will still affect baking [VoxelGI] and SDFGI (see [member Environment.sdfgi_enabled).
+			[b]Note:[/b] Hiding a light does [i]not[/i] affect baking [LightmapGI]. Hiding a light will still affect baking [VoxelGI] and SDFGI (see [member Environment.sdfgi_enabled]).
 		</constant>
 		<constant name="BAKE_STATIC" value="1" enum="BakeMode">
 			Light is taken into account in static baking ([VoxelGI], [LightmapGI], SDFGI ([member Environment.sdfgi_enabled])). The light can be moved around or modified, but its global illumination will not update in real-time. This is suitable for subtle changes (such as flickering torches), but generally not large changes such as toggling a light on and off.

@akien-mga
Copy link
Member

I noticed a typo in the Light3D documentation while testing this. The BAKE_DISABLED constant is not closing a member tag.

This would be worth adding to the validation checks in make_rst.py, but that can be a follow-up PR.

@YuriSizov
Copy link
Contributor Author

This would be worth adding to the validation checks in make_rst.py, but that can be a follow-up PR.

That's a good way to keep me occupied :P I'll see if I can add a check and fix this and anything else I can find in a follow-up.

@akien-mga akien-mga merged commit 1e54450 into godotengine:master Oct 4, 2023
15 checks passed
@akien-mga
Copy link
Member

Thanks!

@YuriSizov YuriSizov deleted the rst-validate-with-exceptions branch October 4, 2023 14:40
@Mickeon Mickeon mentioned this pull request Dec 30, 2023
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants