mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-05-29 17:46:29 +03:00
Added C2 syntax highlighting (SpartanJ/ecode#447).
This commit is contained in:
@@ -23,8 +23,7 @@ void addC() {
|
||||
"",
|
||||
SyntaxPatternMatchType::RegEx },
|
||||
{ { "[%a_][%w_]*%f[(]" }, "function" },
|
||||
{ { "#[%a_][%w_]*" }, "symbol" },
|
||||
{ { "[%a_][%w_]*" }, "symbol" },
|
||||
{ { "#?[%a_][%w_]*" }, "symbol" },
|
||||
|
||||
},
|
||||
{
|
||||
|
||||
@@ -35,8 +35,7 @@ void addCPP() {
|
||||
{ { "std%:%:[%w_]*" }, "keyword2" },
|
||||
{ { "(%[)(%[)(%a[%w_]+)(%])(%])" },
|
||||
{ "normal", "keyword", "keyword3", "keyword2", "keyword3", "keyword" } },
|
||||
{ { "#[%a_][%w_]*" }, "symbol" },
|
||||
{ { "[%a_][%w_]*" }, "symbol" },
|
||||
{ { "#?[%a_][%w_]*" }, "symbol" },
|
||||
|
||||
},
|
||||
{
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
#include <eepp/ui/doc/languages/c3.hpp>
|
||||
#include <eepp/ui/doc/syntaxdefinitionmanager.hpp>
|
||||
|
||||
namespace EE { namespace UI { namespace Doc { namespace Language {
|
||||
|
||||
SyntaxDefinition& addC2() {
|
||||
|
||||
auto& sd = SyntaxDefinitionManager::instance()->add(
|
||||
|
||||
{ "C2",
|
||||
{ "%.c2$" },
|
||||
{
|
||||
{ { "//.-\n" }, "comment" },
|
||||
{ { "/%*", "%*/" }, "comment" },
|
||||
{ { "\"", "\"", "\\" }, "string" },
|
||||
{ { "'", "'", "\\" }, "string" },
|
||||
{ { "`", "`" }, "string" },
|
||||
{ { "(type|struct|union)\\s+([A-Za-z][\\w_]*)" },
|
||||
{ "keyword", "keyword", "keyword2" },
|
||||
"",
|
||||
SyntaxPatternMatchType::RegEx },
|
||||
{ { "^%s*(import)%s+([%a][%w_%:,%s]*)%f[@;\n]" },
|
||||
{ "normal", "keyword", "literal" } },
|
||||
{ { "^%s*(module)%s+([%a][%w_%:%s%{%},]*)%s*%f[@;\n]" },
|
||||
{ "normal", "keyword", "literal" } },
|
||||
{ { "(fn)%s+([%a][%w_]*%*?%\?\?)%s+([%a][%w_]*)%.([%a_][%w_]*)%f[%(]" },
|
||||
{ "normal", "keyword", "keyword2", "keyword2", "function" } },
|
||||
{ { "(macro)%s+([%a][%w_]*%*?%\?\?)%s+([%a][%w_]*)%.([%a_][%w_]*)%f[%(]" },
|
||||
{ "normal", "keyword", "keyword2", "keyword2", "function" } },
|
||||
{ { "(fn)%s+([%a][%w_]*%*?%\?\?)%s+([%a][%w_]*)%f[%(]" },
|
||||
{ "normal", "keyword", "keyword2", "function" } },
|
||||
{ { "common_number_parser_o" }, "number", "", SyntaxPatternMatchType::Parser },
|
||||
{ { "(if|for|while|switch)\\s*(?=\\()" },
|
||||
{ "normal", "keyword", "keyword" },
|
||||
"",
|
||||
SyntaxPatternMatchType::RegEx },
|
||||
{ { "[%a_][%w_]*%f[(]" }, "function" },
|
||||
{ { "[<>~=+-*/%?]=" }, "operator" },
|
||||
{ { "#?[%a_][%w_]*" }, "symbol" },
|
||||
|
||||
},
|
||||
{
|
||||
|
||||
{ "fn", "keyword" },
|
||||
{ "struct", "keyword" },
|
||||
{ "type", "keyword" },
|
||||
{ "enum", "keyword" },
|
||||
{ "union", "keyword" },
|
||||
{ "const", "keyword" },
|
||||
{ "public", "keyword" },
|
||||
{ "template", "keyword" },
|
||||
{ "break", "keyword" },
|
||||
{ "return", "keyword" },
|
||||
{ "continue", "keyword" },
|
||||
{ "asm", "keyword" },
|
||||
{ "goto", "keyword" },
|
||||
{ "fallthrough", "keyword" },
|
||||
{ "volatile", "keyword" },
|
||||
{ "if", "keyword" },
|
||||
{ "else", "keyword" },
|
||||
{ "switch", "keyword" },
|
||||
{ "sswitch", "keyword" },
|
||||
{ "case", "keyword" },
|
||||
{ "default", "keyword" },
|
||||
{ "while", "keyword" },
|
||||
{ "for", "keyword" },
|
||||
{ "do", "keyword" },
|
||||
{ "sizeof", "keyword" },
|
||||
{ "offsetof", "keyword" },
|
||||
{ "elemsof", "keyword" },
|
||||
{ "enum_min", "keyword" },
|
||||
{ "enum_max", "keyword" },
|
||||
{ "cast", "keyword" },
|
||||
{ "to_container", "keyword" },
|
||||
{ "assert", "keyword" },
|
||||
{ "static_assert", "keyword" },
|
||||
{ "export", "keyword" },
|
||||
{ "packed", "keyword" },
|
||||
{ "unused", "keyword" },
|
||||
{ "unused_params", "keyword" },
|
||||
{ "section", "keyword" },
|
||||
{ "noreturn", "keyword" },
|
||||
{ "inline", "keyword" },
|
||||
{ "aligned", "keyword" },
|
||||
{ "weak", "keyword" },
|
||||
{ "opaque", "keyword" },
|
||||
{ "printf_format", "keyword" },
|
||||
{ "auto_file", "keyword" },
|
||||
{ "auto_line", "keyword" },
|
||||
{ "pure", "keyword" },
|
||||
|
||||
{ "bool", "keyword2" },
|
||||
{ "f32", "keyword2" },
|
||||
{ "f64", "keyword2" },
|
||||
{ "i8", "keyword2" },
|
||||
{ "i16", "keyword2" },
|
||||
{ "i32", "keyword2" },
|
||||
{ "i64", "keyword2" },
|
||||
{ "isize", "keyword2" },
|
||||
{ "u8", "keyword2" },
|
||||
{ "u16", "keyword2" },
|
||||
{ "u32", "keyword2" },
|
||||
{ "u64", "keyword2" },
|
||||
{ "usize", "keyword2" },
|
||||
{ "char", "keyword2" },
|
||||
{ "void", "keyword2" },
|
||||
{ "reg8", "keyword2" },
|
||||
{ "reg16", "keyword2" },
|
||||
{ "reg32", "keyword2" },
|
||||
{ "reg64", "keyword2" },
|
||||
{ "c_char", "keyword2" },
|
||||
{ "c_uchar", "keyword2" },
|
||||
{ "c_int", "keyword2" },
|
||||
{ "c_uint", "keyword2" },
|
||||
{ "c_long", "keyword2" },
|
||||
{ "c_longlong", "keyword2" },
|
||||
{ "c_ulong", "keyword2" },
|
||||
{ "c_ulonglong", "keyword2" },
|
||||
{ "c_size", "keyword2" },
|
||||
{ "c_ssize", "keyword2" },
|
||||
{ "c_float", "keyword2" },
|
||||
{ "c_double", "keyword2" },
|
||||
|
||||
{ "nil", "literal" },
|
||||
{ "buildtime", "literal" },
|
||||
{ "min_i8", "literal" },
|
||||
{ "max_i8", "literal" },
|
||||
{ "min_u8", "literal" },
|
||||
{ "max_u8", "literal" },
|
||||
{ "min_i16", "literal" },
|
||||
{ "max_i16", "literal" },
|
||||
{ "min_u16", "literal" },
|
||||
{ "max_u16", "literal" },
|
||||
{ "min_i32", "literal" },
|
||||
{ "max_i32", "literal" },
|
||||
{ "min_u32", "literal" },
|
||||
{ "max_u32", "literal" },
|
||||
{ "min_i64", "literal" },
|
||||
{ "max_i64", "literal" },
|
||||
{ "min_u64", "literal" },
|
||||
{ "max_u64", "literal" },
|
||||
{ "min_isize", "literal" },
|
||||
{ "max_isize", "literal" },
|
||||
{ "min_usize", "literal" },
|
||||
{ "max_usize", "literal" },
|
||||
{ "true", "literal" },
|
||||
{ "false", "literal" },
|
||||
|
||||
{ "#if", "keyword" },
|
||||
{ "#elif", "keyword" },
|
||||
{ "#else", "keyword" },
|
||||
{ "#endif", "keyword" },
|
||||
{ "#define", "keyword" },
|
||||
|
||||
},
|
||||
"//",
|
||||
{}
|
||||
|
||||
} );
|
||||
|
||||
sd.setFoldRangeType( FoldRangeType::Braces ).setFoldBraces( { { '{', '}' } } );
|
||||
return sd;
|
||||
}
|
||||
|
||||
}}}} // namespace EE::UI::Doc::Language
|
||||
@@ -0,0 +1,12 @@
|
||||
#ifndef EE_UI_DOC_C2
|
||||
#define EE_UI_DOC_C2
|
||||
|
||||
#include <eepp/ui/doc/syntaxdefinition.hpp>
|
||||
|
||||
namespace EE { namespace UI { namespace Doc { namespace Language {
|
||||
|
||||
extern SyntaxDefinition& addC2();
|
||||
|
||||
}}}} // namespace EE::UI::Doc::Language
|
||||
|
||||
#endif
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <eepp/ui/doc/languages/blueprint.hpp>
|
||||
#include <eepp/ui/doc/languages/brainfuck.hpp>
|
||||
#include <eepp/ui/doc/languages/buzz.hpp>
|
||||
#include <eepp/ui/doc/languages/c2.hpp>
|
||||
#include <eepp/ui/doc/languages/c3.hpp>
|
||||
#include <eepp/ui/doc/languages/carbon.hpp>
|
||||
#include <eepp/ui/doc/languages/clojure.hpp>
|
||||
@@ -176,6 +177,8 @@ void LanguagesSyntaxHighlighting::load() {
|
||||
sdm->addPreDefinition(
|
||||
{ "Buzz", []() -> SyntaxDefinition& { return addBuzz(); }, { "%.buzz$" } } );
|
||||
|
||||
sdm->addPreDefinition( { "C2", []() -> SyntaxDefinition& { return addC2(); }, { "%.c2$" } } );
|
||||
|
||||
sdm->addPreDefinition( { "C3", []() -> SyntaxDefinition& { return addC3(); }, { "%.c3t?$" } } );
|
||||
|
||||
sdm->addPreDefinition( {
|
||||
|
||||
Reference in New Issue
Block a user