diff --git a/Userland/DevTools/HackStudio/Editor.cpp b/Userland/DevTools/HackStudio/Editor.cpp index 869f07066e..cca7611309 100644 --- a/Userland/DevTools/HackStudio/Editor.cpp +++ b/Userland/DevTools/HackStudio/Editor.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -480,6 +481,8 @@ void Editor::set_document(GUI::TextDocument& doc) } m_language_client->open_file(code_document.file_path(), fd); close(fd); + } else { + set_autocomplete_provider_for(code_document); } } @@ -608,6 +611,17 @@ void Editor::set_syntax_highlighter_for(const CodeDocument& document) } } +void Editor::set_autocomplete_provider_for(CodeDocument const& document) +{ + switch (document.language()) { + case Language::GML: + set_autocomplete_provider(make()); + break; + default: + set_autocomplete_provider({}); + } +} + void Editor::set_language_client_for(const CodeDocument& document) { if (m_language_client && m_language_client->language() == document.language()) diff --git a/Userland/DevTools/HackStudio/Editor.h b/Userland/DevTools/HackStudio/Editor.h index 1f4d076e75..cc29c84332 100644 --- a/Userland/DevTools/HackStudio/Editor.h +++ b/Userland/DevTools/HackStudio/Editor.h @@ -97,6 +97,7 @@ private: void flush_file_content_to_langauge_server(); void set_syntax_highlighter_for(const CodeDocument&); void set_language_client_for(const CodeDocument&); + void set_autocomplete_provider_for(CodeDocument const&); void handle_function_parameters_hint_request(); explicit Editor();