mirror of
https://github.com/godotengine/godot.git
synced 2025-10-20 00:13:30 +00:00
Merge pull request #79935 from dalexeev/gds-validate-node-path-annotation
GDScript: Add validation for `@export_node_path` annotation arguments
This commit is contained in:
commit
68a49c4959
3 changed files with 32 additions and 5 deletions
|
@ -818,9 +818,10 @@ static void _find_annotation_arguments(const GDScriptParser::AnnotationNode *p_a
|
|||
ScriptLanguage::CodeCompletionOption node("Node", ScriptLanguage::CODE_COMPLETION_KIND_CLASS);
|
||||
node.insert_text = node.display.quote(p_quote_style);
|
||||
r_result.insert(node.display, node);
|
||||
List<StringName> node_types;
|
||||
ClassDB::get_inheriters_from_class("Node", &node_types);
|
||||
for (const StringName &E : node_types) {
|
||||
|
||||
List<StringName> native_classes;
|
||||
ClassDB::get_inheriters_from_class("Node", &native_classes);
|
||||
for (const StringName &E : native_classes) {
|
||||
if (!ClassDB::is_class_exposed(E)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -828,6 +829,17 @@ static void _find_annotation_arguments(const GDScriptParser::AnnotationNode *p_a
|
|||
option.insert_text = option.display.quote(p_quote_style);
|
||||
r_result.insert(option.display, option);
|
||||
}
|
||||
|
||||
List<StringName> global_script_classes;
|
||||
ScriptServer::get_global_class_list(&global_script_classes);
|
||||
for (const StringName &E : global_script_classes) {
|
||||
if (!ClassDB::is_parent_class(ScriptServer::get_global_class_native_base(E), "Node")) {
|
||||
continue;
|
||||
}
|
||||
ScriptLanguage::CodeCompletionOption option(E, ScriptLanguage::CODE_COMPLETION_KIND_CLASS);
|
||||
option.insert_text = option.display.quote(p_quote_style);
|
||||
r_result.insert(option.display, option);
|
||||
}
|
||||
} else if (p_annotation->name == SNAME("@warning_ignore")) {
|
||||
for (int warning_code = 0; warning_code < GDScriptWarning::WARNING_MAX; warning_code++) {
|
||||
ScriptLanguage::CodeCompletionOption warning(GDScriptWarning::get_name_from_code((GDScriptWarning::Code)warning_code).to_lower(), ScriptLanguage::CODE_COMPLETION_KIND_PLAIN_TEXT);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue