Skip to content

Commit 90fbd9e

Browse files
committed
Added Elena syntax highlighting (SpartanJ/ecode#400).
1 parent c19de0c commit 90fbd9e

File tree

4 files changed

+108
-1
lines changed

4 files changed

+108
-1
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
#include <eepp/ui/doc/languages/elena.hpp>
2+
#include <eepp/ui/doc/syntaxdefinitionmanager.hpp>
3+
4+
namespace EE { namespace UI { namespace Doc { namespace Language {
5+
6+
void addElena() {
7+
8+
SyntaxDefinitionManager::instance()
9+
->add(
10+
11+
{ "ELENA",
12+
{ "%.l$" },
13+
{
14+
{ { "//.-\n" }, "comment" },
15+
{ { "/%*", "%*/" }, "comment" },
16+
{ { "\"", "\"", "\\" }, "string" },
17+
{ { "[%$%@]?\"", "\"", "\\" }, "string" },
18+
{ { "$x%x?%x?%x?%x" }, "string" },
19+
{ { "^%s*(import)%s+([%a_][%w_']*)%s*%f[%;]" },
20+
{ "normal", "keyword", "literal" } },
21+
{ { "(class%s+)([%a_][%w_]*)%s*(:)%s*([%a_][%w_]*)" },
22+
{ "normal", "keyword", "keyword2", "operator", "keyword2" } },
23+
{ { "(class%s+)([%a_][%w_]*)" }, { "normal", "keyword", "keyword2" } },
24+
{ { "(singleton%s+)([%a_][%w_]*)" }, { "normal", "keyword", "keyword2" } },
25+
{ { "(extension%s+)([%a_][%w_]*)" }, { "normal", "keyword", "keyword2" } },
26+
{ { "-?0x%x+" }, "number" },
27+
{ { "-?%d+[%d%.eE]*f?" }, "number" },
28+
{ { "-?%.?%d+f?" }, "number" },
29+
{ { "[%+%-=/%*%^%%<>!~|&]" }, "operator" },
30+
{ { "%?%?" }, "operator" },
31+
{ { "%?%." }, "operator" },
32+
{ { "[%a_][%w_]*%f[(]" }, "function" },
33+
{ { "[%a_][%w_]*" }, "symbol" },
34+
35+
},
36+
{
37+
{ "internal", "keyword" }, { "int", "keyword2" },
38+
{ "new", "keyword" }, { "continue", "keyword" },
39+
{ "default", "keyword" }, { "remove", "keyword" },
40+
{ "sizeof", "keyword" }, { "char", "keyword2" },
41+
{ "set", "keyword" }, { "bool", "keyword2" },
42+
{ "extern", "keyword" }, { "long", "keyword2" },
43+
{ "foreach", "keyword" }, { "namespace", "keyword" },
44+
{ "partial", "keyword" }, { "short", "keyword2" },
45+
{ "typeof", "keyword" }, { "object", "keyword2" },
46+
{ "false", "literal" }, { "for", "keyword" },
47+
{ "goto", "keyword" }, { "while", "keyword" },
48+
{ "const", "keyword" }, { "get", "keyword" },
49+
{ "delegate", "keyword" }, { "add", "keyword" },
50+
{ "null", "literal" }, { "unsafe", "keyword" },
51+
{ "fixed", "keyword" }, { "else", "keyword" },
52+
{ "stackalloc", "keyword" }, { "global", "keyword" },
53+
{ "record", "keyword" }, { "enum", "keyword" },
54+
{ "value", "keyword" }, { "lock", "keyword" },
55+
{ "operator", "keyword" }, { "when", "keyword" },
56+
{ "struct", "keyword" }, { "break", "keyword" },
57+
{ "is", "keyword" }, { "decimal", "keyword2" },
58+
{ "string", "keyword2" }, { "if", "keyword" },
59+
{ "await", "keyword" }, { "in", "keyword" },
60+
{ "public", "keyword" }, { "virtual", "keyword" },
61+
{ "dynamic", "keyword" }, { "private", "keyword" },
62+
{ "finally", "keyword" }, { "abstract", "keyword" },
63+
{ "unchecked", "keyword" }, { "volatile", "keyword" },
64+
{ "switch", "keyword" }, { "using", "keyword" },
65+
{ "checked", "keyword" }, { "double", "keyword2" },
66+
{ "event", "keyword" }, { "auto", "keyword" },
67+
{ "ulong", "keyword2" }, { "var", "keyword" },
68+
{ "out", "keyword" }, { "try", "keyword" },
69+
{ "as", "keyword" }, { "class", "keyword" },
70+
{ "byte", "keyword2" }, { "yield", "keyword" },
71+
{ "static", "keyword" }, { "super", "keyword" },
72+
{ "uint", "keyword2" }, { "explicit", "keyword" },
73+
{ "sbyte", "keyword2" }, { "throw", "keyword" },
74+
{ "self", "keyword" }, { "catch", "keyword" },
75+
{ "true", "literal" }, { "ushort", "keyword2" },
76+
{ "override", "keyword" }, { "sealed", "keyword" },
77+
{ "float", "keyword2" }, { "params", "keyword" },
78+
{ "readonly", "keyword" }, { "interface", "keyword" },
79+
{ "protected", "keyword" }, { "do", "keyword" },
80+
{ "implicit", "keyword" }, { "ref", "keyword" },
81+
{ "constructor", "keyword" }, { "singleton", "keyword" },
82+
{ "real", "keyword2" }, { "ifnot", "keyword" },
83+
{ "symbol", "keyword" },
84+
85+
},
86+
"//",
87+
{}
88+
89+
} )
90+
.setFoldRangeType( FoldRangeType::Braces )
91+
.setFoldBraces( { { '{', '}' } } );
92+
;
93+
}
94+
95+
}}}} // namespace EE::UI::Doc::Language
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#ifndef EE_UI_DOC_Elena
2+
#define EE_UI_DOC_Elena
3+
4+
namespace EE { namespace UI { namespace Doc { namespace Language {
5+
6+
extern void addElena();
7+
8+
}}}} // namespace EE::UI::Doc::Language
9+
10+
#endif

src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languagessyntaxhighlighting.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <eepp/ui/doc/languages/d.hpp>
2121
#include <eepp/ui/doc/languages/dart.hpp>
2222
#include <eepp/ui/doc/languages/difffile.hpp>
23+
#include <eepp/ui/doc/languages/elena.hpp>
2324
#include <eepp/ui/doc/languages/elixir.hpp>
2425
#include <eepp/ui/doc/languages/elm.hpp>
2526
#include <eepp/ui/doc/languages/environmentfile.hpp>
@@ -135,6 +136,7 @@ void LanguagesSyntaxHighlighting::load() {
135136
addD();
136137
addDart();
137138
addDiff();
139+
addElena();
138140
addElixir();
139141
addElm();
140142
addEnvironmentFile();

src/tools/ecode/ecode.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3536,7 +3536,7 @@ void App::init( const LogLevel& logLevel, std::string file, const Float& pidelDe
35363536
mThreadPool->run( [this] {
35373537
// Load language definitions
35383538
Clock defClock;
3539-
SyntaxDefinitionManager::createSingleton( 126 );
3539+
SyntaxDefinitionManager::createSingleton( 127 );
35403540
Language::LanguagesSyntaxHighlighting::load();
35413541
SyntaxDefinitionManager::instance()->setLanguageExtensionsPriority(
35423542
mConfig.languagesExtensions.priorities );

0 commit comments

Comments
 (0)