diff --git a/modules/gdscript/language_server/gdscript_language_server.cpp b/modules/gdscript/language_server/gdscript_language_server.cpp index e415af75c1d..aeff4d4e5a7 100644 --- a/modules/gdscript/language_server/gdscript_language_server.cpp +++ b/modules/gdscript/language_server/gdscript_language_server.cpp @@ -56,7 +56,8 @@ void GDScriptLanguageServer::_notification(int p_what) { } break; case NOTIFICATION_INTERNAL_PROCESS: { - if (!started && EditorNode::get_singleton()->is_editor_ready()) { + if (!start_attempted && EditorNode::get_singleton()->is_editor_ready()) { + start_attempted = true; start(); } diff --git a/modules/gdscript/language_server/gdscript_language_server.h b/modules/gdscript/language_server/gdscript_language_server.h index b71e55b367b..12541ec5807 100644 --- a/modules/gdscript/language_server/gdscript_language_server.h +++ b/modules/gdscript/language_server/gdscript_language_server.h @@ -41,6 +41,8 @@ class GDScriptLanguageServer : public EditorPlugin { Thread thread; bool thread_running = false; + // There is no notification when the editor is initialized. We need to poll till we attempted to start the server. + bool start_attempted = false; bool started = false; bool use_thread = false; String host = "127.0.0.1";