1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 06:14:58 +00:00

LibSyntax: Move Language enum into its own files

This commit is contained in:
Sam Atkins 2023-03-08 16:10:16 +00:00 committed by Sam Atkins
parent a1f2f08764
commit 8007c103dd
5 changed files with 108 additions and 80 deletions

View file

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

View file

@ -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();
}
}

View file

@ -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);

View file

@ -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();
}
}

View file

@ -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);
}