Added yield() signal smart autocompletion.
This commit is contained in:
parent
3d7c10e9ce
commit
6671c6bdc7
3 changed files with 34 additions and 1 deletions
|
@ -2389,7 +2389,24 @@ Error GDScriptLanguage::complete_code(const String& p_code, const String& p_base
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
case GDParser::COMPLETION_YIELD: {
|
||||||
|
|
||||||
|
const GDParser::Node *node = p.get_completion_node();
|
||||||
|
|
||||||
|
GDCompletionIdentifier t;
|
||||||
|
if (!_guess_expression_type(context,node,p.get_completion_line(),t))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (t.type==Variant::OBJECT && t.obj_type!=StringName()) {
|
||||||
|
|
||||||
|
List<MethodInfo> sigs;
|
||||||
|
ObjectTypeDB::get_signal_list(t.obj_type,&sigs);
|
||||||
|
for (List<MethodInfo>::Element *E=sigs.front();E;E=E->next()) {
|
||||||
|
options.insert("\""+E->get().name+"\"");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -378,6 +378,21 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
|
||||||
|
|
||||||
tokenizer->advance();
|
tokenizer->advance();
|
||||||
|
|
||||||
|
if (tokenizer->get_token()==GDTokenizer::TK_CURSOR) {
|
||||||
|
|
||||||
|
|
||||||
|
completion_cursor=StringName();
|
||||||
|
completion_node=object;
|
||||||
|
completion_type=COMPLETION_YIELD;
|
||||||
|
completion_class=current_class;
|
||||||
|
completion_function=current_function;
|
||||||
|
completion_line=tokenizer->get_token_line();
|
||||||
|
completion_argument=0;
|
||||||
|
completion_block=current_block;
|
||||||
|
completion_found=true;
|
||||||
|
tokenizer->advance();
|
||||||
|
}
|
||||||
|
|
||||||
Node *signal = _parse_and_reduce_expression(p_parent,p_static);
|
Node *signal = _parse_and_reduce_expression(p_parent,p_static);
|
||||||
if (!signal)
|
if (!signal)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -375,7 +375,8 @@ public:
|
||||||
COMPLETION_METHOD,
|
COMPLETION_METHOD,
|
||||||
COMPLETION_CALL_ARGUMENTS,
|
COMPLETION_CALL_ARGUMENTS,
|
||||||
COMPLETION_INDEX,
|
COMPLETION_INDEX,
|
||||||
COMPLETION_VIRTUAL_FUNC
|
COMPLETION_VIRTUAL_FUNC,
|
||||||
|
COMPLETION_YIELD,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue