Documentation: Add support for deprecated/experimental messages
This commit is contained in:
parent
907db8eebc
commit
af28f87791
75 changed files with 1165 additions and 738 deletions
|
|
@ -57,12 +57,11 @@
|
|||
[/codeblock]
|
||||
</description>
|
||||
</method>
|
||||
<method name="convert" is_deprecated="true">
|
||||
<method name="convert" deprecated="Use [method @GlobalScope.type_convert] instead.">
|
||||
<return type="Variant" />
|
||||
<param index="0" name="what" type="Variant" />
|
||||
<param index="1" name="type" type="int" />
|
||||
<description>
|
||||
[i]Deprecated.[/i] Use [method @GlobalScope.type_convert] instead.
|
||||
Converts [param what] to [param type] in the best way possible. The [param type] uses the [enum Variant.Type] values.
|
||||
[codeblock]
|
||||
var a = [4, 2.5, 1.2]
|
||||
|
|
|
|||
|
|
@ -268,7 +268,9 @@ void GDScriptDocGen::_generate_docs(GDScript *p_script, const GDP::ClassNode *p_
|
|||
doc.tutorials.append(td);
|
||||
}
|
||||
doc.is_deprecated = p_class->doc_data.is_deprecated;
|
||||
doc.deprecated_message = p_class->doc_data.deprecated_message;
|
||||
doc.is_experimental = p_class->doc_data.is_experimental;
|
||||
doc.experimental_message = p_class->doc_data.experimental_message;
|
||||
|
||||
for (const GDP::ClassNode::Member &member : p_class->members) {
|
||||
switch (member.type) {
|
||||
|
|
@ -295,7 +297,9 @@ void GDScriptDocGen::_generate_docs(GDScript *p_script, const GDP::ClassNode *p_
|
|||
const_doc.is_value_valid = true;
|
||||
const_doc.description = m_const->doc_data.description;
|
||||
const_doc.is_deprecated = m_const->doc_data.is_deprecated;
|
||||
const_doc.deprecated_message = m_const->doc_data.deprecated_message;
|
||||
const_doc.is_experimental = m_const->doc_data.is_experimental;
|
||||
const_doc.experimental_message = m_const->doc_data.experimental_message;
|
||||
doc.constants.push_back(const_doc);
|
||||
} break;
|
||||
|
||||
|
|
@ -309,7 +313,9 @@ void GDScriptDocGen::_generate_docs(GDScript *p_script, const GDP::ClassNode *p_
|
|||
method_doc.name = func_name;
|
||||
method_doc.description = m_func->doc_data.description;
|
||||
method_doc.is_deprecated = m_func->doc_data.is_deprecated;
|
||||
method_doc.deprecated_message = m_func->doc_data.deprecated_message;
|
||||
method_doc.is_experimental = m_func->doc_data.is_experimental;
|
||||
method_doc.experimental_message = m_func->doc_data.experimental_message;
|
||||
method_doc.qualifiers = m_func->is_static ? "static" : "";
|
||||
|
||||
if (m_func->return_type) {
|
||||
|
|
@ -349,7 +355,9 @@ void GDScriptDocGen::_generate_docs(GDScript *p_script, const GDP::ClassNode *p_
|
|||
signal_doc.name = signal_name;
|
||||
signal_doc.description = m_signal->doc_data.description;
|
||||
signal_doc.is_deprecated = m_signal->doc_data.is_deprecated;
|
||||
signal_doc.deprecated_message = m_signal->doc_data.deprecated_message;
|
||||
signal_doc.is_experimental = m_signal->doc_data.is_experimental;
|
||||
signal_doc.experimental_message = m_signal->doc_data.experimental_message;
|
||||
|
||||
for (const GDScriptParser::ParameterNode *p : m_signal->parameters) {
|
||||
DocData::ArgumentDoc arg_doc;
|
||||
|
|
@ -371,7 +379,9 @@ void GDScriptDocGen::_generate_docs(GDScript *p_script, const GDP::ClassNode *p_
|
|||
prop_doc.name = var_name;
|
||||
prop_doc.description = m_var->doc_data.description;
|
||||
prop_doc.is_deprecated = m_var->doc_data.is_deprecated;
|
||||
prop_doc.deprecated_message = m_var->doc_data.deprecated_message;
|
||||
prop_doc.is_experimental = m_var->doc_data.is_experimental;
|
||||
prop_doc.experimental_message = m_var->doc_data.experimental_message;
|
||||
_doctype_from_gdtype(m_var->get_datatype(), prop_doc.type, prop_doc.enumeration);
|
||||
|
||||
switch (m_var->property) {
|
||||
|
|
@ -417,7 +427,9 @@ void GDScriptDocGen::_generate_docs(GDScript *p_script, const GDP::ClassNode *p_
|
|||
DocData::EnumDoc enum_doc;
|
||||
enum_doc.description = m_enum->doc_data.description;
|
||||
enum_doc.is_deprecated = m_enum->doc_data.is_deprecated;
|
||||
enum_doc.deprecated_message = m_enum->doc_data.deprecated_message;
|
||||
enum_doc.is_experimental = m_enum->doc_data.is_experimental;
|
||||
enum_doc.experimental_message = m_enum->doc_data.experimental_message;
|
||||
doc.enums[name] = enum_doc;
|
||||
|
||||
for (const GDP::EnumNode::Value &val : m_enum->values) {
|
||||
|
|
@ -428,7 +440,9 @@ void GDScriptDocGen::_generate_docs(GDScript *p_script, const GDP::ClassNode *p_
|
|||
const_doc.enumeration = name;
|
||||
const_doc.description = val.doc_data.description;
|
||||
const_doc.is_deprecated = val.doc_data.is_deprecated;
|
||||
const_doc.deprecated_message = val.doc_data.deprecated_message;
|
||||
const_doc.is_experimental = val.doc_data.is_experimental;
|
||||
const_doc.experimental_message = val.doc_data.experimental_message;
|
||||
|
||||
doc.constants.push_back(const_doc);
|
||||
}
|
||||
|
|
@ -448,7 +462,9 @@ void GDScriptDocGen::_generate_docs(GDScript *p_script, const GDP::ClassNode *p_
|
|||
const_doc.enumeration = "@unnamed_enums";
|
||||
const_doc.description = m_enum_val.doc_data.description;
|
||||
const_doc.is_deprecated = m_enum_val.doc_data.is_deprecated;
|
||||
const_doc.deprecated_message = m_enum_val.doc_data.deprecated_message;
|
||||
const_doc.is_experimental = m_enum_val.doc_data.is_experimental;
|
||||
const_doc.experimental_message = m_enum_val.doc_data.experimental_message;
|
||||
doc.constants.push_back(const_doc);
|
||||
} break;
|
||||
|
||||
|
|
|
|||
|
|
@ -3609,11 +3609,17 @@ GDScriptParser::MemberDocData GDScriptParser::parse_doc_comment(int p_line, bool
|
|||
|
||||
if (state == DOC_LINE_NORMAL) {
|
||||
String stripped_line = doc_line.strip_edges();
|
||||
if (stripped_line.begins_with("@deprecated")) {
|
||||
if (stripped_line == "@deprecated" || stripped_line.begins_with("@deprecated:")) {
|
||||
result.is_deprecated = true;
|
||||
if (stripped_line.begins_with("@deprecated:")) {
|
||||
result.deprecated_message = stripped_line.trim_prefix("@deprecated:").strip_edges();
|
||||
}
|
||||
continue;
|
||||
} else if (stripped_line.begins_with("@experimental")) {
|
||||
} else if (stripped_line == "@experimental" || stripped_line.begins_with("@experimental:")) {
|
||||
result.is_experimental = true;
|
||||
if (stripped_line.begins_with("@experimental:")) {
|
||||
result.experimental_message = stripped_line.trim_prefix("@experimental:").strip_edges();
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
@ -3712,11 +3718,17 @@ GDScriptParser::ClassDocData GDScriptParser::parse_class_doc_comment(int p_line,
|
|||
|
||||
result.tutorials.append(Pair<String, String>(title, link));
|
||||
continue;
|
||||
} else if (stripped_line.begins_with("@deprecated")) {
|
||||
} else if (stripped_line == "@deprecated" || stripped_line.begins_with("@deprecated:")) {
|
||||
result.is_deprecated = true;
|
||||
if (stripped_line.begins_with("@deprecated:")) {
|
||||
result.deprecated_message = stripped_line.trim_prefix("@deprecated:").strip_edges();
|
||||
}
|
||||
continue;
|
||||
} else if (stripped_line.begins_with("@experimental")) {
|
||||
} else if (stripped_line == "@experimental" || stripped_line.begins_with("@experimental:")) {
|
||||
result.is_experimental = true;
|
||||
if (stripped_line.begins_with("@experimental:")) {
|
||||
result.experimental_message = stripped_line.trim_prefix("@experimental:").strip_edges();
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -274,13 +274,17 @@ public:
|
|||
String description;
|
||||
Vector<Pair<String, String>> tutorials;
|
||||
bool is_deprecated = false;
|
||||
String deprecated_message;
|
||||
bool is_experimental = false;
|
||||
String experimental_message;
|
||||
};
|
||||
|
||||
struct MemberDocData {
|
||||
String description;
|
||||
bool is_deprecated = false;
|
||||
String deprecated_message;
|
||||
bool is_experimental = false;
|
||||
String experimental_message;
|
||||
};
|
||||
#endif // TOOLS_ENABLED
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue