Skip to content

Commit 7c3090e

Browse files
committed
Merge pull request godotengine#89043 from Mickeon/autocomplete-EditorSettings
Add autocompletion for EditorSettings' methods
2 parents 34effe4 + adbe238 commit 7c3090e

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

editor/editor_settings.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1785,6 +1785,35 @@ void EditorSettings::notify_changes() {
17851785
root->propagate_notification(NOTIFICATION_EDITOR_SETTINGS_CHANGED);
17861786
}
17871787

1788+
#ifdef TOOLS_ENABLED
1789+
void EditorSettings::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const {
1790+
const String pf = p_function;
1791+
if (p_idx == 0) {
1792+
if (pf == "has_setting" || pf == "set_setting" || pf == "get_setting" || pf == "erase" ||
1793+
pf == "set_initial_value" || pf == "set_as_basic" || pf == "mark_setting_changed") {
1794+
for (const KeyValue<String, VariantContainer> &E : props) {
1795+
if (E.value.hide_from_editor) {
1796+
continue;
1797+
}
1798+
1799+
r_options->push_back(E.key.quote());
1800+
}
1801+
} else if (pf == "get_project_metadata" && project_metadata.is_valid()) {
1802+
List<String> sections;
1803+
project_metadata->get_sections(&sections);
1804+
for (const String &section : sections) {
1805+
r_options->push_back(section.quote());
1806+
}
1807+
} else if (pf == "set_builtin_action_override") {
1808+
for (const StringName &action : InputMap::get_singleton()->get_actions()) {
1809+
r_options->push_back(String(action).quote());
1810+
}
1811+
}
1812+
}
1813+
Object::get_argument_options(p_function, p_idx, r_options);
1814+
}
1815+
#endif
1816+
17881817
void EditorSettings::_bind_methods() {
17891818
ClassDB::bind_method(D_METHOD("has_setting", "name"), &EditorSettings::has_setting);
17901819
ClassDB::bind_method(D_METHOD("set_setting", "name", "value"), &EditorSettings::set_setting);

editor/editor_settings.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,10 @@ class EditorSettings : public Resource {
186186

187187
void notify_changes();
188188

189+
#ifdef TOOLS_ENABLED
190+
virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const override;
191+
#endif
192+
189193
EditorSettings();
190194
~EditorSettings();
191195
};

0 commit comments

Comments
 (0)