mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +00:00
Improve sorting of Code Completion options.
Done by ordering options by their location in the code - e.g. local, parent class, global, etc.
This commit is contained in:
parent
74b07dd194
commit
4ab605d14d
7 changed files with 196 additions and 24 deletions
|
|
@ -311,6 +311,13 @@ public:
|
|||
CODE_COMPLETION_KIND_MAX
|
||||
};
|
||||
|
||||
enum CodeCompletionLocation {
|
||||
LOCATION_LOCAL = 0,
|
||||
LOCATION_PARENT_MASK = 1 << 8,
|
||||
LOCATION_OTHER_USER_CODE = 1 << 9,
|
||||
LOCATION_OTHER = 1 << 10,
|
||||
};
|
||||
|
||||
struct CodeCompletionOption {
|
||||
CodeCompletionKind kind = CODE_COMPLETION_KIND_PLAIN_TEXT;
|
||||
String display;
|
||||
|
|
@ -319,13 +326,15 @@ public:
|
|||
RES icon;
|
||||
Variant default_value;
|
||||
Vector<Pair<int, int>> matches;
|
||||
int location = LOCATION_OTHER;
|
||||
|
||||
CodeCompletionOption() {}
|
||||
|
||||
CodeCompletionOption(const String &p_text, CodeCompletionKind p_kind) {
|
||||
CodeCompletionOption(const String &p_text, CodeCompletionKind p_kind, int p_location = LOCATION_OTHER) {
|
||||
display = p_text;
|
||||
insert_text = p_text;
|
||||
kind = p_kind;
|
||||
location = p_location;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -161,6 +161,11 @@ void ScriptLanguageExtension::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(LOOKUP_RESULT_CLASS_TBD_GLOBALSCOPE);
|
||||
BIND_ENUM_CONSTANT(LOOKUP_RESULT_MAX);
|
||||
|
||||
BIND_ENUM_CONSTANT(LOCATION_LOCAL);
|
||||
BIND_ENUM_CONSTANT(LOCATION_PARENT_MASK);
|
||||
BIND_ENUM_CONSTANT(LOCATION_OTHER_USER_CODE);
|
||||
BIND_ENUM_CONSTANT(LOCATION_OTHER);
|
||||
|
||||
BIND_ENUM_CONSTANT(CODE_COMPLETION_KIND_CLASS);
|
||||
BIND_ENUM_CONSTANT(CODE_COMPLETION_KIND_FUNCTION);
|
||||
BIND_ENUM_CONSTANT(CODE_COMPLETION_KIND_SIGNAL);
|
||||
|
|
|
|||
|
|
@ -387,6 +387,8 @@ public:
|
|||
option.icon = op["icon"];
|
||||
ERR_CONTINUE(!op.has("default_value"));
|
||||
option.default_value = op["default_value"];
|
||||
ERR_CONTINUE(!op.has("location"));
|
||||
option.location = op["location"];
|
||||
if (op.has("matches")) {
|
||||
PackedInt32Array matches = op["matches"];
|
||||
ERR_CONTINUE(matches.size() & 1);
|
||||
|
|
@ -639,6 +641,7 @@ public:
|
|||
|
||||
VARIANT_ENUM_CAST(ScriptLanguageExtension::LookupResultType)
|
||||
VARIANT_ENUM_CAST(ScriptLanguageExtension::CodeCompletionKind)
|
||||
VARIANT_ENUM_CAST(ScriptLanguageExtension::CodeCompletionLocation)
|
||||
|
||||
class ScriptInstanceExtension : public ScriptInstance {
|
||||
public:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue