Skip to content

Commit aad9bdc

Browse files
Lite-xl syntax (#37)
* add lite-xl c3 syntax
1 parent d2c7501 commit aad9bdc

3 files changed

Lines changed: 255 additions & 0 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Currently available are:
1212
- Kakoune
1313
- [Zed](https://github.com/AineeJames/c3-zed)
1414
- [Kate](https://kate-editor.org/get-it/)
15+
- Lite-xl
1516

1617
Please note that since the language is still undergoing revisions, these may or may not be completely
1718
current.

lite-xl/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
## Usage
2+
3+
- Paste `language_c3.lua` in
4+
- **Linux/Mac**: `$HOME/.config/lite-xl/plugins/`
5+
- **Windows**: `$USERPROFILE\.config\lite-xl\plugins\`

lite-xl/language_c3.lua

Lines changed: 249 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,249 @@
1+
-- mod-version:3
2+
local syntax = require "core.syntax"
3+
4+
syntax.add {
5+
name = "C3",
6+
files = { "%.c3$", "%.c3i$", "%.c3t$" },
7+
comment = "//",
8+
block_comment = {"/*", "*/"},
9+
10+
patterns = {
11+
{ pattern = "//.-\n", type = "comment" },
12+
{ pattern = { "/%*", "%*/" }, type = "comment" },
13+
{ pattern = { "<%*", "%*>" }, type = "comment" },
14+
{ pattern = { '"', '"', '\\' }, type = "string" },
15+
{ pattern = { "`", "`", '\\' }, type = "string" },
16+
{ pattern = { "'", "'", '\\' }, type = "string" },
17+
{ pattern = "0b[01_]+", type = "number" },
18+
{ pattern = "0[oO][0-7_]+", type = "number" },
19+
{ pattern = "0[xX][%da-fA-F_]+", type = "number" },
20+
{ pattern = "%d+[%d%._e]*", type = "number" },
21+
{ pattern = "[%l_]+[%u]*[%w_]*%f[(]", type = "function" },
22+
{ pattern = "[%l_]+[%u%d]*", type = "symbol" },
23+
{ pattern = "[%u_]+[%l%d]*", type = "keyword2" },
24+
},
25+
26+
symbols = {
27+
["alias"] = "keyword",
28+
["asm"] = "keyword",
29+
["assert"] = "keyword",
30+
["attrdef"] = "keyword",
31+
["bitstruct"] = "keyword",
32+
["break"] = "keyword",
33+
["case"] = "keyword",
34+
["catch"] = "keyword",
35+
["const"] = "keyword",
36+
["continue"] = "keyword",
37+
["default"] = "keyword",
38+
["defer"] = "keyword",
39+
["do"] = "keyword",
40+
["else"] = "keyword",
41+
["enum"] = "keyword",
42+
["extern"] = "keyword",
43+
["faultdef"] = "keyword",
44+
["fn"] = "keyword",
45+
["for"] = "keyword",
46+
["foreach"] = "keyword",
47+
["foreach_r"] = "keyword",
48+
["if"] = "keyword",
49+
["import"] = "keyword",
50+
["inline"] = "keyword",
51+
["interface"] = "keyword",
52+
["macro"] = "keyword",
53+
["module"] = "keyword",
54+
["nextcase"] = "keyword",
55+
["return"] = "keyword",
56+
["static"] = "keyword",
57+
["struct"] = "keyword",
58+
["switch"] = "keyword",
59+
["tlocal"] = "keyword",
60+
["try"] = "keyword",
61+
["typedef"] = "keyword",
62+
["typeid"] = "keyword",
63+
["union"] = "keyword",
64+
["var"] = "keyword",
65+
["while"] = "keyword",
66+
["$alignof"] = "keyword",
67+
["$assert"] = "keyword",
68+
["$assignable"] = "keyword",
69+
["$case"] = "keyword",
70+
["$default"] = "keyword",
71+
["$defined"] = "keyword",
72+
["$echo"] = "keyword",
73+
["$else"] = "keyword",
74+
["$embed"] = "keyword",
75+
["$endfor"] = "keyword",
76+
["$endforeach"] = "keyword",
77+
["$endif"] = "keyword",
78+
["$endswitch"] = "keyword",
79+
["$eval"] = "keyword",
80+
["$evaltype"] = "keyword",
81+
["$error"] = "keyword",
82+
["$exec"] = "keyword",
83+
["$extnameof"] = "keyword",
84+
["$feature"] = "keyword",
85+
["$for"] = "keyword",
86+
["$foreach"] = "keyword",
87+
["$if"] = "keyword",
88+
["$include"] = "keyword",
89+
["$is_const"] = "keyword",
90+
["$nameof"] = "keyword",
91+
["$offsetof"] = "keyword",
92+
["$qnameof"] = "keyword",
93+
["$sizeof"] = "keyword",
94+
["$stringify"] = "keyword",
95+
["$switch"] = "keyword",
96+
["$typefrom"] = "keyword",
97+
["$typeof"] = "keyword",
98+
["$vaarg"] = "keyword",
99+
["$vacount"] = "keyword",
100+
["$vaconst"] = "keyword",
101+
["$vaexpr"] = "keyword",
102+
["$vasplat"] = "keyword",
103+
["$vatype"] = "keyword",
104+
105+
--types
106+
["any"] = "keyword2",
107+
["bfloat"] = "keyword2",
108+
["bool"] = "keyword2",
109+
["char"] = "keyword2",
110+
["double"] = "keyword2",
111+
["fault"] = "keyword2",
112+
["float"] = "keyword2",
113+
["float128"] = "keyword2",
114+
["float16"] = "keyword2",
115+
["ichar"] = "keyword2",
116+
["int"] = "keyword2",
117+
["int128"] = "keyword2",
118+
["iptr"] = "keyword2",
119+
["isz"] = "keyword2",
120+
["long"] = "keyword2",
121+
["short"] = "keyword2",
122+
["uint"] = "keyword2",
123+
["uint128"] = "keyword2",
124+
["ulong"] = "keyword2",
125+
["uptr"] = "keyword2",
126+
["ushort"] = "keyword2",
127+
["usz"] = "keyword2",
128+
["void"] = "keyword2",
129+
130+
--literals
131+
["true"] = "literal",
132+
["false"] = "literal",
133+
["null"] = "literal",
134+
135+
--operators
136+
["&"] = "operator",
137+
["!"] = "operator",
138+
["~"] = "operator",
139+
["|"] = "operator",
140+
["^"] = "operator",
141+
[":"] = "operator",
142+
[","] = "operator",
143+
[";"] = "operator",
144+
["="] = "operator",
145+
[">"] = "operator",
146+
["/"] = "operator",
147+
["."] = "operator",
148+
["<"] = "operator",
149+
["{"] = "operator",
150+
["["] = "operator",
151+
["("] = "operator",
152+
["-"] = "operator",
153+
["%"] = "operator",
154+
["+"] = "operator",
155+
["?"] = "operator",
156+
["}"] = "operator",
157+
["]"] = "operator",
158+
[")"] = "operator",
159+
["*"] = "operator",
160+
["&&"] = "operator",
161+
["->"] = "operator",
162+
["!!"] = "operator",
163+
["&="] = "operator",
164+
["|="] = "operator",
165+
["^="] = "operator",
166+
["/="] = "operator",
167+
[".."] = "operator",
168+
["?:"] = "operator",
169+
["=="] = "operator",
170+
[">="] = "operator",
171+
["=>"] = "operator",
172+
["<="] = "operator",
173+
["[<"] = "operator",
174+
["-="] = "operator",
175+
["--"] = "operator",
176+
["%="] = "operator",
177+
["*="] = "operator",
178+
["!="] = "operator",
179+
["||"] = "operator",
180+
["+="] = "operator",
181+
["++"] = "operator",
182+
[">]"] = "operator",
183+
["??"] = "operator",
184+
["::"] = "operator",
185+
["<<"] = "operator",
186+
[">>"] = "operator",
187+
["..."] = "operator",
188+
["<<="] = "operator",
189+
[">>="] = "operator",
190+
["&&&"] = "operator",
191+
["+++"] = "operator",
192+
["|||"] = "operator",
193+
194+
--attributes
195+
["@align"] = "function",
196+
["@allow_deprecated"] = "function",
197+
["@benchmark"] = "function",
198+
["@bigendian"] = "function",
199+
["@builtin"] = "function",
200+
["@callconv"] = "function",
201+
["@compact"] = "function",
202+
["@const"] = "function",
203+
["@deprecated"] = "function",
204+
["@dynamic"] = "function",
205+
["@export"] = "function",
206+
["@extern"] = "function",
207+
["@finalizer"] = "function",
208+
["@format"] = "function",
209+
["@if"] = "function",
210+
["@inline"] = "function",
211+
["@init"] = "function",
212+
["@jump"] = "function",
213+
["@link"] = "function",
214+
["@littleendian"] = "function",
215+
["@local"] = "function",
216+
["@maydiscard"] = "function",
217+
["@naked"] = "function",
218+
["@noalias"] = "function",
219+
["@nodiscard"] = "function",
220+
["@noinit"] = "function",
221+
["@noinline"] = "function",
222+
["@nopadding"] = "function",
223+
["@norecurse"] = "function",
224+
["@noreturn"] = "function",
225+
["@nosanitize"] = "function",
226+
["@nostrip"] = "function",
227+
["@obfuscate"] = "function",
228+
["@operator"] = "function",
229+
["@operator_r"] = "function",
230+
["@operator_s"] = "function",
231+
["@optional"] = "function",
232+
["@overlap"] = "function",
233+
["@packed"] = "function",
234+
["@private"] = "function",
235+
["@public"] = "function",
236+
["@pure"] = "function",
237+
["@reflect"] = "function",
238+
["@safemacro"] = "function",
239+
["@section"] = "function",
240+
["@structlike"] = "function",
241+
["@tag"] = "function",
242+
["@test"] = "function",
243+
["@unused"] = "function",
244+
["@used"] = "function",
245+
["@wasm"] = "function",
246+
["@weak"] = "function",
247+
["@winmain"] = "function"
248+
},
249+
}

0 commit comments

Comments
 (0)