Sfoglia il codice sorgente

HackStudio: Add autocompletion for GML files

Conor Byrne 4 anni fa
parent
commit
0295cf96a8

+ 14 - 0
Userland/DevTools/HackStudio/Editor.cpp

@@ -19,6 +19,7 @@
 #include <LibCpp/SyntaxHighlighter.h>
 #include <LibGUI/Action.h>
 #include <LibGUI/Application.h>
+#include <LibGUI/GMLAutocompleteProvider.h>
 #include <LibGUI/GMLSyntaxHighlighter.h>
 #include <LibGUI/INISyntaxHighlighter.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);
         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)
 {
     if (m_language_client && m_language_client->language() == document.language())

+ 1 - 0
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();