2
0
mirror of https://github.com/godotengine/godot.git synced 2024-12-21 10:25:24 +08:00

Tweak unknown annotation GDScript error for @deprecated/@experimental/@tutorial

These annotations don't exist at a source level, so the error messages
point to the documentation comment syntax.
This commit is contained in:
Hugo Locurcio 2024-12-08 15:34:01 +01:00
parent aa8d9b83f6
commit 6095a37d64
No known key found for this signature in database
GPG Key ID: 39E8F8BE30B0A49C
7 changed files with 31 additions and 1 deletions

View File

@ -1624,7 +1624,15 @@ GDScriptParser::AnnotationNode *GDScriptParser::parse_annotation(uint32_t p_vali
bool valid = true;
if (!valid_annotations.has(annotation->name)) {
push_error(vformat(R"(Unrecognized annotation: "%s".)", annotation->name));
if (annotation->name == "@deprecated") {
push_error(R"("@deprecated" annotation does not exist. Use "## @deprecated: Reason here." instead.)");
} else if (annotation->name == "@experimental") {
push_error(R"("@experimental" annotation does not exist. Use "## @experimental: Reason here." instead.)");
} else if (annotation->name == "@tutorial") {
push_error(R"("@tutorial" annotation does not exist. Use "## @tutorial(Title): https://example.com" instead.)");
} else {
push_error(vformat(R"(Unrecognized annotation: "%s".)", annotation->name));
}
valid = false;
}

View File

@ -0,0 +1,5 @@
# This annotation should be used within a documentation comment instead:
# ## @deprecated: Reason here.
@deprecated
var some_variable = "value"

View File

@ -0,0 +1,2 @@
GDTEST_PARSER_ERROR
"@deprecated" annotation does not exist. Use "## @deprecated: Reason here." instead.

View File

@ -0,0 +1,6 @@
# This annotation should be used within a documentation comment instead:
# ## @experimental: Reason here.
@experimental("This function isn't implemented yet.")
func say_hello():
pass

View File

@ -0,0 +1,2 @@
GDTEST_PARSER_ERROR
"@experimental" annotation does not exist. Use "## @experimental: Reason here." instead.

View File

@ -0,0 +1,5 @@
# This annotation should be used within a documentation comment instead:
# ## @tutorial(Title): https://example.com
@tutorial("https://example.com")
const SOME_CONSTANT = "value"

View File

@ -0,0 +1,2 @@
GDTEST_PARSER_ERROR
"@tutorial" annotation does not exist. Use "## @tutorial(Title): https://example.com" instead.