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:
parent
a1f2f08764
commit
8007c103dd
5 changed files with 108 additions and 80 deletions
|
@ -1,5 +1,6 @@
|
|||
set(SOURCES
|
||||
Highlighter.cpp
|
||||
Language.cpp
|
||||
)
|
||||
|
||||
serenity_lib(LibSyntax syntax)
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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
Userland/Libraries/LibSyntax/Language.cpp
Normal file
75
Userland/Libraries/LibSyntax/Language.cpp
Normal 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();
|
||||
}
|
||||
|
||||
}
|
31
Userland/Libraries/LibSyntax/Language.h
Normal file
31
Userland/Libraries/LibSyntax/Language.h
Normal 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);
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue