Skip to content

Commit

Permalink
Merge pull request #97710 from anvilfolk/think-of-the-dooooooooooooooocs
Browse files Browse the repository at this point in the history
Fix GDScript docs not updating when modified externally
  • Loading branch information
akien-mga committed Oct 2, 2024
2 parents 991b741 + 0ad55e9 commit 15cee4b
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 14 deletions.
7 changes: 3 additions & 4 deletions editor/editor_file_system.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2089,12 +2089,11 @@ void EditorFileSystem::_update_script_documentation() {
// return the last loaded version of the script (without the modifications).
scr->reload_from_file();
}
Vector<DocData::ClassDoc> docs = scr->get_documentation();
for (int j = 0; j < docs.size(); j++) {
EditorHelp::get_doc_data()->add_doc(docs[j]);
for (const DocData::ClassDoc &cd : scr->get_documentation()) {
EditorHelp::get_doc_data()->add_doc(cd);
if (!first_scan) {
// Update the documentation in the Script Editor if it is open.
ScriptEditor::get_singleton()->update_doc(docs[j].name);
ScriptEditor::get_singleton()->update_doc(cd.name);
}
}
}
Expand Down
18 changes: 8 additions & 10 deletions editor/plugins/script_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2798,6 +2798,8 @@ void ScriptEditor::_reload_scripts(bool p_refresh_only) {
scr->set_source_code(rel_scr->get_source_code());
scr->set_last_modified_time(rel_scr->get_last_modified_time());
scr->reload(true);

update_docs_from_script(scr);
}

Ref<JSON> json = edited_res;
Expand Down Expand Up @@ -3644,23 +3646,19 @@ void ScriptEditor::update_doc(const String &p_name) {
void ScriptEditor::clear_docs_from_script(const Ref<Script> &p_script) {
ERR_FAIL_COND(p_script.is_null());

Vector<DocData::ClassDoc> documentations = p_script->get_documentation();
for (int j = 0; j < documentations.size(); j++) {
const DocData::ClassDoc &doc = documentations.get(j);
if (EditorHelp::get_doc_data()->has_doc(doc.name)) {
EditorHelp::get_doc_data()->remove_doc(doc.name);
for (const DocData::ClassDoc &cd : p_script->get_documentation()) {
if (EditorHelp::get_doc_data()->has_doc(cd.name)) {
EditorHelp::get_doc_data()->remove_doc(cd.name);
}
}
}

void ScriptEditor::update_docs_from_script(const Ref<Script> &p_script) {
ERR_FAIL_COND(p_script.is_null());

Vector<DocData::ClassDoc> documentations = p_script->get_documentation();
for (int j = 0; j < documentations.size(); j++) {
const DocData::ClassDoc &doc = documentations.get(j);
EditorHelp::get_doc_data()->add_doc(doc);
update_doc(doc.name);
for (const DocData::ClassDoc &cd : p_script->get_documentation()) {
EditorHelp::get_doc_data()->add_doc(cd);
update_doc(cd.name);
}
}

Expand Down

0 comments on commit 15cee4b

Please sign in to comment.