mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:37:35 +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
|
set(SOURCES
|
||||||
Highlighter.cpp
|
Highlighter.cpp
|
||||||
|
Language.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
serenity_lib(LibSyntax syntax)
|
serenity_lib(LibSyntax syntax)
|
||||||
|
|
|
@ -138,66 +138,4 @@ void Highlighter::register_nested_token_pairs(Vector<MatchingTokenPair> pairs)
|
||||||
m_nested_token_pairs.set(pair);
|
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 <LibGUI/TextDocument.h>
|
||||||
#include <LibGfx/Palette.h>
|
#include <LibGfx/Palette.h>
|
||||||
#include <LibSyntax/HighlighterClient.h>
|
#include <LibSyntax/HighlighterClient.h>
|
||||||
|
#include <LibSyntax/Language.h>
|
||||||
|
|
||||||
namespace Syntax {
|
namespace Syntax {
|
||||||
|
|
||||||
enum class Language {
|
|
||||||
CMake,
|
|
||||||
CMakeCache,
|
|
||||||
Cpp,
|
|
||||||
CSS,
|
|
||||||
GitCommit,
|
|
||||||
GML,
|
|
||||||
HTML,
|
|
||||||
INI,
|
|
||||||
JavaScript,
|
|
||||||
PlainText,
|
|
||||||
SQL,
|
|
||||||
Shell,
|
|
||||||
};
|
|
||||||
|
|
||||||
struct TextStyle {
|
struct TextStyle {
|
||||||
const Gfx::Color color;
|
const Gfx::Color color;
|
||||||
bool const bold { false };
|
bool const bold { false };
|
||||||
};
|
};
|
||||||
|
|
||||||
StringView language_to_string(Language);
|
|
||||||
StringView common_language_extension(Language);
|
|
||||||
|
|
||||||
class Highlighter {
|
class Highlighter {
|
||||||
AK_MAKE_NONCOPYABLE(Highlighter);
|
AK_MAKE_NONCOPYABLE(Highlighter);
|
||||||
AK_MAKE_NONMOVABLE(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