Skip to content
This repository was archived by the owner on Jan 17, 2026. It is now read-only.

Commit 00b6b32

Browse files
RisPNGBlond11516
andauthored
Update Elixir syntax to the latest from ElixirLS (#95)
Co-authored-by: Étienne Lévesque <contact@etiennel.dev>
1 parent 4359432 commit 00b6b32

File tree

3 files changed

+145
-2
lines changed

3 files changed

+145
-2
lines changed

elixir-language-configuration.json

Lines changed: 109 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@
55
"brackets": [
66
["{", "}"],
77
["[", "]"],
8-
["(", ")"],
8+
["<<", ">>"],
9+
["fn", "end"],
910
["do", "end"],
10-
["fn", "end"]
11+
["(", ")"]
1112
],
1213
"surroundingPairs": [
1314
["{", "}"],
1415
["[", "]"],
1516
["(", ")"],
17+
["<", ">"],
1618
["'", "'"],
1719
["\"", "\""]
1820
],
@@ -31,13 +33,96 @@
3133
{ "open": "~S\"", "close": "\"" },
3234
{ "open": "~T\"", "close": "\"" },
3335
{ "open": "~U\"", "close": "\"" },
36+
{ "open": "~W\"", "close": "\"" },
3437
{ "open": "~b\"", "close": "\"" },
3538
{ "open": "~c\"", "close": "\"" },
3639
{ "open": "~e\"", "close": "\"" },
3740
{ "open": "~r\"", "close": "\"" },
3841
{ "open": "~s\"", "close": "\"" },
3942
{ "open": "~w\"", "close": "\"" },
43+
44+
{ "open": "~B/", "close": "/" },
45+
{ "open": "~C/", "close": "/" },
46+
{ "open": "~D/", "close": "/" },
47+
{ "open": "~E/", "close": "/" },
48+
{ "open": "~F/", "close": "/" },
49+
{ "open": "~H/", "close": "/" },
50+
{ "open": "~L/", "close": "/" },
51+
{ "open": "~N/", "close": "/" },
52+
{ "open": "~R/", "close": "/" },
53+
{ "open": "~S/", "close": "/" },
54+
{ "open": "~T/", "close": "/" },
55+
{ "open": "~U/", "close": "/" },
56+
{ "open": "~W/", "close": "/" },
57+
{ "open": "~b/", "close": "/" },
58+
{ "open": "~c/", "close": "/" },
59+
{ "open": "~e/", "close": "/" },
60+
{ "open": "~r/", "close": "/" },
61+
{ "open": "~s/", "close": "/" },
62+
{ "open": "~w/", "close": "/" },
63+
64+
{ "open": "~B|", "close": "|" },
65+
{ "open": "~C|", "close": "|" },
66+
{ "open": "~D|", "close": "|" },
67+
{ "open": "~E|", "close": "|" },
68+
{ "open": "~F|", "close": "|" },
69+
{ "open": "~H|", "close": "|" },
70+
{ "open": "~L|", "close": "|" },
71+
{ "open": "~N|", "close": "|" },
72+
{ "open": "~R|", "close": "|" },
73+
{ "open": "~S|", "close": "|" },
74+
{ "open": "~T|", "close": "|" },
75+
{ "open": "~U|", "close": "|" },
76+
{ "open": "~W|", "close": "|" },
77+
{ "open": "~b|", "close": "|" },
78+
{ "open": "~c|", "close": "|" },
79+
{ "open": "~e|", "close": "|" },
80+
{ "open": "~r|", "close": "|" },
81+
{ "open": "~s|", "close": "|" },
82+
{ "open": "~w|", "close": "|" },
83+
84+
{ "open": "~B'", "close": "'" },
85+
{ "open": "~C'", "close": "'" },
86+
{ "open": "~D'", "close": "'" },
87+
{ "open": "~E'", "close": "'" },
88+
{ "open": "~F'", "close": "'" },
89+
{ "open": "~H'", "close": "'" },
90+
{ "open": "~L'", "close": "'" },
91+
{ "open": "~N'", "close": "'" },
92+
{ "open": "~R'", "close": "'" },
93+
{ "open": "~S'", "close": "'" },
94+
{ "open": "~T'", "close": "'" },
95+
{ "open": "~U'", "close": "'" },
96+
{ "open": "~W'", "close": "'" },
97+
{ "open": "~b'", "close": "'" },
98+
{ "open": "~c'", "close": "'" },
99+
{ "open": "~e'", "close": "'" },
100+
{ "open": "~r'", "close": "'" },
101+
{ "open": "~s'", "close": "'" },
102+
{ "open": "~w'", "close": "'" },
103+
104+
{ "open": "~B<", "close": ">" },
105+
{ "open": "~C<", "close": ">" },
106+
{ "open": "~D<", "close": ">" },
107+
{ "open": "~E<", "close": ">" },
108+
{ "open": "~F<", "close": ">" },
109+
{ "open": "~H<", "close": ">" },
110+
{ "open": "~L<", "close": ">" },
111+
{ "open": "~N<", "close": ">" },
112+
{ "open": "~R<", "close": ">" },
113+
{ "open": "~S<", "close": ">" },
114+
{ "open": "~T<", "close": ">" },
115+
{ "open": "~U<", "close": ">" },
116+
{ "open": "~W<", "close": ">" },
117+
{ "open": "~b<", "close": ">" },
118+
{ "open": "~c<", "close": ">" },
119+
{ "open": "~e<", "close": ">" },
120+
{ "open": "~r<", "close": ">" },
121+
{ "open": "~s<", "close": ">" },
122+
{ "open": "~w<", "close": ">" },
123+
40124
{ "open": "\"\"\"", "close": "\"\"\"" },
125+
41126
{ "open": "~B\"\"\"", "close": "\"\"\"" },
42127
{ "open": "~C\"\"\"", "close": "\"\"\"" },
43128
{ "open": "~D\"\"\"", "close": "\"\"\"" },
@@ -50,12 +135,34 @@
50135
{ "open": "~S\"\"\"", "close": "\"\"\"" },
51136
{ "open": "~T\"\"\"", "close": "\"\"\"" },
52137
{ "open": "~U\"\"\"", "close": "\"\"\"" },
138+
{ "open": "~W\"\"\"", "close": "\"\"\"" },
53139
{ "open": "~b\"\"\"", "close": "\"\"\"" },
54140
{ "open": "~c\"\"\"", "close": "\"\"\"" },
55141
{ "open": "~e\"\"\"", "close": "\"\"\"" },
56142
{ "open": "~r\"\"\"", "close": "\"\"\"" },
57143
{ "open": "~s\"\"\"", "close": "\"\"\"" },
58144
{ "open": "~w\"\"\"", "close": "\"\"\"" },
145+
146+
{ "open": "~B'''", "close": "'''" },
147+
{ "open": "~C'''", "close": "'''" },
148+
{ "open": "~D'''", "close": "'''" },
149+
{ "open": "~E'''", "close": "'''" },
150+
{ "open": "~F'''", "close": "'''" },
151+
{ "open": "~H'''", "close": "'''" },
152+
{ "open": "~L'''", "close": "'''" },
153+
{ "open": "~N'''", "close": "'''" },
154+
{ "open": "~R'''", "close": "'''" },
155+
{ "open": "~S'''", "close": "'''" },
156+
{ "open": "~T'''", "close": "'''" },
157+
{ "open": "~U'''", "close": "'''" },
158+
{ "open": "~W'''", "close": "'''" },
159+
{ "open": "~b'''", "close": "'''" },
160+
{ "open": "~c'''", "close": "'''" },
161+
{ "open": "~e'''", "close": "'''" },
162+
{ "open": "~r'''", "close": "'''" },
163+
{ "open": "~s'''", "close": "'''" },
164+
{ "open": "~w'''", "close": "'''" },
165+
59166
{ "open": "`", "close": "`", "notIn": ["string", "comment"] },
60167
{ "open": "(", "close": ")" },
61168
{ "open": "{", "close": "}" },

package.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@
2828
"aliases": ["Embedded Elixir", "EEx", "eex"],
2929
"extensions": [".eex", ".leex"],
3030
"configuration": "./eex-language-configuration.json"
31+
},
32+
{
33+
"id": "html-eex",
34+
"aliases": ["HTML (EEx)", "html-eex"],
35+
"extensions": [".html.eex", ".heex"],
36+
"configuration": "./eex-language-configuration.json"
3137
}
3238
],
3339
"grammars": [
@@ -51,6 +57,11 @@
5157
"language": "eex",
5258
"scopeName": "text.elixir",
5359
"path": "./syntaxes/eex.json"
60+
},
61+
{
62+
"language": "html-eex",
63+
"scopeName": "text.html.eex",
64+
"path": "./syntaxes/html-eex.json"
5465
}
5566
],
5667
"problemMatchers": [

syntaxes/html-eex.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"fileTypes": ["html.eex", ".heex", ".leex", ".neex"],
3+
"foldingStartMarker": "(?x)\n\t\t(<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\\b.*?>\n\t\t|<!--(?!.*-->)\n\t\t|\\{\\s*($|\\?>\\s*$|//|/\\*(.*\\*/\\s*$|(?!.*?\\*/)))\n\t\t)",
4+
"foldingStopMarker": "(?x)\n\t\t(</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)>\n\t\t|^\\s*-->\n\t\t|(^|\\s)\\}\n\t\t)",
5+
"injections": {
6+
"R:text.html.elixir meta.tag meta.attribute string.quoted": {
7+
"comment": "Uses R: to ensure this matches after any other injections.",
8+
"patterns": [
9+
{
10+
"include": "text.elixir"
11+
}
12+
]
13+
}
14+
},
15+
"name": "HTML (Embedded Elixir)",
16+
"patterns": [
17+
{
18+
"include": "text.elixir"
19+
},
20+
{
21+
"include": "text.html.basic"
22+
}
23+
],
24+
"scopeName": "text.html.elixir"
25+
}

0 commit comments

Comments
 (0)