Skip to content

Commit

Permalink
Add autocompletion for TranslationServer
Browse files Browse the repository at this point in the history
  • Loading branch information
Mickeon committed Jan 14, 2024
1 parent 26b1fd0 commit e6051a9
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
23 changes: 23 additions & 0 deletions core/string/translation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -983,6 +983,29 @@ bool TranslationServer::is_placeholder(String &p_message, int p_index) const {
p_message[p_index + 1] == 'o' || p_message[p_index + 1] == 'x' || p_message[p_index + 1] == 'X' || p_message[p_index + 1] == 'f');
}

#ifdef TOOLS_ENABLED
void TranslationServer::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const {
String pf = p_function;
if (p_idx == 0) {
HashMap<String, String> *target_hash_map = nullptr;
if (pf == "get_language_name") {
target_hash_map = &language_map;
} else if (pf == "get_script_name") {
target_hash_map = &script_map;
} else if (pf == "get_country_name") {
target_hash_map = &country_name_map;
}

if (target_hash_map) {
for (const KeyValue<String, String> &E : *target_hash_map) {
r_options->push_back(E.key.quote());
}
}
}
Object::get_argument_options(p_function, p_idx, r_options);
}
#endif // TOOLS_ENABLED

void TranslationServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_locale", "locale"), &TranslationServer::set_locale);
ClassDB::bind_method(D_METHOD("get_locale"), &TranslationServer::get_locale);
Expand Down
4 changes: 4 additions & 0 deletions core/string/translation.h
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,10 @@ class TranslationServer : public Object {

void load_translations();

#ifdef TOOLS_ENABLED
virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const override;
#endif // TOOLS_ENABLED

TranslationServer();
};

Expand Down

0 comments on commit e6051a9

Please sign in to comment.