diff --git a/Userland/Libraries/LibSyntax/CMakeLists.txt b/Userland/Libraries/LibSyntax/CMakeLists.txt index 9064767f4f..9708cc0850 100644 --- a/Userland/Libraries/LibSyntax/CMakeLists.txt +++ b/Userland/Libraries/LibSyntax/CMakeLists.txt @@ -1,5 +1,6 @@ set(SOURCES Highlighter.cpp + Language.cpp ) serenity_lib(LibSyntax syntax) diff --git a/Userland/Libraries/LibSyntax/Highlighter.cpp b/Userland/Libraries/LibSyntax/Highlighter.cpp index 48631e8275..46b0b3d6af 100644 --- a/Userland/Libraries/LibSyntax/Highlighter.cpp +++ b/Userland/Libraries/LibSyntax/Highlighter.cpp @@ -138,66 +138,4 @@ void Highlighter::register_nested_token_pairs(Vector pairs) m_nested_token_pairs.set(pair); } -StringView language_to_string(Language language) -{ - switch (language) { - case Language::CMake: - return "CMake"sv; - case Language::CMakeCache: - return "CMakeCache"sv; - case Language::Cpp: - return "C++"sv; - case Language::CSS: - return "CSS"sv; - case Language::GitCommit: - return "Git"sv; - case Language::GML: - return "GML"sv; - case Language::HTML: - return "HTML"sv; - case Language::INI: - return "INI"sv; - case Language::JavaScript: - return "JavaScript"sv; - case Language::PlainText: - return "Plain Text"sv; - case Language::Shell: - return "Shell"sv; - case Language::SQL: - return "SQL"sv; - } - VERIFY_NOT_REACHED(); -} - -StringView common_language_extension(Language language) -{ - switch (language) { - case Language::CMake: - return "cmake"sv; - case Language::CMakeCache: - return {}; - case Language::Cpp: - return "cpp"sv; - case Language::CSS: - return "css"sv; - case Language::GitCommit: - return {}; - case Language::GML: - return "gml"sv; - case Language::HTML: - return "html"sv; - case Language::INI: - return "ini"sv; - case Language::JavaScript: - return "js"sv; - case Language::PlainText: - return "txt"sv; - case Language::Shell: - return "sh"sv; - case Language::SQL: - return "sql"sv; - } - VERIFY_NOT_REACHED(); -} - } diff --git a/Userland/Libraries/LibSyntax/Highlighter.h b/Userland/Libraries/LibSyntax/Highlighter.h index 3ad5af74ac..0410a5b5f5 100644 --- a/Userland/Libraries/LibSyntax/Highlighter.h +++ b/Userland/Libraries/LibSyntax/Highlighter.h @@ -11,32 +11,15 @@ #include #include #include +#include namespace Syntax { -enum class Language { - CMake, - CMakeCache, - Cpp, - CSS, - GitCommit, - GML, - HTML, - INI, - JavaScript, - PlainText, - SQL, - Shell, -}; - struct TextStyle { const Gfx::Color color; bool const bold { false }; }; -StringView language_to_string(Language); -StringView common_language_extension(Language); - class Highlighter { AK_MAKE_NONCOPYABLE(Highlighter); AK_MAKE_NONMOVABLE(Highlighter); diff --git a/Userland/Libraries/LibSyntax/Language.cpp b/Userland/Libraries/LibSyntax/Language.cpp new file mode 100644 index 0000000000..2ab0fd1313 --- /dev/null +++ b/Userland/Libraries/LibSyntax/Language.cpp @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2020-2022, the SerenityOS developers. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include "Language.h" +#include +#include + +namespace Syntax { + +StringView language_to_string(Language language) +{ + switch (language) { + case Language::CMake: + return "CMake"sv; + case Language::CMakeCache: + return "CMakeCache"sv; + case Language::Cpp: + return "C++"sv; + case Language::CSS: + return "CSS"sv; + case Language::GitCommit: + return "Git"sv; + case Language::GML: + return "GML"sv; + case Language::HTML: + return "HTML"sv; + case Language::INI: + return "INI"sv; + case Language::JavaScript: + return "JavaScript"sv; + case Language::PlainText: + return "Plain Text"sv; + case Language::Shell: + return "Shell"sv; + case Language::SQL: + return "SQL"sv; + } + VERIFY_NOT_REACHED(); +} + +StringView common_language_extension(Language language) +{ + switch (language) { + case Language::CMake: + return "cmake"sv; + case Language::CMakeCache: + return {}; + case Language::Cpp: + return "cpp"sv; + case Language::CSS: + return "css"sv; + case Language::GitCommit: + return {}; + case Language::GML: + return "gml"sv; + case Language::HTML: + return "html"sv; + case Language::INI: + return "ini"sv; + case Language::JavaScript: + return "js"sv; + case Language::PlainText: + return "txt"sv; + case Language::Shell: + return "sh"sv; + case Language::SQL: + return "sql"sv; + } + VERIFY_NOT_REACHED(); +} + +} diff --git a/Userland/Libraries/LibSyntax/Language.h b/Userland/Libraries/LibSyntax/Language.h new file mode 100644 index 0000000000..9907b78d31 --- /dev/null +++ b/Userland/Libraries/LibSyntax/Language.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2020-2022, the SerenityOS developers. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include + +namespace Syntax { + +enum class Language { + CMake, + CMakeCache, + Cpp, + CSS, + GitCommit, + GML, + HTML, + INI, + JavaScript, + PlainText, + Shell, + SQL, +}; + +StringView language_to_string(Language); +StringView common_language_extension(Language); + +}