Переглянути джерело

LibSyntax: Move Language enum into its own files

Sam Atkins 2 роки тому
батько
коміт
8007c103dd

+ 1 - 0
Userland/Libraries/LibSyntax/CMakeLists.txt

@@ -1,5 +1,6 @@
 set(SOURCES
     Highlighter.cpp
+    Language.cpp
 )
 
 serenity_lib(LibSyntax syntax)

+ 0 - 62
Userland/Libraries/LibSyntax/Highlighter.cpp

@@ -138,66 +138,4 @@ void Highlighter::register_nested_token_pairs(Vector<MatchingTokenPair> 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();
-}
-
 }

+ 1 - 18
Userland/Libraries/LibSyntax/Highlighter.h

@@ -11,32 +11,15 @@
 #include <LibGUI/TextDocument.h>
 #include <LibGfx/Palette.h>
 #include <LibSyntax/HighlighterClient.h>
+#include <LibSyntax/Language.h>
 
 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);

+ 75 - 0
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 <LibGUI/TextEditor.h>
+#include <LibSyntax/Highlighter.h>
+
+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();
+}
+
+}

+ 31 - 0
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 <AK/StringView.h>
+
+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);
+
+}