1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 02:17:34 +00:00

HackStudio: Add autocompletion for GML files

This commit is contained in:
Conor Byrne 2021-07-28 14:59:42 +01:00 committed by Andreas Kling
parent 2b5566d7cc
commit 0295cf96a8
2 changed files with 15 additions and 0 deletions

View file

@ -19,6 +19,7 @@
#include <LibCpp/SyntaxHighlighter.h> #include <LibCpp/SyntaxHighlighter.h>
#include <LibGUI/Action.h> #include <LibGUI/Action.h>
#include <LibGUI/Application.h> #include <LibGUI/Application.h>
#include <LibGUI/GMLAutocompleteProvider.h>
#include <LibGUI/GMLSyntaxHighlighter.h> #include <LibGUI/GMLSyntaxHighlighter.h>
#include <LibGUI/INISyntaxHighlighter.h> #include <LibGUI/INISyntaxHighlighter.h>
#include <LibGUI/Label.h> #include <LibGUI/Label.h>
@ -480,6 +481,8 @@ void Editor::set_document(GUI::TextDocument& doc)
} }
m_language_client->open_file(code_document.file_path(), fd); m_language_client->open_file(code_document.file_path(), fd);
close(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<GUI::GMLAutocompleteProvider>());
break;
default:
set_autocomplete_provider({});
}
}
void Editor::set_language_client_for(const CodeDocument& document) void Editor::set_language_client_for(const CodeDocument& document)
{ {
if (m_language_client && m_language_client->language() == document.language()) if (m_language_client && m_language_client->language() == document.language())

View file

@ -97,6 +97,7 @@ private:
void flush_file_content_to_langauge_server(); void flush_file_content_to_langauge_server();
void set_syntax_highlighter_for(const CodeDocument&); void set_syntax_highlighter_for(const CodeDocument&);
void set_language_client_for(const CodeDocument&); void set_language_client_for(const CodeDocument&);
void set_autocomplete_provider_for(CodeDocument const&);
void handle_function_parameters_hint_request(); void handle_function_parameters_hint_request();
explicit Editor(); explicit Editor();