diff --git a/Userland/DevTools/HackStudio/CMakeLists.txt b/Userland/DevTools/HackStudio/CMakeLists.txt index 61e02740078..56b4fa73138 100644 --- a/Userland/DevTools/HackStudio/CMakeLists.txt +++ b/Userland/DevTools/HackStudio/CMakeLists.txt @@ -50,5 +50,5 @@ set(SOURCES ) serenity_app(HackStudio ICON app-hack-studio) -target_link_libraries(HackStudio LibWeb LibMarkdown LibGUI LibCpp LibGfx LibCore LibVT LibDebug LibX86 LibDiff LibShell LibSymbolication LibRegex) +target_link_libraries(HackStudio LibWeb LibMarkdown LibGUI LibCpp LibGfx LibCore LibVT LibDebug LibX86 LibDiff LibShell LibSymbolication LibRegex LibSQL) add_dependencies(HackStudio CppLanguageServer) diff --git a/Userland/DevTools/HackStudio/Editor.cpp b/Userland/DevTools/HackStudio/Editor.cpp index cca76113097..769c1afc33a 100644 --- a/Userland/DevTools/HackStudio/Editor.cpp +++ b/Userland/DevTools/HackStudio/Editor.cpp @@ -29,9 +29,11 @@ #include #include #include +#include #include #include #include +#include #include #include #include @@ -597,6 +599,9 @@ void Editor::set_syntax_highlighter_for(const CodeDocument& document) case Language::GML: set_syntax_highlighter(make()); break; + case Language::HTML: + set_syntax_highlighter(make()); + break; case Language::JavaScript: set_syntax_highlighter(make()); break; @@ -606,6 +611,9 @@ void Editor::set_syntax_highlighter_for(const CodeDocument& document) case Language::Shell: set_syntax_highlighter(make()); break; + case Language::SQL: + set_syntax_highlighter(make()); + break; default: set_syntax_highlighter({}); } diff --git a/Userland/DevTools/HackStudio/Language.cpp b/Userland/DevTools/HackStudio/Language.cpp index b6284ef6ce6..32e60c938aa 100644 --- a/Userland/DevTools/HackStudio/Language.cpp +++ b/Userland/DevTools/HackStudio/Language.cpp @@ -13,14 +13,18 @@ Language language_from_file_extension(const String& extension) VERIFY(!extension.starts_with(".")); if (extension == "cpp" || extension == "h") return Language::Cpp; - else if (extension == "js") + else if (extension == "js" || extension == "json") return Language::JavaScript; + else if (extension == "html" || extension == "htm") + return Language::HTML; else if (extension == "gml") return Language::GML; else if (extension == "ini") return Language::Ini; - else if (extension == "sh") + else if (extension == "sh" || extension == "bash") return Language::Shell; + else if (extension == "sql") + return Language::SQL; return Language::Unknown; } @@ -42,18 +46,20 @@ String language_name_from_file_extension(const String& extension) VERIFY(!extension.starts_with(".")); if (extension == "cpp" || extension == "h") return "C++"; - else if (extension == "js") + else if (extension == "js" || extension == "json") return "JavaScript"; else if (extension == "gml") return "GML"; else if (extension == "ini") return "Ini"; - else if (extension == "sh") + else if (extension == "sh" || extension == "bash") return "Shell"; else if (extension == "md") return "Markdown"; - else if (extension == "html") + else if (extension == "html" || extension == "htm") return "HTML"; + else if (extension == "sql") + return "SQL"; else if (extension == "txt") return "Plaintext"; diff --git a/Userland/DevTools/HackStudio/Language.h b/Userland/DevTools/HackStudio/Language.h index 750153f5daa..24806b115f2 100644 --- a/Userland/DevTools/HackStudio/Language.h +++ b/Userland/DevTools/HackStudio/Language.h @@ -13,9 +13,11 @@ enum class Language { Unknown, Cpp, JavaScript, + HTML, GML, Ini, Shell, + SQL, }; Language language_from_file_extension(const String&);