Skip to content

Commit bae34a3

Browse files
committed
feat: 0.0.26
1 parent b1f010a commit bae34a3

File tree

3 files changed

+143
-17
lines changed

3 files changed

+143
-17
lines changed

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ All notable changes to the "pivot-lang-support" extension will be documented in
44

55
Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
66

7+
## [0.0.26]
8+
9+
- even better textmate syntax highlighting
10+
- add `impl`\\`type`\\`trait` highlight
11+
- fixed `use` highlight
12+
713
## [0.0.25]
814

915
- even better textmate syntax highlighting

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "pivot-lang-support",
33
"displayName": "pivot-lang support",
44
"description": "",
5-
"version": "0.0.25",
5+
"version": "0.0.26",
66
"publisher": "pivot-langAuthors",
77
"license": "MIT",
88
"repository": {

syntaxes/pivot-lang.tmLanguage.json

+136-16
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@
99
"name": "comment",
1010
"match": "//.*$"
1111
},
12+
{
13+
"include": "#use"
14+
},
15+
{
16+
"include": "#sumtype"
17+
},
1218
{
1319
"include": "#expr.as"
1420
},
@@ -19,10 +25,10 @@
1925
"include": "#array"
2026
},
2127
{
22-
"include": "#struct"
28+
"include": "#impl"
2329
},
2430
{
25-
"include": "#use"
31+
"include": "#struct"
2632
},
2733
{
2834
"include": "#function"
@@ -87,13 +93,20 @@
8793
"struct": {
8894
"patterns": [
8995
{
90-
"match": "\\b(struct)\\s+([a-zA-Z_][a-zA-Z0-9_]*)",
96+
"match": "\\b(struct|trait)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*(<[^>]*>)?",
9197
"captures": {
9298
"1": {
9399
"name": "keyword"
94100
},
95101
"2": {
96102
"name": "entity.name.type"
103+
},
104+
"3": {
105+
"patterns": [
106+
{
107+
"include": "#typename"
108+
}
109+
]
97110
}
98111
}
99112
}
@@ -103,19 +116,53 @@
103116
"name": "variable",
104117
"match": "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b"
105118
},
119+
"typename": {
120+
"name": "entity.name.type",
121+
"match": "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b"
122+
},
123+
"ns": {
124+
"name": "entity.name.namespace",
125+
"match": "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b"
126+
},
127+
"sumtype": {
128+
"match": "\\b(type)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*(<[^>]*>)?\\s*=\\s*(([a-zA-Z_][a-zA-Z0-9_]*\\s*(<[^>]*>)?\\|)*[a-zA-Z_][a-zA-Z0-9_]*\\s*(<[^>]*>)?)",
129+
"captures": {
130+
"1": {
131+
"name": "keyword"
132+
},
133+
"2": {
134+
"name": "entity.name.type"
135+
},
136+
"3": {
137+
"patterns": [
138+
{
139+
"include": "#typename"
140+
}
141+
]
142+
},
143+
"4": {
144+
"patterns": [
145+
{
146+
"include": "#typename"
147+
}
148+
]
149+
}
150+
}
151+
},
106152
"use": {
107153
"patterns": [
108154
{
109-
"match": "\\b(use)\\s+([a-zA-Z_][a-zA-Z0-9_]*)(::[a-zA-Z_][a-zA-Z0-9_]*)*",
155+
"match": "\\b(use)\\s+(([a-zA-Z_][a-zA-Z0-9_]*)(::[a-zA-Z_][a-zA-Z0-9_]*)*)",
110156
"captures": {
111157
"1": {
112158
"name": "keyword"
113159
},
114160
"2": {
115-
"name": "entity.name.namespace"
116-
},
117-
"3": {
118-
"name": "entity.name.namespace"
161+
"patterns": [
162+
{
163+
"include": "#ns"
164+
}
165+
]
119166
}
120167
}
121168
}
@@ -136,7 +183,11 @@
136183
"name": "entity.name.function"
137184
},
138185
"2": {
139-
"name": "entity.name.type"
186+
"patterns": [
187+
{
188+
"include": "#typename"
189+
}
190+
]
140191
}
141192
}
142193
},
@@ -155,7 +206,11 @@
155206
"name": "keyword"
156207
},
157208
"2": {
158-
"name": "entity.name.type"
209+
"patterns": [
210+
{
211+
"include": "#typename"
212+
}
213+
]
159214
}
160215
}
161216
},
@@ -166,15 +221,23 @@
166221
"name": "keyword"
167222
},
168223
"2": {
169-
"name": "entity.name.type"
224+
"patterns": [
225+
{
226+
"include": "#typename"
227+
}
228+
]
170229
}
171230
}
172231
},
173232
"array": {
174233
"match": "\\[([a-zA-Z_][a-zA-Z0-9_]*)\\*([^\\;]+)\\;",
175234
"captures": {
176235
"1": {
177-
"name": "entity.name.type"
236+
"patterns": [
237+
{
238+
"include": "#typename"
239+
}
240+
]
178241
},
179242
"2": {
180243
"patterns": [
@@ -220,7 +283,6 @@
220283
]
221284
}
222285
}
223-
224286
},
225287
"function": {
226288
"match": "\\b(fn)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*(<[^>]*>)?\\s*\\(([^\\)]*)\\)\\s*([^\\{]*)",
@@ -232,7 +294,11 @@
232294
"name": "entity.name.function"
233295
},
234296
"3": {
235-
"name": "entity.name.type"
297+
"patterns": [
298+
{
299+
"include": "#typename"
300+
}
301+
]
236302
},
237303
"4": {
238304
"patterns": [
@@ -245,7 +311,57 @@
245311
]
246312
},
247313
"5": {
248-
"name": "entity.name.type"
314+
"patterns": [
315+
{
316+
"include": "#typename"
317+
}
318+
]
319+
}
320+
}
321+
},
322+
"impl": {
323+
"match": "\\b(impl)\\s*(<[^>]+>)?\\s*([a-zA-Z_][a-zA-Z0-9_\\:]*)?\\s*(<[^>]+>)?\\s*(for)?\\s*([a-zA-Z_][a-zA-Z0-9_\\:]*)\\s*(<[^>]+>)?\\s*\\{",
324+
"captures": {
325+
"1": {
326+
"name": "keyword"
327+
},
328+
"2": {
329+
"patterns": [
330+
{
331+
"include": "#typename"
332+
}
333+
]
334+
},
335+
"3": {
336+
"patterns": [
337+
{
338+
"include": "#typename"
339+
}
340+
]
341+
},
342+
"4": {
343+
"patterns": [
344+
{
345+
"include": "#typename"
346+
}
347+
]
348+
},
349+
"5": {
350+
"name": "keyword"
351+
},
352+
"6": {
353+
"patterns": [
354+
{
355+
"include": "#typename"
356+
}
357+
]
358+
},
359+
"7": {
360+
"patterns": [
361+
{
362+
"include": "#typename"
363+
}
364+
]
249365
}
250366
}
251367
},
@@ -256,7 +372,11 @@
256372
"name": "variable.parameter"
257373
},
258374
"2": {
259-
"name": "entity.name.type"
375+
"patterns": [
376+
{
377+
"include": "#typename"
378+
}
379+
]
260380
}
261381
}
262382
},

0 commit comments

Comments
 (0)