From bf322e072f40d409eea336ea74cfa42df7da04e3 Mon Sep 17 00:00:00 2001 From: Karol Kosek Date: Thu, 29 Jul 2021 21:06:52 +0200 Subject: [PATCH] HackStudio: Add syntax highlighting for HTML, Shell, and SQL files .html files were recognised before -- the name was shown on the statusbar, but it didn't actually enable the syntax highlighting. This also sneaks a highlighting for JSON using JS highlighting. It isn't technically correct, but so does TextEditor. :^) --- Userland/DevTools/HackStudio/CMakeLists.txt | 2 +- Userland/DevTools/HackStudio/Editor.cpp | 8 ++++++++ Userland/DevTools/HackStudio/Language.cpp | 16 +++++++++++----- Userland/DevTools/HackStudio/Language.h | 2 ++ 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/Userland/DevTools/HackStudio/CMakeLists.txt b/Userland/DevTools/HackStudio/CMakeLists.txt index 61e0274007..56b4fa7313 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 cca7611309..769c1afc33 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 b6284ef6ce..32e60c938a 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 750153f5da..24806b115f 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&);